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

Amazon web services 如何使用AWS SAM动态构造资源名称?,amazon-web-services,aws-sam,Amazon Web Services,Aws Sam,我是AWS和SAM的新手,所以这可能是一个显而易见的问题,但我就是找不到答案。我试图构造一个SAM模板,允许用户插入一个参数,该参数将影响其中所有资源的名称。具体来说,可以传入一个“环境”参数,该参数将用于限定所有资源名称: AWSTemplateFormatVersion: "2010-09-09" Transform: "AWS::Serverless-2016-10-31" Parameters: EnvironmentParameter: Type: "String"

我是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: "..."
      ...

如何使用
EnvironmentParameter
动态构建
FunctionName

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

FunctionName: !Sub "${EnvironmentParameter}_MyFunction"
有关
Fn::Sub
函数的更多详细信息

希望这有帮助