是否可以使用 !Sub 在 AWS 的 SAM CLI 模板中将一个环境变量与另一个环境变量连接起来?

Is is possible to use !Sub to concatinate one environment variable with another in SAM CLI templates for AWS?

我有一组 lambda,我在参数存储参数中拥有大部分项目。我有由环境分隔的子树。

例子

/prod/type/app1/parameter1
/prod/type/app1/parameter2
/prod/type/app2/parameter1
/dev/type/app1/parameter1
/dev/type/app1/parameter2
/dev/type/app2/parameter1

我想使用 SAM CLI 为 lambda 函数引用 template.yml 环境变量中的路径。

我正在尝试使用 !Sub,但没有得到我希望的结果。

示例:

Environment:
  Variables:
    ENV: "DEV"
    SSM_PS_APP1_PATH: !Sub "/${ENV}/type/app1/"

我得到的结果是:

/ENV/type/app1

我的问题是可以使用 !Sub 在环境变量声明中引用另一个变量吗?

遗憾的是,这不可能。您还必须创建 ENV CloudFormation 变量:

Parameters:
  ENV:
   Default: DEV

然后:

Environment:
  Variables:
    ENV: !Ref ENV
    SSM_PS_APP1_PATH: !Sub "/${ENV}/type/app1/"