AWS CDK 代码管道如何部署到 Elastic Beanstalk?
AWS CDK Code pipeline how to deploy to Elastic Beanstalk?
尝试使用 AWS CDK 为 Elastic Beanstalk 环境创建代码管道,
我在创建部署阶段时遇到问题。
在 AWS 控制台中,我可以使用 'AWS Elastic Beanstalk' 操作提供程序添加操作。我在 CDK 中找不到这样的提供程序。
是否有其他方法或解决方法来部署到 Elastic Beanstalk?
我知道这在 CDK 中仍然是一个未解决的问题并在此处进行了跟踪:
https://github.com/awslabs/aws-cdk/issues/2516
我不知道解决方法。
由于未实施部署到 Elastic Beanstalk 操作,我使用此 class 和接口创建了操作:
import { ActionCategory, Action, Artifact } from "@aws-cdk/aws-codepipeline";
export interface ElasticBeanstalkDeployActionProps {
ebsApplicationName: string;
ebsEnvironmentName: string;
input: Artifact;
}
export class ElasticBeanstalkDeployAction extends Action {
constructor(props: ElasticBeanstalkDeployActionProps) {
super({
...props,
category: ActionCategory.Deploy,
actionName: 'elasticbeanstalk-deploy-action',
owner: 'AWS',
provider: 'ElasticBeanstalk',
artifactBounds: {
minInputs: 1,
maxInputs: 1,
minOutputs: 0,
maxOutputs: 0,
},
inputs: [props.input],
configuration: {
ApplicationName: props.ebsApplicationName,
EnvironmentName: props.ebsEnvironmentName,
},
});
}
bind(_info: any) {
// nothing to do
}
}
为了使部署工作,我必须将 AWS 托管策略 AWSElasticBeanstalkFullAccess
附加到管道角色
尝试使用 AWS CDK 为 Elastic Beanstalk 环境创建代码管道, 我在创建部署阶段时遇到问题。
在 AWS 控制台中,我可以使用 'AWS Elastic Beanstalk' 操作提供程序添加操作。我在 CDK 中找不到这样的提供程序。
是否有其他方法或解决方法来部署到 Elastic Beanstalk?
我知道这在 CDK 中仍然是一个未解决的问题并在此处进行了跟踪:
https://github.com/awslabs/aws-cdk/issues/2516
我不知道解决方法。
由于未实施部署到 Elastic Beanstalk 操作,我使用此 class 和接口创建了操作:
import { ActionCategory, Action, Artifact } from "@aws-cdk/aws-codepipeline";
export interface ElasticBeanstalkDeployActionProps {
ebsApplicationName: string;
ebsEnvironmentName: string;
input: Artifact;
}
export class ElasticBeanstalkDeployAction extends Action {
constructor(props: ElasticBeanstalkDeployActionProps) {
super({
...props,
category: ActionCategory.Deploy,
actionName: 'elasticbeanstalk-deploy-action',
owner: 'AWS',
provider: 'ElasticBeanstalk',
artifactBounds: {
minInputs: 1,
maxInputs: 1,
minOutputs: 0,
maxOutputs: 0,
},
inputs: [props.input],
configuration: {
ApplicationName: props.ebsApplicationName,
EnvironmentName: props.ebsEnvironmentName,
},
});
}
bind(_info: any) {
// nothing to do
}
}
为了使部署工作,我必须将 AWS 托管策略 AWSElasticBeanstalkFullAccess
附加到管道角色