我正在 Google Cloud AI Training (Cloud ML Engine) 上启动容器映像
在这些容器内我需要使用 gsutil。
有些容器有 gsutil。在这种情况下,我可以立即使用它,无需任何身份验证步骤。
有些容器没有 gsutil,所以我必须安装它。
问题是安装的gsutil 不起作用。
当我使用官方的时候cloud-sdk
image, gsutil
无需任何身份验证步骤即可工作。
当我使用python:3.7
镜像并安装gsutil
从 PyPI 来看它不起作用:
python -m pip install gsutil --quiet
gsutil cp a gs://b/c
ServiceException:401 匿名调用者没有 storage.objects.get 访问权限...
如何才能使独立 gsutil 获得所需的凭据?
大多数指南侧重于手动调用gcloud auth
,复制 URL 并复制回令牌。这不是我寻求的解决方案(应该是自动化的)。我知道自动化解决方案是可能的,因为在某些图像中gsutil
开箱即用。
这是因为 pip install gsutil 单独不配置凭据,这就是为什么它是匿名用户,如错误所示。您需要配置凭据来访问受保护的数据。
将以下行放入您的 docker 文件中,它应该可以工作:
RUN echo '[GoogleCompute]\nservice_account = default' > /etc/boto.cfg
就是将gsutil配置为使用默认的服务帐户。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)