如何使用 AWS SAM 动态构造资源名称?
How to dynamically construct resource names using AWS SAM?
我是 AWS 和 SAM 的新手,所以这可能是一个显而易见的问题,但我就是找不到答案。我正在尝试构建一个 SAM 模板,允许用户注入一个参数,该参数将影响其中所有资源的名称。具体来说,可以传入一个"environment"参数,用于限定所有资源名称:
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
中的 EnvironmentParameter
FunctionName: !Sub "${EnvironmentParameter}_MyFunction"
Link 有关 Fn::Sub
函数的更多详细信息。
希望对您有所帮助!
我是 AWS 和 SAM 的新手,所以这可能是一个显而易见的问题,但我就是找不到答案。我正在尝试构建一个 SAM 模板,允许用户注入一个参数,该参数将影响其中所有资源的名称。具体来说,可以传入一个"environment"参数,用于限定所有资源名称:
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"
Link 有关 Fn::Sub
函数的更多详细信息。
希望对您有所帮助!