在EBS中,从Dockerrun.aws.json -AWS中增加命令超时

我正在Elastic beanstalk中部署一个Dockerfile和一个Dockerrun.aws.json,并且由于某些命令超过了最大命令超时而发生错误。 我可以通过更新和部署来修复此错误,并修改最大超时时间。 但我想知道是否有一个命令来增加从Dockerrun.aws.json的EBS的最大命令超时? 或另一种方式来自动做到这一点?

不,您不能使用Dockerrun.aws.json增加超时,但是您可以使用此选项设置将应用程序源中的ebextension打包。

在名为.ebextensions的目录中的应用程序源中创build一个文件。 可以说这个文件是.ebextensions/01-increase-timeout.config

该文件的内容应该是:

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

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

以前在这里回答: https : //stackoverflow.com/a/25558805/161628

另一种select是使用Aws Tools for Windows PowerShell来执行此操作。 这个class轮将获得您帐户中的每个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} }