使用 aws cdk 创建 sam canary 部署

Posted

技术标签:

【中文标题】使用 aws cdk 创建 sam canary 部署【英文标题】:Creating a sam canary deployment with aws cdk 【发布时间】:2021-12-29 21:06:52 【问题描述】:

我希望使用 aws sam 来利用滚动金丝雀部署(在 [此处][1] 找到示例)。我不想一次对所有客户进行部署,我希望能够在它为流量提供服务之前执行验证,并且我希望在警报响起时自动回滚。如果我自己编写 sam 模板(而不是使用 cdk 合成它),它看起来像这样:

Resources:
  MyLambdaFunction:
    Type: AWS::Serverless::Function
    Properties:
      Handler: index.handler
      Runtime: nodejs12.x
      CodeUri: s3://bucket/code.zip

      AutoPublishAlias: live

      DeploymentPreference:
        Type: Canary10Percent10Minutes 
        Alarms:
          - !Ref AliasErrorMetricGreaterThanZeroAlarm
          - !Ref LatestVersionErrorMetricGreaterThanZeroAlarm
        Hooks:
          PreTraffic: !Ref PreTrafficLambdaFunction
          PostTraffic: !Ref PostTrafficLambdaFunction

现在我正在尝试使用 aws cdk 执行此操作(现在正在尝试使用 java,因为这是我最熟悉的语言,但我也对其他语言的示例持开放态度),但我找不到合适的执行此操作的选项。谁能给我一个例子来使用cdk生成这个?提前致谢。

【问题讨论】:

【参考方案1】:

CfnFunction.DeploymentPreferenceProperty -- 似乎这是你想要的类,如果其他人正在寻找(来自 sam 依赖项)

【讨论】:

以上是关于使用 aws cdk 创建 sam canary 部署的主要内容,如果未能解决你的问题,请参考以下文章

AWS CDK:有没有办法使用 CDK 创建数据库模式?

AWS CDK - 云观察

AWS CDK - 角色和策略创建

使用 AWS CDK 创建用于构建 Docker 映像的 CodeBuild 项目

AWS SQS - CDK - 如何创建主题过滤器

如何在 AWS CDK 创建的 Python Lambda 函数中安装外部模块?