Google Cloud Secret 以“(MISSING)”形式出现
Google Cloud Secret Coming Out As "(MISSING)"
我有一个云函数需要从私有 pypi 安装依赖项。
- 我已经为项目设置了一个名为
pypi_password
的秘密,并为其赋予了正确的值。
- 我已经设置了一个服务帐户来进行部署并指定了该服务帐户
roles/secretmanager.secretAccessor
。
- 我已将
--update-secrets PYPI_PASSWORD=pypi_password:latest
添加到我的 deploy
命令中,因此函数应该可以访问秘密。
- 我已将
--extra-index-url=https://account:${PYPI_PASSWORD}@pypi.my-company.com/pypi
添加到我函数的 requirements.txt
。
部署时,我简要地看到了
在部署期间 pip install
失败之前,因为我的凭据不正确。
为了调查,我已经在我的 requirements.txt
中添加了一个额外的 ${PYPI_PASSWORD}
到 deploy
的打印输出中未加星标的部分,例如:--extra-index-url=https://${PYPI_PASSWORD}account:${PYPI_PASSWORD}@pypi.my-company.com/pypi
.
我看到 ${PYPI_PASSWORD} 的值显示为 %7BPYPI_PASSWORD%!D(MISSING)
,这使得环境变量看起来不存在。
但是秘密不应该以这种方式作为环境变量访问吗?这对我来说毫无意义,我在文档中找不到解决方案。
我发现 。
基本上,通过尝试访问 requirements.txt
中的 Secret,我试图在它完全定义和可用之前使用它。安装依赖项时唯一可访问的变量是 build 变量。
如果我把我的密码放在其中一个中,它就可以工作,所以这意味着秘密仅在 运行 时间可用,这使得它们对此毫无用处。 (咳咳,Google)
我不太高兴仍然为任何可以查看该函数的人提供明文密码,但至少这从源代码中得到了它。
我有一个云函数需要从私有 pypi 安装依赖项。
- 我已经为项目设置了一个名为
pypi_password
的秘密,并为其赋予了正确的值。 - 我已经设置了一个服务帐户来进行部署并指定了该服务帐户
roles/secretmanager.secretAccessor
。 - 我已将
--update-secrets PYPI_PASSWORD=pypi_password:latest
添加到我的deploy
命令中,因此函数应该可以访问秘密。 - 我已将
--extra-index-url=https://account:${PYPI_PASSWORD}@pypi.my-company.com/pypi
添加到我函数的requirements.txt
。
部署时,我简要地看到了
在部署期间 pip install
失败之前,因为我的凭据不正确。
为了调查,我已经在我的 requirements.txt
中添加了一个额外的 ${PYPI_PASSWORD}
到 deploy
的打印输出中未加星标的部分,例如:--extra-index-url=https://${PYPI_PASSWORD}account:${PYPI_PASSWORD}@pypi.my-company.com/pypi
.
我看到 ${PYPI_PASSWORD} 的值显示为 %7BPYPI_PASSWORD%!D(MISSING)
,这使得环境变量看起来不存在。
但是秘密不应该以这种方式作为环境变量访问吗?这对我来说毫无意义,我在文档中找不到解决方案。
我发现
基本上,通过尝试访问 requirements.txt
中的 Secret,我试图在它完全定义和可用之前使用它。安装依赖项时唯一可访问的变量是 build 变量。
如果我把我的密码放在其中一个中,它就可以工作,所以这意味着秘密仅在 运行 时间可用,这使得它们对此毫无用处。 (咳咳,Google)
我不太高兴仍然为任何可以查看该函数的人提供明文密码,但至少这从源代码中得到了它。