在云 运行 和 ruby 上使用 gcloud 存储
using gcloud storage on cloud run with ruby
通常使用 google-cloud-storage gem 到 read/write 文件
此 gem 需要 .json 服务帐户密钥路径,或指定路径的环境变量
我想知道这在 cloudrun 上下文中如何工作,因为预期的环境变量不能引用静态文件路径。部署到cloudrun时可以指定一个服务账号,但是如何通过这种工具获取服务账号信息呢?
虽然 运行 在 Cloud 运行(或 Compute Engine、Kubernetes Engine、App Engine、Cloud Functions...)上,您不需要指定任何 JSON 键文件(或 GOOGLE_APPLICATION_CREDENTIALS
环境变量)。所有 Google 云客户端库都会自动从您的应用 运行 所在的计算平台获取凭据(令牌)。
事实上,这个 gem 的文档链接到说:
This library uses Service Account credentials to connect to Google Cloud services. When running on Compute Engine the credentials will be discovered automatically
所以你应该删除代码中的那个字段,它应该在云上工作 运行 就好了。
如果出现以下情况,您需要指定密钥文件路径(或环境变量):
- 您需要使用与您 运行 所在平台的 default/configured 身份不同的身份
- (例如,在本例中,您为 Cloud 运行 服务配置的服务帐户)
- 而 运行 在 Google 云外
This gem expects a .json service account key path, or an environment variable specifying the path
I was wondering how this could work in a cloudrun context, as the expected environment variable can't reference a static file path.
GOOGLE_CLOUD_CREDENTIALS
环境变量的值可以是:“JSON 文件的路径,或 JSON 内容”。因此,如果您无法引用静态文件路径,请提供 JSON 密钥文件的全部内容作为环境变量的值。
有关完整文档,请参阅 google-cloud-storage Authentication。
通常使用 google-cloud-storage gem 到 read/write 文件
此 gem 需要 .json 服务帐户密钥路径,或指定路径的环境变量
我想知道这在 cloudrun 上下文中如何工作,因为预期的环境变量不能引用静态文件路径。部署到cloudrun时可以指定一个服务账号,但是如何通过这种工具获取服务账号信息呢?
虽然 运行 在 Cloud 运行(或 Compute Engine、Kubernetes Engine、App Engine、Cloud Functions...)上,您不需要指定任何 JSON 键文件(或 GOOGLE_APPLICATION_CREDENTIALS
环境变量)。所有 Google 云客户端库都会自动从您的应用 运行 所在的计算平台获取凭据(令牌)。
事实上,这个 gem 的文档链接到说:
This library uses Service Account credentials to connect to Google Cloud services. When running on Compute Engine the credentials will be discovered automatically
所以你应该删除代码中的那个字段,它应该在云上工作 运行 就好了。
如果出现以下情况,您需要指定密钥文件路径(或环境变量):
- 您需要使用与您 运行 所在平台的 default/configured 身份不同的身份
- (例如,在本例中,您为 Cloud 运行 服务配置的服务帐户)
- 而 运行 在 Google 云外
This gem expects a .json service account key path, or an environment variable specifying the path
I was wondering how this could work in a cloudrun context, as the expected environment variable can't reference a static file path.
GOOGLE_CLOUD_CREDENTIALS
环境变量的值可以是:“JSON 文件的路径,或 JSON 内容”。因此,如果您无法引用静态文件路径,请提供 JSON 密钥文件的全部内容作为环境变量的值。
有关完整文档,请参阅 google-cloud-storage Authentication。