gpt4 book ai didi

amazon-web-services - 如何增加 AWS Opsworks 的部署超时限制?

转载 作者:行者123 更新时间:2023-12-04 08:08:23 24 4
gpt4 key购买 nike

我想在托管许多应用程序 (AWS Opsworks) 的堆栈层中增加部署时间。当前我收到以下错误:

错误

[2014-05-05T22:27:51+00:00] ERROR: Running exception handlers
[2014-05-05T22:27:51+00:00] ERROR: Exception handlers complete
[2014-05-05T22:27:51+00:00] FATAL: Stacktrace dumped to /var/lib/aws/opsworks/cache/chef-stacktrace.out
[2014-05-05T22:27:51+00:00] ERROR: deploy[/srv/www/lakers_test] (opsworks_delayed_job::deploy line 65) had an error: Mixlib::ShellOut::CommandTimeout: Command timed out after 600s:

提前致谢。

最佳答案

首先提到in this ticket报告类似的问题,Opsworks 人员建议首先尝试加快调用速度(总是有优化的空间)。

如果这不起作用,我们可以进入兔子洞:this gets called ,它又调用 Mixlib::ShellOut.new ,恰好有一个 timeout option您可以传入初始化程序!

现在您可以使用Opsworks 自定义说明书 覆盖初始方法,并传递相应的超时选项。 Opsworks 合并其 base cookbooks 的内容包含自定义说明书的内容 - 因此您只需向自定义说明书添加和编​​辑一个文件:opsworks_commons/libraries/shellout.rb:

module OpsWorks
module ShellOut
extend self

# This would be your new default timeout.
DEFAULT_OPTIONS = { timeout: 900 }

def shellout(command, options = {})
cmd = Mixlib::ShellOut.new(command, DEFAULT_OPTIONS.merge(options))
cmd.run_command
cmd.error!
[cmd.stderr, cmd.stdout].join("\n")
end
end
end

请注意唯一添加的是 DEFAULT_OPTIONS 并将这些选项合并到 Mixlib::ShellOut.new 调用中。

对此方法的改进是通过 chef 属性 更改此超时选项,您可以依次通过 Opsworks 界面中的自定义 JSON 进行更新。这意味着在初始 Opsworks::ShellOut.shellout 调用中传递 timeout 属性 - 而不是在方法定义中。但这取决于 shellout 方法实际上是如何被调用的...

关于amazon-web-services - 如何增加 AWS Opsworks 的部署超时限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23483109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com