如何在没有手动说明的情况下使用 eb init

How to use eb init without manual instructions

我想在一个干净的环境中做一个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 appname

这已经让我走得更远了,但现在我收到了:

Select the default environment.

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

如何在我的 eb init 命令中自动执行此设置?

  1. I want to make an eb deploy in a clean environment. It tells me I first need to execute eb init.

看起来你已经解决了这个问题,但我还是要澄清一下:EBCLI 要求当前工作目录的根目录是 eb init-ed 应用程序。 EBCLI 查找 .elasticbeanstalk/config.yml 目录以确定 PWD 是否已被 eb init 编辑。几乎所有 eb 操作都要求 PWD init 使用 Beanstalk 应用程序。

  1. EDIT I tried: eb init --region eu-west-1 appname ...

你快到了。为了抑制交互模式,这是你想要做的,你需要传递 --platform 标志。我可以清楚地看到这有多不方便,但你需要的是:

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

其中 <platform-name> 是您的应用程序所使用的语言的名称。传递 --platform 参数会根据 documentation.

抑制交互模式

完成后,您可以执行:

  • eb use <environment name> 后跟 eb deploy,或者只是

  • eb deploy <environment-name>

我猜你正在尝试开发一个 CI/CD,你可以查看我的 Jenkinsfile here

您可以使用 printf 命令将输入​​传递给 eb deploy 命令:

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

我已经修复了来自 Azure DevOps 的 EBS 部署,通过添加此命令将 cmd 任务与 eb init 结合使用

--平台“arn:aws:elasticbeanstalk:us-east-1::platform/Tomcat 8.5 with Java 8 运行 on 64bit 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 位亚马逊 Linux/3.3.0" ${{ parameters.ENVIRONMENT }} -v

我用 eb profile show 命令得到了这个