Google Cloud Secret 以“(MISSING)”形式出现

Google Cloud Secret Coming Out As "(MISSING)"

我有一个云函数需要从私有 pypi 安装依赖项。

部署时,我简要地看到了

在部署期间 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)

我不太高兴仍然为任何可以查看该函数的人提供明文密码,但至少这从源代码中得到了它。