首页 > 解决方案 > 在 AWS Lambda Chalice 中为 JSON 文件设置环境变量

问题描述

我正在处理一些Kaggle项目。在我的笔记本电脑上使用BigQuery的Python 库,我可以在通过环境变量传递身份验证凭据GOOGLE_APPLICATION_CREDENTIALS后成功下载数据集。如文档所述,此环境变量指向包含凭据的 JSON 文件的位置。

现在我想使用Chalice在Amazon Lambda上运行此代码。我知道 Chalice 中有一个环境变量选项,但我不知道如何在 Chalice 应用程序中包含 JSON 文件并将其位置作为环境变量传递。此外,我不确定在 Chalice 中将凭证作为 JSON 文件传递​​是否安全。

有没有人对如何将 Google 凭据作为 Chalice 应用程序的环境变量传递一些经验?

标签: aws-lambdagoogle-bigqueryenvironment-variableschalice

解决方案


您可以将 JSON 文件的内容作为环境变量嵌入 Chalice,然后使用 GCPClient.from_service_account_info()方法从内存而不是文件加载凭据。不建议这样做,因为您的私有 GCP 凭据可能会被提交到源代码控制。

我是否可以建议您采用其他方法来传递您的 GCP 凭据,而不是环境变量。您可以将此 JSON 对象作为安全参数存储在AWS System Manager Parameter Store中。然后,您的 AWS Lambda 函数可以在需要时使用 boto3ssm.get_parameter()方法。

您还可以将AWS Secrets Manager视为另一种类似的替代方案。


推荐阅读