从 Dockerrun.aws.json -AWS 增加 EBS 中的命令超时
Posted
技术标签:
【中文标题】从 Dockerrun.aws.json -AWS 增加 EBS 中的命令超时【英文标题】:Increment command timeout in EBS from the Dockerrun.aws.json -AWS 【发布时间】:2015-07-19 17:04:35 【问题描述】:我正在 Elastic beanstalk 中部署 Dockerfile 和 Dockerrun.aws.json,但由于某些命令超过了最大命令超时,因此出现错误。我可以通过转到更新和部署并修改最大超时来修复此错误。但我想知道是否有命令可以从 Dockerrun.aws.json 增加 EBS 的最大命令超时?或其他自动执行此操作的方法?
【问题讨论】:
【参考方案1】:不,您不能使用 Dockerrun.aws.json 增加超时,但您可以使用此选项设置在您的应用程序源中捆绑一个 ebextension。
在您的应用程序源代码中名为.ebextensions
的目录中创建一个文件。假设文件是.ebextensions/01-increase-timeout.config
。
文件的内容应该是:
option_settings:
- namespace: aws:elasticbeanstalk:command
option_name: Timeout
value: 1000
请注意,此文件为 YAML 格式。 在此之后,您可以使用此版本的源代码更新您的环境。
以前在这里回答:https://***.com/a/25558805/161628
【讨论】:
【参考方案2】:另一种选择是使用适用于 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
【讨论】:
以上是关于从 Dockerrun.aws.json -AWS 增加 EBS 中的命令超时的主要内容,如果未能解决你的问题,请参考以下文章