首页 > 解决方案 > 在 AWS-CDK 中创建使用 codedeploy 部署到自动扩展组的 ServerDeploymentGroup

问题描述

我正在尝试使用 aws-cdk(Java 语言)创建 AWS 管道。阶段如下: 来源:Codecommit 构建:Codebuild 部署:使用 CodeDeploy 部署到 Autoscaling 组

我正在努力使用 aws cdk 创建 ServerDeploymentGroup。我已经创建了要在 ServerDeploymentGroup 中使用的 Autoscaling 组。但无法在 AWS-CDK 中进行配置。获取 ClassCastException:

这是我的代码,用于创建 AutoscalingGroup 和 ServerDeploymentGroup 创建

AutoScalingGroup autoScalingGroup = (AutoScalingGroup) AutoScalingGroup.fromAutoScalingGroupName(this, "autoscallinggroup", "myautscallinggroup");    
        List<AutoScalingGroup> autoScalingGroupList =  new ArrayList<AutoScalingGroup>();
        autoScalingGroupList.add(autoScalingGroup);
        
        ServerDeploymentConfig deploymentConfig = (ServerDeploymentConfig) ServerDeploymentConfig.ALL_AT_ONCE;
        ServerApplication application = ServerApplication.Builder.create(this, "codedeployapplication")
                                     .applicationName("mydeployapplication")
                                     .build();
        
        
        ServerDeploymentGroup deploymentGroup = ServerDeploymentGroup.Builder.create(this, "codedeploymentgroup")
                                                .application(application)
                                                .autoScalingGroups(autoScalingGroupList)
                                                .deploymentGroupName("MyDeploymentGroup")
                                                .deploymentConfig(deploymentConfig)
                                                .installAgent(true)
                                                .role(codeDeployRole)
                                                .build();

这是我得到的例外:

java.lang.ClassCastException: class software.amazon.awscdk.services.autoscaling.IAutoScalingGroup$Jsii$Proxy cannot be cast to class software.amazon.awscdk.services.autoscaling.AutoScalingGroup (software.amazon.awscdk.services.autoscaling.IAutoScalingGroup$Jsii$Proxy and software.amazon.awscdk.services.autoscaling.AutoScalingGroup are in unnamed module of loader 'app')

对此有任何帮助吗?如何在 aws-cdk 中解决这个问题?

标签: javaamazon-web-servicescontinuous-integrationaws-code-deployaws-cdk

解决方案


AWS CDK 代码中存在错误,因为 ServerDeploymentGroup 接受 AutoscalingGroup 列表而不是 IAutoScalingGroup 列表。该错误已在8 月 12 日的v1.58.0版本中修复。现在我能够解决我上面提到的问题。

看看这里。 https://github.com/aws/aws-cdk/pull/9252


推荐阅读