在AWS Lambda Chalice中为JSON文件设置环境变量

时间:2019-01-28 07:28:28

标签: aws-lambda google-bigquery environment-variables chalice

我正在处理一些Kaggle项目。使用便携式计算机上的BigQuery的Python库,在环境变量GOOGLE_APPLICATION_CREDENTIALS传递了authentication credential之后,我可以成功下载数据集。如文档所述,此环境变量指向包含凭证的JSON文件的位置。

现在,我想使用Amazon LambdaChalice上运行此代码。我知道Chalice中有一个option for environment variable,但是我不知道如何在Chalice应用程序中包含一个JSON文件并将其位置作为环境变量传递。而且,我不确定在Chalice中将凭据作为JSON文件传递是否安全。

有人在将Google凭据作为Chalice应用程序的环境变量传递方面有经验吗?

1 个答案:

答案 0 :(得分:1)

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

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

您也可以考虑将AWS Secrets Manager视为另一个类似的选择。