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

时间:2018-07-02 06:19:22

标签: 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: "..."
      ...

如何使用FunctionName动态构建EnvironmentParameter

1 个答案:

答案 0 :(得分:1)

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

中的EnvironmentParameter
FunctionName: !Sub "${EnvironmentParameter}_MyFunction"

Link有关Fn::Sub函数的更多详细信息。

希望这会有所帮助!