我有用于lambda的cloudformation模板:
Resources:
Resource1:
Type: AWS::Res
Properties:
StreamArn:
"Fn::Sub": "${var1}-${var2}"
Resource2:
Type: AWS::Res
Properties:
StreamArn:
"Fn::Sub": "${var1}-${var2}"
是否可以将此属性移到Properties
部分的Resources
或其他任何地方以跳过重复项?
Resources:
Properties:
StreamArn:
"Fn::Sub": "${var1}-${var2}"
我已经尝试过,但是似乎不起作用。
答案 0 :(得分:2)
您可以使用带有默认值的Parameters
条目来创建等效于常量的变量,但是它不能接受Resources
部分中的任何值(因为尚未创建它们)此时)。
否则,不-您需要重复这些值。 (截至撰写此答案时。)
答案 1 :(得分:1)
如果您使用的是AWS::Serverless::Function
,则可以使用Globals部分在一个地方的堆栈中拥有通用属性。因此,您可以将它们提到的资源放在堆栈中,并定义一个包含StreamArn
请参见docs
答案 2 :(得分:0)
到目前为止,我发现的最方便的方法是使用如下映射:
Mappings:
ParametersMap:
Var1:
Value: "A"
Var2:
Value: "B"
然后将!FindInMap: [ "ParametersMap", "Var1", "Value" ]
行放在需要Var1
参数的所有地方