Amazon web services 如何知道我的实例是否将在ec2中终止?

Amazon web services 如何知道我的实例是否将在ec2中终止?,amazon-web-services,amazon-ec2,Amazon Web Services,Amazon Ec2,我在AWS中有一个自动调用,基本上可以: 运行python进程script.py 此脚本从sqs队列获取要处理的消息 我的自动调用配置为基于队列中可用消息的#启动/终止实例。但有时当我在机器和我的消息中处理某件事时,我的自动缩放触发器终止实例,所以我在处理过程中结束丢失消息。 我开始尝试处理信号,但似乎不起作用 我的主要目标是: 如果我知道我的实例将很快终止,我将等待完成当前进程(我将不会收到任何新消息),并向AWS发送一个信号“OK”以关闭实例 还有什么可以存档的吗?我没有使用负载平衡,因

我在AWS中有一个自动调用,基本上可以:

  • 运行python进程
    script.py
  • 此脚本从sqs队列获取要处理的消息
  • 我的自动调用配置为基于队列中可用消息的#启动/终止实例。但有时当我在机器和我的消息中处理某件事时,我的自动缩放触发器终止实例,所以我在处理过程中结束丢失消息。 我开始尝试处理信号,但似乎不起作用

    我的主要目标是:

    • 如果我知道我的实例将很快终止,我将等待完成当前进程(我将不会收到任何新消息),并向AWS发送一个信号“OK”以关闭实例

    还有什么可以存档的吗?我没有使用负载平衡,因为我手动从队列获取消息。

    您可以使用AWS autoscaling lifecycle挂钩,它们会在终止ec2实例之前将其置于等待状态,并向SNS或cloudwatch发送消息,说明您的实例已准备好终止。您可以同时完成已处理的消息,我发现了一篇有趣的博客文章,解释了与您类似的用例


    您可以使用AWS autoscaling lifecycle挂钩,它们会在终止ec2实例之前将其置于等待状态,并向SNS或cloudwatch发送一条消息,表明您的实例已准备好终止。同时,您可以完成已处理的消息,我发现了一篇有趣的博客文章,解释了与您类似的用例


    我来看看!希望能解决我的问题!谢谢。我相信威利会看看的!希望能解决我的问题!谢谢。我相信最坏的情况是,如果一个实例在处理一条消息时被终止,消息将在一段时间后自动“重新出现”在队列上。这允许对其进行再处理。只有当消息被删除时,它才会重新出现。最坏的情况是,如果实例在处理消息时被终止,消息将在一段时间后自动“重新出现”在队列上。这允许它重新处理。只有删除消息后,它才会重新出现。