AWS Systems Manager“进行中”命令限制为5?

2024-09-30 06:26:56 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,首先,我四处寻找关于我所面临问题的现有线索,但我没有找到任何线索。{我也有答案。如果这里已经有这样的线索了,我很抱歉。此外,我将为即将到来的相对较长的帖子道歉。在

现在,我要做的是使用AWS RunShellScript文档运行同一个应用程序的多个(阻塞)进程。问题是,使用这种方法启动的进程不能超过5个。如果我通过SSH甚至手动启动它们,我可以启动几十个而没有任何问题。在

我使用的实例是Ubuntu。但使用AWS控制台时,使用AWS.7.7>资源时会发生同样的情况。在

每个命令通常都会阻止终端(即,如果您要手动执行,则阻止您在该终端实例中发出进一步的命令),进而设置其状态,如AWS SSM-正在进行的所示。从本质上讲,从awssm的角度来看,命令是不完整的,直到进程被终止或停止(下面将详细介绍)。在

问题是,我可以通过SSM运行到4个进程,并且仍然能够使用SSM(killing、inspection等)来操作它们——这意味着最多有4个正在进行的4个命令。但是,当我启动第5个命令时,当它们都继续工作时,我不能再使用SSM了,没有其他命令被执行(无论是新进程还是其他命令)

最简单的复制方法是通过AWS RunShellScript文档发送5简单的sleep 60命令,然后尝试任何新命令-您会注意到,在SSM中,它们将弹出为进行中的,但如果您跟踪amazon SSM-代理.log文件,则不会实际执行新命令。更奇怪的是,您会注意到日志在这个块之后停止:

2019-08-13 08:25:12 INFO [MessagingDeliveryService] SendReply Response{
  Description: "Reply e82b5dcb-0e81-4698-8f6e-fe1411f18300 was successfully sent.",
  MessageId: "aws.ssm.1af47ba7-0d28-41ac-83dd-3bffbaa7db2d.i-08d3f4176a025a07b",
  ReplyId: "e82b5dcb-0e81-4698-8f6e-fe1411f18300",
  ReplyStatus: "QUEUED"

超过此点将不再处理进一步的命令,也不会记录进一步的信息。然而,使用我们的例子,当睡眠结束时,队列命令将在另一个插槽打开时立即执行(假设您一次只能将5个命令排队,我相信是这样,但没有提及)。在

注意:正如我已经提到的AWS RunShellScript文档,同样的问题也发生在AWS RunRemoteScript文档中。在

由于我必须提供一些代码,请使用Python从所提到的示例中找到以下代码片段:

^{pr2}$

我希望能够通过SSH或手动运行尽可能多的阻塞命令(这远远超过5),但要么我在SSM方面做错了什么,要么AWS SSM受到了限制。在


Tags: 实例方法代码文档命令aws终端进程
1条回答
网友
1楼 · 发布于 2024-09-30 06:26:56

简短的回答。在amazon ssm中增加CommandWorkersLimit设置-代理.json文件

关于我如何追踪它的反应稍微长一点。在

源代码中的ReleaseNotes

Removed the upper limit for the maximum number of parallel executing documents on the agent (previously the max was 10) You can configure this number by setting the “CommandWorkerLimit” attribute in amazon-ssm-agent.json file

如果我们在Mds部分使用一个峰值amazon-ssm-agent.json.template文件,您可以看到它被设置为5。在

{
    "Profile":{
        "ShareCreds" : true,
        "ShareProfile" : ""
    },
    "Mds": {
        "CommandWorkersLimit" : 5,
        "StopTimeoutMillis" : 20000,
        "Endpoint": "",
        "CommandRetryLimit": 15
    },
... <LOTS DELETED> 
}

相关问题 更多 >

    热门问题