A construct library for deploying artifacts via CodeDeploy inside of a AWS CDK application.
Project description
Deployer CDK Construct
This is a CDK construct library for deploying artifacts via CodeDeploy.
This library currently supports NodeJS and Python.
Installation
Install with npm
$ npm install cdk-deployer
Install with pip
$ pip install cdk-deployer
Usage/Examples
TypeScript:
With codeDeploy.ServerDeploymentGroup
:
import * as cdk from '@aws-cdk/core';
import * as autoscaling from '@aws-cdk/aws-autoscaling';
import * as codedeploy from '@aws-cdk/aws-codedeploy';
import { Ec2Deployer, Code } from 'cdk-deployer';
const asg = new autoscaling.AutoScalingGroup(this, 'Asg', {
...
});
const deploymentGroup = new codedeploy.ServerDeploymentGroup(this, 'DeploymentGroup', {
autoScalingGroups: [asg]
});
const deployer = new Ec2Deployer(this, 'Deployer', {
code: Code.fromAsset('path/to/code/directory'),
deploymentGroup,
});
With codeDeploy.IServerDeploymentGroup
, also need to specify instanceRoles
:
import * as cdk from '@aws-cdk/core';
import * as codedeploy from '@aws-cdk/aws-codedeploy';
import * as iam from '@aws-cdk/aws-iam';
import { Ec2Deployer, Code } from 'cdk-deployer';
const deploymentGroup = codedeploy.ServerDeploymentGroup.fromServerDeploymentGroupAttributes(this, 'DeploymentGroup', {
...
});
const instanceRole = iam.Role.fromRoleArn(this, 'Role', cdk.Arn.format({
service: 'iam',
resource: 'role',
resourceName: 'instance-role-name' // role assigned to target instances associated with deployment group
}, cdk.Stack.of(this)));
const deployer = new Ec2Deployer(this, 'Deployer', {
code: Code.fromAsset('path/to/code/directory'),
deploymentGroup,
instanceRoles: [instanceRole]
});
Python:
With codeDeploy.ServerDeploymentGroup
:
from aws_cdk import (
core as cdk,
aws_codedeploy as codedeploy,
aws_autoscaling as autoscaling,
)
from cdk_deployer import (
Ec2Deployer,
Code
)
asg = autoscaling.AutoScalingGroup(self, 'Asg',
...)
deployment_group = codedeploy.ServerDeploymentGroup(self, 'DeploymentGroup',
auto_scaling_groups=[asg])
deployment = Ec2Deployer(self, 'Deployment',
code=Code.from_asset('path/to/code/directory'),
deployment_group=deployment_group)
With codeDeploy.IServerDeploymentGroup
, also need to specify instance_roles
:
from aws_cdk import (
core as cdk,
aws_autoscaling as autoscaling,
aws_codedeploy as codedeploy,
aws_iam as iam,
)
from cdk_deployer import (
Ec2Deployer,
Code
)
deployment_group = codedeploy.ServerDeploymentGroup.from_server_deployment_group_attributes(self, 'DeploymentGroup',
...)
instance_role = iam.Role.from_role_arn(self, 'Role', cdk.Arn.format(
components=cdk.ArnComponents(
service='iam',
resource='role',
resource_name='instance-role-name'),
stack=cdk.Stack.of(self)
))
deployment = Ec2Deployer(self, 'Deployment',
code=Code.from_asset('app'),
deployment_group=deployment_group,
instance_roles=[instance_role])
See example folder for a more complete example.
Contributing
Contributions of all kinds are welcome and celebrated. Raise an issue, submit a PR, do the right thing.
See CONTRIBUTING.md for contributing guidelines.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file cdk-deployer-1.0.13.tar.gz
.
File metadata
- Download URL: cdk-deployer-1.0.13.tar.gz
- Upload date:
- Size: 42.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 816c4cc3a119ba5c9c542342da28690f32867d1abf2f78be41e1d8913299bdff |
|
MD5 | 3f641b58f53c50b576729a7dd66e0907 |
|
BLAKE2b-256 | 21ad5a5f8248dd2e08f4d6123861d7c71849adaf37e682290ebb9226de76efc8 |
File details
Details for the file cdk_deployer-1.0.13-py3-none-any.whl
.
File metadata
- Download URL: cdk_deployer-1.0.13-py3-none-any.whl
- Upload date:
- Size: 41.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d1c1984b23bde6f661304fbe2696831f3f841debb4d4e856d1b6842a8a92219 |
|
MD5 | 113402bdfb66693cbe9082999f15cf0a |
|
BLAKE2b-256 | 08a8b6f535739ff4636107ad6f5d166b6f19d06f4bab199c231acf62d52ca284 |