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 Ÿ可靠的選擇

相關問題