

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Fügen Sie Ihrer Auto Scaling-Gruppe Lifecycle-Hooks hinzu
<a name="adding-lifecycle-hooks"></a>

Um Ihre Instances mit automatischer Skalierung in einen Wartezustand zu versetzen und benutzerdefinierte Aktionen für sie durchzuführen, können Sie Ihrer Auto-Scaling-Gruppe Lebenszyklus-Hooks hinzufügen. Benutzerdefinierte Aktionen werden beim Start der Instances oder vor dem Beenden ausgeführt. Die Instances bleiben in einem Wartezustand, bis Sie entweder die Lebenszyklusaktion beenden oder der Timeout-Zeitraum endet.

Nachdem Sie eine Auto Scaling-Gruppe aus der erstellt haben AWS-Managementkonsole, können Sie ihr einen oder mehrere Lifecycle-Hooks hinzufügen, bis zu insgesamt 50 Lifecycle-Hooks. Sie können auch das AWS CLI,, oder ein SDK verwenden CloudFormation, um Lifecycle-Hooks zu einer Auto Scaling-Gruppe hinzuzufügen, während Sie sie erstellen.

Wenn Sie einen Lifecycle-Hook in der Konsole hinzufügen, sendet Amazon EC2 Auto Scaling standardmäßig Benachrichtigungen über Lebenszyklusereignisse an Amazon EventBridge. Die Verwendung EventBridge eines Benutzerdatenskripts ist eine empfohlene bewährte Methode. Um einen Lifecycle-Hook zu erstellen, der Benachrichtigungen direkt an Amazon SNS sendet, können AWS Lambda Sie Amazon SQS oder den [ Befehl ](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html) put-lifecycle-hook verwenden, wie in den Beispielen in diesem Thema gezeigt.

