Как развернуть ресурс образа cdk в кластере ecs

Я пытаюсь развернуть образ докера, созданный с помощью cdk, в кластер ecs (ec2, а не fargate).

Я пробовал следующее в машинописном тексте (конечно, с соответствующим импортом)

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

Однако, когда я запускаю cdk diff, я получаю следующую ошибку

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 [email protected]~cdk: unsafe-perm in lifecycle true
npm verb lifecycle [email protected]~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 [email protected]~cdk: CWD: /home/circleci/repo/stack
npm info lifecycle [email protected]~cdk: Failed to exec cdk script
npm verb stack Error: [email protected] 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 [email protected]
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! [email protected] cdk: `cdk "diff"`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] 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

Можно ли заставить cdk собрать образ и развернуть его в ecs?

Если да, то как? Я не смог найти никаких примеров ни в Google, ни в репозитории aws-cdk github, ни в документах aws-cdk.

Любая помощь высоко ценится!

Итак, после некоторого расследования я определил, что это вызвано комбинацией использования CICD и библиотеки npm, называемой таблицами. Tables получает ширину терминала с помощью process.stdout.columns, которая в используемой мной системе CI, по-видимому, равна 0. Таким образом, библиотека выдает исключение. Я поднял проблема с ошибкой с подробным описанием этого aws-cdk, поэтому, надеюсь, получу ответ/решение.

CSmith 12.04.2019 09:49
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Как заставить Remix работать с Mantine и Cloudflare Pages/Workers
Как заставить Remix работать с Mantine и Cloudflare Pages/Workers
Мне нравится библиотека Mantine Component , но заставить ее работать без проблем с Remix бывает непросто.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
TypeScript против JavaScript
TypeScript против JavaScript
TypeScript vs JavaScript - в чем различия и какой из них выбрать?
Синхронизация localStorage в масштабах всего приложения с помощью пользовательского реактивного хука useLocalStorage
Синхронизация localStorage в масштабах всего приложения с помощью пользовательского реактивного хука useLocalStorage
Не все нужно хранить на стороне сервера. Иногда все, что вам нужно, это постоянное хранилище на стороне клиента для хранения уникальных для клиента...
Что такое ленивая загрузка в Angular и как ее применять
Что такое ленивая загрузка в Angular и как ее применять
Ленивая загрузка - это техника, используемая в Angular для повышения производительности приложения путем загрузки модулей только тогда, когда они...
0
1
1 042
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наконец-то исправлена ​​​​проблема, и поэтому публикую здесь для других.

Проблема вызвана CI, который я использую. Node считает, что ширина терминала равна 0 (process.stdout.columns). Это проблема не aws-cdk, а библиотеки, которую он использует для создания таблицы изменений и ресурсов.

Обходной путь прост, просто направьте вывод cdk на cat или аналогичный. Так, например, моя задача CI меняется с...

npm run cdk deploy
чтобы
npm run cdk deploy | cat

Другие вопросы по теме