0.0.274 • Published 3 days ago

@cdklabs/cdk-ecs-codedeploy v0.0.274

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 days ago

CDK ECS CodeDeploy

cdk-constructs: Experimental npm version Maven Central PyPI version NuGet version Gitpod Ready-to-Code Mergify

This project contains CDK constructs to create CodeDeploy ECS deployments.

Installation

yarn add @cdklabs/cdk-ecs-codedeploy

See https://mvnrepository.com/artifact/io.github.cdklabs/cdk-ecs-codedeploy

See https://pypi.org/project/cdklabs.ecs-codedeploy/

See https://www.nuget.org/packages/Cdklabs.CdkEcsCodeDeploy/

Deployments

CodeDeploy for ECS can manage the deployment of new task definitions to ECS services. Only 1 deployment construct can be defined for a given EcsDeploymentGroup.

declare const deploymentGroup: codeDeploy.IEcsDeploymentGroup;
declare const taskDefinition: ecs.ITaskDefinition;

new EcsDeployment({
  deploymentGroup,
  targetService: {
    taskDefinition,
    containerName: 'mycontainer',
    containerPort: 80,
  },
});

The deployment will use the AutoRollbackConfig for the EcsDeploymentGroup unless it is overridden in the deployment:

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,
  },
});

By default, the deployment will timeout after 30 minutes. The timeout value can be overridden:

declare const deploymentGroup: codeDeploy.IEcsDeploymentGroup;
declare const taskDefinition: ecs.ITaskDefinition;

new EcsDeployment({
  deploymentGroup,
  targetService: {
    taskDefinition,
    containerName: 'mycontainer',
    containerPort: 80,
  },
  timeout: Duration.minutes(60),
});

API Canaries

CodeDeploy can leverage Cloudwatch Alarms to trigger automatic rollbacks. The ApiCanary construct simplifies the process for creating CloudWatch Synthetics Canaries to monitor APIs. The following code demonstrates a canary that monitors https://xkcd.com/908/info.0.json and checks the JSON response to assert that safe_title has the value of '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',
    },
  ],
});

Application Load Balanced CodeDeployed Fargate Service

An L3 construct named ApplicationLoadBalancedCodeDeployedFargateService extends ApplicationLoadBalancedFargateService and adds support for deploying new versions of the service with AWS CodeDeploy. Additionally, an Amazon CloudWatch Synthetic canary is created via the ApiCanary construct and is monitored by the CodeDeploy deployment to trigger rollback if the canary begins to alarm.

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',
  }],
});

Local Development

yarn install
yarn build
yarn test

To run an integration test and update the snapshot, run:

yarn integ:ecs-deployment:deploy

To recreate snapshots for integration tests, run:

yarn integ:snapshot-all

Security

See CONTRIBUTING for more information.

License

This project is licensed under the Apache-2.0 License.

0.0.274

3 days ago

0.0.273

6 days ago

0.0.272

7 days ago

0.0.271

16 days ago

0.0.270

21 days ago

0.0.269

23 days ago

0.0.268

28 days ago

0.0.267

29 days ago

0.0.266

1 month ago

0.0.265

1 month ago

0.0.264

2 months ago

0.0.263

2 months ago

0.0.262

2 months ago

0.0.261

2 months ago

0.0.260

2 months ago

0.0.259

2 months ago

0.0.258

2 months ago

0.0.257

2 months ago

0.0.256

2 months ago

0.0.255

2 months ago

0.0.254

2 months ago

0.0.252

2 months ago

0.0.251

2 months ago

0.0.253

2 months ago

0.0.250

3 months ago

0.0.249

3 months ago

0.0.248

3 months ago

0.0.247

3 months ago

0.0.246

3 months ago

0.0.245

3 months ago

0.0.244

3 months ago

0.0.243

3 months ago

0.0.242

3 months ago

0.0.241

3 months ago

0.0.240

3 months ago

0.0.239

3 months ago

0.0.238

3 months ago

0.0.237

4 months ago

0.0.236

4 months ago

0.0.235

4 months ago

0.0.234

4 months ago

0.0.233

4 months ago

0.0.232

4 months ago

0.0.231

4 months ago

0.0.230

4 months ago

0.0.229

4 months ago

0.0.228

4 months ago

0.0.227

4 months ago

0.0.226

5 months ago

0.0.225

5 months ago

0.0.224

5 months ago

0.0.223

5 months ago

0.0.222

5 months ago

0.0.221

5 months ago

0.0.219

5 months ago

0.0.220

5 months ago

0.0.218

5 months ago

0.0.216

5 months ago

0.0.215

5 months ago

0.0.214

5 months ago

0.0.213

5 months ago

0.0.217

5 months ago

0.0.209

6 months ago

0.0.208

7 months ago

0.0.207

10 months ago

0.0.212

5 months ago

0.0.211

6 months ago

0.0.210

6 months ago

0.0.205

10 months ago

0.0.206

10 months ago

0.0.204

10 months ago

0.0.203

10 months ago

0.0.202

10 months ago

0.0.201

11 months ago

0.0.200

11 months ago

0.0.197

11 months ago

0.0.196

11 months ago

0.0.195

11 months ago

0.0.194

11 months ago

0.0.199

11 months ago

0.0.198

11 months ago

0.0.193

11 months ago

0.0.192

11 months ago

0.0.191

11 months ago

0.0.190

11 months ago

