Как использовать eb init без ручных инструкций

Я хочу сделать eb deploy в чистой окружающей среде. Это говорит мне, что сначала мне нужно выполнить eb init,

Когда я делаю это, я вижу следующее:

Select a default region
1) us-east-1 : US East (N. Virginia)
2) us-west-1 : US West (N. California)
3) us-west-2 : US West (Oregon)
4) eu-west-1 : EU (Ireland)
5) eu-central-1 : EU (Frankfurt)
6) ap-south-1 : Asia Pacific (Mumbai)
7) ap-southeast-1 : Asia Pacific (Singapore)
8) ap-southeast-2 : Asia Pacific (Sydney)
9) ap-northeast-1 : Asia Pacific (Tokyo)
10) ap-northeast-2 : Asia Pacific (Seoul)
11) sa-east-1 : South America (Sao Paulo)
12) cn-north-1 : China (Beijing)
13) us-east-2 : US East (Ohio)
14) ca-central-1 : Canada (Central)
15) eu-west-2 : EU (London)
(default is 3):

Как видите, установка требует ручных инструкций. Как я могу автоматизировать эту настройку?

Я старался

$ export AWS_ACCESS_KEY_ID="xxx"
$ export AWS_SECRET_ACCESS_KEY="xxx"
$ export AWS_DEFAULT_REGION="xxx"
$ eb init

Но опять же нужно было выбирать регион и т. Д. (Как выше)?

Как я могу сгенерировать мой .aws сделать развертывание eb без ручного взаимодействия, только команды?

РЕДАКТИРОВАТЬ Я пытался:

init --region eu-west-1 имя приложения

Это привело меня уже немного дальше, но теперь я получаю:

Select the default environment.

You can change this later by typing "eb use [environment_name]".
1) app-dev
2) app-uat

Как я могу автоматизировать эту настройку в моем eb init команда?

3 ответа

  1. Я хочу сделать eb deploy в чистой окружающей среде. Он говорит мне, что сначала мне нужно выполнить eb init.

Похоже, вы решили эту проблему, но я все же уточню: EBCLI требует, чтобы существующий рабочий каталог был укоренен в eb initприложение. EBCLI ищет .elasticbeanstalk/config.yml каталог, чтобы определить, был ли PWD eb init-ed. Почти все eb операции требуют, чтобы PWD был initс приложением Beanstalk.

  1. РЕДАКТИРОВАТЬ Я пытался: eb init --region eu-west-1 appname ...

Ты почти там. Для того, чтобы отключить интерактивный режим, который вы пытаетесь сделать, вам нужно передать --platform флаг. Я ясно вижу, насколько это неудобно, но вам нужно:

eb init --region eu-west-1 --platform <platform-name> appname

куда <platform-name> это название языка вашего приложения. Передача --platform Аргумент подавляет интерактивный режим согласно документации.

Как только это будет сделано, вы можете выполнить:

  • eb use <environment name> с последующим eb deploy, или просто

  • eb deploy <environment-name>

Я думаю, вы пытаетесь разработать CI/CD, вы можете проверить мой Jenkinsfile здесь

Вы можете передать ввод в eb deploy команда с использованием printf команда:

printf '\n\n\n\n\n' | eb init ${EB_APPLICATION} --region ${AWS_REGION} --platform ${EB_PLATFORM}

Я исправил развертывание EBS из Azure DevOps, используя задачу cmd с eb init, добавив это

--platform "arn: aws: elasticbeanstalk:us-east-1 :: platform / Tomcat 8.5 с Java 8, работающей на 64-битной Amazon Linux / 3.3.0"

полная команда

eb init --profile eb-cli --region us-east-1 --platform "arn: aws: elasticbeanstalk:us-east-1 :: platform / Tomcat 8.5 с Java 8, работающей на 64-битной Amazon Linux / 3.3.0" ${{parameters.ENVIRONMENT}} -v

Я получил это с помощью команды eb profile show

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