Не завершайте экземпляр EC2, если истекло время ожидания перехвата жизненного цикла - PullRequest
0 голосов
/ 24 марта 2019

Необходимо разрешить запуск экземпляра EC2, если лямбда-механизм слива для завершающего экземпляра не завершается в параметре HeartbeatTimeout, установленном в облачной информации для ловушки жизненного цикла.

У меня есть лямбда-функция, которая истощает экземпляр EC2 и завершает его, когда в облачной форме запускается сигнал уменьшения масштаба. В настоящее время я использую ловушки LifeCycle, чтобы завершить экземпляр в моей облачной информации. Однако я понимаю, что есть параметр HeartbeatTimeout для ловушки жизненного цикла, который убивает случай, когда механизм слива лямбда не завершается в течение этого периода. Я не хочу убивать экземпляр, если лямбда не в состоянии истощить экземпляр внутри HeartbeatTimeout, так как на этом все еще выполняются задачи. Я хотел бы прервать завершение экземпляра и запустить экземпляр в этом случае. Есть ли способ сделать это?

Вот жизненный цикл в облачной информации

"Terminationhook": {
    "Type": "AWS::AutoScaling::LifecycleHook",
    "Properties": {
      "AutoScalingGroupName": { "Ref": "Cluster" },
      "DefaultResult": "ABANDON",
      "HeartbeatTimeout": "3600",
      "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING",
      "NotificationTargetARN": { "Ref" : "SNSTOPIC"},
      "RoleARN": {
        "Fn::GetAtt": [
          "Role",
          "Arn"
        ]
      }
    },
    "DependsOn": "SNSTOPIC"
  }

Если лямбда не истощает экземпляр в течение HeartbeatTimeout в течение 3600 секунд, то я хочу прервать завершение экземпляра

1 Ответ

0 голосов
/ 25 марта 2019

С Хомуты жизненного цикла Amazon EC2 с автоматическим масштабированием - Amazon EC2 с автоматическим масштабированием :

Сохранение экземпляров в состоянии ожидания

Экземплярыможет оставаться в состоянии ожидания в течение конечного периода времени.По умолчанию используется один час (3600 секунд).Вы можете отрегулировать это время следующими способами:

  • Установите время ожидания пульса для ловушки жизненного цикла при создании ловушки жизненного цикла.С помощью команды put-lifecycle-hook используйте параметр --heartbeat-timeout.В операции PutLifecycleHook используйте параметр HeartbeatTimeout.
  • Переходите к следующему состоянию, если вы завершите работу до истечения времени ожидания, используя команду complete-lifecycle-action илиCompleteLifecycleAction операция.
  • Перезапустите период ожидания, записав сердцебиение, используя команду record-lifecycle-action-heartbeat или операцию RecordLifecycleActionHeartbeat.Это увеличивает время ожидания тактового импульса на значение времени ожидания, указанное при создании ловушки жизненного цикла.Например, если значение времени ожидания составляет один час, и вы вызываете эту команду через 30 минут, экземпляр остается в состоянии ожидания в течение дополнительного часа или в общей сложности 90 минут.

Максимумвремя, в течение которого вы можете удерживать экземпляр в состоянии ожидания, составляет 48 часов или в 100 раз превышают время ожидания пульса, в зависимости от того, что меньше.

Итог: Если вам нужно больше времени, вы можете перезапустить период ожидания, записав сердцебиение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...