【发布时间】:2021-01-24 07:08:40
【问题描述】:
我正在使用映射来映射 API Gateway uri wrt 区域和环境。在策略中使用 !FindInMap[KensisAPIMap, !Ref "AWS::Region", !Ref envname]]]
使用下面的模板 sn-p 创建堆栈时,我收到 “模板错误:每个 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:
----
谢谢
【问题讨论】:
-
您到底在哪里使用
FindInMap?它没有显示在您的问题中。 -
我在策略 PolicyDocument 中使用它:版本:2012-10-17 声明:-效果:允许操作:'execute-api:Invoke' 资源:-!加入 ["",[!Sub 'arn:aws:execute-api:',!FindInMap [TAAccountAPIMap, !Ref "AWS::Region", !Ref vpcname]]]
标签: mapping amazon-cloudformation aws-api-gateway