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

你的网址不应该改变。这将导致云信息创建新的部署并将其与现有阶段相关联。 –