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

Lea*_*dro 3 aws-cloudformation aws-lambda ssm aws-ssm

我知道在 Cloudformation 中您可以使用 SSM 创建参数,但我真的想知道您是否可以在 lambda 的环境变量中使用 SSM。我知道我可以放置 SSM 路径并在代码中使用 sdk 来获取这些值,但也许有一种方法可以在不从代码中获取值的情况下自动生成。

谢谢

Bip*_*was 6

您可以直接从参数存储中获取 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)
Run Code Online (Sandbox Code Playgroud)

这是我创建的用于测试的 lambda,正如您所看到的,键的值将替换为环境变量 ParamStoreVar

注 - 出于明显的安全原因,您不能替换环境变量中的 ssm securestring。

有关更多信息:https : //docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html