我知道在cloudoformation中可以使用SSM创建参数,但是我真的想知道是否可以在lambda的环境变量中使用SSM。 我知道我可以放置SSM路径并在代码中使用sdk来获取这些值,但是也许有一种方法可以自动进行该操作而无需从代码中获取值。
谢谢
答案 0 :(得分:2)
您还可以将其定义为参数,然后在模板中引用它。这样做的好处之一是,您不必担心指定版本号。 (我可以想象在某些情况下,人们会说“¿版本号不是优势?B!”。)
books
现在(在AWS控制台中)查看CloudFormation中的Parameters选项卡时,您只会在键SomeParameter旁边看到字符串'/ path / to / my-param';但是,当您查看Lambda函数(在“环境变量”部分)时,您会发现它已经解析为为/ path / to / my-param参数存储的任何值。
答案 1 :(得分:1)
您可以直接从参数存储中获取CloudFormation中的值,然后使用动态引用将其作为环境变量传递给lambda。
例如:
ServerlessTestLambda:
Type: AWS::Serverless::Function
Properties:
CodeUri: src
Handler: test-env-var.handler
Role: !GetAtt BasicLambdaRole.Arn
Environment:
Variables:
ParamStoreVar: "{{resolve:ssm:/test/ssmparam:3}}"
Events:
LambdaSchedule:
Type: Schedule
Properties:
Schedule: rate(3 minutes)
这是我创建的要测试的lambda,如您所见,键值将替换为环境变量ParamStoreVar
注意-出于明显的安全原因,您不能在环境变量中替换ssm securestring。
有关更多信息: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html