1

我正在寻找使用CloudFormation构建我的AWS堆栈,其中包含一个带有使用计划的API网关。我想在我的主要CloudFormation模板中指定我的使用计划,而不是在初始堆栈创建之后将它们添加为更改集。问题是,当我包含使用计划时,堆栈无法创建,因为(我认为)API网关在尝试创建使用计划时未完成部署,因为我收到一条错误,指出阶段“prod”不存在。我的CloudFormation模板(提取物)看起来是这样的:AWS获取API网关URL以供在Cloud Formation中使用

Api: 
    Properties: 
     CacheClusterEnabled: true 
     CacheClusterSize: '0.5' 
     DefinitionUri: {MYS3URL} 
     StageName: prod 
    Type: AWS::Serverless::Api 
    ApiFreeUsagePlan: 
    DependsOn: Api 
    Properties: 
     ApiStages: 
     - ApiId: 
      Ref: Api 
     Stage: prod 
     Description: Free usage plan 
     UsagePlanName: Free 
    Type: AWS::ApiGateway::UsagePlan 

我想加入DependsOn: Api的使用计划定义的工作,但它没有,所以我出的主意?

好像我DependsOn说法应该是,我可以在堆栈中创建活动查看ApiDeployment仍在进行中时,它试图创建使用计划

回答

0

我发现的唯一途径,可以做这是通过使用计划的DependsOn属性设置为这是{LogicalApiName} {}艺名舞台例如在我的情况下,逻辑阿比艺名:

Api: 
    Properties: 
    CacheClusterEnabled: true 
    CacheClusterSize: '0.5' 
    DefinitionUri: {MYS3URL} 
    StageName: prod 
    Type: AWS::Serverless::Api 
ApiFreeUsagePlan: 
    DependsOn: ApiprodStage 

我不喜欢这个,因为它依赖于逻辑舞台命名约定,我不相信是在AWS CloudFromation文档中正式记录的,但它似乎是onl Ÿ可靠的选择

相关问题