我正在使用CloudFormation模板来部署API网关资源并遇到Deployment(AWS :: ApiGateway :: Deployment)和UsagePlan资源问题。这是一种鸡/鸡蛋的情况。CloudFormation堆栈资源依赖关系问题:API网关部署+使用计划
在用法计划中,我指定了ApiStage的配置,这意味着我需要先创建部署资源。但是,当我尝试删除堆栈时,由于相应的阶段仍连接到UsagePlan,所以UsagePlan出现故障。
我有一个DependsOn语句为UsagePlan(UsagePlan取决于部署)。这允许堆栈创建而没有问题。但是由于这个DependsOn声明,它强制用户计划在删除操作中首先删除。这会导致错误。
请参阅下面的相关代码摘录。
任何人都有解决这个问题的方法?我不能成为第一个绊倒在这!
谢谢!
"UppRestApiDeployment": {
"Type": "AWS::ApiGateway::Deployment",
"Properties": {
"Description": "Upp Rest API Deployment",
"RestApiId": {
"Ref": "UppRestApi"
},
"StageName": {
"Ref": "StackIdentifier"
},
"StageDescription": {
"CacheClusterEnabled": false,
"CacheClusterSize": "0.5",
"CacheDataEncrypted": false,
"CacheTtlInSeconds": 10,
"CachingEnabled": false,
"DataTraceEnabled": false,
"LoggingLevel": "ERROR",
"MetricsEnabled": true,
"StageName": {
"Ref": "StackIdentifier"
},
"Description": {
"Fn::Sub": "${StackIdentifier} Stage"
},
"ThrottlingBurstLimit": 2000,
"ThrottlingRateLimit": 1000,
"Variables": {
"lambdaAlias": {
"Ref": "StackIdentifier"
}
}
}
}
},
"UppApiUsagePlan": {
"Type": "AWS::ApiGateway::UsagePlan",
"Properties": {
"ApiStages": [
{
"ApiId": {
"Ref": "UppRestApi"
},
"Stage": {
"Ref": "StackIdentifier"
}
}
],
"Description": "Upp Rest API Usage Plan to Prevent Overage Charges",
"Quota": {
"Limit": 5000,
"Period": "MONTH"
},
"Throttle": {
"BurstLimit": 200,
"RateLimit": 100
},
"UsagePlanName": {
"Fn::Sub": "${StackIdentifier}_UppApiUsagePlan"
}
},
"DependsOn": [
"UppRestApiDeployment"
]
}
你自相矛盾了一下。如果您包含Deployment and UsagePlan资源的代码段(如果作为独立资源创建,则也是Stage),我相信我们可以为您整理它。 – lebryant
谢谢你看看。我添加了脚本的摘录。 – theoneandonly2