是否可以在lambda的环境变量中使用SSM参数?

时间:2019-05-07 16:41:48

标签: aws-lambda amazon-cloudformation ssm aws-codestar

我知道在cloudoformation中可以使用SSM创建参数,但是我真的想知道是否可以在lambda的环境变量中使用SSM。 我知道我可以放置SSM路径并在代码中使用sdk来获取这些值,但是也许有一种方法可以自动进行该操作而无需从代码中获取值。

谢谢

2 个答案:

答案 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

相关问题