Google容器引擎:访问云端存储

我无法使用Google Container Engine中的应用程序默认凭证。 该文档说,他们的目的是为应用程序引擎和计算引擎,但我已经被告知,他们应该透明地通过容器引擎上运行的容器。

这是失败的代码:

credentials = GoogleCredentials.get_application_default() service = discovery.build('storage', 'v1', credentials=credentials) 

它失败的错误: AssertionError: No api proxy found for service "memcache"

期望应用程序默认凭据与容器引擎一起使用是否正确? 如果没有,任何人都可以推荐正确的方式来连接到容器上运行的容器的云存储?

谢谢。

编辑:在运行gcloud beta auth application-default activate-service-account --key-file <my_key>.json上述Python示例中的credentials对象填充数据。 不过,我仍然得到相同的错误。

在Container Engine上访问云存储最简单的方法似乎是gcloud库。

如果App Engine SDK安装在容器上(gcloud发现它,并假定它在App Engine上运行),它将无法使用零configuration。 所以我停止使用官方的Google容器 。

在python容器中,只需要将gcloud添加到您的requirements.txt文件 (或者运行pip install gcloud )即可。 只要容器位于Google Compute Engine实例上,就可以访问同一项目中的任何存储桶。

例:

 from gcloud import storage client = storage.Client() bucket = client.get_bucket('<bucket_name>') blob = bucket.blob('test_file.txt') blob.upload_from_string('test content') 

gcloud库也适用于Java , Node和Ruby 。