【以下的问题经过翻译处理】 我的应用程序在Fargate实例和本地Docker容器上使用SSM参数存储。我们使用Python中的Boto3进行访问。我团队的多个开发人员位于不同的国家,在一到四周内可能看到一个非常间歇性的问题,大约持续10分钟左右,SSM的调用会失败,出现以下错误:
botocore.exceptions.ConnectTimeoutError: Connect timeout on endpoint URL: “https://ssm.us-east-2.amazonaws.com/”
据我所知,ECS实例似乎没有出现这种情况,这只是当我们通过Boto3从我们的家庭网络访问终端点时才会出现问题。我现在想到我没有验证所有用户是否同时看到问题,或者这只是一个用户一次。下一次我看到它我会尝试测试这个问题。
我尝试了以下方法:
- 降低我们对SSM的调用次数。最多只有每个用户每秒2个调用,而有效地没有其他用户与API同时访问。在查看日志时,我能看到最多的是1分钟内的12个请求。我们没有使用这个非常积极地,所以似乎不可能是限流的问题。我们所有的调用都是通过GetParametersByPath进行分页调用,并且我们使用“WithDecryption=true”。
- 将Boto3的重试方法从Legacy更改为Standard。这可能是一个好主意,但似乎并没有解决问题。
我唯一可靠的解决方法是等待。最终,终端点回来了,我的应用程序再次开始工作。但这真的是一种无法接受的服务中断水平,我觉得我一定做错了什么。
是否有什么设置被我忽略了? 有什么建议可以解决这个问题当不可避免的再次遇到这个问题.