使用 aws cdk 创建 sam canary 部署

Creating a sam canary deployment with aws cdk

我希望利用使用 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 生成这个的例子吗?提前致谢。

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