关于无服务器框架的env变量的最佳实践是什么?
我听过有关python dotenv环境的一些讨论,但我不太熟悉python,所以寻找有关设置和使用的指导(一个例子会很好!)
例如,我想在无服务器处理函数中为db_arn创建一个环境变量。
db_arn =“ec2-xx-xx-xx-xxx.eu-west-1.compute.amazonaws.com”
def getCustomer(): #connect使用db_arn
我喜欢db_arn是环境变量(例如dev,test,prod),而不是硬编码字符串。
如何使用dotenv完成此操作以及如何组织无服务器服务以启用此功能?
非常欢迎,谢谢!
答案 0 :(得分:0)
您可以使用serverless-plugin-write-env-vars插件在serverless.yml
中定义环境变量,如下所示:
service: my-service
custom:
writeEnvVars:
DB_ARN: "ec2-xx-xx-xx-xxx.eu-west-1.compute.amazonaws.com"
plugins:
- serverless-plugin-write-env-vars
请注意,变量必须在custom:
和writeEnvVars:
下定义。
该插件将在部署到AWS Lambda的代码期间创建.env
文件。
在代码中,使用python-dotenv,您可以通过加载.env
文件来读取环境变量:
import os.path
from dotenv import load_dotenv
dotenv_path = os.path.join(os.path.dirname(__file__), '.env')
load_dotenv(dotenv_path)
db_arn = os.environ.get('DB_ARN')
以防万一,如果您需要有关部署和加载外部依赖项的帮助,请查看https://stackoverflow.com/a/39791686/1111215