**Topics**
+ [Lebenszyklus-Hooks hinzufügen (Konsole)](#adding-lifecycle-hooks-console)
+ [Lifecycle-Hooks hinzufügen (AWS CLI)](#adding-lifecycle-hooks-aws-cli)

## Lebenszyklus-Hooks hinzufügen (Konsole)
<a name="adding-lifecycle-hooks-console"></a>

Gehen Sie folgendermaßen vor, um Ihrer Auto-Scaling-Gruppe einen Lebenszyklus-Hook hinzuzufügen. Um Lebenszyklus-Hooks zum Aufskalieren (Starten von Instances) und Abskalieren (Beenden von Instances oder bei der Rückkehr zu einem warmen Pool) zu erstellen, müssen Sie zwei separate Hooks erstellen. 

Bevor Sie beginnen, vergewissern Sie sich, dass Sie bei Bedarf eine benutzerdefinierte Aktion eingerichtet haben, wie unter [Vorbereiten des Hinzufügens eines Lebenszyklus-Hook zu einer Auto-Scaling-Gruppe](prepare-for-lifecycle-notifications.md) beschrieben.

**So fügen Sie einen Lebenszyklus-Hook für das Aufskalieren hinzu**

1. Öffnen Sie die Amazon EC2-Konsole unter und wählen Sie im Navigationsbereich Auto Scaling [ https://console.aws.amazon.com/ec2/ ](https://console.aws.amazon.com/ec2/) Groups aus. ** **

1. Aktivieren Sie das Kontrollkästchen neben Ihrer Auto-Scaling-Gruppe. Im unteren Teil der Seite wird ein geteilter Bereich geöffnet. 

1. Wählen Sie auf der Registerkarte **Instance management (Instance-Verwaltung)** unter **Lebenszyklus-Hooks** die Option **Create Lebenszyklus hook (Lebenszyklus-Hook erstellen)** aus.

1. Gehen Sie wie folgt vor, um einen Lebenszyklus-Hook zum Aufskalieren (Start von Instances) zu definieren:

   1. Geben Sie bei **Lebenszyklus hook name (Name des Lebenszyklus-Hooks)** einen Namen für den Lebenszyklus-Hook an.

   1. Wählen Sie bei **Lifecycle Transition (Lebenszykluswechsel)** die Option **Instance launch (Instance-Start)** aus.

   1. Geben Sie für **Heartbeat-Zeitüberschreitung** die Zeitspanne in Sekunden an, für die Instances in einem Wartezustand verbleiben sollen, wenn Sie aufskalieren, bevor die Zeitüberschreitung des Hook erreicht ist. Der Bereich liegt zwischen `30` und `7200` Sekunden. Das Festlegen eines langen Timeout-Zeitraums bietet mehr Zeit für den Abschluss der benutzerdefinierten Aktion. Falls Sie zum Ende kommen, bevor eine Zeitüberschreitung auftritt, verwenden Sie den Befehl [complete-lifecycle-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/complete-lifecycle-action.html), damit die Instance in den nächsten Status übergehen kann. 

   1. Definieren Sie für ein **Default result** (Standardergebnis) die Aktion, die ausgeführt werden soll, wenn für den Lebenszyklus-Hook eine Zeitüberschreitung oder ein unerwarteter Fehler auftritt. Sie können entweder **FORTSETZEN** oder **ABBRUCH** auswählen.
      + Wenn Sie **FORTSETZEN** wählen, kann die Auto-Scaling-Gruppe mit allen anderen Lebenszyklus-Hooks fortfahren und die Instance dann in Betrieb nehmen.
      + Wenn Sie **ABBRUCH** wählen, beendet die Auto-Scaling-Gruppe alle verbleibenden Aktionen und beendet die Instance sofort.

   1. (Optional) Geben Sie bei **Benachrichtigungsmetadaten** die weiteren Informationen an, die Sie hinzufügen möchten, wenn Amazon EC2 Auto Scaling eine Nachricht an das Benachrichtigungsziel sendet. 

1. Wählen Sie **Erstellen** aus.

**So fügen Sie einen Lebenszyklus-Hook für das Abskalieren hinzu**

1. Wählen Sie **Lebenszyklus-Hook erstellen**, um dort weiterzumachen, wo Sie aufgehört haben, nachdem Sie einen Lebenszyklus-Hook für die horizontale Aufskalierung erstellt haben.

1. Gehen Sie wie folgt vor, um einen Lebenszyklus-Hook für die Abskalierung zu definieren (Instances, die beendet werden oder zu einem warmen Pool zurückkehren):

   1. Geben Sie bei **Lebenszyklus hook name (Name des Lebenszyklus-Hooks)** einen Namen für den Lebenszyklus-Hook an.

   1. Wählen Sie bei **Lifecycle Transition (Lebenszykluswechsel)** die Option **Instance Terminate (Instance-Beendigung)** aus. 

   1. Geben Sie für **Heartbeat-Zeitüberschreitung** die Zeitspanne in Sekunden an, für die Instances in einem Wartezustand verbleiben sollen, wenn Sie aufskalieren, bevor die Zeitüberschreitung des Hook erreicht ist. Wir empfehlen ein kurzes Timeout von `30` bis zu `120` Sekunden, je nachdem, wie viel Zeit Sie für die Ausführung der letzten Aufgaben benötigen, z. B. das Abrufen von EC2-Protokollen. CloudWatch

   1. Geben Sie als **Default Result** (Standardergebnis) die Aktion an, die von der Auto-Scaling-Gruppe ausführt wird, wenn für den Lebenszyklus-Hook ein Timeout oder ein unerwarteter Fehler auftritt. Sowohl **ABANDON** (ABBRUCH) als auch **CONTINUE** (FORTSETZEN) ermöglichen das Beenden der Instance. 
      + Wenn Sie **CONTINUE** (FORTSETZEN) wählen, kann die Auto-Scaling-Gruppe vor der Beendigung alle verbleibenden Aktionen, z. B. andere Lebenszyklus-Hooks, ausführen. 
      + Wenn Sie **ABBRUCH** wählen, beendet die Auto-Scaling-Gruppe die Instance sofort. 

   1. (Optional) Geben Sie bei **Benachrichtigungsmetadaten** die weiteren Informationen an, die Sie hinzufügen möchten, wenn Amazon EC2 Auto Scaling eine Nachricht an das Benachrichtigungsziel sendet.

1. Wählen Sie **Erstellen** aus.

## Lifecycle-Hooks hinzufügen (AWS CLI)
<a name="adding-lifecycle-hooks-aws-cli"></a>

Lebenszyklus-Hooks erstellen und aktualisieren Sie mit dem Befehl [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html).

Verwenden Sie den folgenden Befehl zum Ausführen einer Aktion bei einer horizontalen Skalierung nach oben:

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name {{my-launch-hook}}  \
  --auto-scaling-group-name {{my-asg}} \
  --lifecycle-transition autoscaling:EC2_INSTANCE_LAUNCHING
```

Verwenden Sie hingegen den folgenden Befehl, um bei einer horizontalen Skalierung nach unten eine Aktion durchzuführen:

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name {{my-termination-hook}}  \
  --auto-scaling-group-name {{my-asg}} \
  --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING
```

Um Benachrichtigungen mit Amazon SNS oder Amazon SQS zu empfangen, fügen Sie die Optionen `--notification-target-arn` und `--role-arn` hinzu. Um Benachrichtigungen mit zu erhalten AWS Lambda, fügen Sie das hinzu`--notification-target-arn`.

Im folgenden Beispiel wird ein Lebenszyklus-Hook erstellt, der ein SNS-Thema mit dem Namen `{{my-sns-topic}}` als Benachrichtigungsziel definiert.

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name {{my-termination-hook}}  \
  --auto-scaling-group-name {{my-asg}} \
  --lifecycle-transition autoscaling:EC2_INSTANCE_TERMINATING \
  --notification-target-arn arn:aws:sns:{{region}}:{{123456789012}}:{{my-sns-topic}} \
  --role-arn arn:aws:iam::{{123456789012}}:role/{{my-notification-role}}
```

Das Thema erhält eine Testbenachrichtigung mit dem folgenden Schlüssel-Wert-Paar:

```
"Event": "autoscaling:TEST_NOTIFICATION"
```

Standardmäßig erstellt der Befehl [put-lifecycle-hook](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/put-lifecycle-hook.html) einen Lebenszyklus-Hook mit einem Heartbeat-Timeout von `3600` Sekunden (eine Stunde). 

Um das Heartbeat-Timeout für einen vorhandenen Lebenszyklus-Hook zu ändern, fügen Sie die Option `--heartbeat-timeout` hinzu, wie im folgenden Beispiel gezeigt.

```
aws autoscaling put-lifecycle-hook --lifecycle-hook-name {{my-termination-hook}} \
  --auto-scaling-group-name {{my-asg}} --heartbeat-timeout {{120}}
```

Wenn sich eine Instance bereits im Wartezustand befindet, können Sie verhindern, dass der Lebenszyklus-Hook das Time-Out hat, indem Sie durch Verwendung des [record-lifecycle-action-heartbeat](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/record-lifecycle-action-heartbeat.html)-CLI-Befehls einen Heartbeat aufzeichnen. Diese erweitert die Zeitüberschreitung um den Zeitüberschreitungswert, den Sie bei der Erstellung des Lebenszyklus-Hooks festgelegt haben. Falls Sie zum Ende kommen, bevor eine Zeitüberschreitung auftritt, verwenden Sie den CLI-Befehl [complete-lifecycle-action](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/autoscaling/complete-lifecycle-action.html), damit die Instance in den nächsten Status übergehen kann. Weitere Informationen und Beispiele finden Sie unter [Schließen Sie eine Lifecycle-Aktion in einer Auto Scaling-Gruppe ab](completing-lifecycle-hooks.md).