使用 AWS Amplify 创建 process.env 个变量?
Creating process.env variables using AWS Amplify?
对于无服务器,我们可以通过创建这样的配置文件条目来添加 process.env
变量:
environment:
STRIPE_SECRET_KEY: ${self:custom.secrets.stripeSecretKey} # Stripe secret API key
我们可以像这样在 lambda 函数中访问它:
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
我们如何使用 AWS Amplify 做到这一点?
您可以在 Amplify 环境配置中添加变量。
您还可以添加变量覆盖和 select 将使用它的分支。
文档:
https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html
目前无法在 lambda 中使用 Amplify 环境变量。
顺便说一句,你可以做的是在lambda中引用后端环境的名称。
如果您使用 amplify 创建 lambda,它会自动设置。
例如,您可以在python lambda中使用os.environ['ENV']
获取您的后端环境名称。
在使用放大框架进行了一年多的开发之后,我发现您只能从前端构建过程中指定 ENV VARIABLE 形式。对于 lambda,这有点棘手。您可以添加一个条件 "IsProductionEnv"
,它将根据放大环境为该函数的 ENV 变量赋值。
对于生产我使用 "prod"
你可以使用任何你想要的。
转到您的 amplify/backend/function/{functionName}
文件夹。
应该有 {functionName}-cloudformation-template.json
个文件。
您需要向 "Conditions"
对象再添加一项:
"Conditions":{
...,
"IsProductionEnv": {
"Fn::Equals": [
{
"Ref": "env"
},
"prod"
]
}
}
那么您需要在 "Resources.Properties.Environment.Variables"
处使用该条件:
"Environment": {
"Variables": {
...,
"STRIPE_PK": {
"Fn::If": [
"IsProductionEnv",
"pk_live_...",
"pk_test_..."
]
}
}
}
我用“dev”和“prod”放大了环境名称。它将处理您的部署并根据该功能的 env 管理您的 env 变量。
对于无服务器,我们可以通过创建这样的配置文件条目来添加 process.env
变量:
environment:
STRIPE_SECRET_KEY: ${self:custom.secrets.stripeSecretKey} # Stripe secret API key
我们可以像这样在 lambda 函数中访问它:
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
我们如何使用 AWS Amplify 做到这一点?
您可以在 Amplify 环境配置中添加变量。 您还可以添加变量覆盖和 select 将使用它的分支。
文档: https://docs.aws.amazon.com/amplify/latest/userguide/environment-variables.html
目前无法在 lambda 中使用 Amplify 环境变量。
顺便说一句,你可以做的是在lambda中引用后端环境的名称。
如果您使用 amplify 创建 lambda,它会自动设置。
例如,您可以在python lambda中使用os.environ['ENV']
获取您的后端环境名称。
在使用放大框架进行了一年多的开发之后,我发现您只能从前端构建过程中指定 ENV VARIABLE 形式。对于 lambda,这有点棘手。您可以添加一个条件 "IsProductionEnv"
,它将根据放大环境为该函数的 ENV 变量赋值。
对于生产我使用 "prod"
你可以使用任何你想要的。
转到您的 amplify/backend/function/{functionName}
文件夹。
应该有 {functionName}-cloudformation-template.json
个文件。
您需要向 "Conditions"
对象再添加一项:
"Conditions":{
...,
"IsProductionEnv": {
"Fn::Equals": [
{
"Ref": "env"
},
"prod"
]
}
}
那么您需要在 "Resources.Properties.Environment.Variables"
处使用该条件:
"Environment": {
"Variables": {
...,
"STRIPE_PK": {
"Fn::If": [
"IsProductionEnv",
"pk_live_...",
"pk_test_..."
]
}
}
}
我用“dev”和“prod”放大了环境名称。它将处理您的部署并根据该功能的 env 管理您的 env 变量。