3

當我使用CloudFormation更新堆棧更新RestApi資源時,它不更新相應的Deployment資源。AWS API網關RestAPI CloudFormation更新不會更新部署資源

我的初始堆棧看起來像這樣

Resources : 
     RestApi 
     /create 
     /delete 
     Deployment 
     DependsOn = RestApi 
     stage = latest 

我更新了堆棧看起來像這樣

Resources : 
    RestApi 
    /create 
    /delete 
    /update 
    Deployment 
    DependsOn = RestApi 
    StageName = latest 

使用AWS cloudformation更新堆棧RESTAPI被更新,但不更新部署。我必須手動進入控制檯並用相同的StageName重新部署API。這是一個已知的問題嗎?

回答

1

這是一個已知的cloudformation問題。其在論壇上經常討論的https://forums.aws.amazon.com/message.jspa?messageID=718403#718403

可以(部署資源內不)單獨創建一個階段的資源,然後引用最新的部署

Stage: 
    Deployment: Ref Deployment1 
Deployment1: 
    RefApiId: RestApi 

然後當你更新配置,你可以添加一個新的部署。這將把最新的變化與舞臺聯繫起來。

Stage: 
    Deployment: Ref Deployment2 
Deployment2: 
    RefApiId: RestApi 

請注意,您仍然需要使用DependsOn字段來正確連接它們。

+0

感謝您的反饋。通過這種方法,我認爲您需要爲每次更新使用Stage資源的不同階段名稱。否則,cloudformation將無法識別該變化。然後你的網關URL會改變每一次更新(除非我們使用自定義域名)。 – MichaelW

+0

你的網址不應該改變。這將導致雲信息創建新的部署並將其與現有階段相關聯。 –