来自 Dockerrun.aws.json -AWS 的 EBS 中的增量命令超时

Increment command timeout in EBS from the Dockerrun.aws.json -AWS

我正在 Elastic beanstalk 中部署一个 Dockerfile 和一个 Dockerrun.aws.json,它给出了一个错误,因为一些命令超过了最大命令超时。我可以通过转到更新和部署并修改最大超时来修复此错误。但是我想知道Dockerrun.aws.json有没有增加EBS最大命令超时的命令?或另一种自动执行此操作的方法?

不,您不能使用 Dockerrun.aws.json 增加超时,但您可以使用此选项设置在您的应用程序源中捆绑一个 ebextension。

在您的应用程序源中创建一个名为 .ebextensions 的目录中的文件。假设文件是​​ .ebextensions/01-increase-timeout.config.

文件内容应为:

option_settings:
    - namespace: aws:elasticbeanstalk:command
      option_name: Timeout
      value: 1000

请注意此文件为 YAML 格式。 在此之后,您可以使用此版本的源代码更新您的环境。

之前在这里回答:

另一种选择是使用适用于 Windows PowerShell 的 Aws 工具来执行此操作。这个班轮将获得您帐户中的每个 EB 环境,然后将命令超时设置为 400 秒,每个命令之间有 15 秒的睡眠以避免 AWS 的 API 速率限制。

PS C:\> get-ebenvironment | % {start-sleep -Seconds 15;  Update-EBEnvironment -ApplicationName $_.ApplicationName -EnvironmentName $_.EnvironmentName -OptionSetting @{"namespace"="aws:elasticbeanstalk:command"; "optionName"="Timeout";  "value"=400} }