我正在尝试使用 Google Cloud Resource Manager API 来测试经过身份验证的用户是否对给定项目具有权限。我已阅读Google Cloud Resource Manager API 文档并尝试发送请求,但所有请求均失败并显示以下错误:
{ "error": { "code": 400, "message": "Request contains an invalid argument.", "status": "INVALID_ARGUMENT" } }
POST 请求是:
https://cloudresourcemanager.googleapis.com/v1/projects/ {projectId}:testIamPermissions
其中 {projectId} 是 Google Cloud Developer Console 中定义的 projectId。我知道我可以使用 project.list 方法并确定给定的 projectId 是否存在于用户的项目列表中。我想了解如何使用 project.testIamPermissions 请求并确定用户对项目具有哪些权限。
我在一个 GCP 项目上有一个(非管理员)帐户。
当我启动 Dataproc 集群时,GCP 会启动 3 个虚拟机。当我尝试通过SSH(在浏览器中)访问其中一个 VM 时,出现以下错误:
我尝试添加推荐的权限,但无法添加iam.serviceAccounts.actAs权限。
知道如何解决这个问题吗?我通读了 GCP 文档,但找不到解决方案。我有以下与我的帐户相关联的角色:
ssh-tunnel google-cloud-console google-cloud-platform google-cloud-dataproc
是否可以将时区 API 密钥限制为 Android 应用程序?
通过定义包名称和 SHA-1 哈希值,可以将 Google Maps Android API 和 Google Places API 密钥限制为某些 Android 应用程序。
这对于 Maps and Places API 来说没有问题,但对 Time Zone API 使用完全相同的设置会不断返回“ REQUEST_DENIED”。将应用程序限制设置回“无”会导致查询成功,但我不想让我的 API 密钥不受保护。
我调用API的方式如下:
double lat = 51.1789;
double lon = -1.8262;
long time = 1523092938;
String Api_key = "#API_KEY#";
String query = "https://maps.googleapis.com/maps/api/timezone/json?location="+String.format(Locale.ROOT, "%.4f",lat)+","+String.format(Locale.ROOT, "%.4f",lon)+"×tamp="+time+"&key="+ Api_key;
protected JSONObject doInBackground(String... params) {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
URL url = new URL(query);
connection = (HttpURLConnection) …Run Code Online (Sandbox Code Playgroud) 将我组织中的其他用户添加为项目编辑者和查看者后,项目不会显示在其 Google Cloud Console 项目列表中,也不会在gcloud projects list.
但是,如果我给他们直接指向项目内某些资源的链接,他们就可以很好地导航到该资源,
并且他们还可以使用类似于设置新项目的命令gcloud container clusters list并--project=查看项目内的资源。
gcloud projects list( https://cloud.google.com/resource-manager/docs/creating-managing-projects#listing_projects )的文档指定它应该列出您拥有的所有项目resourcemanager.projects.list(项目查看器和编辑器均授予)或任何您所拥有的父母下的孩子resourcemanager.projects.list。
所以也许如果我resourcemanager.projects.list在组织级别授予它会修复它,但我真的不想授予用户如此广泛的访问权限......
我刚刚创建了一个 Google Cloud 帐户,并尝试将一些数据从我的语言环境机器加载到存储桶中,以便以后在 ML 项目中使用。我正在按照教程中提供的非常简单的说明来启动并通过控制台运行存储桶,并且在创建存储桶时没有问题,但是在尝试上传(任何)文件时,我收到错误消息“无法上传一个文件。出了点问题。再试一次。”
当然,这不会那么困难——作为新帐户用户,我需要做些什么来准备我的帐户,然后才能让我将文件上传到云吗?
在此先感谢您的帮助。
我正在尝试使用终端在 Google Cloud Console 中部署我的方向应用程序:
gcloud app deploy
Run Code Online (Sandbox Code Playgroud)
但我收到这个错误:
peter@cloudshell:~/direction-proxy (myapp-3f67k)$ gcloud app deploy
ERROR: (gcloud.app.deploy) Staging command [/usr/lib/google-cloud-sdk/platform/google_appengine/go-app-stager /home/peter/direction-proxy/app.yaml /home/peter/direction-proxy /tmp/tmpw9zlbhhe/tmp74n__vq4] failed with return code [1].
------------------------------------ STDOUT ------------------------------------
------------------------------------ STDERR ------------------------------------
2020/06/19 13:08:51 invalid runtime value go
--------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
这是我的 app.yaml 文件,我认为它会产生此错误,但我很难理解。我对 Go 很陌生。
runtime: go
api_version: go1
handlers:
- url: /.*
script: _go_app
login: admin
Run Code Online (Sandbox Code Playgroud) go google-cloud-console google-cloud-platform google-app-engine-golang
Error 400: redirect_uri_mismatch即使在提供正确的重定向 uri 后我仍然收到此错误。您可以查看下面的图片以供参考。它适用于我的本地主机,但它在我的服务器上显示此错误。我的域名看起来像https://xxx.topLevelDomain.com. 在浏览了与此错误相关的大多数问题后,我无法找到此问题的可能原因。虽然,我猜这个问题可能是因为我在这里使用子域,但仍然不确定这是否是问题。
申请信息:
https://someTopLevelDomain.comhttps://someSubdomain.someTopLevelDomain.comoauth-2.0 google-oauth spring-boot google-cloud-console google-developers-console
我已遵循OAuth 同意屏幕中的说明 - 能够删除应用程序徽标
\n删除徽标。
\n但现在,当我尝试创建 OAuth 客户端 Id 时,我可以\xc2\xb4t,因为出现以下消息:
\n“您尝试编辑的品牌已被删除。请重新创建您的品牌。”
\n我尝试重新创建品牌,填写“同意屏幕”表格,但我可以\xc2\xb4t。它显示错误:“保存您的应用程序时发生错误”
\n在 Chrome 的开发者控制台中,我阅读了返回的消息,并得到了以下信息:
\n{"error":{"code":5,"message":"资源已被删除。","details":[{"@type":"type.googleapis.com/google.rpc.ErrorInfo", "reason":"RESOURCE_DELETED","domain":"clientauthconfig.googleapis.com","metadata":{"resource_name":"["brand"]"}}]}}
\n现在,该项目处于不一致状态,我可以\xc2\xb4t继续。
\n为了重置同意屏幕或创建新的同意屏幕,我们将不胜感激。
\n提前致谢
\n当尝试通过虚拟 Android 设备运行 Firebase 电话身份验证时,收到以下错误消息;
E/zzbf ( 6464): SafetyNet Attestation fails basic integrity.
I/zzmt ( 6464): Provider GmsCore_OpenSSL not available
W/System ( 6464): Ignoring header X-Firebase-Locale because its value was null.
Run Code Online (Sandbox Code Playgroud)
该项目的 Android 设备验证通过 Google Cloud Console 启用;https://i.stack.imgur.com/b43al.png
SHA-1 和 SHA-256 已添加到 Firebase 项目设置中;https://i.stack.imgur.com/aovkV.png
应用程序级别build.gradle有implementation "androidx.browser:browser:1.4.0"& implementation 'com.google.android.gms:play-services-safetynet:18.0.1; https://i.stack.imgur.com/cfsqn.png
我调查了类似的 StackOverflow 主题并尝试了可能的解决方案,但没有成功。在物理 Android 设备上运行它运行良好,但在虚拟设备中我无法通过验证码验证。
另外,在检查SafetyNet 文档时,我发现它已被弃用,并将被Play Integrity API取代。
firebase google-cloud-console google-cloud-platform flutter safetynet
我在控制台中对计算虚拟机的启动脚本进行了少量编辑,没有出现任何问题。现在,当我尝试保存时,突然出现“确保所有字段正确才能继续”横幅。即使我单击编辑,不进行任何更改并尝试保存,也会出现相同的横幅。由于某种原因,我无法再对此虚拟机进行更改。这是一个每天运行一年多没有出现问题的虚拟机,并定期编辑启动脚本。
该消息完全没有给出有关哪些字段出现问题的具体信息。而且我认为除了启动脚本之外我实际上没有更改任何字段。
我在网上搜索了这个问题,但只发现了一个类似的问题,但没有找到计算的问题。请参阅https://www.googlecloudcommunity.com/gc/Workspace-QA/Getting-quot-Make-sure-all-fields-are- Correct-to-continue-quot/mp /404955 。
请参阅随附的屏幕截图。
android ×1
api-key ×1
bucket ×1
firebase ×1
flutter ×1
gcloud ×1
go ×1
google-api ×1
google-oauth ×1
idp ×1
oauth-2.0 ×1
safetynet ×1
spring-boot ×1
ssh-tunnel ×1