自动化API网关阶段部署

时间:2020-08-04 08:40:01

标签: amazon-web-services amazon-cloudformation aws-api-gateway

我正在使用cloudformation创建API网关阶段。

  ApiDeployment:
    Type: AWS::ApiGateway::Deployment
    Properties:
      RestApiId: !Ref ExampleRestApi
      StageName: dev 

这是问题所在,每当我创建新的API时,我只需要使用AWS控制台进行部署即可。有什么方法可以使部署过程自动化,从而不需要进一步的控制台操作。

1 个答案:

答案 0 :(得分:2)

当您定义这样的部署资源时,CloudFormation将仅在第一次运行时创建部署。在第二次运行时,它将观察到资源已经存在并且CloudFormation定义没有更改,因此不会创建另一个部署。要解决此问题,您可以在资源ID中添加UUID /时间戳占位符之类的内容,并在每次进行CloudFormation更新之前都将其替换:

ApiDeployment#TIMESTAMP#:
  Type: AWS::ApiGateway::Deployment
  Properties:
    RestApiId: !Ref ExampleRestApi
    StageName: dev

这样,您仍然可以在API Gateway控制台中查看部署历史记录。

如果您不想像这样操作您的模板,也可以向您的CloudFormation堆栈中添加一个Lambda-backed Custom Resource。使用AWS开发工具包,您可以让Lambda函数在更新API后自动为您创建新的部署。