首页 > 解决方案 > 使用 AWS 代码管道对 API URL 进行版本控制

问题描述

我有两个 cloudformation 堆栈,一个创建 API 网关(v1)以及 Lambda 和其他一些东西,如角色和策略。另一个堆栈是代码流水线模板。

此外,我还有一个 AWS 代码管道堆栈,它基本上部署了之前定义的更改发生时的环境。它工作得很好,它公开了 /v1/method1 和 /v1/method1 之类的方法,但现在我想创建方法的第二个版本,但以前的版本应该是可维护的(如果它们有问题,我应该能够重新部署)。

Type: 'AWS::Serverless::Function'
        Properties:
          Description: 
          Handler: 
          Runtime: python3.7
          CodeUri: 
          Tracing: Active
          Timeout: 300
          Role: !GetAtt 'LambdaExecRole.Arn'
          Events:
            ConnectionOptions:enter code here
              Type: Api
              Properties:
                #here is where I addd the sub
                Path: !Sub '/${version}/method1'
                Method: GET

据此,我想在管道中添加一个新参数,指示我要部署的版本(例如 v2)

因此,在“部署”阶段,我计划覆盖前一个堆栈中的版本(首先创建组件的那个),但问题就在这里....

我使用 SAM 在 cloudformation 中定义了我的 Lambda,而 SAM 不支持“!Sub”操作。有没有其他方法可以正确管理版本控制?

标签: amazon-web-servicesamazon-cloudformationaws-codepipelineapi-gateway

解决方案


推荐阅读