必须根据阶段通过 lambda 处理程序设置 lambda 处理程序中的环境变量。不同阶段的 schema、endpoint 的值是不同的。如何通过 yml 模板来完成此操作?我对此很陌生,所以不知道如何完成。
Parameters:
Stage: {Type: String, Default: ''}
Resources:
LambdaHandler:
Type: AWS::Serverless::Function
Properties:
Environment:
Variables:
......
......
如何继续?
最佳答案
模板.yaml:
Parameters:
Environment:
AllowedValues:
- dev
- prod
Type: String
Resources:
myLambda:
Type: AWS::Lambda::Function
Properties:
Environment:
Variables:
stage: !Ref Environment
你的外壳:
$ aws cloudformation deploy --parameter-overrides Environment=dev
假设您想要一个以环境为条件的变量:
Parameters:
Environment:
AllowedValues:
- dev
- prod
Type: String
Mappings:
Environments:
dev:
LogLevel: "DEBUG"
prod:
LogLevel: "ERROR"
Resources:
myLambda:
Type: AWS::Lambda::Function
Properties:
Environment:
Variables:
LOG_LEVEL: !FindInMap [Environments, !Ref Environment, LogLevel]
关于amazon-web-services - 如何根据云形成模板中的阶段设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65506398/