I'm trying to deploy a docker image created with cdk to an ecs cluster (ec2 not fargate).
I have tried the following in typescript (with appropriate imports of course)
const vpc = new ec2.VpcNetwork(this, "MyVPC", { maxAZs: 3 });
const cluster: ecs.Cluster = new ecs.Cluster(this, "ecs-cluster", {
clusterName: "demo",
vpc: vpc
});
cluster.addCapacity("MyEC2Capacity", {
instanceType: new ec2.InstanceType("t2.micro"),
desiredCapacity: 1
});
const image = new ecs.AssetImage(this, "image", {directory: "client"})
const nameService = new ecs.LoadBalancedEc2Service (this, 'name-service', {
cluster: cluster,
desiredCount: 1,
image: image,
memoryLimitMiB: 128,
containerPort: 3000
});
However when I run cdk diff
I get the following error
Stack cdkTest
The cdkTest stack uses assets, which are currently not accounted for in the diff output! See https://github.com/awslabs/aws-cdk/issues/395
IAM Statement Changes
Column width must be greater than 0.
npm verb lifecycle stack@0.1.0~cdk: unsafe-perm in lifecycle true
npm verb lifecycle stack@0.1.0~cdk: PATH: /usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/circleci/repo/stack/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
npm verb lifecycle stack@0.1.0~cdk: CWD: /home/circleci/repo/stack
npm info lifecycle stack@0.1.0~cdk: Failed to exec cdk script
npm verb stack Error: stack@0.1.0 cdk: `cdk "diff"`
npm verb stack Exit status 1
npm verb stack at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
npm verb stack at EventEmitter.emit (events.js:197:13)
npm verb stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
npm verb stack at ChildProcess.emit (events.js:197:13)
npm verb stack at maybeClose (internal/child_process.js:978:16)
npm verb stack at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5)
npm verb pkgid stack@0.1.0
npm verb cwd /home/circleci/repo/stack
npm verb Linux 4.4.0-141-generic
npm verb argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "cdk" "diff" "--verbose"
npm verb node v11.9.0
npm verb npm v6.5.0
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! stack@0.1.0 cdk: `cdk "diff"`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the stack@0.1.0 cdk script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm verb exit [ 1, true ]
npm timing npm Completed in 1578ms
Exited with code 1
Is it possible to get cdk to build the image and deploy to ecs?
If so how? I couldn't find any examples either on google, on aws-cdk github repo, or on the aws-cdk docs.
Any help much appreciated!
Finally fixed the issue and so posting here for others.
The issue is caused by the CI I am using. Node thinks that the terminal width is 0 (process.stdout.columns). This is not an issue with aws-cdk but with the library it uses to construct the table of changes and resources.
A workaround is simple, simply pipe the output of the cdk to cat or similar. So for example my CI task changes from...
npm run cdk deploy
to
npm run cdk deploy | cat
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.