Google Dataflow上Apache Beam示例的权限错误

RHo*_*and 6 python google-cloud-platform google-cloud-dataflow apache-beam

我无法将Apache Beam示例从本地计算机提交到我们的云平台.

使用gcloud auth list我可以看到正确的帐户当前是活动的.我可以使用gsutil和Web客户端进行文件系统交互.我可以使用cloud shell通过python REPL运行管道.

但是当我尝试运行python wordcount示例时,我收到以下错误:

IOError: Could not upload to GCS path gs://my_bucket/tmp: access denied.
Please verify that credentials are valid and that you have write access 
to the specified path.
Run Code Online (Sandbox Code Playgroud)

关于凭证,我有什么遗漏吗?

ode*_*fos 10

在整个上午度过这个问题之后,这是我的两分钱.

您应该确保在本地计算机上使用gcloud登录,但是,请注意从gcloud auth login以下位置返回的警告消息:

WARNING: `gcloud auth login` no longer writes application default credentials.

python代码需要这些凭据才能正确识别您的凭据.

解决方案很简单,只需使用: gcloud auth application-default login

这将写入一个凭证文件:〜/ .config/gcloud/application_default_credentials.json,用于本地开发环境中的身份验证.

  • 我怎么会错过你的回答。**我确认这是解决方案。它对我有用。** 啊,我花了一个下午的时间独自寻找它。 (2认同)

Ale*_*ato 2

您需要为项目创建 GCS 存储桶和文件夹,然后将其指定为管道参数,而不是使用默认值。

https://cloud.google.com/storage/docs/creating-buckets