如何解决如何从 Cloud Run 容器内的 Cloud Storage 下载文件?
我想在云运行容器启动时从云存储下载文件。我已经修改了 dockerfile 以添加以下命令:
CMD curl -L -o - application.yml "gs://mybucket/application.yml" ;
不幸的是,curl 不支持 gs: 协议,所以这是我得到的错误。
curl: (6) Could not resolve host: application.yml
curl: (1) Protocol "gs" not supported or disabled in libcurl
我如何实现这一目标?
根据{{3}},只要云运行和云存储保持在同一个谷歌云项目中,我就不需要担心身份验证。我在这里缺少什么?感觉这是一个非常基本的要求。
解决方法
您可以仅使用 curl 下载,这里有示例:
https://cloud.google.com/storage/docs/downloading-objects#download-object-xml https://cloud.google.com/storage/docs/downloading-objects#download-object-json
由于您“知道”您在 Cloud Run 实例中,因此您应该能够仅使用 curl
通过元数据服务获取访问令牌
在 http://metadata.google.internal
端点。详情请见:
https://cloud.google.com/compute/docs/storing-retrieving-metadata#default
很可能您想要的密钥是 service-accounts/default/token
,但也许您需要将 default
替换为您使用的任何服务帐户的电子邮件。
PS:您引用的 Cloud Run 文档说:
使用 Google Cloud 客户端库时,您无需在 Cloud Run(全托管式)容器实例中手动提供凭据。 (强调我的)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。