CDK ECS 代码部署
该项目包含创建代码部署ECS部署的CDK架构.
安装
类型脚本
yarn add @cdklabs/cdk-ecs-codedeploy
爪哇语
见 https://mvnrepository.com/artifact/io.github.cdklabs/cdk-ecs-codeploy 互联网档案馆的存檔,存档日期2013-12-22
部署
ECS的代码部署可以管理向ECS服务部署新的任务定义. 对一个给定的EcsDependment Group只能定义一个部署构造.
declare const deploymentGroup: codeDeploy.IEcsDeploymentGroup;
declare const taskDefinition: ecs.ITaskDefinition;
new EcsDeployment({
deploymentGroup,
targetService: {
taskDefinition,
containerName: 'mycontainer',
containerPort: 80,
},
});
部署将使用自动 Rollback配置用于部署组, 除非在部署中被覆盖 :
declare const deploymentGroup: codeDeploy.IEcsDeploymentGroup;
declare const taskDefinition: ecs.ITaskDefinition;
new EcsDeployment({
deploymentGroup,
targetService: {
taskDefinition,
containerName: 'mycontainer',
containerPort: 80,
},
autoRollback: {
failedDeployment: true,
deploymentInAlarm: true,
stoppedDeployment: false,
},
});
默认,部署将在30分钟后暂停。 超时值可以被覆盖 :
declare const deploymentGroup: codeDeploy.IEcsDeploymentGroup;
declare const taskDefinition: ecs.ITaskDefinition;
new EcsDeployment({
deploymentGroup,
targetService: {
taskDefinition,
containerName: 'mycontainer',
containerPort: 80,
},
timeout: Duration.minutes(60),
});
API 卡纳里
CodeDeplof可以借助"云表警报"来触发自动回滚. 这个 ApiCanary 构造简化创建 Cloud Watch 合成卡纳里以监视 API 的过程 。 以下代码显示一只金丝雀 监视 https://xkcd.com/908/info.0.json (英语) 并检查JSON的答复,以断言: safe_title 具有 'The Cloud'。 。 。 .
const canary = new ApiCanary(stack, 'Canary', {
baseUrl: 'https://xkcd.com',
durationAlarmThreshold: Duration.seconds(5),
threadCount: 5,
steps: [
{
name: 'info',
path: '/908/info.0.json',
jmesPath: 'safe_title',
expectedValue: 'The Cloud',
},
],
});
应用程序装入平衡码
命名的 L3 构造 ApplicationLoadBalancedCodeDeployedFargateService 扩展 应用程序 LoadBalancedFargate Service 并添加对使用AWS CodeDeplof部署新版本服务的支持. 此外,通过该研究所创建了亚马逊云表合成金丝雀 ApiCanary 在金丝雀开始起惊动时,通过部署程序来启动回滚.
declare const cluster: ecs.ICluster;
declare const image: ecs.ContainerImage;
const service = new ApplicationLoadBalancedCodeDeployedFargateService(stack, 'Service', {
cluster,
taskImageOptions: {
image,
},
apiTestSteps: [{
name: 'health',
path: '/health',
jmesPath: 'status',
expectedValue: 'ok',
}],
});
地方发展
yarn install
yarn build
yarn test
要运行集成测试并更新快照,运行:
yarn integ:ecs-deployment:deploy
要重制集成测试的快照, 请运行 :
yarn integ:snapshot-all
警卫
见 捐款 更多信息.
许可证
这个项目根据Apache-2.0许可证获得许可证.