代码之家  ›  专栏  ›  技术社区  ›  me--

如何使用aws sam动态构造资源名?

  •  0
  • me--  · 技术社区  · 6 年前

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

    如何动态构造 FunctionName 使用 EnvironmentParameter 是吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Nune Isabekyan    6 年前

    所有的cloudformation函数也在sam模板中工作。所以你会用 Fn::Sub 函数替换 FunctionName

    FunctionName: !Sub "${EnvironmentParameter}_MyFunction"
    

    Link 有关的详细信息 fn::子 功能。

    希望这有帮助!