如何在没有手动指令的情况下使用eb init

时间:2018-02-08 18:36:49

标签: amazon-web-services elastic-beanstalk ebcli

我想在干净的环境中制作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命令中自动执行此设置?

3 个答案:

答案 0 :(得分:4)

  
      
  1. 我想在干净的环境中制作eb deploy。它告诉我我首先需要执行eb init。
  2.   

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

  
      
  1. 编辑我试过:eb init --region eu-west-1 appname ...
  2.   

你快到了。为了抑制您正在尝试执行的交互模式,您需要传递--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>

答案 1 :(得分:0)

我想您正在尝试开发CI / CD,可以检查我的Jenkinsfile here

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

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

答案 2 :(得分:0)

我已经修复了来自 Azure DevOps 的 EBS 部署,通过添加这个来使用 cmd 任务和 eb init

--platform "arn:aws:elasticbeanstalk:us-east-1::platform/Tomcat 8.5 with Java 8 running 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 with Java 8 running on 64bit Amazon Linux/3.3 .0" ${{ parameters.ENVIRONMENT }} -v

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