【问题标题】:How to use eb init without manual instructions如何在没有手动说明的情况下使用 eb init
【发布时间】:2018-07-19 10:33:53
【问题描述】:

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

【问题讨论】:

  • eb init 只是写一些配置文件吧?没有理由你必须为此使用 eb init。
  • 所以我可以在不先进行 eb init 的情况下进行 eb 部署?因为在设置环境变量并执行我的 eb 部署后它告诉我:错误:此目录尚未使用 EB CLI 设置您必须先运行“eb init”。

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


【解决方案1】:
  1. 我想在干净的环境中制作eb deploy。它告诉我首先需要执行 eb init。

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

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

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

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

其中&lt;platform-name&gt; 是您的应用所用语言的名称。传递--platform 参数会根据documentation 抑制交互模式。

完成后,您可以执行:

  • eb use &lt;environment name&gt; 后跟eb deploy,或者只是

  • eb deploy &lt;environment-name&gt;

【讨论】:

  • 我也无法让它工作。文档很差。我尝试了 eb init pathfinder --platform arn:aws:elasticbeanstalk:eu-west-2::platform/Puma 与 Ruby 2.6 在 64 位 Amazon Linux/2.9.0 上运行 |并得到错误| eb:错误:无法识别的参数:在 64 位 Amazon Linux/2.9.0 上运行 Ruby 2.6 |
  • 在我看来,后台正在执行一些草率的正则表达式
  • 这是与 shell 交互时的常见问题 -- 将平台名称括在引号中 -- eb init pathfinder --platform "arn:aws:elasticbeanstalk:eu-west-2::platform/Puma with Ruby 2.6 running on 64bit Amazon Linux/2.9.0" 应该可以工作。如果不是,那么它确实是一个正则表达式问题。
  • 在引号和引号外都试过了,无论哪种方式。没有喜悦。我暂时放弃了 Elastic Beanstalk,文档太糟糕了。
  • 好的,您也可以在 AWS 论坛上写反馈。 (另外,FWIW,我认为上述建议中缺少的是 --region 参数,如果我认为我知道你的问题是什么的话。)
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

    我已经修复了 Azure DevOps 中的 EBS 部署,使用 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" ${{ 参数.ENVIRONMENT }} -v

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      • 2020-10-31
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多