如何使用AWS SAM动态构建资源名称?

me-*_*e-- 1 amazon-web-services aws-sam

我是 AWS 和 SAM 的新手,所以这可能是一个显而易见的问题,但我就是找不到答案。我正在尝试构建一个 SAM 模板,该模板允许用户注入一个参数,该参数将影响其中所有资源的名称。具体来说,可以传入一个“环境”参数,然后使用该参数来限定所有资源名称:

AWSTemplateFormatVersion: "2010-09-09"
Transform: "AWS::Serverless-2016-10-31"
Parameters:
  EnvironmentParameter:
    Type: "String"
    Default: "default"
Resources:
  GetTermsAndConditionsFunction:
    Type: "AWS::Serverless::Function"
    Properties:
      # TODO: prepend the environment somehow so I get "$ENVIRONMENT_MyFunction" instead
      FunctionName: "MyFunction"
      Handler: "..."
      ...
Run Code Online (Sandbox Code Playgroud)

如何动态构建FunctionNameusing EnvironmentParameter

小智 6

所有 Cloudformation 功能也可在 SAM 模板中使用。因此,您可以使用该Fn::Sub函数来替换您的环境参数FunctionName

FunctionName: !Sub "${EnvironmentParameter}_MyFunction"
Run Code Online (Sandbox Code Playgroud)

有关功能的更多详细信息的链接Fn::Sub

希望这可以帮助!