问题描述
我正在使用映射来映射API Gateway URI WRT区域和环境。在使用!FindInMap [KensisAPIMap,!Ref“ AWS :: Region”,!Ref envname]]]
的策略中使用下面的模板片段创建堆栈时,我得到“模板错误:每个Fn :: Join对象都需要两个参数,(1)字符串定界符,(2)要连接的字符串列表或函数返回要连接的字符串列表(例如Fn :: GetAZs)。“ 错误
Mappings:
DataAPIMap:
us-west-2:
DevOne: "09lvg5kd1l/*/PUT/*/*/*/v2"
TestOne: "default"
eu-central-1:
devTwo: "sixv6a77sg/*/PUT/*/*/*/v2"
TestTwo: "default"
KensisAPIMap:
us-west-2:
devOne:
- !Join ["",[!Sub '${AWS::Region}:${AWS::AccountId}:we4x5ulbsl/*/PUT/s']]
eu-central-1:
devTwo:
- !Join ["",[!Sub 'us-west-2',!Ref KensisActId,':we4x5ulbsl/*/PUT/s']]
Resources:
----
谢谢
解决方法
在us-west-2:devOne中,您似乎根本不需要Join。 所以:
KensisAPIMap:
us-west-2:
devOne: !Sub '${AWS::Region}:${AWS::AccountId}:we4x5ulbsl/*/PUT/s'
关于devTwo尝试这样吗?注意缩进
devTwo:
Fn::Join:
- ""
- - us-west-2
- !Ref KensisActId
- :we4x5ulbsl/*/PUT/s