Python (执行超时)Boto3使用维护窗口注册任务
我目前正在使用AWS Lambda启动维护窗口,但发现执行超时默认设置为3600(1小时),当在更大范围内使用时,1小时会有点拖。 我试图将超时降低到900(15分钟),但尽管运行lambda时接受executionTimeout:[“900”], 维护窗口被创建,我在执行任务中得到错误: 失败:“指定的参数不完整或无效。” 以下是我正在尝试的代码片段:Python (执行超时)Boto3使用维护窗口注册任务,python,amazon-web-services,aws-lambda,runcommand,Python,Amazon Web Services,Aws Lambda,Runcommand,我目前正在使用AWS Lambda启动维护窗口,但发现执行超时默认设置为3600(1小时),当在更大范围内使用时,1小时会有点拖。 我试图将超时降低到900(15分钟),但尽管运行lambda时接受executionTimeout:[“900”], 维护窗口被创建,我在执行任务中得到错误: 失败:“指定的参数不完整或无效。” 以下是我正在尝试的代码片段: reg_taskmw_res = ssm_client.register_task_with_maintenance_wind
reg_taskmw_res = ssm_client.register_task_with_maintenance_window(
WindowId=window_id,
Targets=[
{
'Key': 'WindowTargetIds',
'Values': [
reg_targetmw_res['WindowTargetId']
]
},
],
TaskArn='AWS-RunPatchBaseline',
TaskType='RUN_COMMAND',
TaskInvocationParameters={
'RunCommand': {
'DocumentHash': DocHash,
'DocumentHashType': 'Sha256',
'Parameters': {
'Operation': ['Scan'],
'executionTimeout': ['900']
},
'TimeoutSeconds': 60
},
},
Priority=123,
MaxConcurrency='3',
MaxErrors='3'
)
如果我不使用executionTimeout,则维护窗口可以工作,但超时为3600。
我尝试过多种方法,但都没有用。
谢谢你的帮助 事实证明,内置的AWS RunPatchBaseline文档此时不允许您配置自定义执行超时(令人惊讶)。它允许您配置的超时是传递超时,但执行超时是硬编码的,您不能更改它。因此,要使用不同的执行超时,您必须创建自己的自定义文档,该文档允许您进行设置。我向AWS支持人员提出了相同的问题,得到了以下答案: AWS提供的AWS RunPatchBaseline文档没有 executionTimeout作为可配置参数内置,并且 硬编码7200分钟: [美国焊接学会基线第34-37行] “操作”:“aws:runPowerShellScript”, “名称”:“修补程序窗口”, “投入”:{ “timeoutSeconds”:7200 您可以在这里创建自己的自定义文档并添加 参数本身,这将允许您配置执行 除了传递超时之外,还有超时,这是控制台所需要的 条目用于。为此,您可以创建新的自定义文档 在现有[1]的基础上,添加以下修改: 在第5行插入: 替换timeoutSeconds输入: 现有的: 新的 我测试了这个,它接受了 executionTimeout参数。希望这有帮助 参考文献:[1]复制文档-
我认为可能是这样的,并且已经这样做了。但我不确定这在以后的文档更新中会如何。如果AWS更改原始AWS RunPatchBaseline,我想届时我希望他们能够添加一个参数来更改执行时间。感谢您的帮助Shawn,为我节省了重新定位wher的时间e我需要把所有东西都放好!(并确认我做的是对的!)祝你好运,Gary。以防万一其他人遇到这个问题:-有两个部分,一个用于windows,一个用于linux。-如果你愿意,可以保留默认值为7200,正如Shawn给出的方法,允许你将参数添加到lambda以更改你想要的。(这必须在TaskInvocationParameters->RunCommand->Parameters下,与操作位置相同:[‘安装’])-最后,对于那些希望增加时间的人,这也可能达到172800(我相信)我希望这能像我一样帮助人们!再次感谢@Shawn
"executionTimeout": {
"type": "String",
"default": "900",
"description": "(Optional) The time in seconds for a command to complete before it is considered to have failed. Default is 900 (15 mins). Maximum is 172800 (48 hours).",
"allowedPattern": "([1-9][0-9]{0,4})|(1[0-6][0-9]{4})|(17[0-1][0-9]{3})|(172[0-7][0-9]{2})|(172800)"
},
"action": "aws:runPowerShellScript",
"name": "PatchWindows",
"inputs": {
"timeoutSeconds": 7200,
"action": "aws:runPowerShellScript",
"name": "PatchWindows",
"inputs": {
"timeoutSeconds": "{{executionTimeout}}",