GCloud 命令行正在从不同的帐户错误执行
GCloud command line is executing from different account error
我有两个 GCloud 帐户,考虑 x 和 y。
我 运行 命令 gcloud config set account x
因为只有帐户 x 可以访问该特定的 gcloud 项目。
但是每次我 运行 本地工作任务,例如:
python -m trainer.task --bucket=bucket-name --output_dir=outputdir --job-dir=./tmp --train_steps=200
我收到以下错误:
tensorflow.python.framework.errors_impl.PermissionDeniedError: Error executing an HTTP request: HTTP response code 403 with body '{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "y does not have storage.objects.create access to bucket-name."
}
],
"code": 403,
"message": "y does not have storage.objects.create access to bucket-name."
}
}
在我看来,命令行正在访问 y 帐户,即使我已登录到 x 帐户。我仔细检查了我是否登录了可以访问正确项目的正确帐户。
gcloud config set
命令似乎只影响 Cloud SDK 身份验证。这意味着尽管将帐户 x
设置为默认,API 调用仍通过应用程序默认凭据完成。
如果您想使用帐户 y
登录,使用 gcloud auth login y
命令应该可以解决问题。我了解到这是你本地的开发环境,所以你这样做之后应该没有问题。
同样,在 Ml 引擎中,建议使用 gcloud ml-engine local train
命令将作业 运行 到 运行 本地作业(Documentation on this), you can see this example 如何做吧。
我 运行 试图通过 API.
将一些文件上传到 GCS
API似乎使用的是默认帐户,而不是您登录的帐户。
修复:
gcloud auth application-default login
接下来是授权流程。
像@joan grau noel 提到的那样为我修复了它。我必须通过新的身份验证流程才能允许通过浏览器访问 Auth Library。将默认服务帐户更改为我需要的帐户后,错误停止了。
gcloud auth revoke --all
只需执行 about 命令并使用
重新登录
gcloud auth login
完成,之后享受与所需用户一起执行命令的乐趣。
我有两个 GCloud 帐户,考虑 x 和 y。
我 运行 命令 gcloud config set account x
因为只有帐户 x 可以访问该特定的 gcloud 项目。
但是每次我 运行 本地工作任务,例如:
python -m trainer.task --bucket=bucket-name --output_dir=outputdir --job-dir=./tmp --train_steps=200
我收到以下错误:
tensorflow.python.framework.errors_impl.PermissionDeniedError: Error executing an HTTP request: HTTP response code 403 with body '{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "y does not have storage.objects.create access to bucket-name."
}
],
"code": 403,
"message": "y does not have storage.objects.create access to bucket-name."
}
}
在我看来,命令行正在访问 y 帐户,即使我已登录到 x 帐户。我仔细检查了我是否登录了可以访问正确项目的正确帐户。
gcloud config set
命令似乎只影响 Cloud SDK 身份验证。这意味着尽管将帐户 x
设置为默认,API 调用仍通过应用程序默认凭据完成。
如果您想使用帐户 y
登录,使用 gcloud auth login y
命令应该可以解决问题。我了解到这是你本地的开发环境,所以你这样做之后应该没有问题。
同样,在 Ml 引擎中,建议使用 gcloud ml-engine local train
命令将作业 运行 到 运行 本地作业(Documentation on this), you can see this example 如何做吧。
我 运行 试图通过 API.
将一些文件上传到 GCSAPI似乎使用的是默认帐户,而不是您登录的帐户。
修复:
gcloud auth application-default login
接下来是授权流程。
像@joan grau noel 提到的那样为我修复了它。我必须通过新的身份验证流程才能允许通过浏览器访问 Auth Library。将默认服务帐户更改为我需要的帐户后,错误停止了。
gcloud auth revoke --all
只需执行 about 命令并使用
重新登录gcloud auth login
完成,之后享受与所需用户一起执行命令的乐趣。