gpt4 book ai didi

aws-cloudformation - Cloudformation 将字符串转换为带条件的 apigateway 策略文档上的列表

转载 作者:行者123 更新时间:2023-12-03 07:23:26 25 4
gpt4 key购买 nike

下面是我的cloudformation模板。我想将 aws:SourceVpc 转换为资源策略文档中的列表。我尝试了溢出但低于错误。

政策文件无效。请检查策略语法并确保主体有效。 (服务:AmazonApiGateway;状态代码:400;错误代码:BadRequestException;请求 ID:xxxxx;代理:null)

此外,devl 和 sdbx 有 1 个值,而其他 acnt 和 acpt 在映射中有两个值,如何做到这一点。请提出建议。

输出应如下所示。aws:SourceVpc: ["vpc-7830jkd", "vpc-a1236"]

Mappings:
vpcid:
us-east-1:
sdbx: "vpc-1234"
devl: "vpc-2345"
acpt: "vpc-7830jkd,vpc-a1236"
us-east-2:
acnt: "vpc-a1236,vpc-7830jkd"

Parameters:
Env:
Type: String

Resources:
apigateway:
Type: "AWS::ApiGateway::RestApi"
Properties:
Name: mygateway
EndpointConfiguration:
Types:
- "PRIVATE"
Policy: !Sub
- |-
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": [
"execute-api:/*"
]
},
{
"Effect": "Deny",
"Principal": "*",
"Action": "execute-api:Invoke",
"Resource": [
"execute-api:/*"
],
"Condition": {
"StringNotEquals": {
"aws:SourceVpc": !Split ["," , "${myappid}"]
}
}
}
]
}
- { myappid: !FindInMap [ vpcid, !Ref "AWS::Region", !Ref "Env" ] }

最佳答案

Output should like below. aws:SourceVpc: ["vpc-7830jkd", "vpc-a1236"]

遗憾的是,你不能这样做。 CFN 的功能非常有限,并且您想要的功能根本无法通过普通 CFN 实现。您必须修改您的 map 并单独提供所有 vpc id,而不是将列表与单个值混合。

另一种方式是通过开发 CFN macrocustom resource .

关于aws-cloudformation - Cloudformation 将字符串转换为带条件的 apigateway 策略文档上的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67911915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com