Как использовать 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 ответа
- Я хочу сделать
eb deploy
в чистой окружающей среде. Он говорит мне, что сначала мне нужно выполнить eb init.
Похоже, вы решили эту проблему, но я все же уточню: EBCLI требует, чтобы существующий рабочий каталог был укоренен в eb init
приложение. EBCLI ищет .elasticbeanstalk/config.yml
каталог, чтобы определить, был ли PWD eb init
-ed. Почти все eb
операции требуют, чтобы PWD был init
с приложением Beanstalk.
- РЕДАКТИРОВАТЬ Я пытался:
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