0.0.179

11 months ago

0.0.178

11 months ago

0.0.186

11 months ago

0.0.185

11 months ago

0.0.184

11 months ago

0.0.183

11 months ago

0.0.189

11 months ago

0.0.188

11 months ago

0.0.187

11 months ago

0.0.182

11 months ago

0.0.181

11 months ago

0.0.180

11 months ago

0.0.159

12 months ago

0.0.158

12 months ago

0.0.153

12 months ago

0.0.152

12 months ago

0.0.151

12 months ago

0.0.150

12 months ago

0.0.157

12 months ago

0.0.156

12 months ago

0.0.155

12 months ago

0.0.154

12 months ago

0.0.169

11 months ago

0.0.164

12 months ago

0.0.163

12 months ago

0.0.162

12 months ago

0.0.161

12 months ago

0.0.168

11 months ago

0.0.167

12 months ago

0.0.166

12 months ago

0.0.165

12 months ago

0.0.160

12 months ago

0.0.175

11 months ago

0.0.174

11 months ago

0.0.173

11 months ago

0.0.172

11 months ago

0.0.177

11 months ago

0.0.176

11 months ago

0.0.171

11 months ago

0.0.170

11 months ago

0.0.149

12 months ago

0.0.148

12 months ago

0.0.147

1 year ago

0.0.146

1 year ago

0.0.145

1 year ago

0.0.144

1 year ago

0.0.143

1 year ago

0.0.128

1 year ago

0.0.127

1 year ago

0.0.126

1 year ago

0.0.125

1 year ago

0.0.129

1 year ago

0.0.124

1 year ago

0.0.123

1 year ago

0.0.139

1 year ago

0.0.138

1 year ago

0.0.137

1 year ago

0.0.136

1 year ago

0.0.131

1 year ago

0.0.130

1 year ago

0.0.135

1 year ago

0.0.134

1 year ago

0.0.133

1 year ago

0.0.132

1 year ago

0.0.142

1 year ago

0.0.141

1 year ago

0.0.140

1 year ago

0.0.86

1 year ago

0.0.87

1 year ago

0.0.88

1 year ago

0.0.89

1 year ago

0.0.106

1 year ago

0.0.105

1 year ago

0.0.104

1 year ago

0.0.103

1 year ago

0.0.109

1 year ago

0.0.108

1 year ago

0.0.107

1 year ago

0.0.102

1 year ago

0.0.101

1 year ago

0.0.100

1 year ago

0.0.117

1 year ago

0.0.116

1 year ago

0.0.115

1 year ago

0.0.114

1 year ago

0.0.119

1 year ago

0.0.118

1 year ago

0.0.113

1 year ago

0.0.112

1 year ago

0.0.111

1 year ago

0.0.110

1 year ago

0.0.120

1 year ago

0.0.122

1 year ago

0.0.121

1 year ago

0.0.95

1 year ago

0.0.96

1 year ago

0.0.97

1 year ago

0.0.98

1 year ago

0.0.99

1 year ago

0.0.90

1 year ago

0.0.91

1 year ago

0.0.92

1 year ago

0.0.93

1 year ago

0.0.94

1 year ago

0.0.85

1 year ago

0.0.84

1 year ago

0.0.80

1 year ago

0.0.81

1 year ago

0.0.82

1 year ago

0.0.83

1 year ago

0.0.79

1 year ago

0.0.78

1 year ago

0.0.75

1 year ago

0.0.76

1 year ago

0.0.77

1 year ago

0.0.73

1 year ago

0.0.74

1 year ago

0.0.70

1 year ago

0.0.71

1 year ago

0.0.72

1 year ago

0.0.65

1 year ago

0.0.66

1 year ago

0.0.67

1 year ago

0.0.68

1 year ago

0.0.69

1 year ago

0.0.62

1 year ago

0.0.63

1 year ago

0.0.64

1 year ago

0.0.60

1 year ago

0.0.61

1 year ago

0.0.40

1 year ago

0.0.41

1 year ago

0.0.42

1 year ago

0.0.43

1 year ago

0.0.44

1 year ago

0.0.45

1 year ago

0.0.46

1 year ago

0.0.47

1 year ago

0.0.37

1 year ago

0.0.38

1 year ago

0.0.39

1 year ago

0.0.30

1 year ago

0.0.31

1 year ago

0.0.32

1 year ago

0.0.33

1 year ago

0.0.34

1 year ago

0.0.35

1 year ago

0.0.36

1 year ago

0.0.26

1 year ago

0.0.27

1 year ago

0.0.28

1 year ago

0.0.29

1 year ago

0.0.21

1 year ago

0.0.22

1 year ago

0.0.23

1 year ago

0.0.24

1 year ago

0.0.25

1 year ago

0.0.59

1 year ago

0.0.51

1 year ago

0.0.52

1 year ago

0.0.53

1 year ago

0.0.54

1 year ago

0.0.55

1 year ago

0.0.56

1 year ago

0.0.57

1 year ago

0.0.58

1 year ago

0.0.50

1 year ago

0.0.48

1 year ago

0.0.49

1 year ago

0.0.20

1 year ago

0.0.19

1 year ago

0.0.18

1 year ago

0.0.17

1 year ago

0.0.16

1 year ago

0.0.15

1 year ago

0.0.14

1 year ago

0.0.13

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.9

1 year ago

0.0.8

1 year ago

0.0.7

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago