在我的 serverless.yml 文件中,我试图添加一个名为 GOOGLE_APPLICATION_CREDENTIALS 的环境变量,它指向我的服务帐户凭据 JSON 文件,但是当添加到无服务器文件时,我收到一个错误 环境变量 GOOGLE_APPLICATION_CREDENTIALS 必须包含字符串
我尝试使用 AWS CLI 添加环境变量 GOOGLE_APPLICATION_CREDENTIALS,效果很好。但我想从无服务器文件中添加环境变量。
我尝试了以下方法,但似乎没有一个方法有效
环境:
GOOGLE_APPLICATION_CREDENTIALS: ‘${file(./serviceAccountCreds.json)}’
环境:
GOOGLE_APPLICATION_CREDENTIALS: “${file(./serviceAccountCreds.json)}”
环境:
GOOGLE_APPLICATION_CREDENTIALS: ${file(./serviceAccountCreds.json)}
我的用例是我需要加载 google 应用程序凭证以从 AWS lambda 调用 GCP API。我已经阅读了有关支持谷歌云函数设置环境变量的答案,但似乎对 AWS 函数没有帮助。不确定是否支持通用功能或仅支持 GCP 功能。
已编辑:也尝试在运行时设置环境变量 process.env.GOOGLE_APPLICATION_CREDENTIALS
并成功。但这仍然给我留下了一个问题,即无服务器是否支持将 env.variables 设置为 JSON 文件作为一个整体。
我关注的链接:
答案 0 :(得分:0)
尝试设置这样的变量:
GOOGLE_APPLICATION_CREDENTIALS=$(cat ./serviceAccountCreds.json)
这将将变量的值设置为您的凭据 JSON
文件中的任何内容。
如果该值必须仅包含 json
文件的路径,请尝试以下操作:
GOOGLE_APPLICATION_CREDENTIALS=./serviceAccountCreds.json
您可能还会发现这个 question 很有趣(非常相似的情况)。 这里有一些关于 how to pass a variable from a file in Bash 的讨论。 最后 - 关于 how to work with variables 的一些非常基本的示例。