

• Das AWS Systems Manager CloudWatch Dashboard wird nach dem 30. April 2026 nicht mehr verfügbar sein. Kunden können weiterhin die CloudWatch Amazon-Konsole verwenden, um ihre CloudWatch Amazon-Dashboards anzusehen, zu erstellen und zu verwalten, so wie sie es heute tun. Weitere Informationen finden Sie in der [Amazon CloudWatch Dashboard-Dokumentation](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

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.

# AWS Systems Manager Tools für das Änderungsmanagement
<a name="systems-manager-actions-and-change"></a>

AWS Systems Manager stellt die folgenden Tools bereit, mit denen Sie Änderungen an Ihren AWS Ressourcen vornehmen können.

**Topics**
+ [AWS Systems Manager-Automatisierung](systems-manager-automation.md)
+ [AWS Systems Manager Change Calendar](systems-manager-change-calendar.md)
+ [AWS Systems Manager Change Manager](change-manager.md)
+ [AWS Systems Manager-Documents](documents.md)
+ [AWS Systems Manager Maintenance Windows](maintenance-windows.md)
+ [AWS Systems Manager Quick Setup](systems-manager-quick-setup.md)

# AWS Systems Manager-Automatisierung
<a name="systems-manager-automation"></a>

Automation, ein Tool in AWS Systems Manager, vereinfacht allgemeine Wartungs-, Bereitstellungs- und Problembehebungsaufgaben für AWS-Services Amazon Elastic Compute Cloud (Amazon EC2), Amazon Relational Database Service (Amazon RDS), Amazon Redshift, Amazon Simple Storage Service (Amazon S3) und viele mehr. Um mit der Automatisierung zu beginnen, öffnen Sie die [Systems-Manager-Konsole](https://console.aws.amazon.com/systems-manager/automation). Klicken Sie im Navigationsbereich auf **Automation**. 

Automation hilft Ihnen, automatisierte Lösungen für die Bereitstellung, Konfiguration und Verwaltung von AWS -Ressourcen im großen Umfang zu entwickeln. Mit Automation haben Sie eine detaillierte Kontrolle über die Nebenläufigkeit der Automatisierungen. So können Sie zum Beispiel angeben, wie viele Ressourcen gleichzeitig verarbeitet werden sollen und wie viele Fehler auftreten können, bevor eine Automatisierung gestoppt wird. 

Um Ihnen den Einstieg in die Automatisierung zu erleichtern, AWS entwickelt und verwaltet das Unternehmen mehrere vordefinierte Runbooks. Je nach Anwendungsfall können Sie diese vordefinierten Runbooks nutzen, die verschiedene Aufgaben ausführen, oder eigene benutzerdefinierte Runbooks erstellen, die Ihren Anforderungen besser entsprechen. Um den Fortschritt und den Status der Automatisierungen zu überwachen, können Sie die Systems-Manager-Automation-Konsole oder Ihr bevorzugtes Befehlszeilen-Tool nutzen. Automation lässt sich auch in Amazon integrieren EventBridge , um Sie beim Aufbau einer ereignisgesteuerten Architektur in großem Maßstab zu unterstützen.

**Anmerkung**  
Für Kunden, die seit dem 14. August 2025 neu bei Systems Manager Automation sind, ist das kostenlose Kontingent Automation nicht verfügbar. Für Kunden, die Automation bereits nutzen, endet das kostenlose Nutzungskontingent am 31. Dezember 2025. Informationen zu den Servicekosten finden Sie unter [AWS Systems Manager Preise](https://aws.amazon.com/systems-manager/pricing/).

## Wie kann meine Organisation von Automation profitieren?
<a name="automation-benefits"></a>

Automation bietet die folgenden Vorteile:
+ **Unterstützung der Skripterstellung in Runbook-Inhalten**

  Mit der `aws:executeScript` Aktion können Sie benutzerdefiniertes Python und PowerShell Funktionen direkt von Ihren Runbooks aus ausführen. Das bietet Ihnen eine größere Flexibilität beim Erstellen eigener Runbooks, da Sie verschiedene Aufgaben ausführen können, die andere Automation-Aktionen nicht unterstützen. Zudem haben Sie eine bessere Kontrolle über die Logik des Runbooks. Ein Beispiel dafür, wie diese Aktion genutzt werden kann und wie sie zur Verbesserung einer bestehenden automatisierten Lösung beitragen kann, finden Sie unter [Erstellen von Automation-Runbooks](automation-authoring-runbooks.md).
+  **Führen Sie Automatisierungen für mehrere Benutzer AWS-Konten und AWS-Regionen von einem zentralen Ort aus aus** 

  Administratoren können über die Systems-Manager-Konsole Automatisierungen für Ressourcen in mehreren Konten und Regionen ausführen.
+  **Verbesserte Betriebssicherheit** 

  Administratoren verfügen über eine zentrale Stelle zum Erteilen und Widerrufen des Zugriffs auf Runbooks. Mithilfe von reinen AWS Identity and Access Management (IAM-) Richtlinien können Sie steuern, welche einzelnen Benutzer oder Gruppen in Ihrer Organisation Automation verwenden können und auf welche Runbooks sie zugreifen können.
+  **Automatisieren von häufigen IT-Aufgaben** 

  Die Automatisierung häufiger Aufgaben kann dazu beitragen, die betriebliche Effizienz zu verbessern, organisatorische Standards durchzusetzen und Bedienfehler zu reduzieren. Sie können das `AWS-UpdateCloudFormationStackWithApproval` Runbook beispielsweise verwenden, um Ressourcen zu aktualisieren, die mithilfe einer Vorlage bereitgestellt wurden. AWS CloudFormation Die Aktualisierung wendet eine neue Vorlage an. Sie können Automation so konfigurieren, dass es eine Genehmigung von einem oder mehreren -Benutzer anfordert, bevor die Aktualisierung beginnt.
+  **Sichere Ausführung störender Aufgaben auf einmal** 

  Automation umfasst Funktionen wie etwa Ratensteuerelemente, mit deren Hilfe Sie die Bereitstellung einer Automatisierung in der gesamten Flotte durch Angabe eines Nebenläufigkeits- und eines Fehlerschwellenwerts steuern können. Weitere Informationen zum Arbeiten mit Ratensteuerelementen finden Sie unter [Automatisierte Abläufe in großem Umfang ausführen](running-automations-scale.md).
+ **Optimieren komplexer Aufgaben**

  Automation bietet vordefinierte Runbooks, die komplexe und zeitaufwendige Aufgaben wie das Erstellen von goldenen Amazon Machine Images (AMIs) optimieren. Mit den Runbooks `AWS-UpdateLinuxAmi` und `AWS-UpdateWindowsAmi` können Sie zum Beispiel goldene AMIs aus einem Quell-AMI erstellen. Mithilfe dieser Runbooks können Sie benutzerdefinierte Skripte ausführen, bevor und nachdem Updates angewendet werden. Zudem können Sie bestimmte Softwarepakete in die Installation einbeziehen oder daraus ausschließen. Beispiele für die Ausführung dieser Runbooks finden Sie unter [Tutorials](automation-tutorials.md).
+ **Definieren von Einschränkungen für Eingaben**

  In benutzerdefinierten Runbooks können Einschränkungen definiert werden, um die Werte einzugrenzen, die Automation für einen bestimmten Eingabeparameter akzeptiert. `allowedPattern` zum Beispiel akzeptiert für einen Eingabeparameter nur Werte, die dem von Ihnen definierten regulären Ausdruck entsprechen. Wenn Sie `allowedValues` für einen Eingabeparameter angeben, werden nur die Werte akzeptiert, die Sie im Runbook angegeben haben.
+  **Ausgabe von Aktionen zur Protokollautomatisierung in Amazon CloudWatch Logs** 

  Zur Erfüllung betriebs- oder sicherheitsbezogener Anforderungen in Ihrer Organisation müssen Sie möglicherweise eine Aufzeichnung der während eines Runbooks ausgeführten Skripte bereitstellen. Mit CloudWatch Logs können Sie Protokolldateien aus verschiedenen Quellen überwachen, speichern und darauf zugreifen AWS-Services. Sie können die Ausgabe der `aws:executeScript` Aktion zu Debugging- und Fehlerbehebungszwecken an eine CloudWatch Protokollgruppe „Logs“ senden. Protokolldaten können mit oder ohne AWS KMS Verschlüsselung mithilfe Ihres KMS-Schlüssels an Ihre Protokollgruppe gesendet werden. Weitere Informationen finden Sie unter [Ausgabe von Automatisierungsaktionen mit CloudWatch Protokollen protokollieren](automation-action-logging.md).
+  ** EventBridge Amazon-Integration** 

  Automatisierung wird in EventBridge Amazon-Regeln als *Zieltyp* unterstützt. Das bedeutet, dass Sie Runbooks mithilfe von Ereignissen auslösen können. Weitere Informationen erhalten Sie unter [Überwachung von Systems Manager Manager-Ereignissen mit Amazon EventBridge](monitoring-eventbridge-events.md) und [Referenz: EventBridge Amazon-Ereignistypen und -muster für Systems Manager](reference-eventbridge-events.md).
+ **Gemeinsame Nutzung von bewährten Methoden für Organisationen**

  Sie können bewährte Methoden u. a. für das Ressourcenmanagement und Betriebsaufgaben in Runbooks definieren, die Sie in mehreren Konten und Regionen nutzen.

## Wer sollte Automation nutzen?
<a name="automation-who"></a>
+ Jeder AWS Kunde, der seine betriebliche Effizienz in großem Umfang verbessern, Fehler im Zusammenhang mit manuellen Eingriffen reduzieren und die Zeit bis zur Lösung häufig auftretender Probleme verkürzen möchte.
+ Infrastrukturexperten, die Bereitstellungs- und Konfigurationsaufgaben automatisieren möchten.
+ Administratoren, die häufig auftretende Probleme zuverlässig lösen, die Effizienz bei der Fehlerbehebung verbessern und die Anzahl sich wiederholender Vorgänge reduzieren möchten.
+ Benutzer, die eine Aufgabe automatisieren möchten, die sie normalerweise manuell ausführen.

## Was ist eine Automatisierung?
<a name="what-is-an-automation"></a>

Eine *Automatisierung* besteht aus allen Aufgaben, die in einem Runbook definiert sind und vom Automation-Service ausgeführt werden. Automation nutzt die folgenden Komponenten zur Ausführung von Automatisierungen.


****  

| Konzept | Details | 
| --- | --- | 
|  Automation-Runbook  |  Ein Systems Manager Automation-Runbook definiert die Automatisierung (die Aktionen, die Systems Manager auf Ihren verwalteten Knoten und AWS Ressourcen ausführt). Automatisierung umfasst mehrere vordefinierte Runbooks, die Sie verwenden können, um allgemeine Aufgaben wie das Neustarten einer oder mehrerer Amazon-EC2-Instances oder das Erstellen eines Amazon Machine Image (AMI) auszuführen. Sie können auch eigene Runbooks erstellen. Die Runbooks liegen im YAML- oder JSON-Format vor und enthalten die von Ihnen angegebenen Schritte und Parameter. Die Schritte werden nacheinander ausgeführt. Weitere Informationen finden Sie unter [Erstellen Ihrer eigenen Runbooks](automation-documents.md). Runbooks sind Systems Manager-Dokumente vom Typ `Automation`, im Gegensatz zu `Command`, `Policy`, `Session`-Dokumenten. Runbooks unterstützen die Schemaversion 0.3. Befehlsdokumente mit Schema-Version 1.2, 2.0 oder 2.2. Richtliniendokumente verwenden die Schemaversion 2.0 oder höher.  | 
|  Automation-Aktion  |  Die in einem Runbook definierte Automatisierung umfasst einen oder mehrere Schritte. Jeder Schritt entspricht einer bestimmten Aktion. Die Aktion bestimmt die Eingaben, das Verhalten und die Ausgaben des Schritts. Die Schritte sind im `mainSteps`-Bereich Ihres Runbooks definiert. Die Automatisierung unterstützt 20 verschiedene Aktionstypen. Weitere Informationen hierzu finden Sie unter [Systems Manager Automation Aktionen-Referenz](automation-actions.md).  | 
|  Automation-Kontingente  |  Jeder AWS-Konto kann 100 Automatisierungen gleichzeitig ausführen. Dazu gehören untergeordnete Automatisierungen (Automatisierungen, die durch eine andere Automatisierung gestartet werden) und Automatisierungen der Ratenregelung. Wenn Sie versuchen, mehr Automatisierungen auszuführen, fügt Systems Manager die zusätzlichen Automatisierungen zu einer Warteschlange hinzu und zeigt den Status „Pending“ an. Dieses Kontingent kann mithilfe von adaptiver Nebenläufigkeit angepasst werden. Weitere Informationen finden Sie unter[Zulassen, dass sich Automation an Ihre Nebenläufigkeitsanforderungen anpasst](adaptive-concurrency.md). Informationen zur Ausführung von Automatisierungen finden Sie unter [Führen Sie einen automatisierten Vorgang aus, der von Systems Manager Automation unterstützt wird](running-simple-automations.md).  | 
|  Automatisierungs-Warteschlange  |  Wenn Sie versuchen, mehr Automatisierungen als das gleichzeitige Automatisierungslimit auszuführen, werden nachfolgende Automatisierungen zu einer Warteschlange hinzugefügt. Jedes AWS-Konto kann 5 000 Automatisierungen in die Warteschlange stellen. Sobald eine Automatisierung abgeschlossen ist (oder einen Terminalstatus erreicht), beginnt die erste Automatisierung in der Warteschlange.  | 
|  Kontingent für Automatisierungen der Ratenregelung  |  Jeder AWS-Konto kann 25 Automationen zur Ratensteuerung gleichzeitig ausführen. Wenn Sie versuchen, mehr Automatisierungen der Ratenregelung als das gleichzeitige Limit durchzuführen, fügt Systems Manager der Warteschlange die nachfolgenden Automatisierungen der Ratenregelung hinzu und zeigt den Status „Pending“ . Weitere Informationen über die Ratenregelung-Automatisierungen finden Sie unter [Automatisierte Abläufe in großem Umfang ausführen](running-automations-scale.md).  | 
|  Kontingent für Automatisierungs-Warteschlange der Ratenregelung  |  Wenn Sie versuchen, mehr Automatisierungen als das Limit für gleichzeitige Automatisierungen der Ratenregelung auszuführen, werden nachfolgende Automatisierungen zu einer Warteschlange hinzugefügt. Jeder AWS-Konto kann 1.000 Automationen zur Ratensteuerung in die Warteschlange stellen. Sobald eine Automatisierung abgeschlossen ist (oder einen Terminalstatus erreicht), beginnt die erste Automatisierung in der Warteschlange.  | 

**Topics**
+ [Wie kann meine Organisation von Automation profitieren?](#automation-benefits)
+ [Wer sollte Automation nutzen?](#automation-who)
+ [Was ist eine Automatisierung?](#what-is-an-automation)
+ [Einrichten der Automatisierung](automation-setup.md)
+ [Führen Sie einen automatisierten Vorgang aus, der von Systems Manager Automation unterstützt wird](running-simple-automations.md)
+ [Wiederholtes Ausführen von Automatisierungsausführungen](automation-rerun-executions.md)
+ [Eine Automatisierung ausführen, für die Genehmigungen erforderlich sind](running-automations-require-approvals.md)
+ [Automatisierte Abläufe in großem Umfang ausführen](running-automations-scale.md)
+ [Automatisierungen in mehreren Konten AWS-Regionen ausführen](running-automations-multiple-accounts-regions.md)
+ [Führen Sie Automatisierungen auf EventBridge der Grundlage von Ereignissen aus](running-automations-event-bridge.md)
+ [Ausführen einer Automatisierung Schritt für Schritt](automation-working-executing-manually.md)
+ [Planen von Automatisierungen mit State Manager-Zuordnungen](scheduling-automations-state-manager-associations.md)
+ [Planen von Automatisierungen mit Wartungsfenstern](scheduling-automations-maintenance-windows.md)
+ [Systems Manager Automation Aktionen-Referenz](automation-actions.md)
+ [Erstellen Ihrer eigenen Runbooks](automation-documents.md)
+ [Runbook-Referenz für Systems Manager Automation](automation-documents-reference.md)
+ [Tutorials](automation-tutorials.md)
+ [Erfahren Sie mehr über die von Systems Manager Automation zurückgegebenen Status](automation-statuses.md)
+ [Fehlerbehebung für Systems Manager Automation.](automation-troubleshooting.md)

# Einrichten der Automatisierung
<a name="automation-setup"></a>

Um Automation, ein Tool in, einzurichten AWS Systems Manager, müssen Sie den Benutzerzugriff auf den Automationsdienst überprüfen und Rollen situationsabhängig konfigurieren, damit der Dienst Aktionen an Ihren Ressourcen ausführen kann. Außerdem empfiehlt es sich, in den Automation-Einstellungen den adaptiven Nebenläufigkeitsmodus zu aktivieren. Die adaptive Nebenläufigkeit passt Ihr Automatisierungskontingent automatisch an Ihre Anforderungen an. Weitere Informationen finden Sie unter [Zulassen, dass sich Automation an Ihre Nebenläufigkeitsanforderungen anpasst](adaptive-concurrency.md).

Um einen ordnungsgemäßen Zugriff auf AWS Systems Manager Automation sicherzustellen, sollten Sie die folgenden Anforderungen an Benutzer- und Servicerollen überprüfen.

## Überprüfen des Benutzerzugriffs für Runbooks
<a name="automation-setup-user-access"></a>

Stellen Sie sicher, dass Sie berechtigt sind, Runbooks zu verwenden. Wenn Ihrem Benutzer, Ihrer Gruppe oder Ihrer Rolle Administratorrechte zugewiesen sind, haben Sie Zugriff auf Systems Manager Automation. Wenn Sie nicht über Administratorrechte verfügen, muss ein Administrator Ihnen die Berechtigung gewähren, indem er die von `AmazonSSMFullAccess` verwaltete Richtlinie oder eine Richtlinie, die vergleichbare Berechtigungen bereitstellt, Ihrem Benutzer, Ihrer Gruppe oder Ihrer Rolle zuweist.

**Wichtig**  
Die IAM-Richtlinie `AmazonSSMFullAccess` erteilt Berechtigungen für Systems Manager Aktionen. Einige Runbooks erfordern jedoch Berechtigungen für andere Services, z. B. das Runbook `AWS-ReleaseElasticIP`, das IAM-Berechtigungen für `ec2:ReleaseAddress` erfordert. Daher müssen Sie die in einem Runbook ausgeführten Aktionen überprüfen, um sicherzustellen, dass Ihrem Benutzer, Ihrer Gruppe oder Ihrer Rolle die erforderlichen Berechtigungen zum Ausführen der im Runbook enthaltenen Aktionen zugewiesen sind.

## Konfigurieren eines Service-Rollenzugriffs (Rolle übernehmen) für Automatisierungen
<a name="automation-setup-configure-role"></a>

Automation kann im Kontext einer Service-Rolle initiiert werden (oder *Übernahmerolle*). Auf diese Weise kann der Service Aktionen in Ihrem Namen ausführen. Wenn Sie keine Übernahmerolle angeben, verwendet Automation den Kontext des Benutzers, der die Automatisierung aufgerufen hat.

In den folgenden Situationen müssen Sie jedoch eine Servicerolle für Automation angeben:
+ Wenn Sie die Zugriffsberechtigungen eines Benutzers für eine Ressource einschränken, aber dem Benutzer die Ausführung einer Automatisierung gestatten möchten, der höhere Berechtigungen erfordert. In diesem Szenario können Sie eine Servicerolle mit höheren Berechtigungen erstellen und dem Benutzer das Ausführen der Automatisierung gestatten.
+ Wenn Sie eine Systems Manager State Manager-Zuordnung zum Ausführen eines Runbooks erstellen.
+ Wenn Sie Vorgänge haben, die voraussichtlich länger als 12 Stunden ausgeführt werden.
+ Wenn Sie ein Runbook ausführen, das nicht Amazon gehört und die `aws:executeScript` Aktion verwendet, um eine AWS API-Operation aufzurufen oder auf eine AWS Ressource zu reagieren. Weitere Informationen finden Sie unter [Berechtigungen für die Verwendung von Runbooks](automation-document-script-considerations.md#script-permissions).

Wenn Sie eine Servicerolle für Automation erstellen müssen, können Sie eine der folgenden Methoden anwenden.

**Topics**
+ [Überprüfen des Benutzerzugriffs für Runbooks](#automation-setup-user-access)
+ [Konfigurieren eines Service-Rollenzugriffs (Rolle übernehmen) für Automatisierungen](#automation-setup-configure-role)
+ [Erstellen Sie Servicerollen für die Automatisierung mithilfe von CloudFormation](automation-setup-cloudformation.md)
+ [Erstellen Sie die Servicerollen für Automation mithilfe der Konsole](automation-setup-iam.md)
+ [Beispiele für die Einrichtung identitätsbasierter Richtlinien](automation-setup-identity-based-policies.md)
+ [Zulassen, dass sich Automation an Ihre Nebenläufigkeitsanforderungen anpasst](adaptive-concurrency.md)
+ [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md)
+ [Implementieren von Änderungskontrollen für Automatisierung](automation-change-calendar-integration.md)

# Erstellen Sie Servicerollen für die Automatisierung mithilfe von CloudFormation
<a name="automation-setup-cloudformation"></a>

Sie können eine Servicerolle für Automation, ein Tool in AWS Systems Manager, aus einer AWS CloudFormation Vorlage erstellen. Nachdem Sie die Servicerolle erstellt haben, können Sie die Servicerolle in Runbooks mit dem Parameter `AutomationAssumeRole` angeben.

## Erstellen Sie die Servicerolle mit CloudFormation
<a name="create-iam-service-role"></a>

Gehen Sie wie folgt vor, um die erforderliche Rolle AWS Identity and Access Management (IAM) für Systems Manager Automation zu erstellen, indem Sie CloudFormation.

**Erstellen der erforderlichen IAM-Rolle**

1. Laden Sie die [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationServiceRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationServiceRole.zip)-Datei herunter und entpacken Sie diese. Diese Datei enthält die `AWS-SystemsManager-AutomationServiceRole.yaml` CloudFormation Vorlagendatei.

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie **Stack erstellen** aus.

1. Wählen Sie im Abschnitt **Specify template (Vorlage angeben)** die Option **Upload a template file (Vorlagendatei hochladen)** aus.

1. Wählen Sie **Durchsuchen** und wählen Sie dann die `AWS-SystemsManager-AutomationServiceRole.yaml` CloudFormation Vorlagendatei aus.

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

1. Geben Sie auf der Seite **Stack-Details angeben** im Feld **Stack-Name** einen Namen ein. 

1. Auf der Seite **Configure stack options (Stack-Optionen konfigurieren)** müssen Sie keine Auswahl treffen. Wählen Sie **Weiter** aus.

1. Scrollen Sie auf der Seite **„Überprüfen**“ nach unten und wählen Sie die Option **Ich bestätige, dass CloudFormation möglicherweise IAM-Ressourcen erstellt** werden.

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

CloudFormation zeigt den Status **CREATE\$1IN\$1PROGRESS** für ungefähr drei Minuten an. Der Status wird in **CREATE\$1COMPLETE** geändert, sobald der Stack erstellt wurde und die Rollen verwendet werden können.

**Wichtig**  
Wenn Sie einen automatisierten Workflow ausführen, der andere Services mithilfe einer AWS Identity and Access Management -(IAM)-Servicerolle aufruft, muss die Servicerolle mit der Berechtigung zum Aufrufen dieser Services konfiguriert sein. Diese Anforderung gilt für alle AWS Automatisierungs-Runbooks (`AWS-*`Runbooks) wie die`AWS-ConfigureS3BucketLogging`,, und `AWS-RestartEC2Instance` Runbooks`AWS-CreateDynamoDBBackup`, um nur einige zu nennen. Diese Anforderung gilt auch für alle benutzerdefinierten Automatisierungs-Runbooks, die Sie erstellen und die andere mithilfe AWS-Services von Aktionen aufrufen, die andere Dienste aufrufen. Wenn Sie unter anderem `aws:executeAwsApi`-, `aws:createStack`- oder `aws:copyImage`-Aktionen verwenden, konfigurieren Sie die Dienstrolle mit der Berechtigung zum Aufrufen solcher Services. Sie können anderen AWS-Services Berechtigungen erteilen, indem Sie der Rolle eine eingebundene IAM-Richtlinie hinzufügen. Weitere Informationen finden Sie unter [(Optional) Fügen Sie eine Inline-Automatisierungsrichtlinie oder eine vom Kunden verwaltete Richtlinie hinzu, um andere aufzurufen AWS-Services](automation-setup-iam.md#add-inline-policy).

## Kopieren von Rolleninformationen für Automation
<a name="copy-iam-role-info"></a>

Gehen Sie wie folgt vor, um Informationen über die Automations-Servicerolle aus der CloudFormation Konsole zu kopieren. Sie müssen diese Rollen beim Verwenden eines Runbooks festlegen.

**Anmerkung**  
Sie müssen keine Rolleninformationen mit diesen Schritten kopieren, wenn Sie die Runbooks `AWS-UpdateLinuxAmi` oder `AWS-UpdateWindowsAmi` ausführen. In diesen Runbook sind die erforderlichen Rollen bereits als Standardwerte festgelegt. Die Rollen in diesen Runbooks verwenden von IAM verwaltete Richtlinien. 

**Kopieren der Rollennamen**

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie den **Stack name (Stack-Name)** der Automation aus, den Sie im vorherigen Verfahren erstellt haben.

1. Wählen Sie die Registerkarte **Resources (Ressourcen)** aus.

1. Wählen Sie den Link **Physical ID** für. **AutomationServiceRole** Beim Öffnen der IAM-Konsole wird eine Zusammenfassung der Servicerolle für die Automatisierung angezeigt.

1. Kopieren Sie den Amazon-Ressourcennamen (ARN) neben **Role ARN (Rollen-ARN)**. Der ARN ist ähnlich wie der folgende: `arn:aws:iam::12345678:role/AutomationServiceRole`

1. Kopieren Sie den ARN zur späteren Verwendung in eine Textdatei.

Sie haben die Konfiguration der Automation-Servicerolle abgeschlossen. Sie können jetzt den ARN der Automation-Servicerolle in Ihren Runbooks verwenden.

# Erstellen Sie die Servicerollen für Automation mithilfe der Konsole
<a name="automation-setup-iam"></a>

Wenn Sie eine Servicerolle für Automation, ein Tool in, erstellen müssen AWS Systems Manager, führen Sie die folgenden Aufgaben aus. Weitere Informationen darüber, wann eine Servicerolle für Automation erforderlich ist, finden Sie unter [Einrichten der Automatisierung](automation-setup.md).

**Topics**
+ [Aufgabe 1: Erstellen einer Servicerolle für Automation](#create-service-role)
+ [Aufgabe 2: Hängen Sie die iam: PassRole -Richtlinie an Ihre Automation-Rolle an](#attach-passrole-policy)

## Aufgabe 1: Erstellen einer Servicerolle für Automation
<a name="create-service-role"></a>

Führen Sie die folgenden Schritte zum Erstellen einer Service-Rolle (oder *Übernahmerolle*) für Systems Manager Automation.

**Anmerkung**  
Sie können diese Rolle auch in Runbooks, wie dem `AWS-CreateManagedLinuxInstance`-Runbook, verwenden. Wenn Sie diese Rolle oder den Amazon-Ressourcennamen (ARN) einer AWS Identity and Access Management (IAM) -Rolle in Runbooks verwenden, kann Automation Aktionen in Ihrer Umgebung ausführen, z. B. neue Instances starten und Aktionen in Ihrem Namen ausführen.

**Erstellen einer IAM-Rolle und Gestatten der Automatisierung**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Roles (Rollen)** und dann **Create role (Rolle erstellen)**.

1. Wählen Sie unter **Select type of trusted entity** (Typ der vertrauenswürdigen Entität auswählen) die Option **AWS -Service** aus.

1. Wählen Sie im Abschnitt **Choose a use case (Anwendungsfall auswählen)** die Option **Systems Manager** und wählen Sie dann **Next: Permissions (Weiter: Berechtigungen)**.

1. Suchen Sie auf der Seite **Angehängte Berechtigungsrichtlinie** nach der **SSMAutomationAmazon-Rollenrichtlinie**, wählen Sie sie aus und klicken Sie dann auf **Weiter: Überprüfen**. 

1. Geben Sie auf der Seite **Review** im Feld **Role name** einen Namen und anschließend eine Beschreibung ein.

1. Wählen Sie **Create role (Rolle erstellen)** aus. Das System leitet Sie zur Seite **Rollen** zurück.

1. Wählen Sie auf der Seite **Roles (Rollen)** die gerade erstellte Rolle aus, um die Seite **Summary (Übersicht)** zu öffnen. Notieren Sie sich den **Role Name (Rollenname)** und **Role ARN (Rollen-ARN)**. Sie geben den Rollen-ARN an, wenn Sie im nächsten **Verfahren die iam: PassRole** -Richtlinie an Ihr IAM-Konto anhängen. Sie können den Rollennamen und den ARN in Runbooks festlegen.

**Anmerkung**  
Die `AmazonSSMAutomationRole` Richtlinie weist die Automatisierungs-Rollenberechtigung einer Teilmenge von AWS Lambda Funktionen in Ihrem Konto zu. Diese Funktionen beginnen mit „Automation“ (Automatisierung). Wenn Sie die Automatisierung mit Lambda-Funktionen verwenden möchten, muss der Lambda-ARN das folgende Format verwenden:  
`"arn:aws:lambda:*:*:function:Automation*"`  
Wenn Sie über bestehende Lambda-Funktionen verfügen, die dieses Format ARNs nicht verwenden, müssen Sie Ihrer Automatisierungsrolle auch eine zusätzliche Lambda-Richtlinie hinzufügen, z. B. die **AWSLambdaRollenrichtlinie**. Die zusätzliche Richtlinie oder Rolle muss umfassendere Zugriffsberechtigungen für Lambda-Funktionen im AWS-Konto bieten.

Nachdem Sie Ihre Servicerolle erstellt haben, sollten Sie die Vertrauensrichtlinie bearbeiten, um das serviceübergreifende Confused-Deputy-Problem zu vermeiden. Das *Confused-Deputy-Problem* ist ein Sicherheitsproblem, bei dem eine Entität, die nicht über die Berechtigung zum Ausführen einer Aktion verfügt, eine Entität mit größeren Rechten zwingen kann, die Aktion auszuführen. In der AWS Tat kann ein dienstübergreifender Identitätswechsel zum Problem des verwirrten Stellvertreters führen. Ein dienstübergreifender Identitätswechsel kann auftreten, wenn ein Dienst (der *Anruf-Dienst*) einen anderen Dienst anruft (den *aufgerufenen Dienst*). Der Anruf-Dienst kann so manipuliert werden, dass er seine Berechtigungen verwendet, um auf die Ressourcen eines anderen Kunden zu reagieren, auf die er sonst nicht zugreifen dürfte. Um dies zu verhindern, AWS bietet Tools, mit denen Sie Ihre Daten für alle Dienste mit Dienstprinzipalen schützen können, denen Zugriff auf Ressourcen in Ihrem Konto gewährt wurde. 

Wir empfehlen die Verwendung der globalen Bedingungskontext-Schlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) und [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) in ressourcenbasierten Richtlinien, um die Berechtigungen, die Automation einem anderen Service erteilt, auf eine bestimmte Ressource zu beschränken. Wenn der `aws:SourceArn`-Wert nicht die Konto-ID enthält, z. B. den ARN eines Amazon-S3-Buckets, müssen Sie beide globalen Bedingungskontext-Schlüssel verwenden, um Berechtigungen einzuschränken. Wenn Sie beide globale Bedingungskontextschlüssel verwenden und der `aws:SourceArn`-Wert die Konto-ID enthält, müssen der `aws:SourceAccount`-Wert und das Konto im `aws:SourceArn`-Wert dieselbe Konto-ID verwenden, wenn sie in der gleichen Richtlinienanweisung verwendet wird. Verwenden Sie `aws:SourceArn`, wenn Sie nur eine Ressource mit dem betriebsübergreifenden Zugriff verknüpfen möchten. Verwenden Sie `aws:SourceAccount`, wenn Sie zulassen möchten, dass Ressourcen in diesem Konto mit der betriebsübergreifenden Verwendung verknüpft werden. Der Wert von `aws:SourceArn` muss für Automatisierungsausführungen der ARN sein. Wenn Sie den vollständigen ARN der Ressource nicht kennen oder wenn Sie mehrere Ressourcen angeben, verwenden Sie den globalen Bedingungskontext-Schlüssel `aws:SourceArn` mit Platzhaltern (`*`) für die unbekannten Teile des ARN. Beispiel, `arn:aws:ssm:*:123456789012:automation-execution/*`. 

Das folgende Beispiel zeigt, wie Sie die `aws:SourceArn` und `aws:SourceAccount` globale Bedingungskontext-Schlüssel für Automatisierung verwenden können, um das Confused-Deputy-Problem zu verhindern.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "ssm.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "123456789012"
        },
        "ArnLike": {
          "aws:SourceArn": "arn:aws:ssm:*:123456789012:automation-execution/*"
        }
      }
    }
  ]
}
```

------

**So ändern Sie die Vertrauensrichtinie einer Rolle**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Rollen**.

1. Wählen Sie in der Rollenliste in Ihrem Konto den Namen der Automation-Servicerolle aus.

1. Klicken Sie auf der Registerkarte **Trust Relationships (Vertrauensbeziehungen)** auf **Edit Trust Relationship (Vertrauensbeziehungen bearbeiten)**.

1. Bearbeiten Sie die Vertrauensrichtlinie mit den globalen Bedingungskontext-Schlüsseln `aws:SourceArn` und `aws:SourceAccount` für Automation, um das Confused-Deputy-Problem zu verhindern.

1. Wählen Sie **Update Trust Policy** (Vertrauensrichtlinie aktualisieren) aus, um die Änderungen zu speichern.

### (Optional) Fügen Sie eine Inline-Automatisierungsrichtlinie oder eine vom Kunden verwaltete Richtlinie hinzu, um andere aufzurufen AWS-Services
<a name="add-inline-policy"></a>

Wenn Sie eine Automatisierung ausführen, die andere Dienste AWS-Services mithilfe einer IAM-Servicerolle aufruft, muss die Servicerolle so konfiguriert sein, dass sie berechtigt ist, diese Dienste aufzurufen. Diese Anforderung gilt für alle AWS Automatisierungs-Runbooks (`AWS-*`Runbooks) wie, und `AWS-RestartEC2Instance` Runbooks `AWS-ConfigureS3BucketLogging``AWS-CreateDynamoDBBackup`, um nur einige zu nennen. Diese Anforderung gilt auch für alle von Ihnen erstellten benutzerdefinierten Runbooks, die andere AWS-Services aufrufen, indem sie Aktionen verwenden, die andere Services aufrufen. Wenn Sie unter anderem `aws:executeAwsApi`-, `aws:CreateStack`- oder `aws:copyImage`-Aktionen verwenden, dann müssen Sie die Servicerolle mit der Berechtigung zum Aufrufen solcher Services konfigurieren. Sie können anderen Benutzern Berechtigungen erteilen, AWS-Services indem Sie der Rolle eine IAM-Inline-Richtlinie oder eine vom Kunden verwaltete Richtlinie hinzufügen. 

**So betten Sie eine eingebundene Richtlinie für eine Servicerolle ein (IAM-Konsole)**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Wählen Sie im Navigationsbereich **Rollen**.

1. Wählen Sie in der Liste den Namen der Rolle aus, die Sie bearbeiten möchten.

1. Wählen Sie die Registerkarte **Berechtigungen**.

1. Wählen Sie in der Dropdown-Liste **Berechtigungen hinzufügen** die Option **Richtlinien anhängen** oder **Inline-Richtlinie erstellen**.

1. Wenn Sie die Option **Richtlinien anhängen** wählen, aktivieren Sie das Kontrollkästchen neben der Richtlinie, die Sie hinzufügen möchten, und wählen Sie **Berechtigungen hinzufügen**.

1. Wenn Sie **Inline-Richtlinie erstellen** wählen, wählen Sie die Registerkarte **JSON**.

1. Geben Sie ein JSON-Richtliniendokument für das Dokument ein AWS-Services , das Sie aufrufen möchten. Nachfolgend sind zwei Beispiele für JSON-Richtliniendokumente aufgeführt.

   **Amazon S3 PutObject und GetObject Beispiel**

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
           }
       ]
   }
   ```

------

   **Amazon EC2 CreateSnapshot und Beispiel DescribeSnapShots**

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Action":"ec2:CreateSnapshot",
            "Resource":"*"
         },
         {
            "Effect":"Allow",
            "Action":"ec2:DescribeSnapshots",
            "Resource":"*"
         }
      ]
   }
   ```

------

   Details zur IAM-Richtliniensprache und finden Sie in der [IAM JSON Policy Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) im *IAM-Benutzerhandbuch*.

1. Wählen Sie, wenn Sie fertig sind, **Review policy (Richtlinie überprüfen)** aus. Die [Richtlinienvalidierung](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) meldet mögliche Syntaxfehler.

1. Geben Sie auf der Seite **Review Policy (Richtlinie überprüfen)** im Feld **Name (Name)** einen Namen für die zu erstellende Richtlinie ein. Überprüfen Sie unter **Summary** die Richtlinienzusammenfassung, um die Berechtigungen einzusehen, die von Ihrer Richtlinie gewährt werden. Wählen Sie dann **Create policy** aus, um Ihre Eingaben zu speichern.

1. Nachdem Sie eine Inline-Richtlinie erstellt haben, wird sie automatisch in Ihre Rolle eingebettet.

## Aufgabe 2: Hängen Sie die iam: PassRole -Richtlinie an Ihre Automation-Rolle an
<a name="attach-passrole-policy"></a>

Fügen Sie mit den folgenden Schritten die Richtlinie `iam:PassRole` Ihrer Automation-Servicerolle hinzu. Dies erlaubt dem Automation-Service, die Rolle anderen Services oder Systems-Manager-Tools zu übergeben, wenn Automatisierungen ausgeführt werden.

**So hängen Sie die iam: PassRole -Richtlinie an Ihre Automatisierungsrolle an**

1. Wählen Sie auf der Seite **Summary** für die gerade erstellte Rolle die Registerkarte **Permissions**.

1. Wählen Sie **Inline-Richtlinie hinzufügen**.

1. Wählen Sie auf der Seite **Richtlinie erstellen** die Registerkarte **Visueller Editor** aus.

1. Wählen Sie **Service (Service)** und anschließend die Option **IAM** aus.

1. Wählen Sie **Select actions (Aktionen auswählen)** aus.

1. Geben Sie in das Textfeld **Aktionen filtern** die **PassRole**Option ein**PassRole**, und wählen Sie sie dann aus.

1. Wählen Sie **Resources** aus. Stellen Sie sicher, dass **Specific** ausgewählt ist und wählen Sie dann **Add ARN** aus.

1. Fügen Sie im Feld **Specify ARN for role (ARN für die Rolle angeben)** den ARN der Automation-Rolle ein, den Sie am Ende von Aufgabe 1 kopiert haben. Das System füllt die Felder **Account (Konto)** und **Role name with path (Rollenname mit Pfad)** automatisch aus.
**Anmerkung**  
Wenn Sie möchten, dass die Automation-Servicerolle eine IAM-Instance-Profilrolle an eine EC2-Instance anfügt, müssen Sie den ARN der IAM-Instance-Profilrolle hinzufügen. Auf diese Weise kann die Automation-Servicerolle die IAM-Instance-Profilrolle an die Ziel-EC2-Instance übergeben.

1. Wählen Sie **Hinzufügen** aus.

1. Wählen Sie **Richtlinie prüfen**.

1. Geben Sie auf der Seite **Review Policy** einen Namen ein und wählen Sie anschließend **Create Policy** aus.

# Beispiele für die Einrichtung identitätsbasierter Richtlinien
<a name="automation-setup-identity-based-policies"></a>

Die folgenden Abschnitte enthalten Beispiele für identitätsbasierte IAM-Richtlinien für den Automationsdienst. AWS Systems Manager *Weitere Informationen zum Erstellen einer identitätsbasierten IAM-Richtlinie mithilfe dieser Beispieldokumente zu JSON-Richtlinien finden Sie unter [Erstellen von IAM-Richtlinien im IAM-Benutzerhandbuch](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor).*

**Anmerkung**  
Alle Beispiele enthalten ein fiktives Konto. IDs Die Konto-ID sollte nicht im Amazon-Ressourcennamen (ARN) für AWS eigene öffentliche Dokumente angegeben werden.

 **Beispiele** 
+  [Beispiel 1: Erlauben Sie einem Benutzer, ein Automatisierungsdokument auszuführen und sich die Ausführung der Automatisierung anzusehen](#automation-setup-identity-based-policies-example-1) 
+  [Beispiel 2: Erlauben Sie einem Benutzer, eine bestimmte Version eines Automatisierungsdokuments auszuführen](#automation-setup-identity-based-policies-example-2) 
+  [Beispiel 3: Erlauben Sie einem Benutzer, Automatisierungsdokumente mit einem bestimmten Tag auszuführen](#automation-setup-identity-based-policies-example-3) 
+  [Beispiel 4: Erlauben Sie einem Benutzer, ein Automatisierungsdokument auszuführen, wenn ein bestimmter Tag-Parameter für die Automatisierungsausführung bereitgestellt wird](#automation-setup-identity-based-policies-example-4) 

## Beispiel 1: Erlauben Sie einem Benutzer, ein Automatisierungsdokument auszuführen und sich die Ausführung der Automatisierung anzusehen
<a name="automation-setup-identity-based-policies-example-1"></a>

Mit der folgenden IAM-Beispielrichtlinie kann ein Benutzer folgende Aktionen ausführen:
+ Führen Sie das in der Richtlinie angegebene Automatisierungsdokument aus. Der Name des Dokuments wird durch den folgenden Eintrag bestimmt.

  ```
  arn:aws:ssm:*:111122223333:document/{{DocumentName}}
  ```
+ Stoppen Sie eine Automatisierungsausführung und senden Sie Signale an sie.
+ Sehen Sie sich Details zur Automatisierungsausführung an, nachdem sie gestartet wurde.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "ssm:StartAutomationExecution",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:111122223333:document/{{DocumentName}}",
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ]
        },
        {
            "Action": [
                "ssm:StopAutomationExecution",
                "ssm:GetAutomationExecution",
                "ssm:DescribeAutomationExecutions",
                "ssm:DescribeAutomationStepExecutions",
                "ssm:SendAutomationSignal"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## Beispiel 2: Erlauben Sie einem Benutzer, eine bestimmte Version eines Automatisierungsdokuments auszuführen
<a name="automation-setup-identity-based-policies-example-2"></a>

Das folgende Beispiel für eine IAM-Richtlinie ermöglicht es einem Benutzer, eine bestimmte Version eines Automatisierungsdokuments auszuführen:
+ Der Name des Automatisierungsdokuments wird durch den folgenden Eintrag bestimmt.

  ```
  arn:aws:ssm:*:111122223333:document/{{DocumentName}}
  ```
+ Die Version des Automatisierungsdokuments wird durch den folgenden Eintrag bestimmt.

  ```
  "ssm:DocumentVersion": "5"
  ```

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "ssm:StartAutomationExecution",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:111122223333:document/{{DocumentName}}"
            ],
            "Condition": {
                "ForAnyValue:StringEquals": {
                   "ssm:DocumentVersion": ["5"]
                }
            }
        },
        {
            "Action": [
                "ssm:StartAutomationExecution"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssm:StopAutomationExecution",
                "ssm:GetAutomationExecution",
                "ssm:DescribeAutomationExecutions",
                "ssm:DescribeAutomationStepExecutions",
                "ssm:SendAutomationSignal"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## Beispiel 3: Erlauben Sie einem Benutzer, Automatisierungsdokumente mit einem bestimmten Tag auszuführen
<a name="automation-setup-identity-based-policies-example-3"></a>

Das folgende Beispiel für eine IAM-Richtlinie ermöglicht es einem Benutzer, jedes Automatisierungsdokument mit einem bestimmten Tag auszuführen:
+ Der Name des Automatisierungsdokuments wird durch den folgenden Eintrag bestimmt.

  ```
  arn:aws:ssm:*:111122223333:document/{{DocumentName}}
  ```
+ Das Tag des Automatisierungsdokuments wird durch den folgenden Eintrag bestimmt.

  ```
  "ssm:DocumentVersion": "5"
  ```

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "ssm:StartAutomationExecution",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:111122223333:document/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/stage": "production"
                }
            }
        },
        {
            "Action": [
                "ssm:StartAutomationExecution"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "ssm:StopAutomationExecution",
                "ssm:GetAutomationExecution",
                "ssm:DescribeAutomationExecutions",
                "ssm:DescribeAutomationStepExecutions",
                "ssm:SendAutomationSignal"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow"
        }
    ]
}
```

------

## Beispiel 4: Erlauben Sie einem Benutzer, ein Automatisierungsdokument auszuführen, wenn ein bestimmter Tag-Parameter für die Automatisierungsausführung bereitgestellt wird
<a name="automation-setup-identity-based-policies-example-4"></a>

Das folgende Beispiel für eine IAM-Richtlinie gewährt einem Benutzer die Erlaubnis, Automatisierungsdokumente auszuführen, wenn ein bestimmter Tag-Parameter für die Automatisierungsausführung bereitgestellt wird:
+ Führen Sie das in der Richtlinie angegebene Automatisierungsdokument aus. Der Name des Dokuments wird durch den folgenden Eintrag bestimmt.

  ```
  arn:aws:ssm:*:111122223333:document/{{DocumentName}}
  ```
+ Muss einen bestimmten Tag-Parameter für die Automatisierungsausführung angeben. Der Tag-Parameter für die Automatisierungsausführungsressource wird durch den folgenden Eintrag bestimmt.

  ```
  "aws:ResourceTag/stage": "production"
  ```
+ Stoppt und sendet Signale an Automatisierungsausführungen, die über das angegebene Tag verfügen.
+ Zeigt Details zu den Automatisierungsausführungen an, die das angegebene Tag haben.
+ Fügt das angegebene Tag zu den SSM-Ressourcen hinzu.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": "ssm:StartAutomationExecution",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:111122223333:document/{{DocumentName}}"
            ]
        },
        {
            "Action": [
                "ssm:StartAutomationExecution",
                "ssm:StopAutomationExecution",
                "ssm:GetAutomationExecution",
                "ssm:DescribeAutomationExecutions",
                "ssm:DescribeAutomationStepExecutions",
                "ssm:SendAutomationSignal"
            ],
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ],
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/environment": "beta"
                }
            }
        },
        {
            "Action": "ssm:AddTagsToResource",
            "Effect": "Allow",
            "Resource": [
                "arn:aws:ssm:*:111122223333:automation-execution/*"
            ]
        }
    ]
}
```

------

# Zulassen, dass sich Automation an Ihre Nebenläufigkeitsanforderungen anpasst
<a name="adaptive-concurrency"></a>

Standardmäßig können Sie mit Automation bis zu 100 nebenläufige Automatisierungen gleichzeitig ausführen. Automation bietet zudem eine optionale Einstellung, mit der Sie Ihr Kontingent für nebenläufige Automatisierungen automatisch anpassen können. Mit dieser Einstellung kann Ihr Kontingent je nach verfügbaren Ressourcen bis zu 500 nebenläufige Automatisierungen umfassen. 

**Anmerkung**  
Wenn Ihre Automatisierung API-Vorgänge aufruft, kann eine adaptive Skalierung entsprechend Ihren Zielen zu Drosselungsausnahmen führen. Wenn beim Ausführen von Automatisierungen mit aktivierter adaptiver Nebenläufigkeit wiederholt Drosselungsausnahmen auftreten, müssen Sie möglicherweise Kontingenterhöhungen für den API-Vorgang anfordern, sofern verfügbar.

**Um die adaptive Parallelität zu aktivieren, verwenden Sie den AWS-Managementkonsole**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie die Registerkarte **Präferenzen** und anschließend **Bearbeiten** aus.

1. Aktivieren Sie das Kontrollkästchen neben **Enable adaptive concurrency** (Adaptive Nebenläufigkeit aktivieren).

1. Wählen Sie **Speichern**.

**So aktivieren Sie die adaptive Nebenläufigkeit mit der Befehlszeile**
+ Öffnen Sie AWS CLI oder Tools für Windows PowerShell und führen Sie den folgenden Befehl aus, um die adaptive Parallelität für Ihr Konto in der anfragenden Region zu aktivieren.

------
#### [ Linux & macOS ]

  ```
  aws ssm update-service-setting \
      --setting-id /ssm/automation/enable-adaptive-concurrency \
      --setting-value True
  ```

------
#### [ Windows ]

  ```
  aws ssm update-service-setting ^
      --setting-id /ssm/automation/enable-adaptive-concurrency ^
      --setting-value True
  ```

------
#### [ PowerShell ]

  ```
  Update-SSMServiceSetting `
      -SettingId "/ssm/automation/enable-adaptive-concurrency" `
      -SettingValue "True"
  ```

------

# Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge
<a name="automation-throttling-retry"></a>

Die Anzahl der gleichzeitigen Automatisierungen, die in jedem Konto ausgeführt werden können. Wenn Sie versuchen, mehrere Automatisierungen in einem Konto gleichzeitig auszuführen, kann dies zu Drosselungsproblemen führen. Sie können die automatische Drosselungswiederholung verwenden, um das Wiederholungsverhalten für gedrosselte Automatisierungsschritte zu konfigurieren.

Die automatische Drosselungswiederholung für Automatisierungsaktionen bietet eine zuverlässigere Ausführungsumgebung für umfangreiche Vorgänge. Die Drosselungswiederholung unterstützt alle [Automatisierungsaktionen](automation-actions.md) mit Ausnahme von `aws:executeScript`.

Die Drosselungswiederholung kann zusätzlich zur Schritteigenschaft `maxAttempts` verwendet werden. Wenn beide Funktionen konfiguriert sind, versucht das System zunächst, Drosselungswiederholungen innerhalb des angegebenen Zeitlimits einzuschränken, und wendet dann die `maxAttempts`-Einstellung an, wenn der Schritt weiterhin fehlschlägt.

**Um die Drosselung zu konfigurieren, versuchen Sie es erneut mit dem AWS-Managementkonsole**

1. Öffnen Sie die Konsole unter AWS Systems Manager . [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie die Registerkarte **Präferenzen** und anschließend **Bearbeiten** aus.

1. Geben Sie im Feld **Zeitlimit für die Drosselungswiederholung** einen Wert zwischen 0 und 3 600 Sekunden ein. Dies gibt an, wie lange einer gedrosselter Schritt maximal wiederholt wird.

1. Wählen Sie **Speichern**.

**Konfigurieren Sie die Drosselungswiederholung mit der Befehlszeile wie folgt:**
+ Öffnen Sie AWS CLI oder Tools für Windows PowerShell und führen Sie den folgenden Befehl aus, um die Drosselung der Wiederholungsversuche für Ihr Konto in der anfragenden Region zu konfigurieren.

------
#### [ Linux & macOS ]

  ```
  aws ssm update-service-setting \
      --setting-id /ssm/automation/throttling-retry-time-limit \
      --setting-value 3600
  ```

------
#### [ Windows ]

  ```
  aws ssm update-service-setting ^
      --setting-id /ssm/automation/throttling-retry-time-limit ^
      --setting-value 3600
  ```

------
#### [ PowerShell ]

  ```
  Update-SSMServiceSetting `
      -SettingId "/ssm/automation/throttling-retry-time-limit" `
      -SettingValue "3600"
  ```

------

# Implementieren von Änderungskontrollen für Automatisierung
<a name="automation-change-calendar-integration"></a>

Standardmäßig ermöglicht Automatisierung die Verwendung von Runbooks ohne Datums- und Zeitbeschränkungen. Durch die Integration von Automation mit Change Calendar können Sie Änderungskontrollen für alle Automatisierungen in Ihrem AWS-Konto implementieren. Mit dieser Einstellung können AWS Identity and Access Management (IAM)-Prinzipale in Ihrem Konto Automatisierungen nur während der von Ihrem Änderungskalender zugelassenen Zeiträume ausführen. Weitere Informationen zum Arbeiten mit Change Calendar finden Sie unter [Arbeiten mit Change Calendar](systems-manager-change-calendar-working.md).

**So aktivieren Sie Änderungskontrollen (Konsole)**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie die Registerkarte **Präferenzen** und anschließend **Bearbeiten** aus.

1. Aktivieren Sie das Kontrollkästchen neben **Change Calendar-Integration aktivieren**.

1. Wählen Sie in der Dropdown-Liste **Änderungskalender auswählen** den Änderungskalender aus, dem die Automatisierung folgen soll.

1. Wählen Sie **Speichern**.

# Führen Sie einen automatisierten Vorgang aus, der von Systems Manager Automation unterstützt wird
<a name="running-simple-automations"></a>

Wenn Sie eine Automatisierung ausführen, wird die Automatisierung standardmäßig im Kontext des Benutzers ausgeführt, der die Automatisierung initiiert hat. Das bedeutet beispielsweise, wenn Ihr Benutzer über Administratorrechte verfügt, wird die Automatisierung mit Administratorrechten und vollständigem Zugriff auf die von der Automatisierung konfigurierten Ressourcen ausgeführt. Aus Sicherheitsgründen empfehlen wir, dass Sie die Automatisierung mithilfe einer IAM-Servicerolle ausführen, die in diesem Fall als Übernahmerolle bezeichnet wird *und* mit der Amazon SSMAutomation Role Managed Policy konfiguriert ist. Möglicherweise müssen Sie Ihrer angenommenen Rolle zusätzliche IAM-Richtlinien hinzufügen, um verschiedene Runbooks verwenden zu können. Die Verwendung einer IAM-Servicerolle zur Ausführung der Automatisierung wird als *delegierte Administration* bezeichnet.

Wenn Sie eine Servicerolle verwenden, darf die Automatisierung zwar für AWS -Ressourcen laufen, aber der Benutzer, der die Automatisierung ausgeführt hat, verfügt über einen eingeschränkten Zugriff (oder besitzt keinen Zugriff) auf diese Ressourcen. Beispielsweise können Sie eine Servicerolle konfigurieren und sie mit Automatisierung verwenden, um eine oder mehrere Amazon Elastic Compute Cloud (Amazon EC2)-Instances neu zu starten. Automation ist ein Tool in AWS Systems Manager. Die Automatisierung startet die Instances neu, aber die Servicerolle gibt dem Benutzer nicht die Berechtigung, auf diese Instances zuzugreifen.

Sie können eine Servicerolle zur Laufzeit angeben, wenn Sie eine Automatisierung ausführen, oder Sie können benutzerdefinierte Runbooks erstellen und die Servicerolle direkt im Runbook angeben. Wenn Sie zur Laufzeit oder in einem Runbook eine Servicerolle angeben, dann wird der Service im Kontext der angegebenen Servicerolle ausgeführt. Wenn Sie keine Servicerolle angeben, dann legt das System im Kontext des Benutzers eine temporäre Sitzung an und führt die Automatisierung aus.

**Anmerkung**  
Für Automatisierungen, die voraussichtlich länger als 12 Stunden laufen, müssen Sie eine Servicerolle angeben. Wenn Sie eine lang laufende Automatisierung im Kontext eines Benutzers starten, läuft die temporäre Sitzung des Benutzers nach 12 Stunden ab.

Delegierte Administration sorgt für mehr Sicherheit und Kontrolle Ihrer AWS -Ressourcen. Sie erlaubt auch eine verbesserte Prüfungserfahrung, da Aktionen für Ihre Ressourcen von einer zentralen Servicerolle statt von mehreren IAM-Konten ausgeführt werden.

**Bevor Sie beginnen**  
Bevor Sie die folgenden Verfahren ausführen, müssen Sie die IAM-Servicerolle erstellen und eine Vertrauensstellung für Automation, ein Tool in, konfigurieren. AWS Systems Manager Weitere Informationen finden Sie unter [Aufgabe 1: Erstellen einer Servicerolle für Automation](automation-setup-iam.md#create-service-role).

In den folgenden Verfahren wird beschrieben, wie Sie die Systems-Manager-Konsole oder Ihr bevorzugtes Befehlszeilen-Tool zum Ausführen einer einfachen Automatisierung verwenden.

## Ausführen einer einfachen Automatisierung (Konsole)
<a name="simple-console"></a>

Im folgenden Verfahren wird beschrieben, wie Sie mithilfe der Systems Manager-Konsole eine einfache Automatisierung ausführen.

**Ausführen einer einfachen Automatisierung**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich **Automatisierung** und **Automatisierung ausführen** aus.

1. Wählen Sie in der Liste **Automation-Dokument** ein Runbook. Wählen Sie eine oder mehrere Optionen im Bereich **Dokumentkategorien**, um SSM-Dokumente nach ihrem Zweck zu filtern. Um ein Runbook anzuzeigen, das Sie besitzen, wählen Sie die **Im Besitz von mir**-Registerkarte. Um ein Runbook anzuzeigen, das für Ihr Konto freigegeben ist, wählen Sie die Registerkarte **Mit mir geteilt**. Um alle Runbooks anzuzeigen, wählen Sie die Registerkarte **Alle Dokumente**.
**Anmerkung**  
Sie können Informationen zu einem Runbook einsehen, indem Sie den Runbook-Namen auswählen.

1. Überprüfen Sie im Abschnitt **Dokument-Details**, ob **Dokumentversion** auf die Version gesetzt ist, die Sie ausführen möchten. Das System bietet die folgenden Versionsoptionen: 
   + **Standardversion zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird und eine neue Standardversion zugewiesen ist.
   + **Letzte Version zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird, und Sie die Version auszuführen möchten, die zuletzt aktualisiert wurde.
   + **1 (Standard)** – Wählen Sie diese Option zur Ausführung der ersten Version des Dokuments, welches der Standard ist.

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

1. Wählen Sie im Abschnitt **Execution Mode (Ausführungsmodus)** die Option **Simple execution (Einfache Ausführung)** aus.

1. Geben Sie im Abschnitt **Eingabeparameter** die erforderlichen Eingaben an. Optional können Sie eine IAM-Dienstrolle aus der **AutomationAssumeRole**Liste auswählen.

1. (Optional) Wählen Sie einen CloudWatch Alarm aus, der zur Überwachung auf Ihre Automatisierung angewendet werden soll. Um Ihrer Automatisierung einen CloudWatch Alarm hinzuzufügen, muss der IAM-Principal, der die Automatisierung startet, über die entsprechende Genehmigung verfügen`iam:createServiceLinkedRole`. Weitere Informationen zu CloudWatch Alarmen finden Sie unter [ CloudWatch Amazon-Alarme verwenden](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html). Beachten Sie, dass die Automatisierung gestoppt wird, wenn Ihr Alarm aktiviert wird. Wenn Sie dies verwenden AWS CloudTrail, wird der API-Aufruf in Ihrem Trail angezeigt. 

1. Wählen Sie **Ausführen**. 

Die Konsole zeigt den Status der Automatisierung an. Wenn Automatisierung nicht ausgeführt werden kann, finden Sie weitere Informationen unter [Fehlerbehebung für Systems Manager Automation.](automation-troubleshooting.md).

Nach Abschluss einer Automatisierungsausführung können Sie die Ausführung mit denselben oder geänderten Parametern erneut ausführen. Weitere Informationen finden Sie unter [Wiederholtes Ausführen von Automatisierungsausführungen](automation-rerun-executions.md).

## Ausführen einer einfachen Automatisierung (Befehlszeile)
<a name="simple-cli"></a>

Das folgende Verfahren beschreibt, wie Sie das AWS CLI (unter Linux oder Windows) verwenden oder AWS -Tools für PowerShell eine einfache Automatisierung ausführen.

**Ausführen einer einfachen Automatisierung**

1. Installieren und konfigurieren Sie das AWS CLI oder das AWS -Tools für PowerShell, falls Sie das noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Führen Sie den folgenden Befehl aus, um eine einfache Automatisierung zu starten. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --parameters runbook parameters
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --parameters runbook parameters
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
     -DocumentName runbook name `
     -Parameter runbook parameters
   ```

------

   Hier sehen Sie ein Beispiel, wie Sie das `AWS-RestartEC2Instance`-Runbook verwenden, um die angegebene EC2-Instance neu zu starten.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name "AWS-RestartEC2Instance" \
       --parameters "InstanceId=i-02573cafcfEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name "AWS-RestartEC2Instance" ^
       --parameters "InstanceId=i-02573cafcfEXAMPLE"
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
     -DocumentName AWS-RestartEC2Instance `
     -Parameter @{"InstanceId"="i-02573cafcfEXAMPLE"}
   ```

------

   Das System gibt unter anderem folgende Informationen zurück

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab"
   }
   ```

------
#### [ PowerShell ]

   ```
   4105a4fc-f944-11e6-9d32-0123456789ab
   ```

------

1. Führen Sie den folgenden Befehl aus, um den Status der Automatisierung abzurufen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-automation-executions \
       --filter "Key=ExecutionId,Values=4105a4fc-f944-11e6-9d32-0123456789ab"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-automation-executions ^
       --filter "Key=ExecutionId,Values=4105a4fc-f944-11e6-9d32-0123456789ab"
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecutionList | `
     Where {$_.AutomationExecutionId -eq "4105a4fc-f944-11e6-9d32-0123456789ab"}
   ```

------

   Das System gibt unter anderem folgende Informationen zurück

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionMetadataList": [
           {
               "AutomationExecutionStatus": "InProgress",
               "CurrentStepName": "stopInstances",
               "Outputs": {},
               "DocumentName": "AWS-RestartEC2Instance",
               "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab",
               "DocumentVersion": "1",
               "ResolvedTargets": {
                   "ParameterValues": [],
                   "Truncated": false
               },
               "AutomationType": "Local",
               "Mode": "Auto",
               "ExecutionStartTime": 1564600648.159,
               "CurrentAction": "aws:changeInstanceState",
               "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
               "LogFile": "",
               "Targets": []
           }
       ]
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionMetadataList": [
           {
               "AutomationExecutionStatus": "InProgress",
               "CurrentStepName": "stopInstances",
               "Outputs": {},
               "DocumentName": "AWS-RestartEC2Instance",
               "AutomationExecutionId": "4105a4fc-f944-11e6-9d32-0123456789ab",
               "DocumentVersion": "1",
               "ResolvedTargets": {
                   "ParameterValues": [],
                   "Truncated": false
               },
               "AutomationType": "Local",
               "Mode": "Auto",
               "ExecutionStartTime": 1564600648.159,
               "CurrentAction": "aws:changeInstanceState",
               "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
               "LogFile": "",
               "Targets": []
           }
       ]
   }
   ```

------
#### [ PowerShell ]

   ```
   AutomationExecutionId       : 4105a4fc-f944-11e6-9d32-0123456789ab
   AutomationExecutionStatus   : InProgress
   AutomationType              : Local
   CurrentAction               : aws:changeInstanceState
   CurrentStepName             : startInstances
   DocumentName                : AWS-RestartEC2Instance
   DocumentVersion             : 1
   ExecutedBy                  : arn:aws:sts::123456789012:assumed-role/Administrator/Admin
   ExecutionEndTime            : 1/1/0001 12:00:00 AM
   ExecutionStartTime          : 7/31/2019 7:17:28 PM
   FailureMessage              : 
   LogFile                     : 
   MaxConcurrency              : 
   MaxErrors                   : 
   Mode                        : Auto
   Outputs                     : {}
   ParentAutomationExecutionId : 
   ResolvedTargets             : Amazon.SimpleSystemsManagement.Model.ResolvedTargets
   Target                      : 
   TargetMaps                  : {}
   TargetParameterName         : 
   Targets                     : {}
   ```

------

# Wiederholtes Ausführen von Automatisierungsausführungen
<a name="automation-rerun-executions"></a>

Sie können AWS Systems Manager Automatisierungsausführungen erneut ausführen, um Aufgaben mit identischen oder geänderten Parametern zu wiederholen. Die Wiederholungsfunktion ermöglicht Ihnen, Automatisierungsausführungen effizient zu replizieren, ohne die Automatisierungskonfigurationen manuell neu erstellen zu müssen. Das reduziert den betrieblichen Aufwand und potenzielle Konfigurationsfehler.

Wenn Sie eine Automatisierungsausführung erneut ausführen, behält Systems Manager die ursprünglichen Runbook-Parameter, CloudWatch Amazon-Alarme und -Tags aus der vorherigen Ausführung bei. Das System erstellt eine neue Ausführung mit einer neuen Ausführungs-ID und aktualisierten Zeitstempeln. Sie können jede Art von Automatisierungsausführung erneut ausführen, einschließlich einfacher Ausführungen, Ratensteuerungsausführungen, konto- und regionsübergreifender Ausführungen sowie manueller Ausführungen.

## Erneutes Ausführen einer Automatisierungsausführung (Konsole)
<a name="rerun-console"></a>

In den folgenden Verfahren wird beschrieben, wie Sie mithilfe der Systems-Manager-Konsole eine Automatisierungsausführung erneut ausführen.

**Führen Sie eine Automatisierungsausführung auf der Automation-Startseite wie folgt erneut aus:**

Öffnen Sie die Konsole unter AWS Systems Manager . [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie in der Ausführungsliste die Ausführung aus, die Sie erneut ausführen möchten.

1. Wählen Sie **Ausführung erneut ausführen** aus.

1. Überprüfen Sie auf der Seite **Automatisierungsdokument ausführen** die vorab ausgefüllten Parameter, den Ausführungsmodus und die Zielkonfiguration der ursprünglichen Ausführung.

1. (Optional) Ändern Sie nach Bedarf Parameter, Ziele oder andere Einstellungen für die erneute Ausführung.

1. Wählen Sie **Ausführen** aus, um die erneute Ausführung mit einer neuen Ausführungs-ID zu starten.

**Führen Sie eine Automatisierungsausführung auf der Seite mit den Ausführungsdetails wie folgt erneut aus:**

Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie die Ausführungs-ID der Automatisierung aus, die Sie erneut ausführen möchten.

1. Wählen Sie auf der Seite mit den Ausführungsdetails die Option **Ausführung erneut ausführen** aus.

1. Überprüfen Sie auf der Seite **Automatisierungsdokument ausführen** die vorab ausgefüllten Parameter, den Ausführungsmodus und die Zielkonfiguration der ursprünglichen Ausführung.

1. (Optional) Ändern Sie nach Bedarf Parameter, Ziele oder andere Einstellungen für die erneute Ausführung.

1. Wählen Sie **Ausführen** aus, um die erneute Ausführung mit einer neuen Ausführungs-ID zu starten.

**Kopieren Sie eine Automatisierungsausführung in eine neue Ausführung wie folgt:**

Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie die Ausführungs-ID der Automatisierung aus, die Sie kopieren möchten.

1. Wählen Sie auf der Seite mit den Ausführungsdetails **Aktionen** und dann **In neue Ausführung kopieren** aus.

1. Überprüfen Sie auf der Seite **Automatisierungsdokument ausführen** die vorab ausgefüllten Parameter, den Ausführungsmodus und die Zielkonfiguration der ursprünglichen Ausführung.

1. (Optional) Ändern Sie nach Bedarf Parameter, Ziele oder andere Einstellungen für die neue Ausführung.

1. Wählen Sie **Ausführen** aus, um die neue Ausführung zu starten.

# Eine Automatisierung ausführen, für die Genehmigungen erforderlich sind
<a name="running-automations-require-approvals"></a>

Die folgenden Verfahren beschreiben, wie Sie die AWS Systems Manager Konsole verwenden und AWS Command Line Interface (AWS CLI) eine Automatisierung mit Genehmigungen mithilfe einer einfachen Ausführung ausführen. Die Automatisierung verwendet die Automatisierungsaktion `aws:approve`, die die Automatisierung vorübergehend unterbricht, bis die Aktion von den designierten Prinzipalen entweder genehmigt oder abgelehnt wird. Die Automatisierung wird im Kontext des aktuellen Benutzers ausgeführt. Das bedeutet, dass Sie keine zusätzlichen IAM-Berechtigungen konfigurieren müssen, solange Sie über die Berechtigung zum Ausführen des Runbooks verfügen und alle Aktionen von dem Runbook aufgerufen werden. Wenn Sie über Administrator-Berechtigungen in IAM verfügen, haben Sie bereits die Berechtigung zur Verwendung dieses Runbooks.

**Bevor Sie beginnen**  
Zusätzlich zu den Standardeingaben, die für das Runbook erforderlich sind, erfordert die Aktion `aws:approve` die beiden folgenden Parameter: 
+ Eine Liste der Genehmiger. Die Liste der Genehmiger muss mindestens einen Genehmiger in Form eines Benutzernamens oder eines Benutzer-ARN enthalten. Wenn mehrere Genehmiger angegeben sind, muss im Runbook eine entsprechende minimale Genehmigungsanzahl festgelegt werden. 
+ Ein Amazon Simple Notification Service (Amazon SNS)-Thema ARN Der Name des Amazon SNS-Themas muss mit `Automation` beginnen.

Bei diesem Verfahren wird davon ausgegangen, dass Sie bereits ein Amazon SNS-Thema erstellt haben. Dies ist erforderlich, um den Genehmigungsprozess bereitzustellen. Weitere Informationen finden Sie unter [Erstellen eines Themas](https://docs.aws.amazon.com/sns/latest/dg/sns-getting-started.html#CreateTopic) im *Amazon Simple Notification Service-Entwicklerhandbuch*.

## Ausführen einer Automatisierung mit Genehmigern (Konsole)
<a name="approval-console"></a>

**So führen Sie eine Automatisierung mit Genehmigern aus**

Im folgenden Verfahren wird beschrieben, wie Sie mithilfe der Systems Manager-Konsole eine Automatisierung mit Genehmigern ausführen.

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich **Automatisierung** und **Automatisierung ausführen** aus.

1. Wählen Sie in der Liste **Automation-Dokument** ein Runbook. Wählen Sie eine oder mehrere Optionen im Bereich **Dokumentkategorien**, um SSM-Dokumente nach ihrem Zweck zu filtern. Um ein Runbook anzuzeigen, das Sie besitzen, wählen Sie die **Im Besitz von mir**-Registerkarte. Um ein Runbook anzuzeigen, das für Ihr Konto freigegeben ist, wählen Sie die Registerkarte **Mit mir geteilt**. Um alle Runbooks anzuzeigen, wählen Sie die Registerkarte **Alle Dokumente**.
**Anmerkung**  
Sie können Informationen zu einem Runbook einsehen, indem Sie den Runbook-Namen auswählen.

1. Überprüfen Sie im Abschnitt **Dokument-Details**, ob **Dokumentversion** auf die Version gesetzt ist, die Sie ausführen möchten. Das System bietet die folgenden Versionsoptionen: 
   + **Standardversion zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird und eine neue Standardversion zugewiesen ist.
   + **Letzte Version zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird, und Sie die Version auszuführen möchten, die zuletzt aktualisiert wurde.
   + **1 (Standard)** – Wählen Sie diese Option zur Ausführung der ersten Version des Dokuments, welches der Standard ist.

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

1. Klicken Sie auf der Seite **Execute automation document (Automation-Dokument ausführen)** auf **Simple execution (Einfache Ausführung)**.

1. Geben Sie im Abschnitt **Eingabeparameter** die erforderlichen Eingabeparameter an.

   Wenn Sie beispielsweise das `AWS-StartEC2InstanceWithApproval` Runbook ausgewählt haben, müssen Sie IDs für den **InstanceId**Parameter eine Instanz angeben oder auswählen. 

1. Geben Sie im **Abschnitt Genehmiger** die Benutzernamen oder Benutzer der ARNs Genehmiger für die Automatisierungsaktion an.

1. Geben Sie im Abschnitt **SNSTopicARN** das SNS-Thema ARN an, das für das Senden der Genehmigungsbenachrichtigung verwendet werden soll. Der SNS-Themenname muss mit **Automation** beginnen.

1. Optional können Sie eine IAM-Dienstrolle aus der **AutomationAssumeRole**Liste auswählen. Wenn Sie auf mehr als 100 Konten und Regionen abzielen, müssen Sie die `AWS-SystemsManager-AutomationAdministrationRole` angeben.

1. Wählen Sie **Automatisierung ausführen**. 

Der angegebene Genehmiger erhält eine Amazon SNS-Benachrichtigung mit Details zum Genehmigen oder Ablehnen der Automatisierung. Diese Genehmigungsaktion ist 7 Tage ab dem Ausstellungsdatum gültig und kann über die Systems Manager Manager-Konsole oder die AWS Command Line Interface (AWS CLI) ausgeführt werden.

Wenn Sie die Automatisierung genehmigen, führt die Automatisierung die im angegebenen Runbook enthaltenen Schritte aus. Die Konsole zeigt den Status der Automatisierung an. Wenn Automatisierung nicht ausgeführt werden kann, finden Sie weitere Informationen unter [Fehlerbehebung für Systems Manager Automation.](automation-troubleshooting.md).

**So genehmigen Sie eine Automatisierung oder lehnen sie ab**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Klicken Sie im Navigationsbereich auf **Automation** und wählen Sie dann die Automatisierung aus, die im vorherigen Verfahren ausgeführt wurde.

1. Wählen Sie **Actions (Aktionen)** und dann **Approve/Deny (Genehmigen/ablehnen)** aus.

1. Wählen Sie entweder **Approve (Genehmigen)** oder **Deny (Ablehnen)** aus und geben Sie bei Bedarf einen Kommentar ein.

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

## Ausführen einer Automatisierung mit Genehmigern (Befehlszeile)
<a name="approval-cli"></a>

Das folgende Verfahren beschreibt, wie Sie die AWS CLI (unter Linux oder Windows) verwenden oder AWS -Tools für PowerShell eine Automatisierung mit Genehmigern ausführen.

**So führen Sie eine Automatisierung mit Genehmigern aus**

1. Installieren und konfigurieren Sie das AWS CLI oder das AWS -Tools für PowerShell, falls Sie das noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Verwenden Sie den folgenden Befehl, um eine Automatisierung mit Genehmigern auszuführen. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen. Geben Sie im Abschnitt Dokumentname ein Runbook an, das die Automatisierungsaktion `aws:approve` enthält.

   Geben Sie für `Approvers` die Aktion die Benutzernamen oder den Benutzer ARNs der Genehmiger an. Geben Sie für `SNSTopic` den SNS-Themen-ARN an, der zum Senden von Genehmigungsbenachrichtigungen verwendet werden soll. Der Name des Amazon SNS-Themas muss mit `Automation` beginnen.
**Anmerkung**  
Die spezifischen Namen der Parameterwerte für Genehmiger und das SNS-Thema hängen von den im ausgewählten Runbook angegebenen Werten ab. 

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name "AWS-StartEC2InstanceWithApproval" \
       --parameters "InstanceId=i-02573cafcfEXAMPLE,Approvers=arn:aws:iam::123456789012:role/Administrator,SNSTopicArn=arn:aws:sns:region:123456789012:AutomationApproval"
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name "AWS-StartEC2InstanceWithApproval" ^
       --parameters "InstanceId=i-02573cafcfEXAMPLE,Approvers=arn:aws:iam::123456789012:role/Administrator,SNSTopicArn=arn:aws:sns:region:123456789012:AutomationApproval"
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
       -DocumentName AWS-StartEC2InstanceWithApproval `
       -Parameters @{
           "InstanceId"="i-02573cafcfEXAMPLE"
           "Approvers"="arn:aws:iam::123456789012:role/Administrator"
           "SNSTopicArn"="arn:aws:sns:region:123456789012:AutomationApproval"
       }
   ```

------

   Das System gibt unter anderem folgende Informationen zurück

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionId": "df325c6d-b1b1-4aa0-8003-6cb7338213c6"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionId": "df325c6d-b1b1-4aa0-8003-6cb7338213c6"
   }
   ```

------
#### [ PowerShell ]

   ```
   df325c6d-b1b1-4aa0-8003-6cb7338213c6
   ```

------

**So genehmigen Sie eine Automatisierung**
+ Führen Sie den folgenden Befehl aus, um eine Automatisierung zu genehmigen. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

  ```
  aws ssm send-automation-signal \
      --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" \
      --signal-type "Approve" \
      --payload "Comment=your comments"
  ```

------
#### [ Windows ]

  ```
  aws ssm send-automation-signal ^
      --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" ^
      --signal-type "Approve" ^
      --payload "Comment=your comments"
  ```

------
#### [ PowerShell ]

  ```
  Send-SSMAutomationSignal `
      -AutomationExecutionId df325c6d-b1b1-4aa0-8003-6cb7338213c6 `
      -SignalType Approve `
      -Payload @{"Comment"="your comments"}
  ```

------

  Wenn der Befehl erfolgreich ausgeführt wurde, gibt es keine Ausgabe.

**So lehnen Sie eine Automatisierung ab**
+ Führen Sie den folgenden Befehl aus, um eine Automatisierung abzulehnen. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

  ```
  aws ssm send-automation-signal \
      --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" \
      --signal-type "Deny" \
      --payload "Comment=your comments"
  ```

------
#### [ Windows ]

  ```
  aws ssm send-automation-signal ^
      --automation-execution-id "df325c6d-b1b1-4aa0-8003-6cb7338213c6" ^
      --signal-type "Deny" ^
      --payload "Comment=your comments"
  ```

------
#### [ PowerShell ]

  ```
  Send-SSMAutomationSignal `
      -AutomationExecutionId df325c6d-b1b1-4aa0-8003-6cb7338213c6 `
      -SignalType Deny `
      -Payload @{"Comment"="your comments"}
  ```

------

  Wenn der Befehl erfolgreich ausgeführt wurde, gibt es keine Ausgabe.

# Automatisierte Abläufe in großem Umfang ausführen
<a name="running-automations-scale"></a>

Mit AWS Systems Manager Automation können Sie mithilfe von *Zielen* Automatisierungen auf einer Flotte von AWS Ressourcen ausführen. Außerdem können Sie die Bereitstellung der Automatisierung innerhalb Ihrer Flotte steuern, indem Sie einen Gleichzeitigkeitswert und einen Fehlergrenzwert angeben. Die Gleichzeitigkeits- und die Fehlergrenzwertfeature werden gemeinsam als *Ratensteuerungen* bezeichnet. Der Gleichzeitigkeitswert legt fest, wie viele Ressourcen die Automatisierung gleichzeitig ausführen kann. Automation bietet außerdem einen adaptiven Nebenläufigkeitsmodus, den Sie aktivieren können. Die adaptive Nebenläufigkeit skaliert Ihr Automatisierungskontingent automatisch von 100 gleichzeitig ausgeführten Automatisierungen auf bis zu 500. Ein Fehlergrenzwert legt fest, wie viele Automatisierungsausführungen fehlschlagen dürfen, bevor Systems Manager damit aufhört, die Automatisierung an andere Ressourcen zu senden.

Weitere Informationen über Gleichzeitigkeits- und Fehlergrenzwerte finden Sie unter [Steuern von Automatisierungen im großen Maßstab](running-automations-scale-controls.md). Weitere Informationen über Ziele finden Sie unter [Zuordnen von Zielen für eine Automatisierung](running-automations-map-targets.md).

Die folgenden Verfahren veranschaulichen, wie Sie die adaptive Nebenläufigkeit aktivieren und eine Automatisierung mit Zielen und Ratensteuerelementen über die Systems-Manager-Konsole und AWS Command Line Interface (AWS CLI) ausführen.

## Ausführen einer Automatisierung mit Zielen und Ratensteuerungen (Konsole)
<a name="scale-console"></a>

Im folgenden Verfahren wird beschrieben, wie Sie mit der Systems Manager-Konsole eine Automatisierung mit Ziel- und Ratensteuerungen ausführen.

**So führen Sie eine Automatisierung mit Zielen und Ratensteuerungen aus**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich **Automatisierung** und **Automatisierung ausführen** aus.

1. Wählen Sie in der Liste **Automation-Dokument** ein Runbook. Wählen Sie eine oder mehrere Optionen im Bereich **Dokumentkategorien**, um SSM-Dokumente nach ihrem Zweck zu filtern. Um ein Runbook anzuzeigen, das Sie besitzen, wählen Sie die **Im Besitz von mir**-Registerkarte. Um ein Runbook anzuzeigen, das für Ihr Konto freigegeben ist, wählen Sie die Registerkarte **Mit mir geteilt**. Um alle Runbooks anzuzeigen, wählen Sie die Registerkarte **Alle Dokumente**.
**Anmerkung**  
Sie können Informationen zu einem Runbook einsehen, indem Sie den Runbook-Namen auswählen.

1. Überprüfen Sie im Abschnitt **Dokument-Details**, ob **Dokumentversion** auf die Version gesetzt ist, die Sie ausführen möchten. Das System bietet die folgenden Versionsoptionen: 
   + **Standardversion zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird und eine neue Standardversion zugewiesen ist.
   + **Letzte Version zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird, und Sie die Version auszuführen möchten, die zuletzt aktualisiert wurde.
   + **1 (Standard)** – Wählen Sie diese Option zur Ausführung der ersten Version des Dokuments, welches der Standard ist.

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

1. Wählen Sie im Abschnitt **Execution Mode (Ausführungsmodus)** die Option **Rate Control (Ratensteuerung)** aus. Sie müssen diesen Modus oder die Option **Multi-account and Region (Mehrere Konten und Regionen)** verwenden, wenn Sie Ziele und Ratensteuerungen nutzen möchten.

1. Wählen Sie im Abschnitt **Targets** (Ziele) die Ausrichtung auf die AWS -Ressourcen für die Ausführung der Automation. Diese Optionen sind erforderlich.

   1. Wählen Sie in der Liste **Parameter** einen Parameter aus. Die Elemente in der Liste **Parameter** richten sich nach den Parametern in dem Automation-Runbook, das Sie zu Beginn dieses Verfahrens ausgewählt haben. Durch Auswahl eines Parameters legen Sie den Typ der Ressource fest, für die der Automation-Workflow ausgeführt wird. 

   1. Wählen Sie in der Liste **Ziele** aus, wie Sie Ressourcen als Ziele verwenden möchten.

      1. Wenn Sie die Zielressourcen mithilfe von Parameterwerten ausgewählt haben, geben Sie den Parameterwert für den gewählten Parameter im Feld **Eingabeparameter eingeben** ein.

      1. Wenn Sie Ressourcen mithilfe von als Ziel verwenden möchten AWS -Ressourcengruppen, wählen Sie den Namen der Gruppe aus der Liste der **Ressourcengruppen** aus.

      1. Wenn Sie die Zielressourcen mithilfe von Tags ausgewählt haben, geben Sie den Tag-Schlüssel und (optional) den Tag-Wert in die entsprechenden Felder ein. Wählen Sie **Hinzufügen** aus.

      1. Wenn Sie ein Automatisierungs-Runbook auf allen Instanzen im aktuellen AWS-Konto und ausführen möchten AWS-Region, wählen Sie **Alle Instanzen** aus.

1. Geben Sie im Abschnitt **Eingabeparameter** die erforderlichen Eingaben an. Optional können Sie eine IAM-Servicerolle aus der **AutomationAssumeRole**Liste auswählen.
**Anmerkung**  
Möglicherweise müssen Sie einige der Optionen im Abschnitt **Input parameters (Eingabeparameter)** nicht auswählen. Dies liegt daran, dass Sie Ressourcen mithilfe von Tags oder einer Ressourcengruppe als Ziele ausgewählt haben. Wenn Sie beispielsweise das `AWS-RestartEC2Instance` Runbook ausgewählt haben, müssen Sie IDs im Abschnitt **Eingabeparameter** keine Instanz angeben oder auswählen. Die Automation-Ausführung sucht die Instances für den Neustart mit den von Ihnen angegebenen Tags oder Ressourcengruppen.

1. Verwenden Sie die Optionen im Abschnitt **Tarifsteuerung**, um die Anzahl der AWS Ressourcen zu beschränken, die die Automatisierung innerhalb der einzelnen Konto-Region-Paare ausführen können. 

   Wählen Sie im Abschnitt **Gleichzeitigkeit** eine Option aus: 
   + Wählen Sie **Ziele** aus, um eine absolute Anzahl von Zielen einzugeben, die den Automation-Workflow gleichzeitig ausführen können.
   + Wählen Sie **Prozentsatz** aus, um einen Prozentsatz der Ziele anzugeben, die den Automation-Workflow gleichzeitig ausführen können.

1. Wählen Sie im Abschnitt **Fehlerschwellenwert** eine Option aus:
   + Wählen Sie **Fehler**, um eine absolute Anzahl von zulässigen Fehlern anzugeben, bevor Automation damit aufhört, den Workflow an andere Ressourcen zu senden.
   + Wählen Sie **Prozentsatz** aus, um einen Prozentsatz von zulässigen Fehlern anzugeben, bevor Automation damit aufhört, den Workflow an andere Ressourcen zu senden.

1. (Optional) Wählen Sie einen CloudWatch Alarm aus, der zur Überwachung auf Ihre Automatisierung angewendet werden soll. Um Ihrer Automatisierung einen CloudWatch Alarm hinzuzufügen, muss der IAM-Prinzipal, der die Automatisierung startet, über die entsprechende Genehmigung verfügen`iam:createServiceLinkedRole`. Weitere Informationen zu CloudWatch Alarmen finden Sie unter [ CloudWatch Amazon-Alarme verwenden](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html). Beachten Sie, dass die Automatisierung gestoppt wird, wenn Ihr Alarm aktiviert wird. Wenn Sie dies verwenden AWS CloudTrail, wird der API-Aufruf in Ihrem Trail angezeigt.

1. Wählen Sie **Ausführen**. 

Um Automatisierungen anzuzeigen, die von der Automatisierung der Ratensteuerung gestartet wurden, wählen Sie im Navigationsbereich Automation (Automatisierung) und wählen Sie dann **Anzeigen von untergeordneten Automatisierungen**.

Nach Abschluss einer Automatisierungsausführung können Sie die Ausführung mit denselben oder geänderten Parametern erneut ausführen. Weitere Informationen finden Sie unter [Wiederholtes Ausführen von Automatisierungsausführungen](automation-rerun-executions.md).

## Ausführen einer Automatisierung mit Zielen und Ratensteuerungen (Befehlszeile)
<a name="scale-cli"></a>

Das folgende Verfahren beschreibt, wie Sie die AWS CLI (unter Linux oder Windows) verwenden oder AWS -Tools für PowerShell eine Automatisierung mit Zielen und Ratensteuerungen ausführen.

**So führen Sie eine Automatisierung mit Zielen und Ratensteuerungen aus**

1. Installieren und konfigurieren Sie das AWS CLI oder das AWS -Tools für PowerShell, falls Sie das noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Nutzen Sie den folgenden Befehl, um eine Liste der Dokumente anzuzeigen.

------
#### [ Linux & macOS ]

   ```
   aws ssm list-documents
   ```

------
#### [ Windows ]

   ```
   aws ssm list-documents
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentList
   ```

------

   Beachten Sie den Namen des Runbooks, das Sie verwenden möchten.

1. Führen Sie den folgenden Befehl aus, um Details des Runbooks einsehen zu können: Ersetzen Sie das *runbook name* durch den Namen des Runbooks, dessen Details Sie anzeigen möchten. Notieren Sie auch einen Parameternamen (z. B. `InstanceId`), den Sie für die Option `--target-parameter-name` verwenden möchten. Dieser Parameter bestimmt den Typ der Ressource, für die die Automatisierung ausgeführt wird.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document \
       --name runbook name
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-document ^
       --name runbook name
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentDescription `
       -Name runbook name
   ```

------

1. Erstellen Sie einen Befehl, der die Ziel- und Ratensteuerungsoptionen verwendet, die Sie ausführen möchten. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

   *Ausrichtung mithilfe von Tags*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets Key=tag:key name,Values=value \
       --target-parameter-name parameter name \
       --parameters "input parameter name=input parameter value,input parameter 2 name=input parameter 2 value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=tag:key name,Values=value ^
       --target-parameter-name parameter name ^
       --parameters "input parameter name=input parameter value,input parameter 2 name=input parameter 2 value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "tag:key name"
   $Targets.Values = "value"
   
   Start-SSMAutomationExecution `
       DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "parameter name" `
       -Parameter @{"input parameter name"="input parameter value";"input parameter 2 name"="input parameter 2 value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   *Ausrichtung mithilfe von Parameterwerten*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets Key=ParameterValues,Values=value,value 2,value 3 \
       --target-parameter-name parameter name \
       --parameters "input parameter name=input parameter value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=ParameterValues,Values=value,value 2,value 3 ^
       --target-parameter-name parameter name ^
       --parameters "input parameter name=input parameter value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ParameterValues"
   $Targets.Values = "value","value 2","value 3"
   
   Start-SSMAutomationExecution `
       -DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "parameter name" `
       -Parameter @{"input parameter name"="input parameter value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   *Targeting mit AWS -Ressourcengruppen*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets Key=ResourceGroup,Values=Resource group nname \
       --target-parameter-name parameter name \
       --parameters "input parameter name=input parameter value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=ResourceGroup,Values=Resource group name ^
       --target-parameter-name parameter name ^
       --parameters "input parameter name=input parameter value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ResourceGroup"
   $Targets.Values = "Resource group name"
   
   Start-SSMAutomationExecution `
       -DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "parameter name" `
       -Parameter @{"input parameter name"="input parameter value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   *Ausrichtung auf alle Amazon EC2 EC2-Instances in der aktuellen AWS-Konto und AWS-Region*

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --targets "Key=AWS::EC2::Instance,Values=*"  \
       --target-parameter-name instanceId \
       --parameters "input parameter name=input parameter value" \
       --max-concurrency 10 \
       --max-errors 25%
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --targets Key=AWS::EC2::Instance,Values=* ^
       --target-parameter-name instanceId ^
       --parameters "input parameter name=input parameter value" ^
       --max-concurrency 10 ^
       --max-errors 25%
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "AWS::EC2::Instance"
   $Targets.Values = "*"
   
   Start-SSMAutomationExecution `
       -DocumentName "runbook name" `
       -Targets $Targets `
       -TargetParameterName "instanceId" `
       -Parameter @{"input parameter name"="input parameter value"} `
       -MaxConcurrency "10" `
       -MaxError "25%"
   ```

------

   Der Befehl gibt eine Ausführungs-ID zurück. Kopieren Sie diese ID in die Zwischenablage. Sie können diese ID zum Anzeigen des Status der Automatisierung verwenden.

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE"
   }
   ```

------
#### [ PowerShell ]

   ```
   a4a3c0e9-7efd-462a-8594-01234EXAMPLE
   ```

------

1. Führen Sie den folgenden Befehl aus, um die Automatisierung anzuzeigen. Ersetzen Sie jeden *automation execution ID* durch Ihre Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-automation-executions \
       --filter Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-automation-executions ^
       --filter Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecutionList | `
       Where {$_.AutomationExecutionId -eq "automation execution ID"}
   ```

------

1. Führen Sie den folgenden Befehl aus, um Details über den Automatisierungsprozess anzuzeigen. Ersetzen Sie jeden *automation execution ID* durch Ihre Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-automation-execution \
       --automation-execution-id automation execution ID
   ```

------
#### [ Windows ]

   ```
   aws ssm get-automation-execution ^
       --automation-execution-id automation execution ID
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecution `
       -AutomationExecutionId automation execution ID
   ```

------

   Das System gibt unter anderem folgende Informationen zurück

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecution": {
           "StepExecutionsTruncated": false,
           "AutomationExecutionStatus": "Success",
           "MaxConcurrency": "1",
           "Parameters": {},
           "MaxErrors": "1",
           "Outputs": {},
           "DocumentName": "AWS-StopEC2Instance",
           "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE",
           "ResolvedTargets": {
               "ParameterValues": [
                   "i-02573cafcfEXAMPLE"
               ],
               "Truncated": false
           },
           "ExecutionEndTime": 1564681619.915,
           "Targets": [
               {
                   "Values": [
                       "DEV"
                   ],
                   "Key": "tag:ENV"
               }
           ],
           "DocumentVersion": "1",
           "ExecutionStartTime": 1564681576.09,
           "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
           "StepExecutions": [
               {
                   "Inputs": {
                       "InstanceId": "i-02573cafcfEXAMPLE"
                   },
                   "Outputs": {},
                   "StepName": "i-02573cafcfEXAMPLE",
                   "ExecutionEndTime": 1564681619.093,
                   "StepExecutionId": "86c7b811-3896-4b78-b897-01234EXAMPLE",
                   "ExecutionStartTime": 1564681576.836,
                   "Action": "aws:executeAutomation",
                   "StepStatus": "Success"
               }
           ],
           "TargetParameterName": "InstanceId",
           "Mode": "Auto"
       }
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecution": {
           "StepExecutionsTruncated": false,
           "AutomationExecutionStatus": "Success",
           "MaxConcurrency": "1",
           "Parameters": {},
           "MaxErrors": "1",
           "Outputs": {},
           "DocumentName": "AWS-StopEC2Instance",
           "AutomationExecutionId": "a4a3c0e9-7efd-462a-8594-01234EXAMPLE",
           "ResolvedTargets": {
               "ParameterValues": [
                   "i-02573cafcfEXAMPLE"
               ],
               "Truncated": false
           },
           "ExecutionEndTime": 1564681619.915,
           "Targets": [
               {
                   "Values": [
                       "DEV"
                   ],
                   "Key": "tag:ENV"
               }
           ],
           "DocumentVersion": "1",
           "ExecutionStartTime": 1564681576.09,
           "ExecutedBy": "arn:aws:sts::123456789012:assumed-role/Administrator/Admin",
           "StepExecutions": [
               {
                   "Inputs": {
                       "InstanceId": "i-02573cafcfEXAMPLE"
                   },
                   "Outputs": {},
                   "StepName": "i-02573cafcfEXAMPLE",
                   "ExecutionEndTime": 1564681619.093,
                   "StepExecutionId": "86c7b811-3896-4b78-b897-01234EXAMPLE",
                   "ExecutionStartTime": 1564681576.836,
                   "Action": "aws:executeAutomation",
                   "StepStatus": "Success"
               }
           ],
           "TargetParameterName": "InstanceId",
           "Mode": "Auto"
       }
   }
   ```

------
#### [ PowerShell ]

   ```
   AutomationExecutionId       : a4a3c0e9-7efd-462a-8594-01234EXAMPLE
   AutomationExecutionStatus   : Success
   CurrentAction               : 
   CurrentStepName             : 
   DocumentName                : AWS-StopEC2Instance
   DocumentVersion             : 1
   ExecutedBy                  : arn:aws:sts::123456789012:assumed-role/Administrator/Admin
   ExecutionEndTime            : 8/1/2019 5:46:59 PM
   ExecutionStartTime          : 8/1/2019 5:46:16 PM
   FailureMessage              : 
   MaxConcurrency              : 1
   MaxErrors                   : 1
   Mode                        : Auto
   Outputs                     : {}
   Parameters                  : {}
   ParentAutomationExecutionId : 
   ProgressCounters            : 
   ResolvedTargets             : Amazon.SimpleSystemsManagement.Model.ResolvedTargets
   StepExecutions              : {i-02573cafcfEXAMPLE}
   StepExecutionsTruncated     : False
   Target                      : 
   TargetLocations             : {}
   TargetMaps                  : {}
   TargetParameterName         : InstanceId
   Targets                     : {tag:Name}
   ```

------
**Anmerkung**  
Sie können auch den Status der Automatisierung in der Konsole überwachen. Wählen Sie in der Liste **Automatisierungs-Ausführung** die Automatisierung, die Sie gerade ausgeführt haben, und wählen Sie dann die Registerkarte **Ausführungsschritte**. Diese Registerkarte zeigt Ihnen den Status der Automatisierungs-Aktionen.

# Zuordnen von Zielen für eine Automatisierung
<a name="running-automations-map-targets"></a>

Verwenden Sie den `Targets`-Parameter, um schnell zu definieren, auf welche Ressourcen eine Automatisierung abzielt. Wenn Sie beispielsweise eine Automatisierung ausführen möchten, die Ihre verwalteten Instances neu startet, können Sie, anstatt manuell Dutzende von Instance-IDs in der Konsole oder in einem Befehl einzugeben, Ziel-Instances festlegen, indem Sie Amazon Elastic Compute Cloud (Amazon EC2)-Tags mit dem `Targets`-Parameter verwenden.

Wenn Sie eine Automatisierung ausführen, die ein Ziel verwendet, AWS Systems Manager wird für jedes Ziel eine untergeordnete Automatisierung erstellt. Wenn Sie z. B. mithilfe von Tags Amazon Elastic Block Store (Amazon EBS)-Volume angeben und diese Tags auf 100 Amazon EBS-Volumes aufgelöst werden, dann erstellt Systems Manager 100 untergeordnete Automatisierungen. Die übergeordnete Automatisierung ist abgeschlossen, wenn alle untergeordneten Automatisierungen einen endgültigen Status erreicht haben.

**Anmerkung**  
Alle `input parameters`, die Sie zur Laufzeit angeben (entweder im Abschnitt **Input parameters (Eingabeparameter)** der Konsole oder mithilfe der Option `parameters` auf der Befehlszeile) werden automatisch von allen untergeordneten Automatisierungen verarbeitet.

Sie können Ressourcen für eine Automatisierung gezielt einsetzen, indem Sie Tags, Resource Groups und Parameterwerte verwenden. Darüber hinaus können Sie mit der Option `TargetMaps` mehrere Parameterwerte über die Befehlszeile oder eine Datei als Ziel einrichten. Der folgende Abschnitt beschreibt die einzelnen Targeting-Optionen eingehender.

## Anzielen eines Tags
<a name="target-tags"></a>

Sie können einen einzelnen Tag als Ziel einer Automatisierung bestimmen. Viele AWS -Ressourcen unterstützen Tags, einschließlich Amazon Elastic Compute Cloud (Amazon EC2) und Amazon Relational Database Service (Amazon RDS) -Instances, Amazon Elastic Block Store (Amazon EBS) -Volumes und -Snapshots, Resource Groups und Amazon Simple Storage Service (Amazon S3) -Buckets. Sie können Ihre AWS Ressourcen schnell automatisieren, indem Sie auf ein Tag abzielen. Ein Tag ist ein Schlüssel-Wert-Paar, z. B. Operating\$1System:Linux oder Department:Finance. Wenn Sie einer Ressource einen bestimmten Namen zuweisen, können Sie auch das Wort „Name“ als Schlüssel und den Namen der Ressource als Wert verwenden.

Wenn Sie einen Tag als Ziel für eine Automatisierung angeben, geben Sie auch einen Ziel-Parameter an. Der Ziel-Parameter verwendet die Option `TargetParameterName`. Durch Auswahl eines Zielparameters legen Sie den Typ der Ressource fest, für die die Automatisierung ausgeführt wird. Der Zielparameter, den Sie mit dem Tag angeben, muss ein im Runbook definierter gültiger Parameter sein. Wenn Sie beispielsweise Tags für Dutzende von EC2-Instances verwenden möchten, wählen Sie den Zielparameter `InstanceId`. Durch die Auswahl dieses Parameters legen Sie *Instances* als Ressourcentyp für die Automatisierung fest. Beim Erstellen eines benutzerdefinierten Runbooks müssen Sie den **Zieltyp** als `/AWS::EC2::Instance` angeben, um sicherzustellen, dass nur Instances verwendet werden. Andernfalls werden alle Ressourcen mit demselben Tag als Ziel ausgewählt. Wenn Sie auf Instances mit einem Tag abzielen, werden möglicherweise beendete Instances eingeschlossen.

Im folgenden Screenshot werden die `AWS-DetachEBSVolume`-Runbook verwendet. Der logische Ziel-Parameter ist `VolumeId`.

![\[Verwenden eines Tags als Ziel für eine Systems-Manager-Automatisierung\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/automation-rate-control-tags-1-new.png)


Das `AWS-DetachEBSVolume`-Runbook enthält auch eine spezielle Eigenschaft namens **Zieltyp**, welche auf `/AWS::EC2::Volume` gesetzt wird. Dies bedeutet: Wenn das Tag-Schlüssel-Paar `Finance:TestEnv` unterschiedliche Ressourcentypen zurückgibt (zum Beispiel EC2-Instances, Amazon EBS-Volumes, Amazon EBS-Snapshots), werden nur Amazon EBS-Volumes verwendet.

**Wichtig**  
Bei Zielparameternamen muss die Groß- und Kleinschreibung beachtet werden. Wenn Sie Automatisierungen entweder mit AWS Command Line Interface (AWS CLI) oder ausführen AWS Tools for Windows PowerShell, müssen Sie den Namen des Zielparameters genau so eingeben, wie er im Runbook definiert ist. Andernfalls gibt das System einen `InvalidAutomationExecutionParametersException`-Fehler aus. Sie können den [DescribeDocument](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeDocument.html)API-Vorgang verwenden, um Informationen zu den verfügbaren Zielparametern in einem bestimmten Runbook abzurufen. Im Folgenden sehen Sie einen Beispiel AWS CLI -Befehl, der Informationen über das `AWS-DeleteSnapshot`-Dokument gibt.  

```
aws ssm describe-document \
    --name AWS-DeleteSnapshot
```

Im Folgenden finden Sie einige AWS CLI Beispielbefehle, die mithilfe eines Tags auf Ressourcen abzielen.

**Beispiel 1: Zielgerichtete Tags mit einem Schlüssel-Wert-Paar zum Neustarten von Amazon-EC2-Instances**

In diesem Beispiel werden alle Amazon EC2 EC2-Instances neu gestartet, die mit dem Schlüssel *Department* und dem Wert gekennzeichnet sind. *HumanResources* Der Zielparameter verwendet den *InstanceId*Parameter aus dem Runbook. Im Beispiel wird ein zusätzlicher Parameter für die Ausführung der Automation mithilfe einer Automation-Servicerolle (auch als *Übernahmerolle* bezeichnet) verwendet.

```
aws ssm start-automation-execution \
    --document-name AWS-RestartEC2Instance \
    --targets Key=tag:Department,Values=HumanResources \
    --target-parameter-name InstanceId \
    --parameters "AutomationAssumeRole=arn:aws:iam::111122223333:role/AutomationServiceRole"
```

**Beispiel 2: Zielgerichtete Tags mit einem Schlüssel-Wert-Paar zum Löschen von Amazon-EBS-Snapshots**

Das folgende Beispiel verwendet das `AWS-DeleteSnapshot`-Runbook zum Löschen aller Snapshots mit dem Schlüssel *Name* und dem Wert *January2018Backups*. Der Zielparameter verwendet den *VolumeId*Parameter.

```
aws ssm start-automation-execution \
    --document-name AWS-DeleteSnapshot \
    --targets Key=tag:Name,Values=January2018Backups \
    --target-parameter-name VolumeId
```

## Targeting AWS -Ressourcengruppen
<a name="target-resource-groups"></a>

Sie können eine einzelne AWS Ressourcengruppe als Ziel einer Automatisierung angeben. Systems Manager erstellt eine untergeordnete Automatisierung für jedes Objekt in der Ziel-Ressourcengruppe.

Nehmen wir zum Beispiel an, dass eine Ihrer Resource Groups den Namen Patched AMIs trägt. Diese Ressourcengruppe enthält eine Liste von 25 Windows Amazon Machine Images (AMIs), die routinemäßig gepatcht werden. Wenn Sie eine Automatisierung ausführen, die das `AWS-CreateManagedWindowsInstance`-Runbook verwendet, und Sie diese auf diese Resource Group ausrichten, erstellt Systems Manager eine untergeordnete Automatisierung für jede der 25 AMIs. Das bedeutet, dass die Automatisierung, indem sie auf die gepatchte AMIs Ressourcengruppe abzielt, 25 Instanzen aus einer Liste der gepatchten Instanzen erstellt. AMIs Die übergeordnete Automatisierung ist abgeschlossen, wenn alle untergeordneten Automatisierungen abgeschlossen sind oder einen endgültigen Status erreicht haben.

Der folgende AWS CLI Befehl gilt für das Beispiel „Patch AMIs Resource Group“. Der Befehl verwendet den *AmiId*Parameter für die `--target-parameter-name` Option. Der Befehl enthält keinen zusätzlichen Parameter, der festlegt, welche Art von Instance aus jeder AMI erstellt werden soll. Das `AWS-CreateManagedWindowsInstance`-Runbook verwendet standardmäßig den Instance-Typ t2.medium, so dass dieser Befehl 25 t2.medium Amazon-EC2-Instances für Windows Server erstellt.

```
aws ssm start-automation-execution \
    --document-name AWS-CreateManagedWindowsInstance \
    --targets Key=ResourceGroup,Values=PatchedAMIs  \
    --target-parameter-name AmiId
```

Das folgende Konsolenbeispiel verwendet eine Ressourcengruppe mit dem Namen t2-micro-instances.

![\[Mit einer Systems Manager Manager-Automatisierung auf eine AWS Ressourcengruppe abzielen\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/automation-rate-control-resource-groups-new.png)


## Ausrichtung auf Parameterwerte
<a name="target-parameter-values"></a>

Sie können auch einen Parameterwert zur Ausrichtung verwenden. Geben Sie `ParameterValues` als Schlüssel und dann den spezifischen Ressourcenwert für die Ausführung der Automatisierung ein. Wenn Sie mehrere Werte angeben, führt Systems Manager eine untergeordnete Automatisierung für jeden angegebenen Wert aus.

Nehmen Sie beispielsweise an, dass das Runbook einen **InstanceID**-Parameter enthält. Wenn Sie die Werte des **InstanceID**-Parameters beim Ausführen von Automation verwenden, führt Systems Manager eine untergeordnete Automatisierung für jeden angegebenen Instance-ID-Wert aus. Die übergeordnete Automatisierung ist abgeschlossen, wenn Automatisierung die Ausführung jeder angegebenen Instance abgeschlossen hat oder wenn die Automatisierung fehlschlägt. Sie können maximal 50 Parameterwerte für die Ausrichtung verwenden.

Im folgenden Beispiel wird das `AWS-CreateImage`-Runbook verwendet. Der angegebene Name des Zielparameters lautet *InstanceId*. Der Schlüssel verwendet *ParameterValues*. Die Werte sind zwei Amazon EC2 EC2-Instances IDs. Dieser Befehl erstellt einen Automatisierung für jede Instance, wodurch eine AMI von jeder Instance erzeugt wird. 

```
aws ssm start-automation-execution 
    --document-name AWS-CreateImage \
    --target-parameter-name InstanceId \
    --targets Key=ParameterValues,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE
```

**Anmerkung**  
`AutomationAssumeRole` ist kein gültiger Parameter. Wählen Sie dieses Element nicht aus, wenn Sie die Automatisierung ausführen, die auf einen Parameterwert abzielt.

### Ausrichtung auf Parameterwert-Maps
<a name="target-maps"></a>

Die Option `TargetMaps` erweitert die Möglichkeiten zur Ausrichtung auf `ParameterValues`. Sie können ein Array von Parameterwerten mithilfe von `TargetMaps` auf der Befehlszeile eingeben. Sie können maximal 50 Parameterwerte in der Befehlszeile angeben. Wenn Sie Befehle ausführen möchten, die mehr als 50 Parameterwerte angeben, können Sie die Werte in einer JSON-Datei eingeben. Sie können dann die Datei von der Befehlszeile aus aufrufen.

**Anmerkung**  
Die `TargetMaps`-Option wird in der Konsole nicht unterstützt.

Verwenden Sie das folgende Format, um mehrere Parameterwerte angeben, indem Sie die Option `TargetMaps` in einem Befehl verwenden. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

```
aws ssm start-automation-execution \
    --document-name runbook name \
    --target-maps “parameter=value, parameter 2=value, parameter 3=value”  “parameter 4=value, parameter 5=value, parameter 6=value”
```

Wenn Sie mehr als 50 Parameterwerte für die Option `TargetMaps` angeben möchten, geben Sie die Werte mit dem folgenden JSON-Format an. Die Verwendung einer JSON-Datei verbessert auch die Lesbarkeit bei mehreren Parameterwerten.

```
[

    {“parameter”: "value", “parameter 2”: "value", “parameter 3”: "value"},

    {“parameter 4”: "value", “parameter 5”: "value", "parameter 6": "value"}

]
```

Speichen Sie die Datei mit der Dateierweiterung .json. Sie können die Datei mit dem folgenden Befehl ausführen. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

```
aws ssm start-automation-execution \
    --document-name runbook name \
    –-parameters input parameters \
    --target-maps path to file/file name.json
```

Sie können die auch aus einem Amazon Simple Storage Service (Amazon S3)-Bucket herunterladen, sofern Sie über die Berechtigung zum lesen von Daten aus dem Bucket verfügen. Verwenden Sie das folgende Befehlsformat. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

```
aws ssm start-automation-execution \
    --document-name runbook name \
    --target-maps http://amzn-s3-demo-bucket.s3.amazonaws.com/file_name.json
```

Hier sehen Sie ein Beispiel für ein Szenario, das Ihnen dabei hilft, die Option `TargetMaps` zu verstehen. In diesem Szenario möchte ein Benutzer Amazon EC2-Instances verschiedener Typen aus verschiedenen AMIs erstellen. Für diese Aufgabe erstellt der Benutzer erstellt ein Runbook mit dem Namen AMI\$1Testing. Dieses Runbook definiert zwei Eingabeparameter: `instanceType` und `imageId`. 

```
{
  "description": "AMI Testing",
  "schemaVersion": "0.3",
  "assumeRole": "{{assumeRole}}",
  "parameters": {
    "assumeRole": {
      "type": "String",
      "description": "Role under which to run the automation",
      "default": ""
    },
    "instanceType": {
      "type": "String",
      "description": "Type of EC2 Instance to launch for this test"
    },
    "imageId": {
      "type": "String",
      "description": "Source AMI id from which to run instance"
    }
  },
  "mainSteps": [
    {
      "name": "runInstances",
      "action": "aws:runInstances",
      "maxAttempts": 1,
      "onFailure": "Abort",
      "inputs": {
        "ImageId": "{{imageId}}",
        "InstanceType": "{{instanceType}}",
        "MinInstanceCount": 1,
        "MaxInstanceCount": 1
      }
    }
  ],
  "outputs": [
    "runInstances.InstanceIds"
  ]
}
```

Dann gibt der Benutzer die folgenden Ziel-Parameterwerte in einer Datei mit dem Namen `AMI_instance_types.json` an.

```
[
  {
    "instanceType" : ["t2.micro"],     
    "imageId" : ["ami-b70554c8"]     
  },
  {
    "instanceType" : ["t2.small"],     
    "imageId" : ["ami-b70554c8"]     
  },
  {
    "instanceType" : ["t2.medium"],     
    "imageId" : ["ami-cfe4b2b0"]     
  },
  {
    "instanceType" : ["t2.medium"],     
    "imageId" : ["ami-cfe4b2b0"]     
  },
  {
    "instanceType" : ["t2.medium"],     
    "imageId" : ["ami-cfe4b2b0"]     
  }
]
```

Mit dem folgenden Befehl kann der Benutzer die Automatisierung ausführen und die fünf EC2-Instances erstellen, die in `AMI_instance_types.json` definiert sind.

```
aws ssm start-automation-execution \
    --document-name AMI_Testing \
    --target-parameter-name imageId \
    --target-maps file:///home/TestUser/workspace/runinstances/AMI_instance_types.json
```

## Ausrichtung auf alle Amazon-EC2-Instances
<a name="target-all-instances"></a>

Sie können eine Automatisierung auf allen Amazon EC2 EC2-Instances in der aktuellen AWS-Konto Version ausführen, AWS-Region indem Sie in der **Zielliste** **Alle Instances** auswählen. Wenn Sie beispielsweise alle Amazon EC2 EC2-Instances, Ihre AWS-Konto und die aktuelle AWS-Region, neu starten möchten, können Sie das `AWS-RestartEC2Instance` Runbook auswählen und dann **Alle Instances** aus der Liste **Ziele** auswählen.

![\[Ausrichtung auf alle Amazon-EC2-Instances für ein Runbook\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/automation-rate-control-target-all-instances.png)


Nachdem Sie **Alle Instances** gewählt haben, versieht Systems Manager das **Instance**-Feld einem Sternchen (\$1) und macht das Feld für Änderungen nicht verfügbar (das Feld ist ausgegraut). Systems Manager macht außerdem das **InstanceId**Feld im Feld **Eingabeparameter** für Änderungen nicht verfügbar. Diese Felder für Änderungen nicht verfügbar zu machen, ist ein erwartetes Verhalten, wenn Sie sich dafür entscheiden, alle Instances abzudecken.

# Steuern von Automatisierungen im großen Maßstab
<a name="running-automations-scale-controls"></a>

Sie können den Einsatz einer Automatisierung für eine ganze Flotte von AWS Ressourcen steuern, indem Sie einen Parallelitätswert und einen Fehlerschwellenwert angeben. Die Gleichzeitigkeits- und die Fehlergrenzwertfunktion werden gemeinsam als *Ratensteuerungen* bezeichnet.

**Nebenläufigkeit**  
Mit dem Gleichzeitigkeitswert können Sie angeben, wie viele Ressourcen eine Automatisierung gleichzeitig ausführen können. Die Gleichzeitigkeitsfunktion hilft dabei, die Auswirkungen auf Ihre Ressourcen oder Ausfälle werden der Ausführung einer Automatisierung zu begrenzen. Sie können entweder eine absolute Anzahl an Ressourcen, z. B. 20, oder einen Prozentsatz des festgelegten Ziels, beispielsweise 10 %, festlegen.

Das Warteschlangensystem übermittelt die Automatisierung an eine einzelne Ressource und wartet, bis der erste Aufruf abgeschlossen ist, bevor die Automatisierung an zwei weitere Ressourcen geschickt wird. Das System sendet die Automatisierung exponentiell an mehrere Ressourcen, bis der Gleichzeitigkeitswert erreicht ist.

**Fehlerschwellenwerte**  
Verwenden Sie einen Fehlerschwellenwert, um anzugeben, wie viele Automatisierungen fehlschlagen dürfen, bevor das Senden der Automatisierung an andere Ressourcen AWS Systems Manager beendet wird. Sie können entweder eine absolute Anzahl an Fehlern, z. B. 10, oder einen Prozentsatz des festgelegten Ziels, beispielsweise 10 % festlegen.

Wenn Sie z. B. die absolute Zahl von 3 Fehlern angeben, führt das System keine Automatisierung mehr aus, wenn der vierte Fehler empfangen wird. Wenn Sie 0 angeben, führt das System keine weitere Automatisierung auf zusätzlichen Zielen aus, nachdem das erste Fehlerergebnis zurückgegeben wird.

Wenn Sie eine Automatisierung etwa an 50 Instances senden und den Fehlerschwellenwert auf 10 % festlegen, sendet das System keinen Befehl mehr an weitere Instances, wenn der fünfte Fehler empfangen wird. Aufrufe, die bereits eine Automatisierung ausführen, wenn ein Fehlerschwellenwert erreicht wird, können abgeschlossen werden, einige dieser Automatisierungen können jedoch dennoch fehlschlagen. Wenn Sie sicherstellen müssen, dass nicht mehr Fehlern als der angegebene Wert für den Fehlergrenzwert auftreten, setzen Sie den Wert für die **Concurrency (Gleichzeitigkeit)** auf 1, sodass die Automatisierungen jeweils einzeln ausgeführt werden. 

# Automatisierungen in mehreren Konten AWS-Regionen ausführen
<a name="running-automations-multiple-accounts-regions"></a>

Sie können AWS Systems Manager Automatisierungen für mehrere AWS-Konten und/oder AWS-Regionen AWS Organizations organisatorische Einheiten (OUs) von einem zentralen Konto aus ausführen. Automation ist ein Tool in AWS Systems Manager. Durch die Ausführung von Automatisierungen in mehreren Regionen und Konten OUs wird der Zeitaufwand für die Verwaltung Ihrer AWS Ressourcen reduziert und gleichzeitig die Sicherheit Ihrer Computerumgebung verbessert.

Sie können z. B. Folgendes tun, indem Sie Automatisierungs-Runbooks verwenden:
+ Implementieren Sie Patches und Sicherheitsupdates zentral.
+ Korrigieren Sie Compliance-Abweichungen bei VPC-Konfigurationen oder Amazon-S3-Bucket-Richtlinien.
+ Verwalten Sie Ressourcen wie Amazon Elastic Compute Cloud (Amazon EC2)-Instances im großen Maßstab.

Das folgende Diagramm zeigt ein Beispiel für einen Benutzer, der das `AWS-RestartEC2Instances`-Runbook in mehreren Regionen und Konten von einem zentralen Konto aus ausführt. Die Automatisierung sucht die Instances unter Verwendung der angegebenen Tags in den Zielregionen und -konten.

![\[Abbildung der Ausführung von Systems Manager Automation in mehreren Regionen und Konten.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/automation-multi-region-and-multi-account.png)


**Auswählen eines zentralen Kontos für Automation**  
Wenn Sie Automatisierungen überall ausführen möchten OUs, muss das zentrale Konto über die Berechtigungen verfügen, um alle Konten in der aufzulisten. OUs Dies ist nur über ein delegiertes Administratorkonto oder das Verwaltungskonto der Organisation möglich. Wir empfehlen Ihnen, AWS Organizations bewährte Methoden zu befolgen und ein delegiertes Administratorkonto zu verwenden. Weitere Informationen zu AWS Organizations bewährten Methoden finden Sie unter [Bewährte Methoden für das Verwaltungskonto](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_best-practices_mgmt-acct.html) im *AWS Organizations Benutzerhandbuch*. Um ein delegiertes Administratorkonto für Systems Manager zu erstellen, können Sie den `register-delegated-administrator` Befehl mit dem verwenden, AWS CLI wie im folgenden Beispiel gezeigt.

```
aws organizations register-delegated-administrator \
    --account-id delegated admin account ID \
    --service-principal ssm.amazonaws.com
```

Wenn Sie Automatisierungen für mehrere Konten ausführen möchten, die nicht von AWS Organizations verwaltet werden, empfehlen wir, ein dediziertes Konto für die Automatisierungsverwaltung zu erstellen. Die Ausführung aller kontoübergreifenden Automatisierungen über ein dediziertes Konto vereinfacht die Verwaltung von IAM-Berechtigungen, die Fehlerbehebung und schafft eine Trennungsebene zwischen Betrieb und Verwaltung. Dieser Ansatz wird auch empfohlen, wenn Sie einzelne Konten verwenden AWS Organizations, aber nicht OUs darauf abzielen möchten.

**So funktioniert das Ausführen von Automatisierungen**  
Das Ausführen von Automatisierungen über mehrere Regionen und Konten hinweg OUs funktioniert wie folgt:

1. Melden Sie sich bei dem Konto an, das Sie als zentrales Automation-Konto konfigurieren möchten.

1. Verwenden Sie das [Einrichten von Managementkonto-Berechtigungen für regionen- und kontenübergreifende Automatisierungen.](#setup-management-account-iam-roles)-Verfahren in diesem Thema, um die folgenden IAM-Rollen zu erstellen:
   + `AWS-SystemsManager-AutomationAdministrationRole`- Diese Rolle gibt dem Benutzer die Erlaubnis, Automatisierungen in mehreren Konten auszuführen und. OUs
   + `AWS-SystemsManager-AutomationExecutionRole` – Diese Rolle erteilt dem Benutzer die Berechtigung, Automatisierungen in den Zielkonten auszuführen.

1. Wählen Sie das Runbook, die Regionen und die Konten oder den Ort aus, OUs an dem Sie die Automatisierung ausführen möchten.
**Anmerkung**  
Stellen Sie sicher, dass die Zielorganisationseinheit die gewünschten Konten enthält. Wenn Sie ein benutzerdefiniertes Runbook auswählen, muss das Runbook für alle Zielkonten freigegeben werden. Weitere Informationen zum Teilen von Runbooks finden Sie unter [Freigeben von SSM-Dokumenten](documents-ssm-sharing.md). Weitere Informationen zur Verwendung von freigegebenen Runbooks finden Sie unter [Verwenden von freigegebenen SSM-Dokumenten](documents-ssm-sharing.md#using-shared-documents).

1. Führen Sie die Automatisierung aus.

1. Verwenden Sie die [DescribeAutomationExecutions](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeAutomationExecutions.html)API-Operationen [GetAutomationExecution[DescribeAutomationStepExecutions](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeAutomationStepExecutions.html)](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetAutomationExecution.html), und von der AWS Systems Manager Konsole aus oder verwenden Sie, AWS CLI um den Automatisierungsfortschritt zu überwachen. Die Ausgabe der Schritte für die Automatisierung in Ihrem primären Konto wird die `AutomationExecutionId` der untergeordneten Automatisierungen sein. Um die Ausgabe der untergeordneten Automatisierungen anzuzeigen, die in Ihren Zielkonten erstellt wurden, müssen Sie das entsprechende Konto, die Region und die `AutomationExecutionId` In Ihrer Anfrage angeben.

## Einrichten von Managementkonto-Berechtigungen für regionen- und kontenübergreifende Automatisierungen.
<a name="setup-management-account-iam-roles"></a>

Verwenden Sie das folgende Verfahren, um die erforderlichen IAM-Rollen für die Systems Manager Automation regionen- und kontenübergreifende Ausführung von Automation mit AWS CloudFormation zu erstellen. In diesem Verfahren wird beschrieben, wie Sie die `AWS-SystemsManager-AutomationAdministrationRole`-Rolle erstellen. Sie müssen nur diese Rolle im zentralen Automation-Konto erstellen. In diesem Verfahren wird auch beschrieben, wie Sie die `AWS-SystemsManager-AutomationExecutionRole`-Rolle erstellen. Sie müssen diese Rolle in *jedem* Konto erstellen, das für die Ausführung von regionen- und kontenübergreifenden Automatisierungen verwendet werden soll. Wir empfehlen CloudFormation StackSets , sie zu verwenden, um die `AWS-SystemsManager-AutomationExecutionRole` Rolle in den Konten zu erstellen, auf die Sie für die Ausführung von Automatisierungen mit mehreren Regionen und Konten abzielen möchten.

**Um die erforderliche IAM-Administrationsrolle für Automatisierungen mit mehreren Regionen und mehreren Konten zu erstellen, verwenden Sie CloudFormation**

1. Laden Sie das [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole.zip) herunter und entpacken Sie es.

   –oder–

   Wenn Ihre Konten verwaltet werden von. AWS Organizations [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole (org).zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationAdministrationRole (org).zip)

   Diese Dateien enthalten die jeweiligen `AWS-SystemsManager-AutomationAdministrationRole (org).yaml` CloudFormation Vorlagendateien `AWS-SystemsManager-AutomationAdministrationRole.yaml` und die Vorlagendateien.

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie **Stack erstellen** aus.

1. Wählen Sie im Abschnitt **Vorlage angeben** die Option **Vorlage hochladen**.

1. **Wählen Sie Datei auswählen** und dann je nach Ihrer Auswahl in Schritt 1 die Datei `AWS-SystemsManager-AutomationAdministrationRole.yaml` oder die `AWS-SystemsManager-AutomationAdministrationRole (org).yaml` CloudFormation Vorlagendatei aus.

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

1. Geben Sie auf der Seite **Stack-Details angeben** im Feld **Stack-Name** einen Namen ein. 

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

1. Geben Sie auf der Seite **Stack-Optionen konfigurieren** Werte für die Optionen ein, die Sie verwenden möchten. Wählen Sie **Weiter** aus.

1. Scrollen Sie auf der Seite „**Überprüfen**“ nach unten und wählen Sie die Option **Ich bestätige, dass CloudFormation möglicherweise IAM-Ressourcen mit benutzerdefinierten Namen erstellt** werden.

1. Wählen Sie **Stack erstellen** aus.

CloudFormation zeigt den Status **CREATE\$1IN\$1PROGRESS** für ungefähr drei Minuten an. Der Status wechselt zu **CREATE\$1COMPLETE**.

Sie müssen die folgende Vorgehensweise in *jedem* Konto, für das Sie regionen- und kontenübergreifende Automatisierungen ausführen möchten, wiederholen.

**Um die erforderliche IAM-Automatisierungsrolle für Automatisierungen mit mehreren Regionen und mehreren Konten zu erstellen, verwenden Sie CloudFormation**

1. Laden Sie das [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole.zip) herunter.

   –oder

   Wenn Ihre Konten verwaltet werden von. AWS Organizations [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole (org).zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWS-SystemsManager-AutomationExecutionRole (org).zip)

   Diese Dateien enthalten die `AWS-SystemsManager-AutomationExecutionRole.yaml`- bzw. die `AWS-SystemsManager-AutomationExecutionRole (org).yaml`CloudFormation -Vorlagendateien.

1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Wählen Sie **Stack erstellen** aus.

1. Wählen Sie im Abschnitt **Vorlage angeben** die Option **Vorlage hochladen**.

1. **Wählen Sie Datei auswählen** und dann je nach Ihrer Auswahl in Schritt 1 die Datei `AWS-SystemsManager-AutomationExecutionRole.yaml` oder die `AWS-SystemsManager-AutomationExecutionRole (org).yaml` CloudFormation Vorlagendatei aus.

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

1. Geben Sie auf der Seite **Stack-Details angeben** im Feld **Stack-Name** einen Namen ein. 

1. Geben Sie im Abschnitt **Parameter** in das **AdminAccountId**Feld die ID für das zentrale Automation-Konto ein.

1. Wenn Sie diese Rolle für eine AWS Organizations Umgebung einrichten, gibt es im Abschnitt ein weiteres Feld namens **OrganizationID**. Geben Sie die ID Ihrer AWS Organisation ein.

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

1. Geben Sie auf der Seite **Stack-Optionen konfigurieren** Werte für die Optionen ein, die Sie verwenden möchten. Wählen Sie **Weiter** aus.

1. Scrollen Sie auf der Seite „**Überprüfen**“ nach unten und wählen Sie die Option **Ich bestätige, dass CloudFormation möglicherweise IAM-Ressourcen mit benutzerdefinierten Namen erstellt** werden.

1. Wählen Sie **Stack erstellen** aus.

CloudFormation zeigt den Status **CREATE\$1IN\$1PROGRESS** für ungefähr drei Minuten an. Der Status wechselt zu **CREATE\$1COMPLETE**.

## Ausführen von Automatisierungen in mehreren Regionen und Konten (Konsole)
<a name="multiple-console"></a>

Im folgenden Verfahren wird beschrieben, wie Sie mithilfe der Systems Manager-Konsole eine Automatisierung in mehreren Regionen und Konten über das Automation-Managementkonto ausführen.

**Bevor Sie beginnen**  
Bevor Sie das folgende Verfahren ausführen, beachten Sie die folgenden Informationen:
+ Der Benutzer oder die Rolle, mit der Sie eine Automation für mehrere Regionen oder Konten ausführen, muss über die Berechtigung `iam:PassRole` für die Rolle `AWS-SystemsManager-AutomationAdministrationRole` verfügen.
+ AWS-Konto IDs oder OUs wo Sie die Automatisierung ausführen möchten.
+ [Von Systems Manager unterstützte Regionen](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region), in denen Sie die Automatisierung ausführen möchten.
+ Den Tag-Schlüssel und den Tag-Wert oder den Namen der Ressourcengruppe für die Ausführung der Automatisierung.

**So führen Sie eine Automatisierung in mehreren Regionen und Konten aus**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Automatisierung** und **Automatisierung ausführen** aus.

1. Wählen Sie in der Liste **Automation-Dokument** ein Runbook. Wählen Sie eine oder mehrere Optionen im Bereich **Dokumentkategorien**, um SSM-Dokumente nach ihrem Zweck zu filtern. Um ein Runbook anzuzeigen, das Sie besitzen, wählen Sie die **Im Besitz von mir**-Registerkarte. Um ein Runbook anzuzeigen, das für Ihr Konto freigegeben ist, wählen Sie die Registerkarte **Mit mir geteilt**. Um alle Runbooks anzuzeigen, wählen Sie die Registerkarte **Alle Dokumente**.
**Anmerkung**  
Sie können Informationen zu einem Runbook einsehen, indem Sie den Runbook-Namen auswählen.

1. Überprüfen Sie im Abschnitt **Dokument-Details**, ob **Dokumentversion** auf die Version gesetzt ist, die Sie ausführen möchten. Das System bietet die folgenden Versionsoptionen: 
   + **Standardversion zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird und eine neue Standardversion zugewiesen ist.
   + **Letzte Version zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird, und Sie die Version auszuführen möchten, die zuletzt aktualisiert wurde.
   + **1 (Standard)** – Wählen Sie diese Option zur Ausführung der ersten Version des Dokuments, welches der Standard ist.

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

1. Wählen Sie auf der Seite **Execute automation document (Automation-Dokument ausführen)** die Option **Multi-account and Region (Mehrere Konten und Regionen)**.

1. Verwenden Sie im Abschnitt **Zielkonten und Regionen** das Feld **Konten, Organisationseinheiten (OUs) und Stammverzeichnisse,** um die verschiedenen Organisationseinheiten AWS-Konten oder AWS Organisationseinheiten (OUs) anzugeben, in denen Sie die Automatisierung ausführen möchten. Trennen Sie mehrere Konten oder OUs durch ein Komma voneinander. 

   1. (Optional) Aktivieren Sie das OUs Kontrollkästchen „**Kind einbeziehen**“, um alle untergeordneten Organisationseinheiten innerhalb der angegebenen OUs Organisationseinheiten einzubeziehen.

   1. (Optional) Geben Sie im Feld **Konten und Organisationseinheiten ausschließen (OUs)** eine durch Kommas getrennte Liste der Konten IDs und Organisationseinheiten ein IDs , die Sie aus den oben eingegebenen erweiterten Entitäten ausschließen möchten.

1. Verwenden Sie die Liste **Regionen** zur Auswahl einer oder mehrerer Regionen für die Ausführung der Automatisierung.

1. Verwenden Sie die Optionen für **Multi-Region and account rate control (Regionen- und kontenübergreifende Ratensteuerung)**, um die Automatisierungen auf eine begrenzte Anzahl von Konten in einer begrenzten Anzahl von Regionen zu beschränken. Diese Optionen schränken nicht die Anzahl der AWS -Ressourcen ein, die die Automatisierungen ausführen können. 

   1. Wählen Sie im Abschnitt **Location (account-Region pair) concurrency (Standort- (Konto-Region-Paar) Gleichzeitigkeit)** eine Option, um die Anzahl der Automatisierungen zu begrenzen, die gleichzeitig in mehreren Konten und Regionen ausgeführt werden können. Wenn Sie sich beispielsweise dafür entscheiden, eine Automatisierung in fünf (5) auszuführen AWS-Konten, die sich in vier (4) befinden AWS-Regionen, führt Systems Manager Automatisierungen in insgesamt 20 Konto-Region-Paaren aus. Sie können diese Option verwenden, um eine absolute Zahl anzugeben, z. B. **2**, sodass die Automatisierung nur in 2 Konto-Region-Paaren gleichzeitig ausgeführt wird. Sie können aber auch einen Prozentsatz der Konto-Region-Paare angeben, der gleichzeitig ausgeführt werden kann. Beispielsweise geben Sie bei 20 Konto-Region-Paaren 20 % an: Dann wird die Automatisierung in maximal fünf (5) Konto-Region-Paaren gleichzeitig ausgeführt. 
      + Wählen Sie **targets (Ziele)** aus, um eine absolute Anzahl von Konto-Region-Paaren einzugeben, die die Automatisierung gleichzeitig ausführen können.
      + Wählen Sie **percent (Prozent)** aus, um einen Prozentsatz von Konto-Region-Paaren einzugeben, die die Automatisierung gleichzeitig ausführen können.

   1. Wählen Sie im Abschnitt **Fehlerschwellenwert** eine Option aus:
      + Wählen Sie **Fehler**, um eine absolute Anzahl von zulässigen Fehlern anzugeben, bevor die Automation damit aufhört, die Automatisierung an andere Ressourcen zu senden.
      + Wählen Sie **percentage** aus, um einen Prozentsatz von zulässigen Fehlern anzugeben, bevor Automation damit aufhört, die Automatisierung an andere Ressourcen zu senden.

1. Wählen Sie im Abschnitt **Ziele** die Ausrichtung auf die AWS -Ressourcen für die Ausführung der Automation. Diese Optionen sind erforderlich.

   1. Wählen Sie in der Liste **Parameter** einen Parameter aus. Die Elemente in der Liste **Parameter** richten sich nach den Parametern in dem Automation-Runbook, das Sie zu Beginn dieses Verfahrens ausgewählt haben. Durch Auswahl eines Parameters legen Sie den Typ der Ressource fest, für die der Automation-Workflow ausgeführt wird. 

   1. Wählen Sie in der Liste **Ziele** aus, wie Sie Ressourcen als Ziele verwenden möchten.

      1. Wenn Sie die Zielressourcen mithilfe von Parameterwerten ausgewählt haben, geben Sie den Parameterwert für den gewählten Parameter im Feld **Eingabeparameter eingeben** ein.

      1. Wenn Sie Ressourcen mithilfe von als Ziel verwenden möchten AWS -Ressourcengruppen, wählen Sie den Namen der Gruppe aus der Liste der **Ressourcengruppen** aus.

      1. Wenn Sie die Zielressourcen mithilfe von Tags ausgewählt haben, geben Sie den Tag-Schlüssel und (optional) den Tag-Wert in die entsprechenden Felder ein. Wählen Sie **Hinzufügen** aus.

      1. Wenn Sie ein Automatisierungs-Runbook auf allen Instanzen im aktuellen AWS-Konto und ausführen möchten AWS-Region, wählen Sie **Alle Instanzen** aus.

1. Geben Sie im Abschnitt **Eingabeparameter** die erforderlichen Eingaben an. Wählen Sie die `AWS-SystemsManager-AutomationAdministrationRole` IAM-Servicerolle aus der **AutomationAssumeRole**Liste aus.
**Anmerkung**  
Möglicherweise müssen Sie einige der Optionen im Abschnitt **Eingabeparameter** nicht auswählen. Dies liegt daran, dass Sie Ressourcen in mehreren Regionen und Konten mithilfe von Tags oder einer Ressourcengruppe als Ziele ausgewählt haben. Wenn Sie beispielsweise das `AWS-RestartEC2Instance` Runbook ausgewählt haben, müssen Sie IDs im Abschnitt **Eingabeparameter** keine Instanz angeben oder auswählen. Die Automatisierung sucht die Instances für den Neustart mit den von Ihnen angegebenen Tags. 

1. (Optional) Wählen Sie einen CloudWatch Alarm aus, der zur Überwachung auf Ihre Automatisierung angewendet werden soll. Um Ihrer Automatisierung einen CloudWatch Alarm zuzuweisen, muss der IAM-Principal, der die Automatisierung startet, über die Genehmigung für die `iam:createServiceLinkedRole` Aktion verfügen. Weitere Informationen zu CloudWatch Alarmen finden Sie unter [ CloudWatch Amazon-Alarme verwenden](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html). Beachten Sie, dass, wenn Ihr Alarm ausgelöst wird, die Automatisierung abgebrochen wird und alle von Ihnen definierten `OnCancel`-Schritte ausgeführt werden. Wenn Sie dies verwenden AWS CloudTrail, wird der API-Aufruf in Ihrem Trail angezeigt.

1. Verwenden Sie die Optionen im Abschnitt **Preissteuerung**, um die Anzahl der AWS Ressourcen zu beschränken, mit denen die Automatisierung innerhalb jedes Konto-Region-Paares ausgeführt werden kann. 

   Wählen Sie im Abschnitt **Gleichzeitigkeit** eine Option aus: 
   + Wählen Sie **Ziele** aus, um eine absolute Anzahl von Zielen einzugeben, die den Automation-Workflow gleichzeitig ausführen können.
   + Wählen Sie **Prozentsatz** aus, um einen Prozentsatz der Ziele anzugeben, die den Automation-Workflow gleichzeitig ausführen können.

1. Wählen Sie im Abschnitt **Fehlerschwellenwert** eine Option aus:
   + Wählen Sie **Fehler**, um eine absolute Anzahl von zulässigen Fehlern anzugeben, bevor Automation damit aufhört, den Workflow an andere Ressourcen zu senden.
   + Wählen Sie **Prozentsatz** aus, um einen Prozentsatz von zulässigen Fehlern anzugeben, bevor Automation damit aufhört, den Workflow an andere Ressourcen zu senden.

1. Wählen Sie **Ausführen**.

Nach Abschluss einer Automatisierungsausführung können Sie die Ausführung mit denselben oder geänderten Parametern erneut ausführen. Weitere Informationen finden Sie unter [Wiederholtes Ausführen von Automatisierungsausführungen](automation-rerun-executions.md).

## Ausführen von Automatisierungen in mehreren Regionen und Konten (Befehlszeile)
<a name="multiple-cli"></a>

Das folgende Verfahren beschreibt, wie Sie das AWS CLI (unter Linux oder Windows) verwenden oder AWS -Tools für PowerShell eine Automatisierung in mehreren Regionen und Konten vom Automatisierungsverwaltungskonto aus ausführen können.

**Bevor Sie beginnen**  
Bevor Sie das folgende Verfahren ausführen, beachten Sie die folgenden Informationen:
+ AWS-Konto IDs oder OUs wo Sie die Automatisierung ausführen möchten.
+ [Von Systems Manager unterstützte Regionen](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region), in denen Sie die Automatisierung ausführen möchten.
+ Den Tag-Schlüssel und den Tag-Wert oder den Namen der Ressourcengruppe für die Ausführung der Automatisierung.

**So führen Sie eine Automatisierung in mehreren Regionen und Konten aus**

1. Installieren und konfigurieren Sie das AWS CLI oder das AWS -Tools für PowerShell, falls Sie es noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Verwenden Sie das folgende Format, um eine Automatisierung in mehreren Regionen und Konten auszuführen. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name runbook name \
           --parameters AutomationAssumeRole=arn:aws:iam::management account ID:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name parameter name \
           --targets Key=tag key,Values=value \
           --target-locations Accounts=account ID,account ID 2,Regions=Region,Region 2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name runbook name ^
           --parameters AutomationAssumeRole=arn:aws:iam::management account ID:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name parameter name ^
           --targets Key=tag key,Values=value ^
           --target-locations Accounts=account ID,account ID 2,Regions=Region,Region 2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "tag key"
       $Targets.Values = "value"
       
       Start-SSMAutomationExecution `
           -DocumentName "runbook name" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::management account ID:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "parameter name" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="account ID","account ID 2";
           "Regions"="Region","Region 2";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

**Beispiele: Ausführen einer Automatisierung in mehreren Regionen und Konten**  
Im Folgenden finden Sie Beispiele, die zeigen, wie Sie das AWS CLI und PowerShell zum Ausführen von Automatisierungen in mehreren Konten und Regionen mit einem einzigen Befehl verwenden können.

   **Beispiel 1**: In diesem Beispiel werden EC2-Instances in drei Regionen einer gesamten Organisation neu gestartet. AWS Organizations Dies wird erreicht, indem die Root-ID der Organisation und das untergeordnete Objekt als Ziel ausgewählt werden. OUs

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name "AWS-RestartEC2Instance" \
           --target-parameter-name InstanceId \
           --targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]' \
           --target-locations '[{
               "Accounts": ["r-example"],
               "IncludeChildOrganizationUnits": true,
               "Regions": ["us-east-1", "us-east-2", "us-west-2"]
           }]'
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution \
           --document-name "AWS-RestartEC2Instance" ^
           --target-parameter-name InstanceId ^
           --targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]' ^
           --target-locations '[{
               "Accounts": ["r-example"],
               "IncludeChildOrganizationUnits": true,
               "Regions": ["us-east-1", "us-east-2", "us-west-2"]
           }]'
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -TargetParameterName "InstanceId" `
           -Targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]'
           -TargetLocation @{
               "Accounts"="r-example";
               "Regions"="us-east-1", "us-east-2", "us-west-2";
               "IncludeChildOrganizationUnits"=true}
   ```

------

   **Beispiel 2**: In diesem Beispiel werden bestimmte EC2-Instances in verschiedenen Konten und Regionen neu gestartet.
**Anmerkung**  
Die `TargetLocationMaxConcurrency` Option ist mit dem AWS CLI und verfügbar AWS SDKs.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name "AWS-RestartEC2Instance" \
           --target-parameter-name InstanceId \
           --target-locations '[{
               "Accounts": ["123456789012"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-02573cafcfEXAMPLE", "i-0471e04240EXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-1"]
           }, {
               "Accounts": ["987654321098"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-07782c72faEXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-2"]
           }]'
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name "AWS-RestartEC2Instance" ^
           --target-parameter-name InstanceId ^
           --target-locations '[{
               "Accounts": ["123456789012"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-02573cafcfEXAMPLE", "i-0471e04240EXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-1"]
           }, {
               "Accounts": ["987654321098"],
               "Targets": [{
                   "Key":"ParameterValues",
                   "Values":["i-07782c72faEXAMPLE"]
               }],
               "TargetLocationMaxConcurrency": "100%",
               "Regions": ["us-east-2"]
           }]'
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -TargetParameterName "InstanceId" `
           -Targets '[{"Key":"AWS::EC2::Instance","Values":["*"]}]'
           -TargetLocation @({
               "Accounts"="123456789012",
               "Targets"= @{
                   "Key":"ParameterValues",
                   "Values":["i-02573cafcfEXAMPLE", "i-0471e04240EXAMPLE"]
               },
               "TargetLocationMaxConcurrency"="100%",
               "Regions"=["us-east-1"]
           }, {
               "Accounts"="987654321098",
               "Targets": @{
                   "Key":"ParameterValues",
                   "Values":["i-07782c72faEXAMPLE"]
               },
               "TargetLocationMaxConcurrency": "100%",
               "Regions"=["us-east-2"]
           })
   ```

------

   **Beispiel 3**: Dieses Beispiel zeigt die Angabe mehrerer Bereiche AWS-Konten und Regionen, in denen die Automatisierung mithilfe der `--target-locations-url` Option ausgeführt werden soll. Der Wert für diese Option muss eine JSON-Datei in einer öffentlich zugänglichen, [vorsignierten Amazon S3-URL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-presigned-url.html) sein.
**Anmerkung**  
`--target-locations-url`ist verfügbar, wenn Sie die Option AWS CLI und verwenden AWS SDKs.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name "MyCustomAutomationRunbook" \
       --target-locations-url "https://amzn-s3-demo-bucket.s3.amazonaws.com/target-locations.json"
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name "MyCustomAutomationRunbook" ^
       --target-locations-url "https://amzn-s3-demo-bucket.s3.amazonaws.com/target-locations.json"
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
       -DocumentName "MyCustomAutomationRunbook" `
       -TargetLocationsUrl "https://amzn-s3-demo-bucket.s3.amazonaws.com/target-locations.json"
   ```

------

   Beispielinhalt für die JSON-Datei:

   ```
   [
   { 
            "Accounts": [ "123456789012", "987654321098", "456789123012" ],
            "ExcludeAccounts": [ "111222333444", "999888444666" ],
            "ExecutionRoleName": "MyAutomationExecutionRole",
            "IncludeChildOrganizationUnits": true,
            "Regions": [ "us-east-1", "us-west-2", "ap-south-1", "ap-northeast-1" ],
            "Targets": ["Key": "AWS::EC2::Instance", "Values": ["i-2"]],
            "TargetLocationMaxConcurrency": "50%",
            "TargetLocationMaxErrors": "10",
            "TargetsMaxConcurrency": "20",
            "TargetsMaxErrors": "12"
    }
   ]
   ```

   **Beispiel 4**: In diesem Beispiel werden EC2-Instances in den `987654321098` Konten `123456789012` und neu gestartet, die sich in den Regionen `us-east-2` und `us-west-1` befinden. Die Instances müssen mit dem Tag-Schlüsselpaarwert `Env-PROD` markiert sein.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name AWS-RestartEC2Instance \
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name InstanceId \
           --targets Key=tag:Env,Values=PROD \
           --target-locations Accounts=123456789012,987654321098,Regions=us-east-2,us-west-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name AWS-RestartEC2Instance ^
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name InstanceId ^
           --targets Key=tag:Env,Values=PROD ^
           --target-locations Accounts=123456789012,987654321098,Regions=us-east-2,us-west-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "tag:Env"
       $Targets.Values = "PROD"
       
       Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "InstanceId" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="123456789012","987654321098";
           "Regions"="us-east-2","us-west-1";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

   **Beispiel 5**: In diesem Beispiel werden EC2-Instances in den `987654321098` Konten `123456789012` und, die sich in der Region befinden, neu gestartet. `eu-central-1` Die Instances müssen Mitglieder der `prod-instances` AWS Ressourcengruppe sein.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name AWS-RestartEC2Instance \
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name InstanceId \
           --targets Key=ResourceGroup,Values=prod-instances \
           --target-locations Accounts=123456789012,987654321098,Regions=eu-central-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name AWS-RestartEC2Instance ^
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name InstanceId ^
           --targets Key=ResourceGroup,Values=prod-instances ^
           --target-locations Accounts=123456789012,987654321098,Regions=eu-central-1,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "ResourceGroup"
       $Targets.Values = "prod-instances"
       
       Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "InstanceId" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="123456789012","987654321098";
           "Regions"="eu-central-1";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

   **Beispiel 6**: In diesem Beispiel werden EC2-Instances in der `ou-1a2b3c-4d5e6c` AWS Organisationseinheit (OU) neu gestartet. Die Instances befinden sich in den Regionen `us-west-1` und `us-west-2`. Die Instanzen müssen Mitglieder der `WebServices` AWS Ressourcengruppe sein.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
           --document-name AWS-RestartEC2Instance \
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole \
           --target-parameter-name InstanceId \
           --targets Key=ResourceGroup,Values=WebServices \
           --target-locations Accounts=ou-1a2b3c-4d5e6c,Regions=us-west-1,us-west-2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
           --document-name AWS-RestartEC2Instance ^
           --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole ^
           --target-parameter-name InstanceId ^
           --targets Key=ResourceGroup,Values=WebServices ^
           --target-locations Accounts=ou-1a2b3c-4d5e6c,Regions=us-west-1,us-west-2,ExecutionRoleName=AWS-SystemsManager-AutomationExecutionRole
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
       $Targets.Key = "ResourceGroup"
       $Targets.Values = "WebServices"
       
       Start-SSMAutomationExecution `
           -DocumentName "AWS-RestartEC2Instance" `
           -Parameter @{
           "AutomationAssumeRole"="arn:aws:iam::123456789012:role/AWS-SystemsManager-AutomationAdministrationRole" } `
           -TargetParameterName "InstanceId" `
           -Target $Targets `
           -TargetLocation @{
           "Accounts"="ou-1a2b3c-4d5e6c";
           "Regions"="us-west-1";
           "ExecutionRoleName"="AWS-SystemsManager-AutomationExecutionRole" }
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

------
#### [ Linux & macOS ]

   ```
   {
           "AutomationExecutionId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
       }
   ```

------
#### [ Windows ]

   ```
   {
           "AutomationExecutionId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
       }
   ```

------
#### [ PowerShell ]

   ```
   4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------

1. Führen Sie den folgenden Befehl aus, um Details zu der Automatisierung anzuzeigen. *automation execution ID*Ersetzen Sie sie durch Ihre eigenen Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-automation-executions \
           --filters Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-automation-executions ^
           --filters Key=ExecutionId,Values=automation execution ID
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecutionList | `
           Where {$_.AutomationExecutionId -eq "automation execution ID"}
   ```

------

1. Führen Sie den folgenden Befehl aus, um Details über den Automatisierungsprozess anzuzeigen.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-automation-execution \
           --automation-execution-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm get-automation-execution ^
           --automation-execution-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationExecution `
           -AutomationExecutionId a4a3c0e9-7efd-462a-8594-01234EXAMPLE
   ```

------
**Anmerkung**  
Sie können auch den Status der Automatisierung in der Konsole überwachen. Wählen Sie in der Liste **Automatisierungs-Ausführung** die Automatisierung, die Sie gerade ausgeführt haben, und wählen Sie dann die Registerkarte **Ausführungsschritte**. Diese Registerkarte zeigt Ihnen den Status der Automatisierungs-Aktionen.

**Weitere Informationen**  
[Zentralisiertes regions- und kontenübergreifendes Patching mit AWS Systems Manager Automation](https://aws.amazon.com/blogs/mt/centralized-multi-account-and-multi-region-patching-with-aws-systems-manager-automation/)

# Führen Sie Automatisierungen auf EventBridge der Grundlage von Ereignissen aus
<a name="running-automations-event-bridge"></a>

Sie können eine Automatisierung starten, indem Sie ein Runbook als Ziel eines EventBridge Amazon-Events angeben. Sie können Automatisierungen nach einem Zeitplan oder beim Eintreten eines bestimmten AWS -Ereignisses starten. Nehmen wir zum Beispiel an, Sie erstellen ein Runbook mit dem Namen *BootStrapInstances*, dass beim Start einer Instance Software auf einer Instance installiert. Um das *BootStrapInstances*Runbook (und die entsprechende Automatisierung) als Ziel eines EventBridge Ereignisses anzugeben, erstellen Sie zunächst eine neue EventBridge Regel. (Beispiel für eine Regel: **Service name (Servicename)**: EC2, **Event Type (Ereignistyp)**: EC2 Instance State-change Notification, **Specific state(s) (Bestimmte Status)**: running, **Any instance (Beliebige Instance)**.) Anschließend verwenden Sie die folgenden Verfahren, um das *BootStrapInstances*Runbook mithilfe der EventBridge Konsole und AWS Command Line Interface ()AWS CLI als Ziel des Ereignisses anzugeben. Beim Starten einer neuen Instance führt das System die Automatisierung aus und installiert Software.

Weitere Informationen zum Erstellen eines Runbooks finden Sie unter [Erstellen Ihrer eigenen Runbooks](automation-documents.md).

## Erstellen eines EventBridge Ereignisses, das ein Runbook (Konsole) verwendet
<a name="automation-cwe-target-console"></a>

Gehen Sie wie folgt vor, um ein Runbook als Ziel eines EventBridge Ereignisses zu konfigurieren.

**So konfigurieren Sie ein Runbook als Ziel einer Ereignisregel EventBridge**

1. Öffnen Sie die EventBridge Amazon-Konsole unter [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Wählen Sie im Navigationsbereich **Regeln** aus.

1. Wählen Sie **Regel erstellen** aus.

1. Geben Sie einen Namen und eine Beschreibung für die Regel ein.

   Eine Regel darf nicht denselben Namen wie eine andere Regel in derselben Region und auf demselben Event Bus haben.

1. Wählen Sie für **Event Bus** den Event Bus aus, den Sie dieser Regel zuordnen möchten. Wenn Sie möchten, dass diese Regel auf übereinstimmende Ereignisse reagiert, die von Ihnen selbst stammen AWS-Konto, wählen Sie **Standard**. Wenn ein AWS-Service in Ihrem Konto ein Ereignis ausgibt, wird es immer an den Standard-Event-Bus Ihres Kontos weitergeleitet.

1. Wählen Sie aus, wie die Regel ausgelöst wird.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/running-automations-event-bridge.html)

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

1. Bei **Zieltypen** wählen Sie **AWS -Service** aus.

1. Für **Select target** (Ziel auswählen), wählen Sie **Systems Manager Automation**. 

1. Wählen Sie für **Dokument** ein Runbook aus, das Sie verwenden möchten, wenn das Ziel aufgerufen wird.

1. Behalten Sie im Abschnitt **Configure automation parameter(s)** (Automatisierungsparameter konfigurieren) entweder die Standardparameterwerte bei (sofern verfügbar) oder geben Sie Ihre eigenen Werte ein. 
**Anmerkung**  
Um ein Ziel zu erstellen, müssen Sie bei jedem erforderlichen Parameter einen Wert angeben. Wenn Sie dies nicht tun, erstellt das System die Regel, aber die Regel wird nicht ausgeführt.

1. Für viele Zieltypen sind EventBridge Berechtigungen erforderlich, um Ereignisse an das Ziel zu senden. In diesen Fällen EventBridge kann die IAM-Rolle erstellt werden, die für die Ausführung Ihrer Regel erforderlich ist. Führen Sie eine der folgenden Aktionen aus:
   + Um automatisch eine IAM-Rolle zu erstellen, wählen Sie **Eine neue Rolle für diese spezifische Ressource erstellen** aus.
   + Wenn Sie eine zuvor erstellte IAM-Rolle verwenden möchten, wählen Sie **Use existing role** (Vorhandene Rolle verwenden) und wählen Sie die vorhandene Rolle aus der Dropdown-Liste aus. Beachten Sie, dass Sie möglicherweise die Vertrauensrichtlinie für Ihre IAM-Rolle aktualisieren müssen, um sie einzubeziehen. EventBridge Im Folgenden wird ein Beispiel gezeigt:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "",
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "events.amazonaws.com",
                       "ssm.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

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

1. (Optional) Geben Sie ein oder mehrere Tags für die Regel ein. Weitere Informationen finden Sie unter [Tagging Your Amazon EventBridge Resources](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-tagging.html) im * EventBridge Amazon-Benutzerhandbuch*.

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

1. Überprüfen Sie die Details der Regel und wählen Sie dann **Regel erstellen** aus.

## Erstellen Sie ein EventBridge Ereignis, das ein Runbook (Befehlszeile) verwendet
<a name="automation-cwe-target-commandline"></a>

Das folgende Verfahren beschreibt, wie Sie die AWS CLI (unter Linux oder Windows) verwenden oder AWS -Tools für PowerShell eine EventBridge Ereignisregel erstellen und ein Runbook als Ziel konfigurieren.

**So konfigurieren Sie ein Runbook als Ziel einer Ereignisregel EventBridge**

1. Installieren und konfigurieren Sie das AWS CLI oder das AWS -Tools für PowerShell, falls Sie das noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Erstellen Sie einen Befehl, um eine neue EventBridge Ereignisregel anzugeben. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

   *Auslöser nach Zeitplan*

------
#### [ Linux & macOS ]

   ```
   aws events put-rule \
   --name "rule name" \
   --schedule-expression "cron or rate expression"
   ```

------
#### [ Windows ]

   ```
   aws events put-rule ^
   --name "rule name" ^
   --schedule-expression "cron or rate expression"
   ```

------
#### [ PowerShell ]

   ```
   Write-CWERule `
   -Name "rule name" `
   -ScheduleExpression "cron or rate expression"
   ```

------

   Im folgenden Beispiel wird eine EventBridge Ereignisregel erstellt, die jeden Tag um 9:00 Uhr (UTC) beginnt.

------
#### [ Linux & macOS ]

   ```
   aws events put-rule \
   --name "DailyAutomationRule" \
   --schedule-expression "cron(0 9 * * ? *)"
   ```

------
#### [ Windows ]

   ```
   aws events put-rule ^
   --name "DailyAutomationRule" ^
   --schedule-expression "cron(0 9 * * ? *)"
   ```

------
#### [ PowerShell ]

   ```
   Write-CWERule `
   -Name "DailyAutomationRule" `
   -ScheduleExpression "cron(0 9 * * ? *)"
   ```

------

   *Auslöser basierend auf einem Ereignis*

------
#### [ Linux & macOS ]

   ```
   aws events put-rule \
   --name "rule name" \
   --event-pattern "{\"source\":[\"aws.service\"],\"detail-type\":[\"service event detail type\"]}"
   ```

------
#### [ Windows ]

   ```
   aws events put-rule ^
   --name "rule name" ^
   --event-pattern "{\"source\":[\"aws.service\"],\"detail-type\":[\"service event detail type\"]}"
   ```

------
#### [ PowerShell ]

   ```
   Write-CWERule `
   -Name "rule name" `
   -EventPattern '{"source":["aws.service"],"detail-type":["service event detail type"]}'
   ```

------

   Im folgenden Beispiel wird eine EventBridge Ereignisregel erstellt, die startet, wenn eine EC2-Instance in der Region ihren Status ändert.

------
#### [ Linux & macOS ]

   ```
   aws events put-rule \
   --name "EC2InstanceStateChanges" \
   --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"
   ```

------
#### [ Windows ]

   ```
   aws events put-rule ^
   --name "EC2InstanceStateChanges" ^
   --event-pattern "{\"source\":[\"aws.ec2\"],\"detail-type\":[\"EC2 Instance State-change Notification\"]}"
   ```

------
#### [ PowerShell ]

   ```
   Write-CWERule `
   -Name "EC2InstanceStateChanges" `
   -EventPattern '{"source":["aws.ec2"],"detail-type":["EC2 Instance State-change Notification"]}'
   ```

------

   Der Befehl gibt Details für die neue EventBridge Regel zurück, die der folgenden ähneln.

------
#### [ Linux & macOS ]

   ```
   {
   "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/automationrule"
   }
   ```

------
#### [ Windows ]

   ```
   {
   "RuleArn": "arn:aws:events:us-east-1:123456789012:rule/automationrule"
   }
   ```

------
#### [ PowerShell ]

   ```
   arn:aws:events:us-east-1:123456789012:rule/EC2InstanceStateChanges
   ```

------

1. Erstellen Sie einen Befehl, um ein Runbook als Ziel der in Schritt 2 erstellten EventBridge Ereignisregel anzugeben. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

   ```
   aws events put-targets \
   --rule rule name \
   --targets '{"Arn": " arn:aws:ssm:region:account ID:automation-definition/runbook name","Input":"{\"Message\":[\"{\\\"Key\\\":\\\"key name\\\",\\\"Values\\\":[\\\"value\\\"]}\"]}","Id": "target ID","RoleArn": "arn:aws:iam::123456789012:role/service-role/EventBridge service role"}'
   ```

------
#### [ Windows ]

   ```
   aws events put-targets ^
   --rule rule name ^
   --targets '{"Arn": "arn:aws:ssm:region:account ID:automation-definition/runbook name","Input":"{\"Message\":[\"{\\\"Key\\\":\\\"key name\\\",\\\"Values\\\":[\\\"value\\\"]}\"]}","Id": "target ID","RoleArn": "arn:aws:iam::123456789012:role/service-role/EventBridge service role"}'
   ```

------
#### [ PowerShell ]

   ```
   $Target = New-Object Amazon.CloudWatchEvents.Model.Target
   $Target.Id = "target ID"
   $Target.Arn = "arn:aws:ssm:region:account ID:automation-definition/runbook name"
   $Target.RoleArn = "arn:aws:iam::123456789012:role/service-role/EventBridge service role"
   $Target.Input = '{"input parameter":["value"],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/AutomationServiceRole"]}'
   
   Write-CWETarget `
   -Rule "rule name" `
   -Target $Target
   ```

------

   Im folgenden Beispiel wird ein EventBridge Ereignisziel erstellt, das die angegebene Instanz-ID mithilfe des `AWS-StartEC2Instance` Runbooks startet.

------
#### [ Linux & macOS ]

   ```
   aws events put-targets \
   --rule DailyAutomationRule \
   --targets '{"Arn": "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance","Input":"{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "Target1","RoleArn": "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520"}'
   ```

------
#### [ Windows ]

   ```
   aws events put-targets ^
   --rule DailyAutomationRule ^
   --targets '{"Arn": "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance","Input":"{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationServiceRole\"]}","Id": "Target1","RoleArn": "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520"}'
   ```

------
#### [ PowerShell ]

   ```
   $Target = New-Object Amazon.CloudWatchEvents.Model.Target
   $Target.Id = "Target1"
   $Target.Arn = "arn:aws:ssm:region:*:automation-definition/AWS-StartEC2Instance"
   $Target.RoleArn = "arn:aws:iam::123456789012:role/service-role/AWS_Events_Invoke_Start_Automation_Execution_1213609520"
   $Target.Input = '{"InstanceId":["i-02573cafcfEXAMPLE"],"AutomationAssumeRole":["arn:aws:iam::123456789012:role/AutomationServiceRole"]}'
   
   Write-CWETarget `
   -Rule "DailyAutomationRule" `
   -Target $Target
   ```

------

   Das System gibt unter anderem folgende Informationen zurück

------
#### [ Linux & macOS ]

   ```
   {
   "FailedEntries": [],
   "FailedEntryCount": 0
   }
   ```

------
#### [ Windows ]

   ```
   {
   "FailedEntries": [],
   "FailedEntryCount": 0
   }
   ```

------
#### [ PowerShell ]

   Es erfolgt keine Ausgabe, wenn der Befehl für erfolgreich ist. PowerShell

------

# Ausführen einer Automatisierung Schritt für Schritt
<a name="automation-working-executing-manually"></a>

Die folgenden Verfahren beschreiben, wie Sie die AWS Systems Manager Konsole verwenden und AWS Command Line Interface (AWS CLI) eine Automatisierung im manuellen Ausführungsmodus ausführen. Im manuellen Ausführungsmodus startet die Automatisierung in einem *Wartestatus* und verharrt zwischen den einzelnen Schritten im *Wartestatus*. So können Sie steuern, wann der Automatisierung fortgesetzt wird. Dies ist hilfreich, wenn Sie das Ergebnis eines Schritts überprüfen müssen, bevor Sie fortfahren.

Die Automatisierung wird im Kontext des aktuellen Benutzers ausgeführt. Das bedeutet, dass Sie keine zusätzlichen IAM-Berechtigungen konfigurieren müssen, solange Sie über die Berechtigung zum Ausführen des Runbooks verfügen und alle Aktionen von dem Runbook aufgerufen werden. Wenn Sie über Administrator-Berechtigungen in IAM verfügen, haben Sie bereits die Berechtigung zum Ausführen dieser Automatisierung.

## Ausführen einer Automatisierung Schritt für Schritt (Konsole)
<a name="automation-working-executing-manually-console"></a>

Das folgende Verfahren zeigt, wie Sie mithilfe der Systems Manager-Konsole eine Automatisierung Schritt für Schritt manuell ausführen.

**So führen Sie einen Automatisierung Schritt für Schritt aus**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Automatisierung** und **Automatisierung ausführen** aus.

1. Wählen Sie in der Liste **Automation-Dokument** ein Runbook. Wählen Sie eine oder mehrere Optionen im Bereich **Dokumentkategorien**, um SSM-Dokumente nach ihrem Zweck zu filtern. Um ein Runbook anzuzeigen, das Sie besitzen, wählen Sie die **Im Besitz von mir**-Registerkarte. Um ein Runbook anzuzeigen, das für Ihr Konto freigegeben ist, wählen Sie die Registerkarte **Mit mir geteilt**. Um alle Runbooks anzuzeigen, wählen Sie die Registerkarte **Alle Dokumente**.
**Anmerkung**  
Sie können Informationen zu einem Runbook einsehen, indem Sie den Runbook-Namen auswählen.

1. Überprüfen Sie im Abschnitt **Dokument-Details**, ob **Dokumentversion** auf die Version gesetzt ist, die Sie ausführen möchten. Das System bietet die folgenden Versionsoptionen: 
   + **Standardversion zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird und eine neue Standardversion zugewiesen ist.
   + **Letzte Version zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird, und Sie die Version auszuführen möchten, die zuletzt aktualisiert wurde.
   + **1 (Standard)** – Wählen Sie diese Option zur Ausführung der ersten Version des Dokuments, welches der Standard ist.

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

1. Wählen Sie im Abschnitt **Execution mode (Ausführungsmodus)** die Option **Manual execution (Manuelle Ausführung)** aus.

1. Geben Sie im Abschnitt **Eingabeparameter** die erforderlichen Eingaben an. Optional können Sie eine IAM-Dienstrolle aus der **AutomationAssumeRole**Liste auswählen.

1. Wählen Sie **Ausführen**. 

1. Wählen Sie **Execute this step (Diesen Schritt ausführen)** aus, wenn Sie zum ersten Schritt der Automatisierung bereit sind. Die Automatisierung fährt mit Schritt 1 fort und hält an, bevor die weiteren Schritte des Runbooks, das Sie in Schritt 3 dieses Verfahrens ausgewählt haben, ausgeführt werden. Wenn das Runbook mehrere Schritte umfasst, müssen Sie für jeden Schritt **Execute this step (Diesen Schritt ausführen)** auswählen, damit die Automatisierung fortgesetzt wird. Jedes Mal, wenn Sie **diesen Schritt ausführen**, wird die Aktion ausgeführt.
**Anmerkung**  
Die Konsole zeigt den Status der Automatisierung an. Wenn die Automatisierung einen Schritt nicht ausführen kann, finden Sie weitere Informationen unter [Fehlerbehebung für Systems Manager Automation.](automation-troubleshooting.md).

1. Nachdem Sie alle Schritte im Runbook abgeschlossen haben, wählen Sie **Complete and view results (Abschließen und Ergebnisse anzeigen)** aus, um die Automatisierung zu beenden und die Ergebnisse anzuzeigen.

Nach Abschluss einer Automatisierungsausführung können Sie die Ausführung mit denselben oder geänderten Parametern erneut ausführen. Weitere Informationen finden Sie unter [Wiederholtes Ausführen von Automatisierungsausführungen](automation-rerun-executions.md).

## Ausführen einer Automatisierung Schritt für Schritt (Befehlszeile)
<a name="automation-working-executing-manually-commandline"></a>

Das folgende Verfahren beschreibt Schritt für Schritt, wie Sie die AWS CLI (unter LinuxmacOS, oder AWS -Tools für PowerShell Windows) verwenden oder manuell ausführen.

**So führen Sie einen Automatisierung Schritt für Schritt aus**

1. Installieren und konfigurieren Sie das AWS CLI oder das AWS -Tools für PowerShell, falls Sie dies noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Führen Sie den folgenden Befehl aus, um eine manuelle Automatisierung zu starten. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name runbook name \
       --mode Interactive \
       --parameters runbook parameters
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name runbook name ^
       --mode Interactive ^
       --parameters runbook parameters
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
       -DocumentName runbook name `
       -Mode Interactive `
       -Parameter runbook parameters
   ```

------

   Hier sehen Sie ein Beispiel, wie Sie das `AWS-RestartEC2Instance`-Runbook verwenden, um die angegebene EC2-Instance neu zu starten.

------
#### [ Linux & macOS ]

   ```
   aws ssm start-automation-execution \
       --document-name "AWS-RestartEC2Instance" \
       --mode Interactive \
       --parameters "InstanceId=i-02573cafcfEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm start-automation-execution ^
       --document-name "AWS-RestartEC2Instance" ^
       --mode Interactive ^
       --parameters "InstanceId=i-02573cafcfEXAMPLE"
   ```

------
#### [ PowerShell ]

   ```
   Start-SSMAutomationExecution `
       -DocumentName AWS-RestartEC2Instance `
       -Mode Interactive 
       -Parameter @{"InstanceId"="i-02573cafcfEXAMPLE"}
   ```

------

   Das System gibt unter anderem folgende Informationen zurück

------
#### [ Linux & macOS ]

   ```
   {
       "AutomationExecutionId": "ba9cd881-1b36-4d31-a698-0123456789ab"
   }
   ```

------
#### [ Windows ]

   ```
   {
       "AutomationExecutionId": "ba9cd881-1b36-4d31-a698-0123456789ab"
   }
   ```

------
#### [ PowerShell ]

   ```
   ba9cd881-1b36-4d31-a698-0123456789ab
   ```

------

1. Führen Sie den folgenden Befehl aus, wenn Sie bereit sind, den ersten Schritt der Automatisierung zu starten. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen. Die Automatisierung fährt mit Schritt 1 fort und hält an, bevor die weiteren Schritte des Runbooks, das Sie in Schritt 1 dieses Verfahrens ausgewählt haben, ausgeführt werden. Wenn das Runbook mehrere Schritte umfasst, müssen Sie den folgenden Befehl für jeden Schritt ausführen, damit die Automatisierung fortfahren kann.

------
#### [ Linux & macOS ]

   ```
   aws ssm send-automation-signal \
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab \
       --signal-type StartStep \
       --payload StepName="stopInstances"
   ```

------
#### [ Windows ]

   ```
   aws ssm send-automation-signal ^
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab ^
       --signal-type StartStep ^
       --payload StepName="stopInstances"
   ```

------
#### [ PowerShell ]

   ```
   Send-SSMAutomationSignal `
       -AutomationExecutionId ba9cd881-1b36-4d31-a698-0123456789ab `
       -SignalType StartStep 
       -Payload @{"StepName"="stopInstances"}
   ```

------

   Wenn der Befehl erfolgreich ausgeführt wurde, gibt es keine Ausgabe.

1. Führen Sie den folgenden Befehl aus, um den Status jeder Schrittausführung in der Automatisierung abzurufen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-automation-step-executions \
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-automation-step-executions ^
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMAutomationStepExecution `
       -AutomationExecutionId ba9cd881-1b36-4d31-a698-0123456789ab
   ```

------

   Das System gibt unter anderem folgende Informationen zurück

------
#### [ Linux & macOS ]

   ```
   {
       "StepExecutions": [
           {
               "StepName": "stopInstances",
               "Action": "aws:changeInstanceState",
               "ExecutionStartTime": 1557167178.42,
               "ExecutionEndTime": 1557167220.617,
               "StepStatus": "Success",
               "Inputs": {
                   "DesiredState": "\"stopped\"",
                   "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
               },
               "Outputs": {
                   "InstanceStates": [
                       "stopped"
                   ]
               },
               "StepExecutionId": "654243ba-71e3-4771-b04f-0123456789ab",
               "OverriddenParameters": {},
               "ValidNextSteps": [
                   "startInstances"
               ]
           },
           {
               "StepName": "startInstances",
               "Action": "aws:changeInstanceState",
               "ExecutionStartTime": 1557167273.754,
               "ExecutionEndTime": 1557167480.73,
               "StepStatus": "Success",
               "Inputs": {
                   "DesiredState": "\"running\"",
                   "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
               },
               "Outputs": {
                   "InstanceStates": [
                       "running"
                   ]
               },
               "StepExecutionId": "8a4a1e0d-dc3e-4039-a599-0123456789ab",
               "OverriddenParameters": {}
           }
       ]
   }
   ```

------
#### [ Windows ]

   ```
   {
       "StepExecutions": [
           {
               "StepName": "stopInstances",
               "Action": "aws:changeInstanceState",
               "ExecutionStartTime": 1557167178.42,
               "ExecutionEndTime": 1557167220.617,
               "StepStatus": "Success",
               "Inputs": {
                   "DesiredState": "\"stopped\"",
                   "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
               },
               "Outputs": {
                   "InstanceStates": [
                       "stopped"
                   ]
               },
               "StepExecutionId": "654243ba-71e3-4771-b04f-0123456789ab",
               "OverriddenParameters": {},
               "ValidNextSteps": [
                   "startInstances"
               ]
           },
           {
               "StepName": "startInstances",
               "Action": "aws:changeInstanceState",
               "ExecutionStartTime": 1557167273.754,
               "ExecutionEndTime": 1557167480.73,
               "StepStatus": "Success",
               "Inputs": {
                   "DesiredState": "\"running\"",
                   "InstanceIds": "[\"i-02573cafcfEXAMPLE\"]"
               },
               "Outputs": {
                   "InstanceStates": [
                       "running"
                   ]
               },
               "StepExecutionId": "8a4a1e0d-dc3e-4039-a599-0123456789ab",
               "OverriddenParameters": {}
           }
       ]
   }
   ```

------
#### [ PowerShell ]

   ```
   Action: aws:changeInstanceState
   ExecutionEndTime     : 5/6/2019 19:45:46
   ExecutionStartTime   : 5/6/2019 19:45:03
   FailureDetails       : 
   FailureMessage       : 
   Inputs               : {[DesiredState, "stopped"], [InstanceIds, ["i-02573cafcfEXAMPLE"]]}
   IsCritical           : False
   IsEnd                : False
   MaxAttempts          : 0
   NextStep             : 
   OnFailure            : 
   Outputs              : {[InstanceStates, Amazon.Runtime.Internal.Util.AlwaysSendList`1[System.String]]}
   OverriddenParameters : {}
   Response             : 
   ResponseCode         : 
   StepExecutionId      : 8fcc9641-24b7-40b3-a9be-0123456789ab
   StepName             : stopInstances
   StepStatus           : Success
   TimeoutSeconds       : 0
   ValidNextSteps       : {startInstances}
   ```

------

1. Führen Sie den folgenden Befehl aus, um die Automatisierung abzuschließen, nachdem alle im ausgewählten Runbook angegebenen Schritte abgeschlossen sind. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm stop-automation-execution \
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab \
       --type Complete
   ```

------
#### [ Windows ]

   ```
   aws ssm stop-automation-execution ^
       --automation-execution-id ba9cd881-1b36-4d31-a698-0123456789ab ^
       --type Complete
   ```

------
#### [ PowerShell ]

   ```
   Stop-SSMAutomationExecution `
       -AutomationExecutionId ba9cd881-1b36-4d31-a698-0123456789ab `
       -Type Complete
   ```

------

   Wenn der Befehl erfolgreich ausgeführt wurde, gibt es keine Ausgabe.

# Planen von Automatisierungen mit State Manager-Zuordnungen
<a name="scheduling-automations-state-manager-associations"></a>

Sie können eine Automatisierung starten, indem Sie eine State Manager-Verknüpfung mit einem Runbook erstellen. State Manager ist ein Tool in AWS Systems Manager. Indem Sie eine State Manager Zuordnung zu einem Runbook erstellen, können Sie verschiedene Ressourcentypen als Ziel verwenden. AWS Sie können beispielsweise Zuordnungen erstellen, die einen gewünschten Status für eine AWS Ressource erzwingen, einschließlich der folgenden:
+ Fügen Sie eine Systems Manager Rolle an Amazon Elastic Compute Cloud (Amazon EC2) -Instances an, um sie auf *verwaltete Instances* zu ändern.
+ Erzwingen Sie die gewünschten Eingangs- und Ausgangsregeln für eine Sicherheitsgruppe.
+ Erstellen oder löschen Sie Amazon DynamoDB-Backups.
+ Erstellen oder löschen Sie Amazon Elastic Block Store (Amazon EBS)-Snapshots.
+ Deaktivieren Sie Lese- und Schreibberechtigungen für Amazon Simple Storage Service (Amazon S3)-Buckets.
+ Starten, Stoppen oder starten Sie verwaltete Instances und Amazon Relational Database Service (Amazon RDS)-Instances neu.
+ Anwenden von Patches auf Linux, macOS und Windows AMIs.

Gehen Sie wie folgt vor, um mithilfe der AWS Systems Manager Konsole und AWS Command Line Interface (AWS CLI) eine State Manager Zuordnung zu erstellen, die eine Automatisierung ausführt. Allgemeine Informationen zu Verknüpfungen und Informationen zum Erstellen einer Zuordndung, die ein `Command`-SSM-Dokument oder `Policy` verwendet, finden Sie unter [Erstellen von Zuordnungen](state-manager-associations-creating.md).

**Bevor Sie beginnen**  
Beachten Sie die folgenden wichtigen Details, bevor Sie eine Automatisierung mithilfe von State Manager ausführen:
+ Bevor Sie eine Zuordnung erstellen können, die ein Runbook verwendet, stellen Sie sicher, dass Sie Berechtigungen für Automation konfiguriert haben, ein Tool in AWS Systems Manager. Weitere Informationen finden Sie unter [Einrichten der Automatisierung](automation-setup.md).
+ State Manager-Zuordnungen, die Runbooks verwenden, zählen zu der maximalen Anzahl der gleichzeitig ausgeführten Automatisierungen in Ihrem AWS-Konto hinzu. Sie können maximal 100 Automatisierungen gleichzeitig ausführen. Informationen finden Sie unter [Systems Manager Service Quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) im *Allgemeine Amazon Web Services-Referenz*.
+ Beim Ausführen einer Automatisierung protokolliert State Manager nicht die API-Operationen, die von der Automatisierung in AWS CloudTrail initiiert wurden.
+ Systems Manager erstellt automatisch eine serviceverknüpfte Rolle, damit State Manager die Berechtigung hat, API-Vorgänge von Systems Manager Automation aufzurufen. Wenn Sie möchten, können Sie die serviceverknüpfte Rolle selbst erstellen, indem Sie den folgenden Befehl von AWS CLI oder AWS -Tools für PowerShell aus ausführen.

------
#### [ Linux & macOS ]

  ```
  aws iam create-service-linked-role \
  --aws-service-name ssm.amazonaws.com
  ```

------
#### [ Windows ]

  ```
  aws iam create-service-linked-role ^
  --aws-service-name ssm.amazonaws.com
  ```

------
#### [ PowerShell ]

  ```
  New-IAMServiceLinkedRole `
  -AWSServiceName ssm.amazonaws.com
  ```

------

  Weitere Informationen zu serviceverknüpften Rollen finden Sie unter [Verwenden von serviceverknüpften Rollen für Systems Manager](using-service-linked-roles.md).

## Erstellen einer Zuordnung, die eine Automatisierung ausführt (Konsole)
<a name="create-automation-association-console"></a>

Im folgenden Verfahren wird beschrieben, wie mithilfe der Systems Manager-Konsole eine State Manager-Zuordnung erstellt wird, die eine Automatisierung ausführt.

**So erstellen Sie eine State Manager-Zuordnung zum Ausführen einer Automatisierung**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich **State Manager** und anschließend **Zuordnung erstellen** aus.

1. Geben Sie im Feld **Name** einen Namen an. Dies ist zwar optional, wird aber empfohlen.

1. Wählen Sie in der Liste **Document** ein Runbook aus. Verwenden Sie die Suchleiste, um nach allen Runbooks mit **Document type : Equal : Automation** zu filtern. Zur Anzeige von weiteren Runbooks verwenden Sie die Zahlen rechts neben der Suchleiste. 
**Anmerkung**  
Sie können Informationen zu einem Runbook einsehen, indem Sie den Runbook-Namen auswählen.

1. Wählen Sie **Simple execution (Einfache Ausführung)** aus, um die Automatisierung auf einem oder mehreren Zielen auszuführen, indem Sie die Ressourcen-ID für diese Ziele angeben. Wählen Sie **Ratensteuerung**, um die Automatisierung für eine ganze Flotte von AWS Ressourcen auszuführen, indem Sie eine Targeting-Option wie Tags oder angeben AWS -Ressourcengruppen. Sie können auch die Operation der Automatisierung auf Ihren Ressourcen steuern, indem Sie Gleichzeitigkeits- und Fehlergrenzwerte angeben.

   Wenn Sie **Rate control (Ratensteuerung)** auswählen, wird der Abschnitt **Targets (Ziele)** angezeigt.

1. Wählen Sie im Abschnitt **Targets (Ziele)** eine Methode zur Ausrichtung der Ressourcen aus.

   1. (Erforderlich) Wählen Sie in der Liste **Parameter** einen Parameter aus. Die Elemente in der Liste **Parameter** richten sich nach den Parametern in dem Runbook, das Sie zu Beginn dieses Verfahrens ausgewählt haben. Durch Auswahl eines Parameters legen Sie den Typ der Ressource fest, für die die Automatisierung ausgeführt wird. 

   1. (Erforderlich) Wählen Sie in der Liste **Targets (Ziele)** ein Verfahren für die Ausrichtung auf Ressourcen aus.
      + **Resource Group (Ressourcengruppe)**: Wählen Sie den Namen der Gruppe aus der Liste **Resource Group (Ressourcengruppe)** aus. Weitere Informationen zum Targeting AWS -Ressourcengruppen in Runbooks finden Sie unter[Targeting AWS -Ressourcengruppen](running-automations-map-targets.md#target-resource-groups).
      + **Tags**: Geben Sie den Tag-Schlüssel und (optional) den Tag-Wert in die dafür vorgesehenen Felder ein. Wählen Sie **Hinzufügen** aus. Weitere Informationen zum Targeting von Tags in Runbooks finden Sie unter [Anzielen eines Tags](running-automations-map-targets.md#target-tags).
      + **Parameter Values (Parameterwerte)**: Geben Sie die Werte im Abschnitt **Input parameters (Eingabeparameter)** ein. Wenn Sie mehrere Werte angeben, führt Systems Manager eine untergeordnete Automatisierung für jeden angegebenen Wert aus.

        Nehmen Sie beispielsweise an, dass das Runbook einen **InstanceID**-Parameter enthält. Wenn Sie die Werte des **InstanceID**-Parameters beim Ausführen der Automatisierung verwenden, führt Systems Manager eine untergeordnete Automatisierung für jeden angegebenen Instance-ID-Wert aus. Die übergeordnete Automatisierung ist abgeschlossen, wenn Automatisierung die Ausführung jeder angegebenen Instance abgeschlossen hat oder wenn die Automatisierung fehlschlägt. Sie können maximal 50 Parameterwerte für die Ausrichtung verwenden. Weitere Informationen zum Targeting von Parameterwerten in Runbooks finden Sie unter [Ausrichtung auf Parameterwerte](running-automations-map-targets.md#target-parameter-values).

1. Geben Sie im Abschnitt **Eingabeparameter** die erforderlichen Eingabeparameter an.

   Wenn Sie die Zielressourcen mithilfe von Tags oder einer Ressourcengruppe ausgewählt haben, müssen Sie möglicherweise keine der Optionen im Abschnitt **Input parameters (Eingabeparameter)** auswählen. Wenn Sie beispielsweise das `AWS-RestartEC2Instance` Runbook ausgewählt haben und sich dafür entschieden haben, Instances mithilfe von Tags anzusprechen, müssen Sie IDs im Abschnitt **Eingabeparameter** keine Instanz angeben oder auswählen. Die Automatisierung sucht die Instances für den Neustart mit den von Ihnen angegebenen Tags. 
**Wichtig**  
Sie müssen in dem **AutomationAssumeRole**Feld einen Rollen-ARN angeben. State Managerverwendet die im Runbook AWS-Services angegebene Rolle, um Automatisierungszuordnungen in Ihrem Namen aufzurufen und auszuführen.

1. Wählen Sie im Abschnitt **Specify schedule (Zeitplan angeben)** die Option **On Schedule (Nach Zeitplan)** aus, wenn Sie die Zuordnungen in regelmäßigen Abständen ausführen möchten. Wenn Sie diese Option auswählen, verwenden Sie die bereitgestellten Optionen zum Erstellen des Zeitplans mithilfe von Cron- oder Rate-Ausdrücken. Weitere Informationen zu Cron- und Rate-Ausdrücken für State Manager finden Sie unter [Cron- und Rate-Ausdrücke für Zuordnungen](reference-cron-and-rate-expressions.md#reference-cron-and-rate-expressions-association). 
**Anmerkung**  
Rate-Ausdrücke werden bevorzugt zur Planung für State Manager-Zuordnungen verwendet, die Automatisierungen verwenden ausführen. Rate-Ausdrücke ermöglichen mehr Flexibilität für die Ausführung von Zuordnungen für den Fall, dass Sie die maximale Anzahl von gleichzeitig ausgeführten Automatisierungen erreichen. Mit einem Ratenzeitplan kann Systems Manager die Automatisierung kurz nach dem Empfangen der Benachrichtigungen, dass gleichzeitige Automatisierungen das Maximum erreicht haben und gedrosselt wurden, wiederholen.

   Wählen Sie **No schedule (Kein Zeitplan)**aus, wenn Sie die Zuordnung einmalig ausführen möchten. 

1. (Optional) Wählen Sie im Bereich **Rate Control** die Optionen **Parallelität** und **Fehlerschwellenwert** aus, um die Bereitstellung der Automatisierung auf Ihren AWS Ressourcen zu steuern.

   1. Wählen Sie im Abschnitt **Gleichzeitigkeit** eine Option aus: 
      + Wählen Sie **targets (Ziele)** aus, um eine absolute Anzahl von Zielen einzugeben, die die Automatisierung gleichzeitig ausführen können.
      + Wählen Sie **percentage (Prozentsatz)** aus, um einen Prozentsatz der Ziele anzugeben, die den Automatisierung gleichzeitig ausführen können.

   1. Wählen Sie im Abschnitt **Fehlerschwellenwert** eine Option aus:
      + Wählen Sie **errors (Fehler)**, um eine absolute Anzahl von zulässigen Fehlern anzugeben, bevor die Automation damit aufhört, die Automatisierung an andere Ressourcen zu senden.
      + Wählen Sie **percentage (Prozentsatz)** aus, um einen Prozentsatz von zulässigen Fehlern anzugeben, bevor Automation damit aufhört, die Automatisierung an andere Ressourcen zu senden.

   Weitere Informationen zur Verwendung von Zielen und Ratensteuerungen mit Automation finden Sie unter [Automatisierte Abläufe in großem Umfang ausführen](running-automations-scale.md).

1. Wählen Sie **Zuordnung erstellen**. 
**Wichtig**  
Wenn Sie eine Zuordnung erstellen, wird die Zuordnung sofort für die ausgewählten Ziele ausgeführt. Die Zuordnung wird anschließend auf Grundlage des ausgewählten Cron- oder Rate-Ausdrucks ausgeführt. Wenn Sie **No schedule (Kein Zeitplan)** ausgewählt haben, wird die Zuordnung nicht mehr ausgeführt.

## Erstellen einer Zuordnung, die eine Automatisierung ausführt (Befehlszeile)
<a name="create-automation-association-cli"></a>

Das folgende Verfahren beschreibt, wie Sie die AWS CLI (unter Linux oderWindows Server) verwenden oder AWS -Tools für PowerShell eine State Manager Zuordnung erstellen, die eine Automatisierung ausführt.

**Bevor Sie beginnen**  
Bevor Sie das folgende Verfahren ausführen, stellen Sie sicher, dass Sie eine IAM-Servicerolle erstellt haben, die die zum Ausführen des Runbooks erforderlichen Berechtigungen enthält, und eine Vertrauensstellung für Automation konfiguriert haben, ein Tool in AWS Systems Manager. Weitere Informationen finden Sie unter [Aufgabe 1: Erstellen einer Servicerolle für Automation](automation-setup-iam.md#create-service-role).

**So erstellen Sie eine Zuordnung zum Ausführen einer Automatisierung**

1. Installieren und konfigurieren Sie das AWS CLI oder das AWS -Tools für PowerShell, falls Sie das noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Nutzen Sie den folgenden Befehl, um eine Liste der Dokumente anzuzeigen.

------
#### [ Linux & macOS ]

   ```
   aws ssm list-documents
   ```

------
#### [ Windows ]

   ```
   aws ssm list-documents
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentList
   ```

------

   Notieren Sie den Namen des Runbooks, das Sie für die Zuordnung verwenden möchten.

1. Führen Sie den folgenden Befehl aus, um Details des Runbooks einsehen zu können: Ersetzen Sie den Befehl im folgenden Befehl *runbook name* durch Ihre eigenen Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document \
   --name runbook name
   ```

   Notieren Sie einen Parameternamen (z. B. `InstanceId`), den Sie für die Option `--automation-target-parameter-name` verwenden möchten. Dieser Parameter bestimmt den Typ der Ressource, für die die Automatisierung ausgeführt wird.

------
#### [ Windows ]

   ```
   aws ssm describe-document ^
   --name runbook name
   ```

   Notieren Sie einen Parameternamen (z. B. `InstanceId`), den Sie für die Option `--automation-target-parameter-name` verwenden möchten. Dieser Parameter bestimmt den Typ der Ressource, für die die Automatisierung ausgeführt wird.

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentDescription `
   -Name runbook name
   ```

   Notieren Sie einen Parameternamen (z. B. `InstanceId`), den Sie für die Option `AutomationTargetParameterName` verwenden möchten. Dieser Parameter bestimmt den Typ der Ressource, für die die Automatisierung ausgeführt wird.

------

1. Erstellen Sie einen Befehl, der eine Automatisierung mithilfe einer State Manager-Zuordnung ausführt. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

   *Ausrichtung mithilfe von Tags*

------
#### [ Linux & macOS ]

   ```
   aws ssm create-association \
   --association-name association name \
   --targets Key=tag:key name,Values=value \
   --name runbook name \
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \
   --automation-target-parameter-name target parameter \
   --schedule "cron or rate expression"
   ```

**Anmerkung**  
Wenn Sie eine Assoziation mithilfe von erstellen AWS CLI, verwenden Sie den `--targets` Parameter, um Instances als Ziel für die Zuordnung festzulegen. Verwenden Sie nicht den Parameter `--instance-id`. Der Parameter `--instance-id` ist veraltet. 

------
#### [ Windows ]

   ```
   aws ssm create-association ^
   --association-name association name ^
   --targets Key=tag:key name,Values=value ^
   --name runbook name ^
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^
   --automation-target-parameter-name target parameter ^
   --schedule "cron or rate expression"
   ```

**Anmerkung**  
Wenn Sie eine Assoziation mithilfe von erstellen AWS CLI, verwenden Sie den `--targets` Parameter, um Instances als Ziel für die Zuordnung festzulegen. Verwenden Sie nicht den Parameter `--instance-id`. Der Parameter `--instance-id` ist veraltet. 

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "tag:key name"
   $Targets.Values = "value"
   
   New-SSMAssociation `
   -AssociationName "association name" `
   -Target $Targets `
   -Name "runbook name" `
   -Parameters @{
   "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole" } `
   -AutomationTargetParameterName "target parameter" `
   -ScheduleExpression "cron or rate expression"
   ```

**Anmerkung**  
Wenn Sie eine Assoziation mithilfe von erstellen AWS -Tools für PowerShell, verwenden Sie den `Target` Parameter, um Instances als Ziel für die Zuordnung festzulegen. Verwenden Sie nicht den Parameter `InstanceId`. Der Parameter `InstanceId` ist veraltet. 

------

   *Ausrichtung mithilfe von Parameterwerten*

------
#### [ Linux & macOS ]

   ```
   aws ssm create-association \
   --association-name association name \
   --targets Key=ParameterValues,Values=value,value 2,value 3 \
   --name runbook name \
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \
   --automation-target-parameter-name target parameter \
   --schedule "cron or rate expression"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-association ^
   --association-name association name ^
   --targets Key=ParameterValues,Values=value,value 2,value 3 ^
   --name runbook name ^
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^
   --automation-target-parameter-name target parameter ^
   --schedule "cron or rate expression"
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ParameterValues"
   $Targets.Values = "value","value 2","value 3"
   
   New-SSMAssociation `
   -AssociationName "association name" `
   -Target $Targets `
   -Name "runbook name" `
   -Parameters @{
   "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} `
   -AutomationTargetParameterName "target parameter" `
   -ScheduleExpression "cron or rate expression"
   ```

------

   *Targeting mit AWS -Ressourcengruppen*

------
#### [ Linux & macOS ]

   ```
   aws ssm create-association \
   --association-name association name \
   --targets Key=ResourceGroup,Values=resource group name \
   --name runbook name \
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \
   --automation-target-parameter-name target parameter \
   --schedule "cron or rate expression"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-association ^
   --association-name association name ^
   --targets Key=ResourceGroup,Values=resource group name ^
   --name runbook name ^
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^
   --automation-target-parameter-name target parameter ^
   --schedule "cron or rate expression"
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ResourceGroup"
   $Targets.Values = "resource group name"
   
   New-SSMAssociation `
   -AssociationName "association name" `
   -Target $Targets `
   -Name "runbook name" `
   -Parameters @{
   "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} `
   -AutomationTargetParameterName "target parameter" `
   -ScheduleExpression "cron or rate expression"
   ```

------

   *Targeting mehrerer Konten und Regionen*

------
#### [ Linux & macOS ]

   ```
   aws ssm create-association \
   --association-name association name \
   --targets Key=ResourceGroup,Values=resource group name \
   --name runbook name \
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole \
   --automation-target-parameter-name target parameter \
   --schedule "cron or rate expression" \ 
   --target-locations Accounts=111122223333,444455556666,444455556666,Regions=region,region
   ```

------
#### [ Windows ]

   ```
   aws ssm create-association ^
   --association-name association name ^
   --targets Key=ResourceGroup,Values=resource group name ^
   --name runbook name ^
   --parameters AutomationAssumeRole=arn:aws:iam::123456789012:role/RunbookAssumeRole ^
   --automation-target-parameter-name target parameter ^
   --schedule "cron or rate expression" ^ 
   --target-locations Accounts=111122223333,444455556666,444455556666,Regions=region,region
   ```

------
#### [ PowerShell ]

   ```
   $Targets = New-Object Amazon.SimpleSystemsManagement.Model.Target
   $Targets.Key = "ResourceGroup"
   $Targets.Values = "resource group name"
   
   New-SSMAssociation `
   -AssociationName "association name" `
   -Target $Targets `
   -Name "runbook name" `
   -Parameters @{
   "AutomationAssumeRole"="arn:aws:iam::123456789012:role/RunbookAssumeRole"} `
   -AutomationTargetParameterName "target parameter" `
   -ScheduleExpression "cron or rate expression" `
   -TargetLocations @{
       "Accounts"=["111122223333,444455556666,444455556666"],
       "Regions"=["region,region"]
   ```

------

   Der Befehl gibt Details für die neue Zuordnung zurück, die den folgenden ähneln.

------
#### [ Linux & macOS ]

   ```
   {
   "AssociationDescription": {
       "ScheduleExpression": "cron(0 7 ? * MON *)",
       "Name": "AWS-StartEC2Instance",
       "Parameters": {
           "AutomationAssumeRole": [
               "arn:aws:iam::123456789012:role/RunbookAssumeRole"
           ]
       },
       "Overview": {
           "Status": "Pending",
           "DetailedStatus": "Creating"
       },
       "AssociationId": "1450b4b7-bea2-4e4b-b340-01234EXAMPLE",
       "DocumentVersion": "$DEFAULT",
       "AutomationTargetParameterName": "InstanceId",
       "LastUpdateAssociationDate": 1564686638.498,
       "Date": 1564686638.498,
       "AssociationVersion": "1",
       "AssociationName": "CLI",
       "Targets": [
           {
               "Values": [
                   "DEV"
               ],
               "Key": "tag:ENV"
           }
       ]
   }
   }
   ```

------
#### [ Windows ]

   ```
   {
   "AssociationDescription": {
       "ScheduleExpression": "cron(0 7 ? * MON *)",
       "Name": "AWS-StartEC2Instance",
       "Parameters": {
           "AutomationAssumeRole": [
               "arn:aws:iam::123456789012:role/RunbookAssumeRole"
           ]
       },
       "Overview": {
           "Status": "Pending",
           "DetailedStatus": "Creating"
       },
       "AssociationId": "1450b4b7-bea2-4e4b-b340-01234EXAMPLE",
       "DocumentVersion": "$DEFAULT",
       "AutomationTargetParameterName": "InstanceId",
       "LastUpdateAssociationDate": 1564686638.498,
       "Date": 1564686638.498,
       "AssociationVersion": "1",
       "AssociationName": "CLI",
       "Targets": [
           {
               "Values": [
                   "DEV"
               ],
               "Key": "tag:ENV"
           }
       ]
   }
   }
   ```

------
#### [ PowerShell ]

   ```
   Name                  : AWS-StartEC2Instance
   InstanceId            : 
   Date                  : 8/1/2019 7:31:38 PM
   Status.Name           : 
   Status.Date           : 
   Status.Message        : 
   Status.AdditionalInfo :
   ```

------

**Anmerkung**  
Wenn Sie auf einer oder mehreren Instances eine Zuordnung anhand von Tags erstellen und von einer dieser Instances die Tags entfernen, wird die Zuordnung auf dieser Instance nicht mehr ausgeführt. Die Zuordnung zwischen der Instance und dem State Manager-Dokument ist aufgehoben. 

## Fehlerbehebung bei Automatisierungen, die von State Manager-Zuordnungen ausgeführt werden
<a name="troubleshooting-automation-associations"></a>

Systems Manager setzt ein Limit von 100 gleichzeitigen Automatisierungen und 1 000 Automatisierungen in der Warteschlange pro Konto und Region. Wenn eine State Manager Assoziation, die ein Runbook verwendet, den Status **Fehlgeschlagen** und den detaillierten Status anzeigt **AutomationExecutionLimitExceeded**, hat Ihre Automatisierung möglicherweise das Limit erreicht. Daher drosselt Systems Manager die Automatisierungen. Führen Sie folgende Schritte aus, um dieses Problem zu lösen:
+ Verwenden Sie einen anderen Rate- oder Cron-Ausdruck für Ihre Zuordnung. Beispiel: Wenn die Zuordnung alle 30 Minuten ausgeführt werden soll, ändern Sie den Ausdruck so, dass er jede Stunde oder alle zwei Stunden ausgeführt wird.
+ Löschen Sie vorhandene Automatisierungen mit dem Status **Pending (Ausstehend)**. Durch Löschen dieser Automatisierungen bereinigen Sie die aktuelle Warteschlange.

# Planen von Automatisierungen mit Wartungsfenstern
<a name="scheduling-automations-maintenance-windows"></a>

Sie starten eine Automatisierung, indem Sie ein Runbook als registrierte Aufgabe für ein Wartungsfenster konfigurieren. Durch die Registrierung des Runbooks als registrierte Aufgabe führt ein Wartungsfenster die Automatisierung während des geplanten Wartungszeitraums aus. 

Angenommen, Sie erstellen beispielsweise ein Runbook mit dem Namen `CreateAMI`, welches eine Amazon Machine Image (AMI) von Instances erstellt, welche als Ziele für das Wartungsfenster registriert sind. Um ein `CreateAMI`-Runbook (und die entsprechende Automatisierung) als eine registrierte Aufgabe eines Wartungsfensters angeben zu können, müssen Sie zunächst ein Wartungsfenster erstellen und Ziele registrieren. Im Anschluss daran geben Sie mit den folgenden Schritten das Dokument `CreateAMI` als registrierte Aufgabe innerhalb des Wartungsfensters an. Wenn das Wartungsfenster während des geplanten Zeitraums gestartet wird, führt das System die Automatisierung aus und erstellt ein der AMI registrierten Ziele.

Weitere Informationen zum Erstellen eines Automation-Runbooks finden Sie unter [Erstellen Ihrer eigenen Runbooks](automation-documents.md). Automation ist ein Tool in AWS Systems Manager.

Gehen Sie wie folgt vor, um eine Automatisierung mithilfe der AWS Systems Manager Konsole, AWS Command Line Interface (AWS CLI) oder als registrierte Aufgabe für ein Wartungsfenster zu konfigurieren AWS Tools for Windows PowerShell.

## Registrieren einer Automatisierungsaufgabe für ein Wartungsfenster (Konsole)
<a name="register-automation-task-maintenance-window-console"></a>

Im folgenden Verfahren wird beschrieben, wie Sie mithilfe der Systems Manager-Konsole eine Automatisierung als registrierte Aufgabe für ein Wartungsfenster konfigurieren.

**Bevor Sie beginnen**  
Bevor Sie die folgenden Schritte ausführen, müssen Sie ein Wartungsfenster erstellen und mindestens ein Ziel registrieren. Weitere Informationen finden Sie in den folgenden Verfahren: 
+ [Erstellen eines Wartungsfensters mit der Konsole](sysman-maintenance-create-mw.md).
+ [Ziele zu einem Wartungsfenster mit der Konsole zuweisen](sysman-maintenance-assign-targets.md)

**So konfigurieren Sie einen Automatisierung als registrierte Aufgabe für ein Wartungsfenster**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im linken Navigationsbereich **Maintenance Windows** und dann das Wartungsfenster aus, für das Sie eine Automation-Aufgabe registrieren möchten.

1. Wählen Sie **Aktionen**. Wählen Sie dann **Register Automation task (Automation-Aufgabe registrieren)** aus, um die gewünschte Automatisierung mithilfe eines Runbooks auf den Zielen auszuführen.

1. Geben Sie unter **Name** einen Namen für die Aufgabe ein.

1. Geben Sie im Feld **Description (Beschreibung)** eine Beschreibung ein.

1. Wählen Sie für **Document (Dokument)** das Runbook aus, das die auszuführende Aufgabe definiert.

1. Wählen Sie für **Document version (Dokumentversion)** die zu verwendende Runbook-Version aus.

1. Wählen Sie für **Task priority (Aufgabenpriorität)** eine Priorität für diese Aufgabe aus. `1` ist die höchste Priorität. Aufgaben in einem Wartungsfenster werden in Reihenfolge der Priorität geplant. Dabei werden Aufgaben mit derselben Priorität parallel ausgeführt.

1. Geben Sie im Abschnitt **Targets (Ziele)** die Ziele an, auf denen Sie diesen Automation-Workflow ausführen möchten, wenn das von Ihnen gewählte Runbook eines ist, das Aufgaben auf Ressourcen aufführt. Hierzu können Sie entweder Tags angeben oder die Instances manuell auswählen.
**Anmerkung**  
Wenn Sie die Ressourcen über Eingabeparameter anstelle von Zielen übergeben möchten, müssen Sie kein Wartungsfensterziel angeben.  
In vielen Fällen müssen Sie kein Ziel für eine Automation-Aufgabe explizit angeben. Angenommen, Sie erstellen beispielsweise eine Automation-Aufgabe, um eine Amazon Machine Image (AMI) für Linux mit dem `AWS-UpdateLinuxAmi`-Runbook zu aktualisieren. Wenn die Aufgabe ausgeführt wird, wird AMI mit den neuesten verfügbaren Linux-Verteilungspaketen und Amazon-Software aktualisiert. Neue Instances, die aus der AMI erstellt wurden, haben diese Updates bereits installiert. Da die ID des AMI in den Eingabeparametern für das Runbook angegeben ist, muss in der Wartungsfenster-Aufgabe kein Ziel erneut angegeben werden.

   Informationen zu Wartungsfenster-Tasks, für die keine Ziele erforderlich sind, finden Sie unter [Wartungsfenster-Tasks ohne Ziele registrieren](maintenance-windows-targetless-tasks.md).

1. (Optional) Für **Rate control (Ratenregelung)**:
**Anmerkung**  
Wenn die ausgeführte Aufgabe keine Ziele angibt, müssen Sie keine Ratensteuerungen angeben.
   + Geben Sie für **Concurrency (Gleichzeitigkeit)** entweder eine Anzahl oder einen Prozentsatz der Ziele ein, auf denen die Automatisierung gleichzeitig ausgeführt wird.

     Wenn Sie Ziele anhand von Tag-Schlüssel-Wert-Paaren ausgewählt haben und nicht sicher sind, von wie vielen Zielen die ausgewählten Tags verwendet werden, sollten Sie die Anzahl der Automatisierungen, die gleichzeitig ausgeführt werden können, durch einen Prozentsatz begrenzen.

     Wenn das Wartungsfenster ausgeführt wird, wird pro Ziel eine neue Automatisierung eingeleitet. Es gilt ein Limit von 100 gleichzeitigen Automationen pro AWS-Konto. Wenn Sie einen Gleichzeitigkeitswert über 100 angeben, werden alle gleichzeitigen Automatisierungen über die 100. hinaus automatisch zur Automatisierungswarteschlange hinzugefügt. Informationen finden Sie unter [Systems Manager Service Quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) im *Allgemeine Amazon Web Services-Referenz*. 
   + Geben Sie unter **Error threshold (Fehlerschwellenwert)** an, wann die Ausführung der Automatisierung auf anderen Zielen beendet werden soll, nachdem dafür entweder auf einer bestimmten Anzahl oder einem Prozentsatz von Zielen ein Fehler aufgetreten ist. Falls Sie beispielsweise drei Fehler angeben, führt Systems Manager keine Automatisierungen mehr aus, wenn der vierte Fehler empfangen wird. Von Zielen, auf denen die Automatisierung noch ausgeführt wird, werden unter Umständen ebenfalls Fehler gesendet.

1. Geben Sie im Abschnitt **Input Parameters** die Parameter für das Runbook an. Bei Runbooks werden die Werte vom System automatisch gefüllt. Sie können diese Werte beibehalten oder ersetzen.
**Wichtig**  
Für Runbooks können Sie optional eine Automatisierungsübernahmerolle angeben. Wenn Sie keine Rolle für diesen Parameter angeben, übernimmt die Automatisierung die Wartungsfenster-Servicerolle, die Sie in Schritt 11 gewählt haben. Daher müssen Sie sicherstellen, dass die von Ihnen gewählte Wartungsfenster-Servicerolle über die entsprechenden AWS Identity and Access Management (IAM-) Berechtigungen verfügt, um die im Runbook definierten Aktionen auszuführen.   
Beispiel: Die serviceverknüpfte Rolle für Systems Manager verfügt nicht über die IAM-Berechtigung `ec2:CreateSnapshot`, die zur Verwendung des Runbooks `AWS-CopySnapshot` benötigt wird. Hier müssen Sie entweder eine benutzerdefinierte Wartungsfenster-Servicerolle verwenden oder eine Automation-Übernahmerolle angeben, die über `ec2:CreateSnapshot`-Berechtigungen verfügt. Weitere Informationen finden Sie unter [Einrichten der Automatisierung](automation-setup.md).

1. Wählen Sie im Bereich **IAM service role** (IAM-Servicerolle) eine Rolle aus, um Systems Manager Berechtigungen zum Starten der Automatisierung zu erteilen.

   Informationen zum Erstellen einer Servicerolle für Wartungsfenster-Aufgaben finden Sie unter [Einrichten von Maintenance Windows](setting-up-maintenance-windows.md).

1. Wählen Sie **Register Automation task (Automation-Aufgabe registrieren)** aus.

## Registrieren einer Automation-Aufgabe für ein Wartungsfenster (Befehlszeile)
<a name="register-automation-task-maintenance-window-cli"></a>

Das folgende Verfahren beschreibt, wie Sie die AWS CLI (unter Linux oderWindows Server) verwenden oder AWS -Tools für PowerShell eine Automatisierung als registrierte Aufgabe für ein Wartungsfenster konfigurieren.

**Bevor Sie beginnen**  
Bevor Sie die folgenden Schritte ausführen, müssen Sie ein Wartungsfenster erstellen und mindestens ein Ziel registrieren. Weitere Informationen finden Sie in den folgenden Verfahren:
+ [Schritt 1: Erstellen Sie das Wartungsfenster mit dem AWS CLI](mw-cli-tutorial-create-mw.md).
+ [Schritt 2: Registrieren Sie einen Zielknoten im Wartungsfenster mithilfe des AWS CLI](mw-cli-tutorial-targets.md)

**So konfigurieren Sie einen Automatisierung als registrierte Aufgabe für ein Wartungsfenster**

1. Installieren und konfigurieren Sie das AWS CLI oder das AWS -Tools für PowerShell, falls Sie das noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Erstellen Sie einen Befehl, um eine Automatisierung als registrierte Aufgabe für ein Wartungsfenster zu konfigurieren. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm register-task-with-maintenance-window \
   --window-id window ID \
   --name task name \
   --task-arn runbook name \
   --targets Key=targets,Values=value \
   --service-role-arn IAM role arn \
   --task-type AUTOMATION \
   --task-invocation-parameters task parameters \
   --priority task priority \
   --max-concurrency 10% \
   --max-errors 5
   ```

**Anmerkung**  
Wenn Sie eine Automatisierung mithilfe von als registrierte Aufgabe konfigurieren AWS CLI, verwenden Sie den Parameter, um `--Task-Invocation-Parameters` Parameter anzugeben, die an eine Aufgabe übergeben werden, wenn sie ausgeführt wird. Verwenden Sie nicht den Parameter `--Task-Parameters`. Der Parameter `--Task-Parameters` ist veraltet.  
Bei Wartungsfensteraufgaben ohne festgelegtes Ziel können Sie keine Werte für `--max-errors` und `--max-concurrency` bereitstellen. Stattdessen fügt das System den Platzhalterwert `1` ein, der in der Antwort auf Befehle wie [https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html) und [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-maintenance-window-task.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-maintenance-window-task.html) gemeldet wird. Diese Werte wirken sich nicht auf die Ausführung Ihrer Aufgabe aus und können ignoriert werden.  
Informationen zu Wartungsfenster-Tasks, für die keine Ziele erforderlich sind, finden Sie unter [Wartungsfenster-Tasks ohne Ziele registrieren](maintenance-windows-targetless-tasks.md).

------
#### [ Windows ]

   ```
   aws ssm register-task-with-maintenance-window ^
   --window-id window ID ^
   --name task name ^
   --task-arn runbook name ^
   --targets Key=targets,Values=value ^
   --service-role-arn IAM role arn ^
   --task-type AUTOMATION ^
   --task-invocation-parameters task parameters ^
   --priority task priority ^
   --max-concurrency 10% ^
   --max-errors 5
   ```

**Anmerkung**  
Wenn Sie eine Automatisierung mithilfe von als registrierte Aufgabe konfigurieren AWS CLI, verwenden Sie den Parameter, um `--task-invocation-parameters` Parameter anzugeben, die an eine Aufgabe übergeben werden, wenn sie ausgeführt wird. Verwenden Sie nicht den Parameter `--task-parameters`. Der Parameter `--task-parameters` ist veraltet.  
Bei Wartungsfensteraufgaben ohne festgelegtes Ziel können Sie keine Werte für `--max-errors` und `--max-concurrency` bereitstellen. Stattdessen fügt das System den Platzhalterwert `1` ein, der in der Antwort auf Befehle wie [https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html) und [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-maintenance-window-task.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-maintenance-window-task.html) gemeldet wird. Diese Werte wirken sich nicht auf die Ausführung Ihrer Aufgabe aus und können ignoriert werden.  
Informationen zu Wartungsfenster-Tasks, für die keine Ziele erforderlich sind, finden Sie unter [Wartungsfenster-Tasks ohne Ziele registrieren](maintenance-windows-targetless-tasks.md).

------
#### [ PowerShell ]

   ```
   Register-SSMTaskWithMaintenanceWindow `
   -WindowId window ID `
   -Name "task name" `
   -TaskArn "runbook name" `
   -Target @{ Key="targets";Values="value" } `
   -ServiceRoleArn "IAM role arn" `
   -TaskType "AUTOMATION" `
   -Automation_Parameter @{ "task parameter"="task parameter value"} `
   -Priority task priority `
   -MaxConcurrency 10% `
   -MaxError 5
   ```

**Anmerkung**  
Wenn Sie eine Automatisierung mithilfe von als registrierte Aufgabe konfigurieren AWS -Tools für PowerShell, verwenden Sie den Parameter, um `-Automation_Parameter` Parameter anzugeben, die an eine Aufgabe übergeben werden, wenn die Aufgabe ausgeführt wird. Verwenden Sie nicht den Parameter `-TaskParameters`. Der Parameter `-TaskParameters` ist veraltet.  
Bei Wartungsfensteraufgaben ohne festgelegtes Ziel können Sie keine Werte für `-MaxError` und `-MaxConcurrency` bereitstellen. Stattdessen fügt das System den Platzhalterwert 1 ein, der in der Antwort auf Befehle wie `Get-SSMMaintenanceWindowTaskList` und `Get-SSMMaintenanceWindowTask` gemeldet wird. Diese Werte wirken sich nicht auf die Ausführung Ihrer Aufgabe aus und können ignoriert werden.  
Informationen zu Wartungsfenster-Tasks, für die keine Ziele erforderlich sind, finden Sie unter [Wartungsfenster-Tasks ohne Ziele registrieren](maintenance-windows-targetless-tasks.md).

------

   Im folgenden Beispiel wird eine Automatisierung als registrierte Aufgabe für ein Wartungsfenster mit Priorität 1 konfiguriert. Es zeigt auch, dass die `--targets`, `--max-errors` und `--max-concurrency`- Optionen für eine ziellose Wartungsfensteraufgabe weggelassen werden. Der Automatisierung verwendet das Runbook `AWS-StartEC2Instance` und die angegebene Automation-Übernahmerolle, um EC2-Instances zu starten, die als Ziele für das Wartungsfenster registriert sind. Das Wartungsfenster führt die Automatisierung gleichzeitig auf maximal 5 Instances zu einem bestimmten Zeitpunkt aus. Die Ausführung dieser registrierten Aufgabe wird außerdem für ein bestimmtes Intervall auf weiteren Instances gestoppt, wenn die Fehlerzählung 1 überschreitet.

------
#### [ Linux & macOS ]

   ```
   aws ssm register-task-with-maintenance-window \
   --window-id mw-0c50858d01EXAMPLE \
   --name StartEC2Instances \
   --task-arn AWS-StartEC2Instance \
   --service-role-arn arn:aws:iam::123456789012:role/MaintenanceWindowRole \
   --task-type AUTOMATION \
   --task-invocation-parameters "{\"Automation\":{\"Parameters\":{\"InstanceId\":[\"{{TARGET_ID}}\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationAssumeRole\"]}}}" \
   --priority 1
   ```

------
#### [ Windows ]

   ```
   aws ssm register-task-with-maintenance-window ^
   --window-id mw-0c50858d01EXAMPLE ^
   --name StartEC2Instances ^
   --task-arn AWS-StartEC2Instance ^
   --service-role-arn arn:aws:iam::123456789012:role/MaintenanceWindowRole ^
   --task-type AUTOMATION ^
   --task-invocation-parameters "{\"Automation\":{\"Parameters\":{\"InstanceId\":[\"{{TARGET_ID}}\"],\"AutomationAssumeRole\":[\"arn:aws:iam::123456789012:role/AutomationAssumeRole\"]}}}" ^
   --priority 1
   ```

------
#### [ PowerShell ]

   ```
   Register-SSMTaskWithMaintenanceWindow `
   -WindowId mw-0c50858d01EXAMPLE `
   -Name "StartEC2" `
   -TaskArn "AWS-StartEC2Instance" `
   -ServiceRoleArn "arn:aws:iam::123456789012:role/MaintenanceWindowRole" `
   -TaskType "AUTOMATION" `
   -Automation_Parameter @{ "InstanceId"="{{TARGET_ID}}";"AutomationAssumeRole"="arn:aws:iam::123456789012:role/AutomationAssumeRole" } `
   -Priority 1
   ```

------

   Der Befehl gibt Details für die neue registrierte Aufgabe zurück, die den folgenden ähneln.

------
#### [ Linux & macOS ]

   ```
   {
   "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
   }
   ```

------
#### [ Windows ]

   ```
   {
   "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
   }
   ```

------
#### [ PowerShell ]

   ```
   4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------

1. Um die registrierte Aufgabe anzuzeigen, führen Sie den folgenden Befehl aus. *maintenance windows ID*Ersetzen Sie es durch Ihre eigenen Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-tasks \
   --window-id maintenance window ID
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-tasks ^
   --window-id maintenance window ID
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMMaintenanceWindowTaskList `
   -WindowId maintenance window ID
   ```

------

   Das System gibt unter anderem folgende Informationen zurück

------
#### [ Linux & macOS ]

   ```
   {
   "Tasks": [
       {
           "ServiceRoleArn": "arn:aws:iam::123456789012:role/MaintenanceWindowRole",
           "MaxErrors": "1",
           "TaskArn": "AWS-StartEC2Instance",
           "MaxConcurrency": "1",
           "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
           "TaskParameters": {},
           "Priority": 1,
           "WindowId": "mw-0c50858d01EXAMPLE",
           "Type": "AUTOMATION",
           "Targets": [
           ],
           "Name": "StartEC2"
       }
   ]
   }
   ```

------
#### [ Windows ]

   ```
   {
   "Tasks": [
       {
           "ServiceRoleArn": "arn:aws:iam::123456789012:role/MaintenanceWindowRole",
           "MaxErrors": "1",
           "TaskArn": "AWS-StartEC2Instance",
           "MaxConcurrency": "1",
           "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
           "TaskParameters": {},
           "Priority": 1,
           "WindowId": "mw-0c50858d01EXAMPLE",
           "Type": "AUTOMATION",
           "Targets": [
           ],
           "Name": "StartEC2"
       }
   ]
   }
   ```

------
#### [ PowerShell ]

   ```
   Description    : 
   LoggingInfo    : 
   MaxConcurrency : 5
   MaxErrors      : 1
   Name           : StartEC2
   Priority       : 1
   ServiceRoleArn : arn:aws:iam::123456789012:role/MaintenanceWindowRole
   Targets        : {}
   TaskArn        : AWS-StartEC2Instance
   TaskParameters : {}
   Type           : AUTOMATION
   WindowId       : mw-0c50858d01EXAMPLE
   WindowTaskId   : 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

------

# Systems Manager Automation Aktionen-Referenz
<a name="automation-actions"></a>

Diese Referenz beschreibt die Automation-Aktionen, die Sie in einem Runbook angeben können. Automation ist ein Tool in AWS Systems Manager. Diese Aktionen können nicht in anderen Arten von Systems Manager (SSM)-Dokumenten verwendet werden. Weitere Informationen zu Plug-Ins für andere Arten von SSM-Dokumente finden Sie unter [Referenz für Befehlsdokument-Plugins](documents-command-ssm-plugin-reference.md).

Die Systems Manager Automation führt Schritte aus, die in Automation-Runbooks definiert sind. Jeder Schritt ist einer bestimmten Aktion zugeordnet. Die Aktion bestimmt die Eingaben, das Verhalten und die Ausgaben des Schritts. Die Schritte sind im `mainSteps`-Bereich Ihres Runbooks definiert.

Sie müssen die Ausgaben einer Aktivität oder eines Schritts nicht angeben. Die Ausgaben werden im Voraus durch die dem Schritt zugeordnete Aktivität bestimmt. Wenn Sie Schritteingaben in Ihren Runbooks festlegen, können Sie auf mindestens eine Ausgabe aus einem früheren Schritt verweisen. Beispielsweise können Sie die Ausgabe von `aws:runInstances` für eine spätere `aws:runCommand`-Aktion verfügbar machen. Sie können auch auf Ausgaben aus früheren Schritten im Abschnitt `Output` des Runbooks verweisen. 

**Wichtig**  
Wenn Sie einen automatisierten Workflow ausführen, der andere Services mithilfe einer AWS Identity and Access Management -(IAM)-Servicerolle aufruft, muss die Servicerolle mit der Berechtigung zum Aufrufen dieser Services konfiguriert sein. Diese Anforderung gilt für alle AWS Automatisierungs-Runbooks (`AWS-*`Runbooks) wie die`AWS-ConfigureS3BucketLogging`, und `AWS-RestartEC2Instance` Runbooks`AWS-CreateDynamoDBBackup`, um nur einige zu nennen. Diese Anforderung gilt auch für alle benutzerdefinierten Automatisierungs-Runbooks, die Sie erstellen und die andere mithilfe AWS-Services von Aktionen aufrufen, die andere Dienste aufrufen. Wenn Sie unter anderem `aws:executeAwsApi`-, `aws:createStack`- oder `aws:copyImage`-Aktionen verwenden, konfigurieren Sie die Dienstrolle mit der Berechtigung zum Aufrufen solcher Services. Sie können anderen AWS-Services Berechtigungen erteilen, indem Sie der Rolle eine eingebundene IAM-Richtlinie hinzufügen. Weitere Informationen finden Sie unter [(Optional) Fügen Sie eine Inline-Automatisierungsrichtlinie oder eine vom Kunden verwaltete Richtlinie hinzu, um andere aufzurufen AWS-Services](automation-setup-iam.md#add-inline-policy).

**Topics**
+ [Von allen Aktionen gemeinsam genutzte Eigenschaften](#automation-common)
+ [`aws:approve` - Unterbrechen einer Automatisierung zur manuellen Genehmigung](automation-action-approve.md)
+ [`aws:assertAwsResourceProperty`— Bestätigt einen AWS Ressourcen- oder Ereignisstatus](automation-action-assertAwsResourceProperty.md)
+ [`aws:branch` - Ausführen bedingter Automatisierungsschritte](automation-action-branch.md)
+ [`aws:changeInstanceState` – Instance-Status ändern oder geltend machen](automation-action-changestate.md)
+ [`aws:copyImage` - Kopieren oder Verschlüsseln eines Amazon Machine Image](automation-action-copyimage.md)
+ [`aws:createImage` - Erstellen eines Amazon Machine Image](automation-action-create.md)
+ [`aws:createStack`— Einen CloudFormation Stapel erstellen](automation-action-createstack.md)
+ [`aws:createTags`— Erstelle Tags für AWS Ressourcen](automation-action-createtag.md)
+ [`aws:deleteImage` - Löschen eines Amazon Machine Image](automation-action-delete.md)
+ [`aws:deleteStack`— Löscht einen CloudFormation Stapel](automation-action-deletestack.md)
+ [`aws:executeAutomation` - Führen Sie eine weitere Automatisierung durch](automation-action-executeAutomation.md)
+ [`aws:executeAwsApi`— AWS API-Operationen aufrufen und ausführen](automation-action-executeAwsApi.md)
+ [`aws:executeScript` - Führen Sie ein Skript aus](automation-action-executeScript.md)
+ [`aws:executeStateMachine`— Führen Sie eine AWS Step Functions Zustandsmaschine aus](automation-action-executeStateMachine.md)
+ [`aws:invokeWebhook` – Automation-Webhook-Integration aufrufen](invoke-webhook.md)
+ [`aws:invokeLambdaFunction`— Ruft eine Funktion auf AWS Lambda](automation-action-lamb.md)
+ [`aws:loop` – Über Schritte in einer Automatisierung iterieren](automation-action-loop.md)
+ [`aws:pause` - Pausieren einer Automatisierung](automation-action-pause.md)
+ [`aws:runCommand` - Führt einen Befehl auf einer verwalteten Instance aus](automation-action-runcommand.md)
+ [`aws:runInstances` - So starten Sie eine Amazon-EC2-Instance](automation-action-runinstance.md)
+ [`aws:sleep` - Verzögerung einer Automatisierung](automation-action-sleep.md)
+ [`aws:updateVariable` – Aktualisiert einen Wert für eine Runbook-Variable](automation-action-update-variable.md)
+ [`aws:waitForAwsResourceProperty`— Warte auf eine AWS Ressourceneigenschaft](automation-action-waitForAwsResourceProperty.md)
+ [Systemvariablen für Automation](automation-variables.md)

## Von allen Aktionen gemeinsam genutzte Eigenschaften
<a name="automation-common"></a>

Allgemeine Eigenschaften sind Parameter oder Optionen, die in allen Aktionen gefunden werden. Einige Optionen definieren das Verhalten für einen Schritt, etwa wie lange auf den Abschluss eines Schritts gewartet werden muss und was zu tun ist, wenn der Schritt fehlschlägt. Die folgenden Eigenschaften sind allen Aktionen gemeinsam.

[description](#descriptProp)  
Informationen, die Sie angeben, um den Zweck eines Runbooks oder eines Schritts zu beschreiben.  
Typ: Zeichenfolge  
Erforderlich: Nein

[name](#nameProp)  
Ein Bezeichner, der für alle Schrittnamen im Runbook eindeutig sein muss.  
Typ: Zeichenfolge  
Zulässiges Muster: [a-zA-Z0-9\$1]\$1\$1  
Erforderlich: Ja

[action](#actProp)  
Der Name der Aktion, die der Schritt ausführt. [`aws:runCommand` - Führt einen Befehl auf einer verwalteten Instance aus](automation-action-runcommand.md) ist ein Beispiel für eine Aktion, die Sie hier angeben können. Dieses Dokument enthält detaillierte Informationen über alle verfügbaren Aktionen.  
Typ: Zeichenfolge  
Erforderlich: Ja

[maxAttempts](#maxProp)  
Die Anzahl der Wiederholungen des Schritt bei einem Fehler. Wenn der Wert größer als 1 ist, wird der Schritt erst als fehlgeschlagen betrachtet, wenn alle Wiederholungsversuche fehlgeschlagen sind. Der Standardwert ist 1.  
Typ: Ganzzahl  
Erforderlich: Nein

[timeoutSeconds](#timeProp)  
Der Wert für das Timeout des Schritts. Wenn das Timeout erreicht ist und der Wert von `maxAttempts` größer als 1 ist, wird der Schritt erst als abgelaufen betrachtet, wenn alle Wiederholungen durchgeführt wurden.  
Typ: Ganzzahl  
Erforderlich: Nein

[onFailure](#failProp)  
Gibt an, ob die Automatisierung bei einem Fehler abgebrochen, fortgesetzt oder bis zu einem bestimmten Schritt übersprungen werden soll. Der Standardwert für diese Option ist "abort".  
Typ: Zeichenfolge  
Gültige Werte: Abort \$1 Continue \$1 step: *step\$1name*  
Erforderlich: Nein

[onCancel](#canProp)  
Gibt an, zu welchem Schritt die Automatisierung gehen soll, falls ein Benutzer die Automatisierung abbricht. Die Automatisierung führt den Stornierungs-Workflow für maximal zwei Minuten aus.  
Typ: Zeichenfolge  
Gültige Werte: Abort \$1 Schritt: *step\$1name*  
Erforderlich: Nein  
Die `onCancel`-Eigenschaft unterstützt das Verschieben zu den folgenden Aktionen nicht:  
+ `aws:approve`
+ `aws:copyImage`
+ `aws:createImage`
+ `aws:createStack`
+ `aws:createTags`
+ `aws:loop`
+ `aws:pause`
+ `aws:runInstances`
+ `aws:sleep`

[isEnd](#endProp)  
Diese Option stoppt eine Automatisierung am Ende eines bestimmten Schrittes. Die Automatisierung stoppt, egal ob der Schritt erfolgreich oder gar nicht ausgeführt werden konnte. Der Standardwert von "false".  
Typ: Boolesch  
Zulässige Werte: true \$1 false  
Erforderlich: Nein

[nextStep](#nextProp)  
Gibt an, welcher Schritt in einer Automatisierung nach dem erfolgreichem Abschluss eines Schritts als nächster auszuführen ist.  
Typ: Zeichenfolge  
Erforderlich: Nein

[isCritical](#critProp)  
Bezeichnet einen Schritt als kritisch für den erfolgreichen Abschluss der Automation. Wenn ein Schritt mit dieser Bezeichnung fehlschlägt, dann wird der endgültige Status der Automation als fehlgeschlagen gemeldet. Diese Eigenschaft wird nur ausgewertet, wenn Sie diese explizit in Ihrem Schritt definieren. Wenn die `onFailure`-Eigenschaft auf `Continue` in einem Schritt gesetzt ist, lautet der Standardwert „false“. Der Standardwert für diese Option ist sonst „true“.  
Typ: Boolesch  
Zulässige Werte: true \$1 false  
Erforderlich: Nein

[inputs](#inProp)  
Die für die Aktivität spezifischen Eigenschaften.  
Typ: Zuordnung  
Erforderlich: Ja

### Beispiel
<a name="automation-demo"></a>

```
---
description: "Custom Automation Example"
schemaVersion: '0.3'
assumeRole: "{{ AutomationAssumeRole }}"
parameters:
  AutomationAssumeRole:
    type: String
    description: "(Required) The ARN of the role that allows Automation to perform
      the actions on your behalf. If no role is specified, Systems Manager Automation
      uses your IAM permissions to run this runbook."
    default: ''
  InstanceId:
      type: String
      description: "(Required) The Instance Id whose root EBS volume you want to restore the latest Snapshot."
      default: ''
mainSteps:
- name: getInstanceDetails
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
  outputs:
    - Name: availabilityZone
      Selector: "$.Reservations[0].Instances[0].Placement.AvailabilityZone"
      Type: String
    - Name: rootDeviceName
      Selector: "$.Reservations[0].Instances[0].RootDeviceName"
      Type: String
  nextStep: getRootVolumeId
- name: getRootVolumeId
  action: aws:executeAwsApi
  maxAttempts: 3
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeVolumes
    Filters:
    -  Name: attachment.device
       Values: ["{{ getInstanceDetails.rootDeviceName }}"]
    -  Name: attachment.instance-id
       Values: ["{{ InstanceId }}"]
  outputs:
    - Name: rootVolumeId
      Selector: "$.Volumes[0].VolumeId"
      Type: String
  nextStep: getSnapshotsByStartTime
- name: getSnapshotsByStartTime
  action: aws:executeScript
  timeoutSeconds: 45
  onFailure: Abort
  inputs:
    Runtime: python3.8
    Handler: getSnapshotsByStartTime
    InputPayload:
      rootVolumeId : "{{ getRootVolumeId.rootVolumeId }}"
    Script: |-
      def getSnapshotsByStartTime(events,context):
        import boto3

        #Initialize client
        ec2 = boto3.client('ec2')
        rootVolumeId = events['rootVolumeId']
        snapshotsQuery = ec2.describe_snapshots(
          Filters=[
            {
              "Name": "volume-id",
              "Values": [rootVolumeId]
            }
          ]
        )
        if not snapshotsQuery['Snapshots']:
          noSnapshotFoundString = "NoSnapshotFound"
          return { 'noSnapshotFound' : noSnapshotFoundString }
        else:
          jsonSnapshots = snapshotsQuery['Snapshots']
          sortedSnapshots = sorted(jsonSnapshots, key=lambda k: k['StartTime'], reverse=True)
          latestSortedSnapshotId = sortedSnapshots[0]['SnapshotId']
          return { 'latestSnapshotId' : latestSortedSnapshotId }
  outputs:
  - Name: Payload
    Selector: $.Payload
    Type: StringMap
  - Name: latestSnapshotId
    Selector: $.Payload.latestSnapshotId
    Type: String
  - Name: noSnapshotFound
    Selector: $.Payload.noSnapshotFound
    Type: String 
  nextStep: branchFromResults
- name: branchFromResults
  action: aws:branch
  onFailure: Abort
  onCancel: step:startInstance
  inputs:
    Choices:
    - NextStep: createNewRootVolumeFromSnapshot
      Not:
        Variable: "{{ getSnapshotsByStartTime.noSnapshotFound }}"
        StringEquals: "NoSnapshotFound"
  isEnd: true
- name: createNewRootVolumeFromSnapshot
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: CreateVolume
    AvailabilityZone: "{{ getInstanceDetails.availabilityZone }}"
    SnapshotId: "{{ getSnapshotsByStartTime.latestSnapshotId }}"
  outputs:
    - Name: newRootVolumeId
      Selector: "$.VolumeId"
      Type: String
  nextStep: stopInstance
- name: stopInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: StopInstances
    InstanceIds:
    - "{{ InstanceId }}"
  nextStep: verifyVolumeAvailability
- name: verifyVolumeAvailability
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 120
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
    PropertySelector: "$.Volumes[0].State"
    DesiredValues:
    - "available"
  nextStep: verifyInstanceStopped
- name: verifyInstanceStopped
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 120
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
    PropertySelector: "$.Reservations[0].Instances[0].State.Name"
    DesiredValues:
    - "stopped"
  nextStep: detachRootVolume
- name: detachRootVolume
  action: aws:executeAwsApi
  onFailure: Abort
  isCritical: true
  inputs:
    Service: ec2
    Api: DetachVolume
    VolumeId: "{{ getRootVolumeId.rootVolumeId }}"
  nextStep: verifyRootVolumeDetached
- name: verifyRootVolumeDetached
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 30
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ getRootVolumeId.rootVolumeId }}"
    PropertySelector: "$.Volumes[0].State"
    DesiredValues:
    - "available"
  nextStep: attachNewRootVolume
- name: attachNewRootVolume
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: AttachVolume
    Device: "{{ getInstanceDetails.rootDeviceName }}"
    InstanceId: "{{ InstanceId }}"
    VolumeId: "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
  nextStep: verifyNewRootVolumeAttached
- name: verifyNewRootVolumeAttached
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 30
  inputs:
    Service: ec2
    Api: DescribeVolumes
    VolumeIds:
    - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
    PropertySelector: "$.Volumes[0].Attachments[0].State"
    DesiredValues:
    - "attached"
  nextStep: startInstance
- name: startInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: StartInstances
    InstanceIds:
    - "{{ InstanceId }}"
```

# `aws:approve` - Unterbrechen einer Automatisierung zur manuellen Genehmigung
<a name="automation-action-approve"></a>

Hält eine Automatisierung zeitweise an, bis die Aktion von designierten Prinzipalen genehmigt oder abgelehnt wird. Nach Erreichen der erforderlichen Anzahl an Genehmigungen wird die Automatisierung fortgesetzt. Sie können den Genehmigungsschritt an jeder beliebigen Stelle im `mainSteps`-Bereich Ihres Runbooks ansetzen. 

**Anmerkung**  
Diese Aktion unterstützt keine Automatisierungen für mehrere Konten und Regionen. Das Standard-Timeout für diese Aktion beträgt 7 Tage (604 800 Sekunden) und der Höchstwert ist 30 Tage (2 592 000 Sekunden). Sie können die Zeitüberschreitung über den Parameter `timeoutSeconds` für einen `aws:approve`-Schritt anpassen.

Im folgenden Beispiel hält die Aktion `aws:approve` die Automatisierung vorübergehend an, bis ein Genehmiger die Automatisierung entweder akzeptiert oder ablehnt. Nach der Genehmigung führt die Automatisierung einen einfachen PowerShell Befehl aus. 

------
#### [ YAML ]

```
---
description: RunInstancesDemo1
schemaVersion: '0.3'
assumeRole: "{{ assumeRole }}"
parameters:
  assumeRole:
    type: String
  message:
    type: String
mainSteps:
- name: approve
  action: aws:approve
  timeoutSeconds: 1000
  onFailure: Abort
  inputs:
    NotificationArn: arn:aws:sns:us-east-2:12345678901:AutomationApproval
    Message: "{{ message }}"
    MinRequiredApprovals: 1
    Approvers:
    - arn:aws:iam::12345678901:user/AWS-User-1
- name: run
  action: aws:runCommand
  inputs:
    InstanceIds:
    - i-1a2b3c4d5e6f7g
    DocumentName: AWS-RunPowerShellScript
    Parameters:
      commands:
      - date
```

------
#### [ JSON ]

```
{
   "description":"RunInstancesDemo1",
   "schemaVersion":"0.3",
   "assumeRole":"{{ assumeRole }}",
   "parameters":{
      "assumeRole":{
         "type":"String"
      },
      "message":{
         "type":"String"
      }
   },
   "mainSteps":[
      {
         "name":"approve",
         "action":"aws:approve",
         "timeoutSeconds":1000,
         "onFailure":"Abort",
         "inputs":{
            "NotificationArn":"arn:aws:sns:us-east-2:12345678901:AutomationApproval",
            "Message":"{{ message }}",
            "MinRequiredApprovals":1,
            "Approvers":[
               "arn:aws:iam::12345678901:user/AWS-User-1"
            ]
         }
      },
      {
         "name":"run",
         "action":"aws:runCommand",
         "inputs":{
            "InstanceIds":[
               "i-1a2b3c4d5e6f7g"
            ],
            "DocumentName":"AWS-RunPowerShellScript",
            "Parameters":{
               "commands":[
                  "date"
               ]
            }
         }
      }
   ]
}
```

------

Sie können Automatisierungen, die in der Konsole noch nicht genehmigt wurden, genehmigen oder ablehnen.

**So genehmigen Sie Automatisierungen oder lehnen sie ab**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie die Option neben einer Automation mit dem Status **Waiting (Warten)**.  
![\[Zugriff auf die Approve/Deny Automatisierungsseite\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/automation-approve-action-aws.png)

1. Wählen Sie **Approve/Deny** aus.

1. Überprüfen Sie die Details der Automation.

1. Wählen Sie **Approve** (Genehmigen) oder **Deny** (Verweigern), geben Sie einen optionalen Kommentar ein und wählen Sie dann **Submit** (Absenden) aus.

**Eingabebeispiel**

------
#### [ YAML ]

```
NotificationArn: arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest
Message: Please approve this step of the Automation.
MinRequiredApprovals: 3
Approvers:
- IamUser1
- IamUser2
- arn:aws:iam::12345678901:user/IamUser3
- arn:aws:iam::12345678901:role/IamRole
```

------
#### [ JSON ]

```
{
   "NotificationArn":"arn:aws:sns:us-west-1:12345678901:Automation-ApprovalRequest",
   "Message":"Please approve this step of the Automation.",
   "MinRequiredApprovals":3,
   "Approvers":[
      "IamUser1",
      "IamUser2",
      "arn:aws:iam::12345678901:user/IamUser3",
      "arn:aws:iam::12345678901:role/IamRole"
   ]
}
```

------

NotificationArn  
Der Amazon Resource Name (ARN) eines Amazon Simple Notification Service (Amazon SNS) Themas für Automation-Genehmigungen. Wenn Sie einen `aws:approve`-Schritt in einer Automatisierung festlegen, sendet Automation eine Nachricht an dieses Thema und informiert die Prinzipale darüber, dass sie einen Automation-Schritt entweder genehmigen oder zurückweisen müssen. Die Bezeichnung des Amazon-SNS-Themas muss das Präfix „Automatisierung“ aufweisen.  
Typ: Zeichenfolge  
Erforderlich: Nein

Fehlermeldung  
Die Informationen, die Sie in das Amazon-SNS-Thema einbeziehen möchten, wenn die Genehmigungsanforderung gesendet wird. Die maximale Länge der Nachricht beträgt 4096 Zeichen.   
Typ: Zeichenfolge  
Erforderlich: Nein

MinRequiredApprovals  
Die erforderliche Mindestanzahl an Genehmigungen zum Fortsetzen der Automatisierung. Wenn Sie keinen Wert angeben, verwendet das System standardmäßig den Wert 1. Der Wert für diesen Parameter muss eine positive Zahl sein. Der Wert für diesen Parameter darf nicht größer sein als die Anzahl der Genehmiger, die anhand des `Approvers`-Parameters definiert sind.   
Typ: Ganzzahl  
Erforderlich: Nein

Genehmiger  
Eine Liste AWS authentifizierter Principals, die die Aktion entweder genehmigen oder ablehnen können. Die maximale Anzahl an Genehmigern ist 10. Sie können Prinzipale anhand eines der folgenden Formate festlegen:  
+ Ein Benutzername
+ Ein Benutzer-ARN
+ Ein IAM-Rollen-ARN
+ Ein IAM-Rollenübernahme-ARN
Typ: StringList  
Erforderlich: Ja

EnhancedApprovals  
Diese Eingabe wird nur für Change Manager-Vorlagen verwendet. Eine Liste der AWS authentifizierten Prinzipals, die die Aktion entweder genehmigen oder ablehnen können, den Typ des IAM-Prinzipals und die Mindestanzahl von Genehmiger. Im Folgenden wird ein Beispiel gezeigt:  

```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
    - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 604800
    inputs:
        Message: Please approve this change request
        MinRequiredApprovals: 3
        EnhancedApprovals:
        Approvers:
            - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 0
            - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 0
            - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 0
            - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 0
```
Typ: StringList  
Erforderlich: Ja

**Ausgabe**

ApprovalStatus  
Der Genehmigungsstatus des Schritts. Der Status kann einer der folgenden sein: Genehmigt, Abgelehnt oder Warten. Warten bedeutet, dass Automation auf eine Eingabe der Genehmiger wartet.  
Typ: Zeichenfolge

ApproverDecisions  
Eine JSON-Karte, die den Genehmigungsbescheid der einzelnen Genehmiger enthält.  
Typ: MapList

# `aws:assertAwsResourceProperty`— Bestätigt einen AWS Ressourcen- oder Ereignisstatus
<a name="automation-action-assertAwsResourceProperty"></a>

Die Aktion `aws:assertAwsResourceProperty` erlaubt Ihnen, einen bestimmten Ressourcen- oder Ereignisstatus für einen bestimmten Automation-Schritt zu prüfen.

**Anmerkung**  
Die Aktion `aws:assertAwsResourceProperty` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

Weitere Beispiele zur Verwendung dieser Aktion finden Sie unter [Weitere Runbook-Beispiele](automation-document-examples.md).

**Input**  
Eingaben werden von der ausgewählten API-Operation bestimmt. 

------
#### [ YAML ]

```
action: aws:assertAwsResourceProperty
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
  PropertySelector: Response object
  DesiredValues:
  - Desired property values
```

------
#### [ JSON ]

```
{
  "action": "aws:assertAwsResourceProperty",
  "inputs": {
    "Service":"The official namespace of the service",
    "Api":"The API operation or method name",
    "API operation inputs or parameters":"A value",
    "PropertySelector": "Response object",
    "DesiredValues": [
      "Desired property values"
    ]
  }
}
```

------

Service  
Der AWS-Service Namespace, der die API-Operation enthält, die Sie ausführen möchten. Beispielsweise lautet der Namespace für Systems Manager `ssm`. Der Namespace für Amazon EC2 lautet `ec2`. Sie finden eine Liste der unterstützten AWS-Service -Namespaces im Abschnitt [Verfügbare Services](https://docs.aws.amazon.com/cli/latest/reference/#available-services) der *AWS CLI -Befehlsreferenz*.  
Typ: Zeichenfolge  
Erforderlich: Ja

Api  
Der Name der API-Operation, die Sie ausführen möchten. Sie können die API-Operationen (auch als Methoden bezeichnet) anzeigen, indem Sie einen Service in der linken Navigationsleiste auf der folgenden [Service-Referenzen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Seite auswählen. Wählen Sie eine Methode im Abschnitt **Client** für den Service, den Sie aufrufen möchten. Beispielsweise werden alle API-Vorgänge (Methoden) für Amazon Relational Database Service (Amazon RDS) auf der folgenden Seite aufgelistet: [Amazon RDS-Methoden](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Typ: Zeichenfolge  
Erforderlich: Ja

API-Operation-Eingaben  
Eine oder mehrere API-Eingaben. Sie können die verfügbaren Eingaben (auch als Parameter bezeichnet) anzeigen, indem Sie einen Service in der linken Navigationsleiste auf der folgenden [Service-Referenzen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Seite auswählen. Wählen Sie eine Methode im Abschnitt **Client** für den Service, den Sie aufrufen möchten. Beispielsweise sind alle Methoden für Amazon RDS auf der folgenden Seite aufgeführt: [Amazon RDS-Methoden](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ****Wählen Sie die Methode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) und scrollen Sie nach unten, um die verfügbaren Parameter wie **DBInstanceIdentifier**, Name und Values zu sehen.**** Verwenden Sie das folgende Format, um mehr als eine Eingabe anzugeben.  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Typ: Abhängig von der gewählten API-Operation  
Erforderlich: Ja

PropertySelector  
Das JSONPath zu einem bestimmten Attribut im Antwortobjekt. Sie können die Antwortobjekte anzeigen indem Sie einen Service in der linken Navigationsleiste auf der folgenden [Service-Referenzen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Seite auswählen. Wählen Sie eine Methode im Abschnitt **Client** für den Service, den Sie aufrufen möchten. Beispielsweise sind alle Methoden für Amazon RDS auf der folgenden Seite aufgeführt: [Amazon RDS-Methoden](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Wählen Sie die Methode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) und scrollen Sie nach unten zum Abschnitt Antwortstruktur.** **DBInstances**ist als Antwortobjekt aufgeführt.  
Typ: Zeichenfolge  
Erforderlich: Ja

DesiredValues  
Die erwartete Status oder Zustand, bei dem die Automatisierung fortgesetzt werden soll. Wenn Sie einen booleschen Wert angeben, müssen Sie einen Großbuchstaben verwenden, wie z. B. True oder False.  
Typ: StringList  
Erforderlich: Ja

# `aws:branch` - Ausführen bedingter Automatisierungsschritte
<a name="automation-action-branch"></a>

Die Aktion `aws:branch` erlaubt das Erstellen einer dynamischen Automatisierung, der verschiedene Auswahlmöglichkeiten in einem einzigen Schritt evaluiert und dann auf der Grundlage dieser Evaluierung zu einem anderen Schritt in dem Runbook springt. 

Wenn Sie die Aktion `aws:branch` für einen Schritt angeben, geben Sie die `Choices` an, die die Automatisierung evaluieren muss. Die `Choices` können auf einem Wert basieren, den Sie im Abschnitt `Parameters` des Runbooks angegeben haben, oder auf einem als Ausgabe von dem vorherigen Schritt generierten dynamischen Wert basieren. Die Automatisierung evaluiert jede Auswahl mithilfe eines booleschen Ausdrucks. Wenn die erste Auswahl „wahr“ ist, springt die Automatisierung zu dem für diese Auswahl vorgesehenen Schritt. Wenn die erste Auswahl „false“ ist, evaluiert die Automatisierung die nächste Auswahl. Die Automatisierung evaluiert weiterhin jede Auswahl, bis eine Auswahl als „true“ verarbeitet wird. Die Automatisierung springt dann zu dem für die als „true“ evaluierte Auswahl angegebenen Schritt.

Wenn keine Auswahl als „true“ evaluiert wird, prüft die Automatisierung, ob der Schritt einen `default`-Wert enthält. Ein Default-Wert definiert einen Schritt, zu dem die Automatisierung springen soll, wenn keine der Auswahlmöglichkeiten als „true“ evaluiert wird. Wenn kein `default`-Wert für den Schritt definiert ist, verarbeitet die Automatisierung den nächsten Schritt in dem Runbook.

Die Aktion `aws:branch` unterstützt komplexe Auswahlevaluierungen durch Verwendung einer Kombination der Operatoren `And`, `Not` und `Or`. Weitere Informationen über die Verwendung von `aws:branch`, mit Beispielrunbooks und Beispielen, die unterschiedliche Operatoren verwenden, finden Sie unter [Verwendung bedingter Anweisungen in Runbooks](automation-branch-condition.md).

**Input**  
Geben Sie eine oder mehrere `Choices` in einem Schritt an. Die `Choices` können auf einem Wert basieren, den Sie im Abschnitt `Parameters` des Runbooks angegeben haben, oder auf einem als Ausgabe von dem vorherigen Schritt generierten dynamischen Wert basieren. Hier ist ein YAML-Beispiel, das einen Parameter evaluiert.

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runWindowsCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: windows
    - NextStep: runLinuxCommand
      Variable: "{{Name of a parameter defined in the Parameters section. For example: OS_name}}"
      StringEquals: linux
    Default:
      sleep3
```

Hier ist ein YAML-Beispiel, das die Ausgabe von einem vorherigen Schritt evaluiert.

```
mainSteps:
- name: chooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{Name of a response object. For example: GetInstance.platform}}"
      StringEquals: Linux
    Default:
      sleep3
```

Auswahlen  
Ein oder mehrere Ausdrücke, die die Automatisierung evaluieren soll, wenn der nächste zu verarbeitende Schritt bestimmt wird. Auswahlen werden mit einem booleschen Ausdruck evaluiert. Jede Auswahl muss die folgenden Optionen definieren:  
+ **NextStep**: Der nächste Schritt im Runbook, der verarbeitet werden soll, wenn die angegebene Auswahl wahr ist.
+ **Variable**: Geben Sie entweder den Namen eines Parameters an, der im Abschnitt `Parameters` des Runbooks definiert ist, Oder geben Sie ein Ausgabeobjekt von einem vorherigen Schritt im Runbook an. Weitere Informationen zum Erstellen von Variablen für `aws:branch` finden Sie unter [Informationen zum Erstellen der Ausgabevariable](automation-branch-condition.md#branch-action-output).
+ **Operation**: Die Kriterien für die Evaluierung der Auswahl. Die Aktion `aws:branch` unterstützt die folgenden Operationen:

**Zeichenfolgenoperationen**
  + StringEquals
  + EqualsIgnoreCase
  + StartsWith
  + EndsWith
  + Enthält

**Numerische Operationen**
  + NumericEquals
  + NumericGreater
  + NumericLesser
  + NumericGreaterOrEquals
  + NumericLesser
  + NumericLesserOrEquals

**Boolesche Operation**
  + BooleanEquals
**Wichtig**  
Wenn Sie ein Runbook erstellen, validiert das System alle Operationen im Runbook. Wenn eine Operation nicht unterstützt wird, gibt das System einen Fehler aus, wenn Sie versuchen, das Runbook zu erstellen.

Standard  
Der Name eines Schritts, zu dem die Automatisierung springen soll, wenn keine der `Choices` „true“ ist.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Anmerkung**  
Die Aktion `aws:branch` unterstützt die Operatoren `And`, `Or` und `Not`. Beispiele für `aws:branch` unter Verwendung von Operatoren finden Sie unter [Verwendung bedingter Anweisungen in Runbooks](automation-branch-condition.md).

# `aws:changeInstanceState` – Instance-Status ändern oder geltend machen
<a name="automation-action-changestate"></a>

Ändert oder klärt den Status der Instance.

Diese Aktivität kann im Assert-Modus verwendet werden (führt jedoch die API nicht aus, um den Status zu ändern, sondern prüft, ob die Instance den gewünschten Status aufweist.) Um den Assert-Modus zu verwenden, setzen Sie den Parameter `CheckStateOnly` auf "true". Dieser Modus ist nützlich, wenn der Sysprep-Befehl unter Windows Server ausgeführt wird. Bei diesem Befehl handelt es sich um einen asynchronen Befehl, der lange Zeit im Hintergrund ausgeführt werden kann. Sie können sicherstellen, dass die Instance angehalten wird, bevor Sie ein Amazon Machine Image (AMI) erstellen.

**Anmerkung**  
Der Standardwert für die Zeitüberschreitung für diese Aktion beträgt 3 600 Sekunden (eine Stunde). Sie können die Zeitüberschreitung über den Parameter `timeoutSeconds` für einen `aws:changeInstanceState`-Schritt anpassen.

**Anmerkung**  
Die Aktion `aws:changeInstanceState` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Eingabe**

------
#### [ YAML ]

```
name: stopMyInstance
action: aws:changeInstanceState
maxAttempts: 3
timeoutSeconds: 3600
onFailure: Abort
inputs:
  InstanceIds:
  - i-1234567890abcdef0
  CheckStateOnly: true
  DesiredState: stopped
```

------
#### [ JSON ]

```
{
    "name":"stopMyInstance",
    "action": "aws:changeInstanceState",
    "maxAttempts": 3,
    "timeoutSeconds": 3600,
    "onFailure": "Abort",
    "inputs": {
        "InstanceIds": ["i-1234567890abcdef0"],
        "CheckStateOnly": true,
        "DesiredState": "stopped"
    }
}
```

------

InstanceIds  
Die IDs der Instanzen.  
Typ: StringList  
Erforderlich: Ja

CheckStateOnly  
Wenn „false“, wird der Instance-Status auf den gewünschten Status festgelegt. Wenn „true“, wird der gewünschte Status anhand einer Abfrage überprüft.  
Standard: `false`  
Typ: Boolesch  
Erforderlich: Nein

DesiredState  
Der gewünschte Status. Bei der Einstellung `running` wartet diese Aktion auf den Amazon EC2 Status `Running`, den Instance-Status `OK` und den Systemstatus `OK` vor dem Abschluss.  
Typ: Zeichenfolge  
Zulässige Werte: `running` \$1 `stopped` \$1 `terminated`  
Erforderlich: Ja

Force  
Wenn festgelegt, wird das Anhalten der Instances erzwungen. Die Instances haben keine Gelegenheit, die Caches oder Metadaten des Dateisystems zu leeren. Wenn Sie diese Option verwenden, müssen Sie eine Überprüfung und Reparatur des Dateisystems durchführen. Diese Option wird für EC2-Instances für Windows Server nicht empfohlen.  
Typ: Boolesch  
Erforderlich: Nein

AdditionalInfo  
Reserved Instances.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Ausgabe**  
Keine

# `aws:copyImage` - Kopieren oder Verschlüsseln eines Amazon Machine Image
<a name="automation-action-copyimage"></a>

Kopiert ein Amazon Machine Image (AMI) aus einer beliebigen Region AWS-Region in die aktuelle Region. Diese Aktion kann auch das neue AMI verschlüsseln.

**Anmerkung**  
Die Aktion `aws:copyImage` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Input**  
Diese Aktion unterstützt die meisten `CopyImage`-Parameter. Weitere Informationen finden Sie unter [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CopyImage.html).

Das folgende Beispiel erstellt eine Kopie eines AMI in der Region Seoul (`SourceImageID`: ami-0fe10819. `SourceRegion`: ap-northeast-2). Das neue AMI wird in die Region kopiert, in der Sie die Automation-Aktivität gestartet haben. Das kopierte AMI wird verschlüsselt, da das optionale `Encrypted`-Flag auf `true` gesetzt ist.

------
#### [ YAML ]

```
name: createEncryptedCopy
action: aws:copyImage
maxAttempts: 3
onFailure: Abort
inputs:
  SourceImageId: ami-0fe10819
  SourceRegion: ap-northeast-2
  ImageName: Encrypted Copy of LAMP base AMI in ap-northeast-2
  Encrypted: true
```

------
#### [ JSON ]

```
{   
    "name": "createEncryptedCopy",
    "action": "aws:copyImage",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "SourceImageId": "ami-0fe10819",
        "SourceRegion": "ap-northeast-2",
        "ImageName": "Encrypted Copy of LAMP base AMI in ap-northeast-2",
        "Encrypted": true
    }   
}
```

------

SourceRegion  
Die Region, in der Quell-AMI derzeit vorhanden ist.  
Typ: Zeichenfolge  
Erforderlich: Ja

SourceImageId  
Die AMI-ID, die aus der Quellregion kopiert werden soll.  
Typ: Zeichenfolge  
Erforderlich: Ja

ImageName  
Der Name für das neue Image.  
Typ: Zeichenfolge  
Erforderlich: Ja

ImageDescription  
Eine Beschreibung des Ziel-Image.  
Typ: Zeichenfolge  
Erforderlich: Nein

Verschlüsselt  
Verschlüsseln Sie das AMI.  
Typ: Boolesch  
Erforderlich: Nein

KmsKeyId  
Der vollständige Amazon-Ressourcenname (ARN), der beim Verschlüsseln der Snapshots eines Images während eines Kopiervorgangs verwendet werden AWS KMS key soll. Weitere Informationen finden Sie unter [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html).  
Typ: Zeichenfolge  
Erforderlich: Nein

ClientToken  
Ein eindeutiger Bezeichner, bei dem die Groß- und Kleinschreibung beachtet werden muss, um die Idempotenz der Anforderung sicherzustellen. Weitere Informationen finden Sie unter [CopyImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_copyimage.html).  
Typ: Zeichenfolge  
Erforderlich: NeinAusgabe

ImageId  
Die ID des kopierten Image.

ImageState  
Der Status des kopierten Image.  
Zulässige Werte: `available` \$1 `pending` \$1 `failed`

# `aws:createImage` - Erstellen eines Amazon Machine Image
<a name="automation-action-create"></a>

Erstellt ein Amazon Machine Image (AMI) aus einer Instance, die entweder ausgeführt wird, angehalten wird oder angehalten ist, und fragt ab, ob `ImageState` gleich `available` ist.

**Anmerkung**  
Die Aktion `aws:createImage` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Input**  
Diese Aktion unterstützt die folgenden `CreateImage`-Parameter. Weitere Informationen finden Sie unter [CreateImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateImage.html).

------
#### [ YAML ]

```
name: createMyImage
action: aws:createImage
maxAttempts: 3
onFailure: Abort
inputs:
  InstanceId: i-1234567890abcdef0
  ImageName: AMI Created on{{global:DATE_TIME}}
  NoReboot: true
  ImageDescription: My newly created AMI
```

------
#### [ JSON ]

```
{
    "name": "createMyImage",
    "action": "aws:createImage",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "InstanceId": "i-1234567890abcdef0",
        "ImageName": "AMI Created on{{global:DATE_TIME}}",
        "NoReboot": true,
        "ImageDescription": "My newly created AMI"
    }
}
```

------

InstanceId  
Die ID der Instance.  
Typ: Zeichenfolge  
Erforderlich: Ja

ImageName  
Der Name für das Image.  
Typ: Zeichenfolge  
Erforderlich: Ja

ImageDescription  
Eine Beschreibung des Image.  
Typ: Zeichenfolge  
Erforderlich: Nein

NoReboot  
Ein boolesches Literal.  
Standardmäßig versucht Amazon Elastic Compute Cloud (Amazon EC2) vor dem Erstellen des Images, die Instance herunterzufahren und neu zu starten. Wenn die Option **No Reboot (Kein Neustart)** auf `true` eingestellt ist, fährt Amazon EC2 die Instance vor dem Erstellen des Images nicht herunter. Wenn diese Option verwendet wird, kann die Integrität des Dateisystems auf dem erstellten Image nicht garantiert werden.   
Wenn Sie nicht möchten, dass die Instanz ausgeführt wird, nachdem Sie eine AMI aus ihr erstellt haben, verwenden Sie zuerst die [`aws:changeInstanceState` – Instance-Status ändern oder geltend machen](automation-action-changestate.md) Aktion, um die Instanz zu beenden, und verwenden Sie dann diese `aws:createImage` Aktion mit der **NoReboot**Option, die auf gesetzt ist`true`.  
Typ: Boolesch  
Erforderlich: Nein

BlockDeviceMappings  
Die Blockgeräte für die Instance.  
Typ: Zuordnung  
Erforderlich: NeinAusgabe

ImageId  
Die ID des neu erstellten Image.  
Typ: Zeichenfolge

ImageState  
Der aktuelle Status des Image. Wenn der Status verfügbar ist, wird das Image erfolgreich registriert und kann zum Starten einer Instance verwendet werden.  
Typ: Zeichenfolge

# `aws:createStack`— Einen CloudFormation Stapel erstellen
<a name="automation-action-createstack"></a>

Erzeugt einen AWS CloudFormation Stapel aus einer Vorlage.

**Anmerkung**  
Die Aktion `aws:createStack` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

Zusätzliche Informationen zum Erstellen von CloudFormation Stacks finden Sie [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)in der *AWS CloudFormation API-Referenz*. 

**Eingabe**

------
#### [ YAML ]

```
name: makeStack
action: aws:createStack
maxAttempts: 1
onFailure: Abort
inputs:
  Capabilities:
  - CAPABILITY_IAM
  StackName: myStack
  TemplateURL: http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate
  TimeoutInMinutes: 5
  Parameters:
    - ParameterKey: LambdaRoleArn
      ParameterValue: "{{LambdaAssumeRole}}"
    - ParameterKey: createdResource
      ParameterValue: createdResource-{{automation:EXECUTION_ID}}
```

------
#### [ JSON ]

```
{
    "name": "makeStack",
    "action": "aws:createStack",
    "maxAttempts": 1,
    "onFailure": "Abort",
    "inputs": {
        "Capabilities": [
            "CAPABILITY_IAM"
        ],
        "StackName": "myStack",
        "TemplateURL": "http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate",
        "TimeoutInMinutes": 5,
        "Parameters": [
          {
            "ParameterKey": "LambdaRoleArn",
            "ParameterValue": "{{LambdaAssumeRole}}"
          },
          {
            "ParameterKey": "createdResource",
            "ParameterValue": "createdResource-{{automation:EXECUTION_ID}}"
          }
    }
}
```

------

Capabilities  
Mit einer Liste von Werten, die Sie zuvor angegeben haben, CloudFormation können Sie bestimmte Stacks erstellen. Einige Stack-Vorlagen enthalten Ressourcen, die sich auf Ihre AWS-Konto Berechtigungen auswirken können. Für einige Stacks müssen Sie deren Fähigkeiten mithilfe dieses Parameters explizit bestätigen.   
Gültige Werte sind: `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM` und `CAPABILITY_AUTO_EXPAND`.   
**CAPABILITY\$1IAM und CAPABILITY\$1NAMED\$1IAM**  
Wenn Sie &IAM;-Ressourcen besitzen, können Sie jede Fähigkeit angeben. Wenn Sie IAM-Ressourcen mit benutzerdefinierten Namen besitzen, müssen Sie `CAPABILITY_NAMED_IAM` angeben. Wenn Sie diesen Parameter angeben, gibt die Aktivität einen `InsufficientCapabilities`-Fehler zurück. Für die folgenden Ressourcen müssen Sie entweder `CAPABILITY_IAM` oder `CAPABILITY_NAMED_IAM` angeben.
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
Wenn Ihre Stack-Vorlage diese Ressourcen enthält, empfehlen wir, dass Sie alle ihnen zugeordneten Berechtigungen überprüfen und ihre Berechtigungen bei Bedarf bearbeiten.   
Weitere Informationen finden Sie unter [Bestätigung von IAM-Ressourcen in CloudFormation Vorlagen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities).   
**CAPABILITY\$1AUTO\$1EXPAND**  
Einige Vorlagen enthalten Makros. Makros führen eine benutzerdefinierte Verarbeitung von Vorlagen durch. Dies kann einfache Aktionen wie find-and-replace Operationen bis hin zu umfangreichen Transformationen ganzer Vorlagen umfassen. Aus diesem Grund erstellt der Benutzer normalerweise einen Änderungssatz aus der verarbeiteten Vorlage, sodass er die aus den Makros resultierenden Änderungen überprüfen kann, bevor er den Stack tatsächlich erstellt. Wenn Ihre Stack-Vorlage ein oder mehrere Makros enthält und Sie sich dafür entscheiden, einen Stack direkt aus der verarbeiteten Vorlage zu erstellen, ohne vorher die resultierenden Änderungen in einem Änderungssatz zu überprüfen, müssen Sie diese Funktion berücksichtigen. 
*Weitere Informationen finden Sie im [Benutzerhandbuch unter Verwenden von AWS CloudFormation Makros zur benutzerdefinierten Verarbeitung von Vorlagen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html).AWS CloudFormation *  
Typ: Zeichenfolge-Array  
Zulässige Werte: `CAPABILITY_IAM | CAPABILITY_NAMED_IAM | CAPABILITY_AUTO_EXPAND`  
Erforderlich: Nein

ClientRequestToken  
Eine eindeutige Kennung für diese CreateStack Anfrage. Geben Sie dieses Token an, wenn Sie maxAttempts in diesem Schritt auf einen Wert größer als 1 festlegen. Durch die Angabe dieses Tokens CloudFormation weiß, dass Sie nicht versuchen, einen neuen Stack mit demselben Namen zu erstellen.  
Typ: Zeichenfolge  
Erforderlich: Nein  
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Maximale Länge beträgt 128 Zeichen.  
Muster: [a-zA-Z0-9][-a-zA-Z0-9]\$1

DisableRollback  
Legen Sie den Parameter auf `true` fest, um ein Rollback des Stacks zu deaktivieren, wenn ein Fehler bei der Erstellung des Stacks aufgetreten ist.  
Bedingt: Sie können entweder den `DisableRollback`-Parameter oder den `OnFailure`-Parameter festlegen, aber nicht beide.   
Standard: `false`  
Typ: Boolesch  
Erforderlich: Nein

Benachrichtigung ARNs  
Das Thema Amazon Simple Notification Service (Amazon SNS) ARNs zur Veröffentlichung von Ereignissen im Zusammenhang mit Stacks. [Sie finden das SNS-Thema ARNs in der Amazon SNS SNS-Konsole, https://console.aws.amazon.com/sns/ v3/home.](https://console.aws.amazon.com/sns/v3/home)   
Typ: Zeichenfolge-Array  
Array-Mitglieder: Maximale Anzahl von 5 Elementen.  
Erforderlich: Nein

OnFailure  
Bestimmt die Aktion, die ergriffen werden muss, wenn ein Fehler am Stack auftritt. Sie müssen `DO_NOTHING`, `ROLLBACK` oder `DELETE` angeben.  
Bedingt: Sie können entweder den `OnFailure`-Parameter oder den `DisableRollback`-Parameter festlegen, aber nicht beide.   
Standard: `ROLLBACK`  
Typ: Zeichenfolge  
Zulässige Werte:` DO_NOTHING | ROLLBACK | DELETE`  
Erforderlich: Nein

Parameters  
Eine Liste der `Parameter`-Strukturen, die Eingabeparameter für den Stack angeben. Weitere Informationen finden Sie im Datentyp [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html).   
Typ: Array von [Parameter](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)-Objekten   
Erforderlich: Nein

ResourceTypes  
Die Vorlagenressourcentypen für diese Aktion zum Erstellen von Stacks, für die Sie über Berechtigungen verfügen. Beispiel: `AWS::EC2::Instance`, `AWS::EC2::*` oder `Custom::MyCustomInstance`. Verwenden Sie die folgende Syntax zum Beschreiben von Vorlagenressourcentypen.  
+ Für alle Ressourcen: AWS 

  ```
  AWS::*
  ```
+ Für alle benutzerdefinierten Ressourcen:

  ```
  Custom::*
  ```
+ Für eine bestimmte benutzerdefinierte Ressource:

  ```
  Custom::logical_ID
  ```
+ Für alle Ressourcen eines bestimmten AWS-Service:

  ```
  AWS::service_name::*
  ```
+ Für eine bestimmte AWS Ressource:

  ```
  AWS::service_name::resource_logical_ID
  ```
Wenn die Liste der Ressourcentypen keine Ressource enthält, die Sie erstellen, schlägt die Erstellung des Stacks fehl. CloudFormation Gewährt standardmäßig Berechtigungen für alle Ressourcentypen. IAM verwendet diesen Parameter für CloudFormation -spezifische Bedingungsschlüssel in IAM-Richtlinien. Weitere Informationen finden Sie unter [Zugriffskontrolle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html) mit. AWS Identity and Access Management  
Typ: Zeichenfolge-Array  
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Maximale Länge beträgt 256 Zeichen.  
Erforderlich: Nein

RoleARN  
Der Amazon-Ressourcenname (ARN) einer IAM-Rolle, die CloudFormation davon ausgeht, den Stack zu erstellen. CloudFormation verwendet die Anmeldeinformationen der Rolle, um in Ihrem Namen Anrufe zu tätigen. CloudFormation verwendet diese Rolle immer für alle future Operationen auf dem Stack. Wenn Benutzer die Berechtigung für Vorgänge am Stack besitzen, verwendet CloudFormation diese Rolle auch dann, wenn die Benutzer nicht über die Berechtigung zur Weitergabe verfügen. Stellen Sie sicher, dass die Rolle die geringstmögliche Menge an Berechtigungen gewährt.   
Wenn Sie keinen Wert angeben, CloudFormation verwendet die Rolle, die zuvor dem Stack zugeordnet war. Wenn keine Rolle verfügbar ist, CloudFormation verwendet eine temporäre Sitzung, die anhand Ihrer Benutzeranmeldedaten generiert wird.   
Typ: Zeichenfolge  
Längenbeschränkungen: Minimale Länge von 20. Maximale Länge beträgt 2048 Zeichen.  
Erforderlich: Nein

StackName  
Der dem Stack zugeordnete Name. Der Name muss in der Region eindeutig sein, in der Sie den Stack erstellen.  
Ein Stack-Name darf nur alphanumerische Zeichen (wobei die Groß- und Kleinschreibung beachtet werden muss) und Bindestriche enthalten. Er muss mit einem alphabetischen Zeichen beginnen und darf nicht mehr als 128 Zeichen umfassen. 
Typ: Zeichenfolge  
Erforderlich: Ja

StackPolicyBody  
Struktur, die die Stack-Richtlinie enthält. Weitere Informationen finden Sie unter [Verhindern von Aktualisierungen der Stack-Ressourcen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html).  
Bedingt: Sie können entweder den `StackPolicyBody`-Parameter oder den `StackPolicyURL`-Parameter festlegen, aber nicht beide.   
Typ: Zeichenfolge  
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Maximale Länge beträgt 16384 Zeichen.  
Erforderlich: Nein

StackPolicyURL  
Speicherort einer Datei, die die Stack-Richtlinie enthält. Die URL muss auf eine Richtlinie in einem S3-Bucket in derselben Region wie der Stack verweisen. Die maximal zulässige Dateigröße für die Stack-Richtlinie ist 16 KB.  
Bedingt: Sie können entweder den `StackPolicyBody`-Parameter oder den `StackPolicyURL`-Parameter festlegen, aber nicht beide.   
Typ: Zeichenfolge  
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Maximale Länge beträgt 1350 Zeichen.  
Erforderlich: Nein

Tags (Markierungen)  
Schlüssel-Wert-Paare, die diesem Stack zugeordnet werden sollen. CloudFormation überträgt diese Tags auch auf die im Stack erstellten Ressourcen. Sie können höchstens 10 Tags angeben.   
Typ: Array von [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Tag.html)-Objekten   
Erforderlich: Nein

TemplateBody  
Struktur, die den Vorlagetext mit einer Mindestlänge von 1 Byte und einer Höchstlänge von 51.200 Byte enthält. Weitere Informationen finden Sie unter [Aufbau einer Vorlage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html).   
Bedingt: Sie können entweder den `TemplateBody`-Parameter oder den `TemplateURL`-Parameter festlegen, aber nicht beide.   
Typ: Zeichenfolge  
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen.  
Erforderlich: Nein

TemplateURL  
Speicherort einer Datei, die den Vorlagentext enthält. Die URL muss auf eine Vorlage verweisen, die sich in einem S3-Bucket befindet. Die maximal zulässige Größe für die Vorlage ist 460.800 Byte. Weitere Informationen finden Sie unter [Aufbau einer Vorlage](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html).   
Bedingt: Sie können entweder den `TemplateBody`-Parameter oder den `TemplateURL`-Parameter festlegen, aber nicht beide.   
Typ: Zeichenfolge  
Längenbeschränkungen: Minimale Länge von 1. Maximale Länge beträgt 1024 Zeichen.  
Erforderlich: Nein

TimeoutInMinutes  
Die Zeit, die verstreichen kann, bevor der Stack-Status zu `CREATE_FAILED` wird. Falls `DisableRollback` nicht festgelegt ist oder auf `false` festgelegt ist, wird für den Stack ein Rollback ausgeführt.   
Typ: Ganzzahl  
Gültiger Bereich: Mindestwert 1.  
Erforderlich: Nein

## Outputs
<a name="automation-action-createstack-output"></a>

StackId  
Eindeutiger Bezeichner des Stacks.  
Typ: Zeichenfolge

StackStatus  
Aktueller Status des Stacks.  
Typ: Zeichenfolge  
Zulässige Werte: `CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE | REVIEW_IN_PROGRESS`  
Erforderlich: Ja

StackStatusReason  
Erfolgs- oder Fehlermeldung im Zusammenhang mit dem Stack-Status.  
Typ: Zeichenfolge  
Erforderlich: Nein  
Weitere Informationen finden Sie unter [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html).

## Sicherheitsüberlegungen
<a name="automation-action-createstack-security"></a>

Bevor Sie die Aktion `aws:createStack` verwenden können, müssen Sie folgende Richtlinie der IAM-Automation-Assume-Role zuweisen. Weitere Informationen über die Übernahmerolle finden Sie unter [Aufgabe 1: Erstellen einer Servicerolle für Automation](automation-setup-iam.md#create-service-role). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:CreateStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------

# `aws:createTags`— Erstelle Tags für AWS Ressourcen
<a name="automation-action-createtag"></a>

Erstellt neue Tags für Amazon Elastic Compute Cloud (Amazon EC2) -Instances oder AWS Systems Manager verwaltete Instances.

**Anmerkung**  
Die Aktion `aws:createTags` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Input**  
Diese Aktion unterstützt die meisten Amazon EC2-`CreateTags` und Systems Manager `AddTagsToResource`-Parameter. Weitere Informationen erhalten Sie unter [CreateTags](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_createtags.html) und [AddTagsToResource](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/api_addtagstoresource.html).

Das folgende Beispiel zeigt, wie Sie ein Amazon Machine Image (AMI) und eine Instance als Produktionsressourcen für eine bestimmte Abteilung taggen.

------
#### [ YAML ]

```
name: createTags
action: aws:createTags
maxAttempts: 3
onFailure: Abort
inputs:
  ResourceType: EC2
  ResourceIds:
  - ami-9a3768fa
  - i-02951acd5111a8169
  Tags:
  - Key: production
    Value: ''
  - Key: department
    Value: devops
```

------
#### [ JSON ]

```
{
    "name": "createTags",
    "action": "aws:createTags",
    "maxAttempts": 3,
    "onFailure": "Abort",
    "inputs": {
        "ResourceType": "EC2",
        "ResourceIds": [
            "ami-9a3768fa",
            "i-02951acd5111a8169"
        ],
        "Tags": [
            {
                "Key": "production",
                "Value": ""
            },
            {
                "Key": "department",
                "Value": "devops"
            }
        ]
    }
}
```

------

ResourceIds  
Die IDs der Ressource(n), die getaggt werden soll(en). Wenn der Ressourcentyp nicht „EC2“ lautet, kann dieses Feld nur ein einzelnes Element enthalten.  
Typ: StringList  
Erforderlich: Ja

Tags (Markierungen)  
Die Tags, die der/den Ressource(n) zugeordnet werden sollen.  
Typ: Liste von Karten  
Erforderlich: Ja

ResourceType  
Der Typ der Ressource(n), die getaggt werden soll(en). Wenn nichts angegeben ist, wird der Standardwert „EC2“ verwendet.  
Typ: Zeichenfolge  
Erforderlich: Nein  
Zulässige Werte: `EC2` \$1 `ManagedInstance` \$1 `MaintenanceWindow` \$1 `Parameter`

**Ausgabe**  
Keine

# `aws:deleteImage` - Löschen eines Amazon Machine Image
<a name="automation-action-delete"></a>

Löschen Sie das angegebene Amazon Machine Image (AMI) und alle dazugehörigen Snapshots.

**Anmerkung**  
Die Aktion `aws:deleteImage` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Input**  
Diese Aktion unterstützt nur einen Parameter. Weitere Informationen finden Sie in der Dokumentation zu [DeregisterImage](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeregisterImage.html)und [DeleteSnapshot](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteSnapshot.html).

------
#### [ YAML ]

```
name: deleteMyImage
action: aws:deleteImage
maxAttempts: 3
timeoutSeconds: 180
onFailure: Abort
inputs:
  ImageId: ami-12345678
```

------
#### [ JSON ]

```
{
    "name": "deleteMyImage",
    "action": "aws:deleteImage",
    "maxAttempts": 3,
    "timeoutSeconds": 180,
    "onFailure": "Abort",
    "inputs": {
        "ImageId": "ami-12345678"
    }
}
```

------

ImageId  
Die ID des Image, das zerstört werden soll.  
Typ: Zeichenfolge  
Erforderlich: Ja

**Ausgabe**  
Keine

# `aws:deleteStack`— Löscht einen CloudFormation Stapel
<a name="automation-action-deletestack"></a>

Löscht einen AWS CloudFormation Stapel.

**Anmerkung**  
Die Aktion `aws:deleteStack` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Eingabe**

------
#### [ YAML ]

```
name: deleteStack
action: aws:deleteStack
maxAttempts: 1
onFailure: Abort
inputs:
  StackName: "{{stackName}}"
```

------
#### [ JSON ]

```
{
   "name":"deleteStack",
   "action":"aws:deleteStack",
   "maxAttempts":1,
   "onFailure":"Abort",
   "inputs":{
      "StackName":"{{stackName}}"
   }
}
```

------

ClientRequestToken  
Ein eindeutiger Bezeichner für diese `DeleteStack`-Anfrage. Geben Sie dieses Token an, wenn Sie beabsichtigen, Anfragen erneut zu versuchen, damit das System CloudFormation weiß, dass Sie nicht versuchen, einen Stack mit demselben Namen zu löschen. Sie können `DeleteStack`-Anfragen wiederholen, um zu verifizieren, ob CloudFormation sie empfangen hat.  
Typ: Zeichenfolge  
Längenbeschränkungen: Minimale Länge beträgt 1 Zeichen. Maximale Länge beträgt 128 Zeichen.  
Muster: [a-zA-Z][-a-zA-Z0-9]\$1  
Erforderlich: Nein

RetainResources.Mitglied.N  
Diese Eingabe gilt nur für Stacks im Status `DELETE_FAILED`. Eine Liste logischer Ressourcen IDs für die Ressourcen, die Sie behalten möchten. CloudFormation Löscht beim Löschen den Stapel, löscht jedoch nicht die zurückbehaltenen Ressourcen.  
Das Aufbewahren der Ressourcen ist nützlich, wenn Sie eine Ressource nicht löschen können, wie etwa einen nicht leeren S3-Bucket, Sie aber den Stack löschen möchten.  
Typ: Zeichenfolge-Array  
Erforderlich: Nein

RoleARN  
Der Amazon-Ressourcenname (ARN) einer AWS Identity and Access Management (IAM) -Rolle, die die Erstellung des Stacks CloudFormation übernimmt. CloudFormation verwendet die Anmeldeinformationen der Rolle, um in Ihrem Namen Anrufe zu tätigen. CloudFormation verwendet diese Rolle immer für alle future Operationen auf dem Stack. Solange Benutzer berechtigt sind, auf dem Stack zu arbeiten, CloudFormation verwendet diese Rolle auch dann, wenn die Benutzer nicht berechtigt sind, sie weiterzugeben. Stellen Sie sicher, dass die Rolle die geringstmögliche Menge an Berechtigungen gewährt.   
Wenn Sie keinen Wert angeben, CloudFormation verwendet die Rolle, die zuvor dem Stack zugeordnet war. Wenn keine Rolle verfügbar ist, CloudFormation verwendet eine temporäre Sitzung, die anhand Ihrer Benutzeranmeldedaten generiert wird.   
Typ: Zeichenfolge  
Längenbeschränkungen: Minimale Länge von 20. Maximale Länge beträgt 2048 Zeichen.  
Erforderlich: Nein

StackName  
Der Name oder die eindeutige Stack-ID, die dem Stack zugeordnet ist.  
Typ: Zeichenfolge  
Erforderlich: Ja

## Sicherheitsüberlegungen
<a name="automation-action-deletestack-security"></a>

Bevor Sie die Aktion `aws:deleteStack` verwenden können, müssen Sie folgende Richtlinie der IAM-Automation-Assume-Role zuweisen. Weitere Informationen über die Übernahmerolle finden Sie unter [Aufgabe 1: Erstellen einer Servicerolle für Automation](automation-setup-iam.md#create-service-role). 

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:DeleteStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------

# `aws:executeAutomation` - Führen Sie eine weitere Automatisierung durch
<a name="automation-action-executeAutomation"></a>

Führt eine sekundäre Automatisierung durch Aufrufen eines sekundären Runbooks aus. Mit dieser Aktion können Sie Runbooks für die gängigsten Vorgänge erstellen und während einer Automatisierung auf diese Runbooks verweisen. Mit dieser Aktion können Sie Ihre Runbooks vereinfachen, indem Sie die Notwendigkeit für wiederholte Schritte bei ähnlichen Runboks entfernen.

Die sekundäre Automatisierung wird im Kontext des Benutzers ausgeführt, der die primäre Automatisierung gestartet hat. Das bedeutet, dass die sekundäre Automatisierung dieselbe AWS Identity and Access Management (IAM) Rolle oder denselben Benutzer verwendet wie der Benutzer, der die erste Automatisierung gestartet hat.

**Wichtig**  
Wenn Sie Parameter in einer sekundären Automatisierung festlegen, die eine Übernahmerolle verwenden (eine Rolle, die die iam:passRole-Richtlinie verwendet), muss der Benutzer oder die Rolle, der/die die primäre Automatisierung gestartet hat, über die Berechtigung zur Weitergabe der Übernahmerolle an die sekundäre Automatisierung verfügen. Weitere Informationen zum Einrichten einer Übernahmerolle für Automation finden Sie unter [Erstellen Sie die Servicerollen für Automation mithilfe der Konsole](automation-setup-iam.md).

**Eingabe**

------
#### [ YAML ]

```
name: Secondary_Automation
action: aws:executeAutomation
maxAttempts: 3
timeoutSeconds: 3600
onFailure: Abort
inputs:
  DocumentName: secondaryAutomation
  RuntimeParameters:
    instanceIds:
    - i-1234567890abcdef0
```

------
#### [ JSON ]

```
{
   "name":"Secondary_Automation",
   "action":"aws:executeAutomation",
   "maxAttempts":3,
   "timeoutSeconds":3600,
   "onFailure":"Abort",
   "inputs":{
      "DocumentName":"secondaryAutomation",
      "RuntimeParameters":{
         "instanceIds":[
            "i-1234567890abcdef0"
         ]
      }
   }
}
```

------

DocumentName  
Der Name des sekundären Runbooks, das während des Schritts ausgeführt werden soll. Geben Sie für Runbooks derselben AWS-Konto Kategorie den Runbook-Namen an. Geben Sie für Runbooks, die von einem anderen aus gemeinsam genutzt wurden AWS-Konto, den Amazon-Ressourcennamen (ARN) des Runbooks an. Weitere Informationen zur Verwendung von freigegebenen Runbooks finden Sie unter [Verwenden von freigegebenen SSM-Dokumenten](documents-ssm-sharing.md#using-shared-documents).  
Typ: Zeichenfolge  
Erforderlich: Ja

DocumentVersion  
Die Version des sekundären Runbooks, das ausgeführt werden soll. Falls nicht festgelegt, führt Automation die Standardrunbookversion aus.  
Typ: Zeichenfolge  
Erforderlich: Nein

MaxConcurrency  
Die maximale Anzahl von Zielen, für die diese Aufgabe parallel ausgeführt werden dürfen. Sie können eine Zahl, z. B. 10, oder einen Prozentsatz, z. B. 10 %, angeben.  
Typ: Zeichenfolge  
Erforderlich: Nein

MaxErrors  
Die Anzahl der Fehler, die zulässig sind, bevor das System die Automatisierung auf zusätzlichen Zielen stoppt. Sie können entweder eine absolute Anzahl an Fehlern, z. B. 10, oder einen Prozentsatz des festgelegten Ziels, beispielsweise 10 % festlegen. Wenn Sie z. B. 3 angeben, führt das System keine Automatisierung mehr aus, wenn der vierte Fehler empfangen wird. Wenn Sie 0 angeben, führt das System keine weitere Automatisierung auf zusätzlichen Zielen aus, nachdem das erste Fehlerergebnis zurückgegeben wird. Wenn Sie eine Automatisierung auf 50 Ressourcen ausführen und `MaxErrors` auf 10 % setzen, hört das System auf, dass die Automatisierung auf zusätzlichen Zielen auszuführen, sobald der sechste Fehler empfangen wurde.  
Automatisierung, die bereits eine ausgeführt werden, wenn der `MaxErrors`-Fehlerschwellenwert erreicht wird, können abgeschlossen werden, einige dieser Automatisierungen können jedoch dennoch fehlschlagen. Wenn Sie sicherstellen müssen, dass es nicht mehr fehlgeschlagene Automatisierungen als die angegebenen `MaxErrors` geben wird, setzen Sie `MaxConcurrency` auf 1, sodass die Automatisierungen nacheinander ausgeführt werden.  
Typ: Zeichenfolge  
Erforderlich: Nein

RuntimeParameters  
Erforderliche Parameter für das sekundäre Runbook. Das Mapping verwendet das folgende Format: \$1"parameter1" : "value1", "parameter2" : "value2" \$1  
Typ: Zuordnung  
Erforderlich: Nein

Tags (Markierungen)  
Optionale Metadaten, die Sie einer Ressource zuweisen. Sie können maximal fünf Tags für eine Automatisierung festlegen.  
Typ: MapList  
Erforderlich: Nein

TargetLocations  
Ein Standort ist eine Kombination aus AWS-Regionen und/oder AWS-Konten dem Ort, an dem Sie die Automatisierung ausführen möchten. Es muss eine Mindestanzahl von 1 Element angegeben werden und eine maximale Anzahl von 100 Elementen kann angegeben werden. Wenn Sie einen Wert für diesen Parameter angeben, werden die Ausgaben nicht an die übergeordnete Automatisierung zurückgegeben. Falls erforderlich, müssen Sie nachfolgende API-Vorgänge aufrufen, um die Ausgabe von untergeordneten Automatisierungen abzurufen.  
Typ: MapList  
Erforderlich: Nein

TargetMaps  
Eine Liste von Schlüssel-Wert-Zuweisungen von Dokumentparametern zu Zielressourcen. Sowohl `Targets` als auch `TargetMaps` kann nicht zusammen angegeben werden.   
Typ: MapList  
Erforderlich: Nein

TargetParameterName  
Der Name des Parameters, der als Zielressource für die ratengesteuerte Automatisierung verwendet wird. Erforderlich, wenn Sie `Targets` angeben.  
Typ: Zeichenfolge  
Erforderlich: Nein

Ziele  
Eine Liste von Schlüssel-Wert-Zuordnungen zu Zielressourcen. Erforderlich, wenn Sie `TargetParameterName` angeben.  
Typ: MapList  
Erforderlich: NeinAusgabe

Ausgabe  
Die von der sekundären Automatisierung generierte Ausgabe. Sie können auf die Ausgabe verweisen, indem Sie das folgende Format verwenden: *Secondary\$1Automation\$1Step\$1Name* .Output  
Typ: StringList  
Ein Beispiel:  

```
- name: launchNewWindowsInstance
  action: 'aws:executeAutomation'
  onFailure: Abort
  inputs:
    DocumentName: launchWindowsInstance
  nextStep: getNewInstanceRootVolume
- name: getNewInstanceRootVolume
  action: 'aws:executeAwsApi'
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeVolumes
    Filters:
    - Name: attachment.device
      Values:
      - /dev/sda1
    - Name: attachment.instance-id
      Values:
      - '{{launchNewWindowsInstance.Output}}'
  outputs:
  - Name: rootVolumeId
    Selector: '$.Volumes[0].VolumeId'
    Type: String
  nextStep: snapshotRootVolume
- name: snapshotRootVolume
  action: 'aws:executeAutomation'
  onFailure: Abort
  inputs:
    DocumentName: AWS-CreateSnapshot
    RuntimeParameters:
    VolumeId:
    - '{{getNewInstanceRootVolume.rootVolumeId}}'
    Description:
    - 'Initial root snapshot for {{launchNewWindowsInstance.Output}}'
```

ExecutionId  
Die ID der sekundären Automatisierung.  
Typ: Zeichenfolge

Status  
Der Status der sekundären Automatisierung.  
Typ: Zeichenfolge

# `aws:executeAwsApi`— AWS API-Operationen aufrufen und ausführen
<a name="automation-action-executeAwsApi"></a>

Ruft AWS API-Operationen auf und führt sie aus. Die meisten API-Operationen werden unterstützt, es wurden jedoch nicht alle API-Operationen getestet. Streaming-API-Operationen, wie der [GetObject](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html)Vorgang, werden nicht unterstützt. Wenn Sie sich nicht sicher sind, ob einen API-Vorgang, den Sie verwenden möchten, eine Streaming-Operation ist, lesen Sie die [Boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Dokumentation für den Service, um festzustellen, ob eine API-Streaming-Eingaben oder -Ausgaben erfordert. Wir aktualisieren regelmäßig die von dieser Aktion verwendete Boto3-Version. Nach der Veröffentlichung einer neuen Boto3-Version kann es jedoch bis zu mehreren Wochen dauern, bis sich die Änderungen in dieser Aktion niederschlagen. Jede `aws:executeAwsApi`-Aktion kann bis zu einer maximalen Dauer von 25 Sekunden dauern. Weitere Beispiele zur Verwendung dieser Aktion finden Sie unter [Weitere Runbook-Beispiele](automation-document-examples.md).

**Anmerkung**  
Die Aktion `aws:executeAwsApi` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Eingaben**  
Eingaben werden von der ausgewählten API-Operation bestimmt. 

------
#### [ YAML ]

```
action: aws:executeAwsApi
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
outputs: # These are user-specified outputs
- Name: The name for a user-specified output key
  Selector: A response object specified by using jsonpath format
  Type: The data type
```

------
#### [ JSON ]

```
{
   "action":"aws:executeAwsApi",
   "inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation or method name",
      "API operation inputs or parameters":"A value"
   },
   "outputs":[ These are user-specified outputs
      {
         "Name":"The name for a user-specified output key",
         "Selector":"A response object specified by using JSONPath format",
         "Type":"The data type"
      }
   ]
}
```

------

Service  
Der AWS-Service Namespace, der den API-Vorgang enthält, den Sie ausführen möchten. Eine Liste der unterstützten AWS-Service Namespaces finden Sie unter [Verfügbare](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html) Dienste von. AWS SDK für Python (Boto3) Der Namespace befindet sich im Abschnitt **Client** . Beispielsweise lautet der Namespace für Systems Manager `ssm`. Der Namespace für Amazon Elastic Compute Cloud (Amazon EC2) ist `ec2`.  
Typ: Zeichenfolge  
Erforderlich: Ja

Api  
Der Name der API-Operation, die Sie ausführen möchten. Sie können die API-Operationen (auch als Methoden bezeichnet) anzeigen, indem Sie einen Service in der linken Navigationsleiste auf der folgenden [Service-Referenzen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Seite auswählen. Wählen Sie eine Methode im Abschnitt **Client** für den Service, den Sie aufrufen möchten. Beispielsweise werden alle API-Vorgänge (Methoden) für Amazon Relational Database Service (Amazon RDS) auf der folgenden Seite aufgelistet: [Amazon RDS-Methoden](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Typ: Zeichenfolge  
Erforderlich: Ja

API-Operation-Eingaben  
Eine oder mehrere API-Eingaben. Sie können die verfügbaren Eingaben (auch als Parameter bezeichnet) anzeigen, indem Sie einen Service in der linken Navigationsleiste auf der folgenden [Service-Referenzen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Seite auswählen. Wählen Sie eine Methode im Abschnitt **Client** für den Service, den Sie aufrufen möchten. Beispielsweise sind alle Methoden für Amazon RDS auf der folgenden Seite aufgeführt: [Amazon RDS-Methoden](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ******Wählen Sie die Methode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) und scrollen Sie nach unten, um die verfügbaren Parameter wie Identifier, Name und Values zu sehen. DBInstance******  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Typ: Abhängig von der gewählten API-Operation  
Erforderlich: Ja

**Outputs**  
Die Ausgaben werden vom Benutzer basierend auf der Antwort des ausgewählten API-Vorgangs angegeben.

Name  
Ein Name für die Ausgabe.  
Typ: Zeichenfolge  
Erforderlich: Ja

Selector  
Das JSONPath zu einem bestimmten Attribut im Antwortobjekt. Sie können die Antwortobjekte anzeigen indem Sie einen Service in der linken Navigationsleiste auf der folgenden [Service-Referenzen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Seite auswählen. Wählen Sie eine Methode im Abschnitt **Client** für den Service, den Sie aufrufen möchten. Beispielsweise sind alle Methoden für Amazon RDS auf der folgenden Seite aufgeführt: [Amazon RDS-Methoden](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Wählen Sie die Methode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) und scrollen Sie nach unten zum Abschnitt Antwortstruktur.** **DBInstances**ist als Antwortobjekt aufgeführt.  
Typ: Integer, Boolean, String, StringList, oder StringMap MapList  
Erforderlich: Ja

Typ  
Der Datentyp für das Antwortelement.  
Typ: Unterschiedlich  
Erforderlich: Ja

# `aws:executeScript` - Führen Sie ein Skript aus
<a name="automation-action-executeScript"></a>

Führt das bereitgestellte Python- oder PowerShell Skript mit der angegebenen Laufzeit und dem angegebenen Handler aus. Jede `aws:executeScript`-Aktion kann bis zu einer maximalen Dauer von 600 Sekunden (10 Minuten) laufen. Sie können die Zeitüberschreitung über den Parameter `timeoutSeconds` für einen `aws:executeScript`-Schritt limitieren.

Verwenden Sie Rückgabe-Anweisungen in Ihrer Funktion, um Ihrer Ausgabenutzlast Ausgaben hinzuzufügen. Für Beispiele zum Definieren von Ausgaben für Ihre `aws:executeScript`-Aktion, siehe [Beispiel 2: Skriptbasiertes Runbook](automation-authoring-runbooks-scripted-example.md). Sie können auch die Ausgabe von `aws:executeScript` Aktionen in Ihren Runbooks an die von Ihnen angegebene Amazon CloudWatch Logs-Protokollgruppe senden. Weitere Informationen finden Sie unter [Ausgabe von Automatisierungsaktionen mit CloudWatch Protokollen protokollieren](automation-action-logging.md).

Wenn Sie die Ausgabe von `aws:executeScript` Aktionen an CloudWatch Logs senden möchten oder wenn die Skripts, die Sie für `aws:executeScript` Aktionen angeben, AWS API-Operationen aufrufen, ist für die Ausführung des Runbooks immer eine AWS Identity and Access Management (IAM-) Service-Rolle (oder Übernahme einer Rolle) erforderlich.

**Anmerkung**  
Die Aktion `aws:executeScript` unterstützt die automatische Drosselungswiederholung nicht. Wenn Ihr Skript AWS API-Aufrufe durchführt, die möglicherweise gedrosselt werden, müssen Sie Ihre eigene Wiederholungslogik in Ihren Skriptcode implementieren.

Die `aws:executeScript` Aktion enthält die folgenden PowerShell vorinstallierten Core-Module:
+ Microsoft. PowerShell. Gastgeber
+ Microsoft. PowerShell. Verwaltung
+ Microsoft. PowerShell. Sicherheit
+ Microsoft. PowerShell. Hilfsprogramm
+ PackageManagement
+ PowerShellGet

Um PowerShell Core-Module zu verwenden, die nicht vorinstalliert sind, muss Ihr Skript das Modul mit der `-Force` Markierung installieren, wie im folgenden Befehl gezeigt. Das `AWSPowerShell.NetCore`-Modul wird nicht unterstützt. *ModuleName*Ersetzen Sie es durch das Modul, das Sie installieren möchten.

```
Install-Module ModuleName -Force
```

Um PowerShell Core-Cmdlets in Ihrem Skript zu verwenden, empfehlen wir die Verwendung der `AWS.Tools` Module, wie in den folgenden Befehlen gezeigt. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.
+ Amazon S3 Cmdlets.

  ```
  Install-Module AWS.Tools.S3 -Force
  Get-S3Bucket -BucketName amzn-s3-demo-bucket
  ```
+ Amazon EC2 Cmdlets.

  ```
  Install-Module AWS.Tools.EC2 -Force
  Get-EC2InstanceStatus -InstanceId instance-id
  ```
+ Allgemeine oder dienstunabhängige AWS Tools for Windows PowerShell Cmdlets.

  ```
  Install-Module AWS.Tools.Common -Force
  Get-AWSRegion
  ```

Wenn Ihr Skript zusätzlich zur Verwendung von PowerShell Core-Cmdlets neue Objekte initialisiert, müssen Sie das Modul auch importieren, wie im folgenden Befehl gezeigt.

```
Install-Module AWS.Tools.EC2 -Force
Import-Module AWS.Tools.EC2

$tag = New-Object Amazon.EC2.Model.Tag
$tag.Key = "Tag"
$tag.Value = "TagValue"

New-EC2Tag -Resource i-02573cafcfEXAMPLE -Tag $tag
```

Beispiele für die Installation und den Import von `AWS.Tools` Modulen und die Verwendung von PowerShell Core-Cmdlets in Runbooks finden Sie unter. [Visuelle Designerfahrung für Automation-Runbooks](automation-visual-designer.md)

**Input**  
Geben Sie die zum Ausführen Ihres Skripts erforderlichen Informationen an. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

**Anmerkung**  
Der Anhang für ein Python-Skript kann eine .py-Datei oder eine .zip-Datei sein, die das Skript enthält. PowerShell Skripten müssen in ZIP-Dateien gespeichert werden.

------
#### [ YAML ]

```
action: "aws:executeScript"
inputs: 
 Runtime: runtime
 Handler: "functionName"
 InputPayload: 
  scriptInput: '{{parameterValue}}'
 Script: |-
   def functionName(events, context):
   ...
 Attachment: "scriptAttachment.zip"
```

------
#### [ JSON ]

```
{
    "action": "aws:executeScript",
    "inputs": {
        "Runtime": "runtime",
        "Handler": "functionName",
        "InputPayload": {
            "scriptInput": "{{parameterValue}}"
        },
        "Attachment": "scriptAttachment.zip"
    }
}
```

------

Laufzeit  
Die Laufzeitsprache, die für die Ausführung des bereitgestellten Skripts verwendet werden soll. `aws:executeScript`unterstützt die Laufzeiten in der folgenden Tabelle.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/automation-action-executeScript.html)
Typ: Zeichenfolge  
Erforderlich: Ja  
Für Python-Laufzeiten bietet die Umgebung 512 MB Arbeitsspeicher und 512 MB Speicherplatz. Für PowerShell Laufzeiten stellt die Umgebung 1024 MB Arbeitsspeicher und 512 MB Festplattenspeicher zur Verfügung.

Handler  
Der Name Ihrer Funktion. Sie müssen sicherstellen, dass die im Handler definierte Funktion über zwei Parameter verfügt: `events` und `context`. Die PowerShell Laufzeit unterstützt diesen Parameter nicht.  
Typ: Zeichenfolge  
Erforderlich: Ja (Python) \$1 Nicht unterstützt (PowerShell)

InputPayload  
Ein JSON- oder YAML-Objekt, das an den ersten Parameter des Handlers übergeben wird. Dies kann verwendet werden, um Eingabedaten an das Skript zu übergeben.  
Typ: Zeichenfolge  
Erforderlich: Nein  

```
description: Tag an instance
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
    AutomationAssumeRole:
        type: String
        description: '(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
    InstanceId:
        type: String
        description: (Required) The ID of the EC2 instance you want to tag.
mainSteps:
  - name: tagInstance
    action: 'aws:executeScript'
    inputs:
        Runtime: "python3.11"
        Handler: tagInstance
        InputPayload:
            instanceId: '{{InstanceId}}'
        Script: |-
          def tagInstance(events,context):
            import boto3

            #Initialize client
            ec2 = boto3.client('ec2')
            instanceId = events['instanceId']
            tag = {
                "Key": "Env",
                "Value": "ExamplePython"
            }
            print(f"Adding tag {tag} to instance id {instanceId}")
            ec2.create_tags(
                Resources=[instanceId],
                Tags=[tag]
            )
            return tag
    outputs:
      - Type: String
        Name: TagKey
        Selector: $.Payload.Key
outputs:
  - tagInstance.TagKey
```

```
description: Tag an instance
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.
  InstanceId:
    type: String
    description: (Required) The ID of the EC2 instance you want to tag.
mainSteps:
  - name: tagInstance
    action: aws:executeScript
    isEnd: true
    inputs:
      Runtime: PowerShell 7.4
      InputPayload:
        instanceId: '{{InstanceId}}'
      Script: |-
        Install-Module AWS.Tools.EC2 -Force
        Import-Module AWS.Tools.EC2

        $input = $env:InputPayload | ConvertFrom-Json

        $tag = New-Object Amazon.EC2.Model.Tag
        $tag.Key = "Env"
        $tag.Value = "ExamplePowerShell"

        Write-Information "Adding tag key: $($tag.Key) and value: $($tag.Value) to instance id $($input.instanceId)"
        New-EC2Tag -Resource $input.instanceId -Tag $tag

        return $tag
    outputs:
      - Type: String
        Name: TagKey
        Selector: $.Payload.Key
outputs:
  - tagInstance.TagKey
```

Script  
Ein eingebettetes Skript, das während der Automatisierung ausgeführt werden soll.  
Typ: Zeichenfolge  
Erforderlich: Nein (Python) \$1 Ja (PowerShell)

Attachment  
Der Name einer eigenständigen Skriptdatei oder einer ZIP-Datei, die von der Aktion aufgerufen werden kann. Geben Sie denselben Wert wie den `Name` der Dokument-Anhangsdatei an, den Sie im Anforderungsparameter `Attachments` angeben. Weitere Informationen finden Sie unter [Anhänge](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Attachments) in der *API-Referenz für AWS Systems Manager *. Wenn Sie ein Skript mithilfe einer Anlage bereitstellen, müssen Sie auch einen `files`-Abschnitt in den Elementen der obersten Ebene Ihres Runbooks definieren. Weitere Informationen finden Sie unter [Schema der Version 0.3](documents-schemas-features.md#automation-doc-syntax-examples).  
Um eine Datei für Python aufzurufen, verwenden Sie das `filename.method_name`-Format in `Handler`.   
Der Anhang für ein Python-Skript kann eine .py-Datei oder eine .zip-Datei sein, die das Skript enthält. PowerShell Skripten müssen in ZIP-Dateien gespeichert werden.
Wenn Sie Python-Bibliotheken in Ihren Anhang einfügen, empfehlen wir, eine leere `__init__.py`-Datei in jedem Modulverzeichnis hinzuzufügen. Auf diese Weise können Sie die Module aus der Bibliothek in Ihrem Anhang innerhalb Ihres Skriptinhalts importieren. Beispiel: `from library import module`  
Typ: Zeichenfolge  
Erforderlich: NeinAusgabe

Nutzlast  
Die JSON-Darstellung des Objekts, das von Ihrer Funktion zurückgegeben wird. Bis zu 100 KB werden zurückgegeben. Wenn Sie eine Liste ausgeben, werden maximal 100 Elemente zurückgegeben.

## Verwenden von Anhängen mit aws:executeScript
<a name="automation-action-executeScript-attachments"></a>

Anhänge bieten eine leistungsstarke Möglichkeit, komplexe Skripts, mehrere Module und externe Abhängigkeiten zu verpacken und für `aws:executeScript`-Aktionen wiederzuverwenden. Sie können Anhänge in folgenden Fällen verwenden:
+ Packen Sie mehrere Python-Module oder PowerShell -Skripte zusammen.
+ Wiederverwenden derselben Skriptlogik in mehreren Runbooks
+ Einfügen externer Bibliotheken oder Abhängigkeiten in Skripts
+ Runbook-Definition übersichtlich halten, indem Sie Elemente komplexer Skriptlogik trennen
+ Freigeben von Skriptpaketen für Teams oder Automatisierungs-Workflows

### Struktur und Verpackung von Anhängen
<a name="automation-action-executeScript-attachment-structure"></a>

Sie können einzelne Dateien oder ZIP-Pakete mit mehreren Dateien anhängen. Die Struktur hängt von Ihrem Anwendungsfall ab:

**Einzelne Dateianhänge**  
Bei einfachen Skripten können Sie eine einzelne `.py` Datei (Python) oder eine `.zip` Datei, die ein einzelnes PowerShell Skript enthält, anhängen.

**Pakete mit mehreren Modulen**  
Für komplexe Automatisierungen, die mehrere Module erfordern, erstellen Sie ein ZIP-Paket mit der folgenden empfohlenen Struktur:

```
my-automation-package.zip
├── main.py                    # Entry point script
├── utils/
│   ├── __init__.py           # Required for Python module imports
│   ├── helper_functions.py   # Utility functions
│   └── aws_operations.py     # AWS-specific operations
├── config/
│   ├── __init__.py
│   └── settings.py           # Configuration settings
└── requirements.txt          # Optional: document dependencies
```

**Wichtig**  
Für Python-Pakete müssen Sie in jedes Verzeichnis, das Python-Module enthält, eine leere `__init__.py`-Datei einfügen. Dadurch können Sie Module mit einer standardmäßigen Python-Importsyntax importieren, z. B. `from utils import helper_functions`.

**PowerShell Struktur des Pakets**  
PowerShell Anlagen müssen in ZIP-Dateien mit der folgenden Struktur gepackt werden:

```
my-powershell-package.zip
├── Main.ps1                  # Entry point script
├── Modules/
│   ├── HelperFunctions.ps1   # Utility functions
│   └── AWSOperations.ps1     # AWS-specific operations
└── Config/
    └── Settings.ps1          # Configuration settings
```

### Erstellen von Runbooks mit Anhängen
<a name="automation-action-executeScript-attachment-workflow"></a>

Gehen Sie wie folgt vor, um Runbooks zu erstellen, die Anhänge verwenden:

1. **Anhang in Amazon S3 hochladen**

   Laden Sie Ihre Skriptdatei oder Ihr ZIP-Paket in einen S3-Bucket hoch, auf den Ihre Automatisierungsrolle Zugriff hat. Notieren Sie den S3-URI für den nächsten Schritt.

   ```
   aws s3 cp my-automation-package.zip s3://my-automation-bucket/scripts/
   ```

1. **Prüfsumme des Anhangs berechnen**

   Berechnen Sie die SHA-256-Prüfsumme Ihrer Anhangsdatei zur Sicherheitsüberprüfung:

   ```
   # Linux/macOS
   shasum -a 256 my-automation-package.zip
   
   # Windows PowerShell
   Get-FileHash -Algorithm SHA256 my-automation-package.zip
   ```

1. **Dateibereich im Runbook definieren**

   Fügen Sie auf der obersten Ebene Ihres Runbooks einen `files`-Abschnitt hinzu, der auf Ihren Anhang verweist:

   ```
   files:
     my-automation-package.zip:
       checksums:
         sha256: "your-calculated-checksum-here"
   ```

1. **Im executeScript-Schritt auf den Anhang verweisen**

   Verwenden Sie den Parameter `Attachment`, um auf die hochgeladene Datei zu verweisen:

   ```
   - name: runMyScript
     action: aws:executeScript
     inputs:
       Runtime: python3.11
       Handler: main.process_data
       Attachment: my-automation-package.zip
       InputPayload:
         inputData: "{{InputParameter}}"
   ```

## Beispiele für aws:executeScript-Anhänge
<a name="automation-action-executeScript-examples"></a>

Die folgenden Beispiele zeigen verschiedene Möglichkeiten, Anhänge mit der Aktion `aws:executeScript` zu verwenden.

### Beispiel 1: einzelner Dateianhang
<a name="automation-action-executeScript-single-file-example"></a>

In diesem Beispiel wird eine einzelne Python-Datei als Anhang verwendet, um EC2-Instance-Daten zu verarbeiten.

**Anhangsdatei: process\$1instance.py**  
Erstellen Sie eine Python-Datei mit folgendem Inhalt:

```
import boto3
import json

def process_instance_data(events, context):
    """Process EC2 instance data and return formatted results."""
    try:
        instance_id = events.get('instanceId')
        if not instance_id:
            raise ValueError("instanceId is required")
        
        ec2 = boto3.client('ec2')
        
        # Get instance details
        response = ec2.describe_instances(InstanceIds=[instance_id])
        instance = response['Reservations'][0]['Instances'][0]
        
        # Format the response
        result = {
            'instanceId': instance_id,
            'instanceType': instance['InstanceType'],
            'state': instance['State']['Name'],
            'availabilityZone': instance['Placement']['AvailabilityZone'],
            'tags': {tag['Key']: tag['Value'] for tag in instance.get('Tags', [])}
        }
        
        print(f"Successfully processed instance {instance_id}")
        return result
        
    except Exception as e:
        print(f"Error processing instance: {str(e)}")
        raise
```

**Vollständiges Runbook**  
Hier ist das vollständige Runbook, das den einzelnen Dateianhang verwendet:

```
description: Process EC2 instance data using single file attachment
schemaVersion: '0.3'
assumeRole: '{{AutomationAssumeRole}}'
parameters:
  AutomationAssumeRole:
    type: String
    description: (Required) IAM role for automation execution
  InstanceId:
    type: String
    description: (Required) EC2 instance ID to process

files:
  process_instance.py:
    checksums:
      sha256: "abc123def456..."

mainSteps:
  - name: processInstance
    action: aws:executeScript
    inputs:
      Runtime: python3.11
      Handler: process_instance.process_instance_data
      Attachment: process_instance.py
      InputPayload:
        instanceId: '{{InstanceId}}'
    outputs:
      - Type: StringMap
        Name: InstanceData
        Selector: $.Payload

outputs:
  - processInstance.InstanceData
```

### Beispiel 2: Paket mit mehreren Modulen
<a name="automation-action-executeScript-multi-module-example"></a>

In diesem Beispiel wird ein ZIP-Paket, das mehrere Python-Module enthält, für komplexe S3-Bucket-Vorgänge verwendet.

**Paketstruktur**  
Erstellen Sie ein ZIP-Paket mit der folgenden Struktur:

```
s3-operations.zip
├── main.py
├── utils/
│   ├── __init__.py
│   ├── s3_helper.py
│   └── validation.py
└── config/
    ├── __init__.py
    └── settings.py
```

**main.py (Eintrittspunkt)**  
Das Hauptskript, das die Vorgänge orchestriert:

```
from utils.s3_helper import S3Operations
from utils.validation import validate_bucket_name
from config.settings import get_default_settings

def cleanup_s3_bucket(events, context):
    """Clean up S3 bucket based on specified criteria."""
    try:
        bucket_name = events.get('bucketName')
        max_age_days = events.get('maxAgeDays', 30)
        
        # Validate inputs
        if not validate_bucket_name(bucket_name):
            raise ValueError(f"Invalid bucket name: {bucket_name}")
        
        # Initialize S3 operations
        s3_ops = S3Operations()
        settings = get_default_settings()
        
        # Perform cleanup
        deleted_objects = s3_ops.delete_old_objects(
            bucket_name, 
            max_age_days,
            settings['dry_run']
        )
        
        result = {
            'bucketName': bucket_name,
            'deletedCount': len(deleted_objects),
            'deletedObjects': deleted_objects[:10],  # Return first 10 for brevity
            'dryRun': settings['dry_run']
        }
        
        print(f"Cleanup completed for bucket {bucket_name}")
        return result
        
    except Exception as e:
        print(f"Error during S3 cleanup: {str(e)}")
        raise
```

## Fehlerbehebung bei aws:executeScript-Anhängen
<a name="automation-action-executeScript-troubleshooting"></a>

Beachten Sie die folgenden Informationen, um häufig auftretende Probleme mit `aws:executeScript`-Anhängen zu lösen:

**Modulimportfehler**  
Wenn Sie bei Paketen mit mehreren Modulen Importfehler erhalten:
+ Stellen Sie sicher, dass jedes Verzeichnis mit Python-Modulen eine leere `__init__.py`-Datei enthält.
+ Prüfen Sie, ob Ihre Importanweisungen der tatsächlichen Datei- und Verzeichnisstruktur im ZIP-Paket entsprechen.
+ Verwenden Sie konsistent relative Importe (z. B. `from .utils import helper`) oder absolute Importe (z. B. `from utils import helper`).

**Anhang kann nicht gefunden werden**  
Wenn Ihre Automatisierung den Anhang nicht finden kann:
+ Stellen Sie sicher, dass der `Attachment`-Parameterwert dem Schlüssel in Ihrem `files`-Abschnitt entspricht.
+ Vergewissern Sie sich, dass Ihr S3-Bucket-Pfad und Ihr Dateiname im `files`-Abschnitt korrekt sind.
+ Prüfen Sie, ob Ihre Automatisierungsrolle die Berechtigung `s3:GetObject` für den S3-Speicherort des Anhangs hat.
+ Stellen Sie sicher, dass die Prüfsumme in Ihrem Runbook mit der tatsächlichen Dateiprüfsumme übereinstimmt.

**Handler-Funktionsfehler**  
Wenn Fehler im Zusammenhang mit dem Handler auftreten:
+ Für Python: Verwenden Sie das Format `filename.function_name` im `Handler`-Parameter (z. B. `main.process_data`).
+ Sorgen Sie dafür, dass Ihre Handler-Funktion genau zwei Parameter akzeptiert: `events` und `context`.
+ Für PowerShell: Geben Sie keinen `Handler` Parameter an; das Skript wird direkt ausgeführt.

**Fehler bei der Skriptausführung**  
Wenn Ihr Skript während der Ausführung fehlschlägt:
+ Im Ausführungsverlauf der Automatisierung finden Sie detaillierte Fehlermeldungen und Stack-Traces.
+ Verwenden Sie `print()` Anweisungen (Python) oder `Write-Information` (PowerShell), um Debugging-Ausgaben hinzuzufügen.
+ Stellen Sie sicher, dass Ihrer Automatisierungsrolle alle erforderlichen AWS Berechtigungen erteilt wurden.
+ Testen Sie Ihre Skriptlogik lokal, bevor Sie sie als Anlage verpacken.

**Beendigungscodes und Fehlerbehandlung**  
Gehen Sie wie folgt vor, um Fehler zu bearbeiten und Beendigungscodes zurückzugeben:
+ In Python: Verwenden Sie `raise Exception("error message")`, um auf einen Skriptfehler hinzuweisen.
+ In PowerShell: Verwenden Sie `throw "error message"` oder`Write-Error`, um auf einen Fehler hinzuweisen.
+ Geben Sie strukturierte Daten aus Ihren Funktionen zurück, um detaillierte success/failure Informationen bereitzustellen.
+ Verwenden Sie try-catch-Blöcke, um Ausnahmen ordnungsgemäß zu bearbeiten und aussagekräftige Fehlermeldungen bereitzustellen.

# `aws:executeStateMachine`— Führen Sie eine AWS Step Functions Zustandsmaschine aus
<a name="automation-action-executeStateMachine"></a>

Führt eine AWS Step Functions Zustandsmaschine aus.

**Anmerkung**  
Die Aktion `aws:executeStateMachine` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Eingabe**

Diese Aktion unterstützt die meisten Parameter für den Step Functions [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)Functions-API-Vorgang.

**Erforderliche AWS Identity and Access Management (IAM-) Berechtigungen**
+ `states:DescribeExecution`
+ `states:StartExecution`
+ `states:StopExecution`

------
#### [ YAML ]

```
name: executeTheStateMachine
action: aws:executeStateMachine
inputs:
  stateMachineArn: StateMachine_ARN
  input: '{"parameters":"values"}'
  name: name
```

------
#### [ JSON ]

```
{
    "name": "executeTheStateMachine",
    "action": "aws:executeStateMachine",
    "inputs": {
        "stateMachineArn": "StateMachine_ARN",
        "input": "{\"parameters\":\"values\"}",
        "name": "name"
    }
}
```

------

stateMachineArn  
Der Amazon-Ressourcenname (ARN) der Step Functions State-Machine.  
Typ: Zeichenfolge  
Erforderlich: Ja

Name  
Der Name der Ausführung.  
Typ: Zeichenfolge  
Erforderlich: Nein

input  
Eine Zeichenfolge, die die JSON-Eingabedaten für die Ausführung enthält.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Outputs**  
Die folgenden Ausgaben sind für diese Aktion vordefiniert.

executionArn  
Der ARN der Ausführung.  
Typ: Zeichenfolge

input  
Die Zeichenfolge, die die JSON-Eingabedaten der Ausführung enthält. Längenbeschränkungen gelten für die Nutzlastgröße und werden als Bytes in UTF-8-Codierung ausgedrückt.  
Typ: Zeichenfolge

Name  
Der Name der Ausführung.  
Typ: Zeichenfolge

output  
Die JSON-Ausgabedaten der Ausführung. Längenbeschränkungen gelten für die Nutzlastgröße und werden als Bytes in UTF-8-Codierung ausgedrückt.  
Typ: Zeichenfolge

startDate  
Das Datum, an dem die Ausführung gestartet wird.  
Typ: Zeichenfolge

stateMachineArn  
Der ARN des ausgeführten angegebenen Computers.  
Typ: Zeichenfolge

Status  
Der aktuelle Status der Ausführung.  
Typ: Zeichenfolge

stopDate  
Wenn die Ausführung bereits beendet wurde, das Datum, an dem die Ausführung beendet wurde.  
Typ: Zeichenfolge

# `aws:invokeWebhook` – Automation-Webhook-Integration aufrufen
<a name="invoke-webhook"></a>

Ruft die angegebene Automation-Webhook-Integration auf. Weitere Informationen zum Erstellen von Automation-Integrationen finden Sie unter [Erstellen von Webhook-Integrationen für Automation](creating-webhook-integrations.md).

**Anmerkung**  
Die Aktion `aws:invokeWebhook` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Anmerkung**  
Um die `aws:invokeWebhook`-Aktion zu verwenden, muss Ihre Benutzer- oder Servicerolle die folgenden Aktionen zulassen:  
ssm: GetParameter
kms:Decrypt
Die Genehmigung für den `Decrypt` Vorgang AWS Key Management Service (AWS KMS) ist nur erforderlich, wenn Sie einen vom Kunden verwalteten Schlüssel verwenden, um den Parameter für Ihre Integration zu verschlüsseln.

**Input**  
Geben Sie die Informationen für die aufzurufende Automation-Integration an.

------
#### [ YAML ]

```
action: "aws:invokeWebhook"
inputs: 
 IntegrationName: "exampleIntegration"
 Body: "Request body"
```

------
#### [ JSON ]

```
{
    "action": "aws:invokeWebhook",
    "inputs": {
        "IntegrationName": "exampleIntegration",
        "Body": "Request body"
    }
}
```

------

IntegrationName  
Der Name der Automation-Integration. Beispiel, `exampleIntegration`. Die von Ihnen angegebene Integration muss bereits vorhanden sein.  
Typ: Zeichenfolge  
Erforderlich: Ja

Fließtext  
Die Nutzlast, die Sie beim Aufrufen der Webhook-Integration senden möchten.  
Typ: Zeichenfolge  
Erforderlich: NeinAusgabe

Antwort  
Der Text aus der Antwort des Webhook-Anbieters.

ResponseCode  
Der HTTP-Statuscode aus der Antwort des Webhook-Anbieters.

# `aws:invokeLambdaFunction`— Ruft eine Funktion auf AWS Lambda
<a name="automation-action-lamb"></a>

Ruft die angegebene AWS Lambda Funktion auf.

**Anmerkung**  
Jede `aws:invokeLambdaFunction`-Aktion kann bis zu einer maximalen Dauer von 300 Sekunden (5 Minuten) laufen. Sie können die Zeitüberschreitung über den Parameter `timeoutSeconds` für einen `aws:invokeLambdaFunction`-Schritt limitieren.

**Anmerkung**  
Die Aktion `aws:invokeLambdaFunction` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Input**  
Diese Aktion unterstützt die meisten aufgerufenen Parameter für den Lambda-Service. Weitere Informationen finden Sie unter [Aufrufen](https://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html).

------
#### [ YAML ]

```
name: invokeMyLambdaFunction
action: aws:invokeLambdaFunction
maxAttempts: 3
timeoutSeconds: 120
onFailure: Abort
inputs:
  FunctionName: MyLambdaFunction
```

------
#### [ JSON ]

```
{
    "name": "invokeMyLambdaFunction",
    "action": "aws:invokeLambdaFunction",
    "maxAttempts": 3,
    "timeoutSeconds": 120,
    "onFailure": "Abort",
    "inputs": {
        "FunctionName": "MyLambdaFunction"
    }
}
```

------

FunctionName  
Der Name der Lambda-Funktion. Diese Funktion muss vorhanden sein.  
Typ: Zeichenfolge  
Erforderlich: Ja

Qualifier  
Die Version oder der Aliasname der Funktion.  
Typ: Zeichenfolge  
Erforderlich: Nein

InvocationType  
Der Aufruftyp. Der Standardwert ist `RequestResponse`.  
Typ: Zeichenfolge  
Zulässige Werte: `Event` \$1 `RequestResponse` \$1 `DryRun`  
Erforderlich: Nein

LogType  
Wenn der Standardwert `Tail` ist, muss der Aufruftyp `RequestResponse` sein. Lambda gibt die letzten 4 KB von Protokolldaten mit base64 verschlüsselt zurück, die von Ihrer Lambda-Funktion vorliegen.  
Typ: Zeichenfolge  
Zulässige Werte: `None` \$1 `Tail`  
Erforderlich: Nein

ClientContext  
Die Client-spezifischen Informationen.  
Erforderlich: Nein

InputPayload  
Ein YAML- oder JSON-Objekt, das an den ersten Parameter des Handlers übergeben wird. Sie können diese Eingabe verwenden, um Daten an die Funktion zu übergeben. Diese Eingabe bietet mehr Flexibilität und Unterstützung als die Legacy-`Payload`-Eingabe. Wenn Sie sowohl `InputPayload` als auch `Payload` für die Aktion definieren, hat `InputPayload` Vorrang, und der `Payload`-Wert wird nicht verwendet.  
Typ: StringMap  
Erforderlich: Nein

Nutzlast  
Eine JSON-Zeichenfolge, die an den ersten Parameter des Handlers übergeben wird. Dies kann verwendet werden, um Eingabedaten an die Funktion zu übergeben. Wir empfehlen die Verwendung der `InputPayload`-Eingabe für zusätzliche Funktionen.  
Typ: Zeichenfolge  
Erforderlich: NeinAusgabe

StatusCode  
Den HTTP-Statuscode .

FunctionError  
Falls vorhanden, weist es darauf hin, dass währen der Ausführung der Funktion ein Fehler aufgetreten ist. Fehlerdetails sind in der Antwortnutzlast enthalten.

LogResult  
Die mit base64 verschlüsselten Protokolle zum Aufrufen der Lambda-Funktion. Protokolle sind nur dann vorhanden, wenn der Aufrufen-Typ `RequestResponse` ist und die Protokolle angefragt wurden.

Nutzlast  
Die JSON-Darstellung des Objekts, das von der Lambda-Funktion zurückgegeben wird. Die Nutzlast ist nur vorhanden, wenn der Aufrufen-Typ `RequestResponse` ist.

Das Folgende ist ein Teil des `AWS-PatchInstanceWithRollback`-Runbooks, der zeigt, wie auf Ausgaben der `aws:invokeLambdaFunction`-Aktion verwiesen wird.

------
#### [ YAML ]

```
- name: IdentifyRootVolume
  action: aws:invokeLambdaFunction
  inputs:
    FunctionName: "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}"
    Payload: '{"InstanceId": "{{InstanceId}}"}'
- name: PrePatchSnapshot
  action: aws:executeAutomation
  inputs:
    DocumentName: "AWS-CreateSnapshot"
    RuntimeParameters:
      VolumeId: "{{IdentifyRootVolume.Payload}}"
      Description: "ApplyPatchBaseline restoration case contingency"
```

------
#### [ JSON ]

```
{
    "name": "IdentifyRootVolume",
    "action": "aws:invokeLambdaFunction",
    "inputs": {
      "FunctionName": "IdentifyRootVolumeLambda-{{automation:EXECUTION_ID}}",
      "Payload": "{\"InstanceId\": \"{{InstanceId}}\"}"
    }
  },
  {
    "name": "PrePatchSnapshot",
    "action": "aws:executeAutomation",
    "inputs": {
      "DocumentName": "AWS-CreateSnapshot",
      "RuntimeParameters": {
        "VolumeId": "{{IdentifyRootVolume.Payload}}",
        "Description": "ApplyPatchBaseline restoration case contingency"
      }
    }
  }
```

------

# `aws:loop` – Über Schritte in einer Automatisierung iterieren
<a name="automation-action-loop"></a>

Diese Aktion wiederholt sich über eine Teilmenge von Schritten in einem Automation-Runbook. Sie können einen Schleifenstil `do while` oder `for each` eine Schleife wählen. Verwenden Sie den `LoopCondition`-Eingabeparameter, um eine `do while`-Schleife zu erstellen. Verwenden Sie die Eingabeparameter `Iterators` und `IteratorDataType`, um eine `for each`-Schleife zu erstellen. Wenn Sie eine `aws:loop`-Aktion verwenden, geben Sie nur entweder den Eingabeparameter `Iterators` oder `LoopCondition` an. Die maximale Anzahl von Iterationen beträgt 100.

Die `onCancel`-Eigenschaft kann nur für Schritte definiert werden, die innerhalb einer Schleife genutzt sind. Die `onCancel`-Eigenschaft wird für die `aws:loop`-Aktion nicht unterstützt. Die `onFailure`-Eigenschaft kann für eine `aws:loop`-Aktion verwendet werden, sie wird jedoch nur verwendet, wenn ein unerwarteter Fehler auftritt, der dazu führt, dass der Schritt fehlschlägt. Wenn Sie `onFailure`-Eigenschaften für die Schritte innerhalb einer Schleife definieren, erbt die `aws:loop`-Aktion diese Eigenschaften und reagiert entsprechend, wenn ein Fehler auftritt.

**Beispiele**  
Im Folgenden finden Sie Beispiele für die Erstellung der verschiedenen Typen von Loop-Aktionen.

------
#### [ do while ]

```
name: RepeatMyLambdaFunctionUntilOutputIsReturned
action: aws:loop
inputs:
    Steps:
    - name: invokeMyLambda
        action: aws:invokeLambdaFunction
        inputs:
        FunctionName: LambdaFunctionName
        outputs:
        - Name: ShouldRetry
            Selector: $.Retry
            Type: Boolean
    LoopCondition:
        Variable: "{{ invokeMyLambda.ShouldRetry }}"
        BooleanEquals: true
    MaxIterations: 3
```

------
#### [ for each ]

```
name: stopAllInstancesWithWaitTime
action: aws:loop
inputs:
    Iterators: "{{ DescribeInstancesStep.InstanceIds }}"
    IteratorDataType: "String"
    Steps:
    - name: stopOneInstance
        action: aws:changeInstanceState
        inputs:
        InstanceIds:
            - "{{stopAllInstancesWithWaitTime.CurrentIteratorValue}}"
        CheckStateOnly: false
        DesiredState: stopped
    - name: wait10Seconds
        action: aws:sleep
        inputs:
        Duration: PT10S
```

------

**Input**  
Die Eingabe ist wie folgt.

Iteratoren  
Die Liste der Elemente, über die die Schritte iteriert werden sollen. Die maximale Anzahl von Iteratoren beträgt 100.  
Typ: StringList  
Erforderlich: Nein

IteratorDataType  
Ein optionaler Parameter zur Angabe des Datentyps von `Iterators`. Ein Wert für diesen Parameter kann zusammen mit dem `Iterators`-Eingabeparameter angegeben werden. Wenn Sie keinen Wert für diesen Parameter und `Iterators` angeben, müssen Sie einen Wert für den `LoopCondition`-Parameter angeben.  
Typ: Zeichenfolge  
Gültige Werte: Boolean \$1 Integer \$1 String \$1 StringMap  
Standard: Zeichenfolge  
Erforderlich: Nein

LoopCondition  
Besteht aus `Variable` und einer auszuwertenden Operatorbedingung. Wenn Sie keinen Wert für diesen Parameter angeben, müssen Sie einen Wert für die `Iterators`- und `IteratorDataType`-Parameter angeben. Sie können komplexe Operatorauswertungen verwenden, indem Sie eine Kombination aus Operatoren `And`, `Not` und `Or` verwenden. Die Bedingung wird bewertet, nachdem die Schritte in der Schleife abgeschlossen sind. Wenn die Bedingung `true` ist und der `MaxIterations`-Wert nicht erreicht wurde, werden die Schritte in der Schleife erneut ausgeführt. Die Bedingungen für den Operator lauten wie folgt:  

**Zeichenfolgenoperationen**
+ StringEquals
+ EqualsIgnoreCase
+ StartsWith
+ EndsWith
+ Enthält

**Numerische Operationen**
+ NumericEquals
+ NumericGreater
+ NumericLesser
+ NumericGreaterOrEquals
+ NumericLesser
+ NumericLesserOrEquals

**Boolesche Operation**
+ BooleanEquals
Typ: StringMap  
Erforderlich: Nein

MaxIterations  
Gibt an, wie oft die Schritte in der Schleife maximal ausgeführt werden. Sobald der für diese Eingabe angegebene Wert erreicht ist, stoppt die Schleife, auch wenn `LoopCondition` immer noch `true` ist oder im `Iterators`-Parameter verbleibende Objekte vorhanden sind.  
Typ: Ganzzahl  
Zulässige Werte: 1–100  
Erforderlich: Nein

Schritte  
Die Liste der auszuführenden Schritte. Diese funktionieren wie ein verschachteltes Runbook. In diesen Schritten können Sie mithilfe der `{{loopStepName.CurrentIteratorValue}}`-Syntax auf den aktuellen Iteratorwert für eine `for each`-Schleife zugreifen. Sie können mithilfe der `{{loopStepName.CurrentIteration}}`-Syntax auch auf einen Integer-Wert der aktuellen Iteration für beide Schleifentypen zugreifen.  
Typ: Liste der Schritte  
Erforderlich: JaAusgabe

CurrentIteration  
Die aktuelle Schleifeniteration als Ganzzahl. Iterationswerte beginnen bei 1.  
Typ: Ganzzahl

CurrentIteratorValue  
Der Wert des aktuellen Iterators als Zeichenfolge. Diese Ausgabe ist nur in `for each`-Schleifen vorhanden.  
Typ: Zeichenfolge

# `aws:pause` - Pausieren einer Automatisierung
<a name="automation-action-pause"></a>

Mit dieser Aktion wird die Ausführung der Automatisierung unterbrochen. Nach der Unterbrechung lautet der Automation-Status *Waiting*. Um die Automatisierung fortzusetzen, verwenden Sie den [SendAutomationSignal](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendAutomationSignal.html)API-Vorgang mit dem `Resume` Signaltyp. Wir empfehlen die Verwendung von der `aws:sleep`- oder `aws:approve`-Aktion zur genaueren Kontrolle Ihrer Workflows.

**Anmerkung**  
Das Standard-Timeout für diese Aktion beträgt 7 Tage (604 800 Sekunden) und der Höchstwert ist 30 Tage (2 592 000 Sekunden). Sie können die Zeitüberschreitung über den Parameter `timeoutSeconds` für einen `aws:pause`-Schritt anpassen.

**Input**  
Die Eingabe ist wie folgt.

------
#### [ YAML ]

```
name: pauseThis
action: aws:pause
timeoutSeconds: 1209600
inputs: {}
```

------
#### [ JSON ]

```
{
    "name": "pauseThis",
    "action": "aws:pause",
    "timeoutSeconds": "1209600",
    "inputs": {}
}
```

------Ausgabe

Keine  


# `aws:runCommand` - Führt einen Befehl auf einer verwalteten Instance aus
<a name="automation-action-runcommand"></a>

Führt die angegebenen Befehle aus.

**Anmerkung**  
Automation unterstützt nur die *Ausgabe* einer AWS Systems Manager Run Command-Aktion. Ein Runbook kann mehrere Run Command-Aktionen und enthalten, die Ausgabe wird allerdings nur für je eine Aktion unterstützt.

**Input**  
Diese Aktion unterstützt die meisten Befehlsendeparameter. Weitere Informationen finden Sie unter [SendCommand](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_SendCommand.html).

------
#### [ YAML ]

```
- name: checkMembership
  action: 'aws:runCommand'
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
      - '{{InstanceIds}}'
    Parameters:
      commands:
        - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
```

------
#### [ JSON ]

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "InstanceIds": [
            "{{InstanceIds}}"
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        }
    }
}
```

------

DocumentName  
Wenn das Dokument vom Typ Command Ihnen gehört oder AWS, geben Sie den Namen des Dokuments an. Geben Sie den Amazon-Ressourcennamen (ARN) des Dokuments an, wenn Sie ein Dokument verwenden, das von einem anderen AWS-Konto mit Ihnen geteilt wird. Weitere Informationen zur Verwendung von geteilten Dokumenten finden Sie unter [Verwenden von freigegebenen SSM-Dokumenten](documents-ssm-sharing.md#using-shared-documents).  
Typ: Zeichenfolge  
Erforderlich: Ja

InstanceIds  
Die Instanz IDs , in der der Befehl ausgeführt werden soll. Sie können ein Maximum von 50 angeben IDs.   
Sie können den Pseudo-Parameter auch anstelle `{{RESOURCE_ID}}` der Instanz verwenden IDs , um den Befehl auf allen Instanzen in der Zielgruppe auszuführen. Weitere Informationen zu Pseudoparametern finden Sie unter [Verwendung von Pseudo-Parametern bei der Registrierung von Aufgaben im Wartungsfenster](maintenance-window-tasks-pseudo-parameters.md).  
Alternativ können Sie Befehle mit dem Parameter `Targets` an eine Instance-Flotte senden. Die `Targets`-Parameter akzeptiert Amazon Elastic Compute Cloud (Amazon EC2)-Tags. Weitere Informationen zur Verwendung des Parameters `Targets` finden Sie unter [Ausführen von Befehlen in großem Maßstab](send-commands-multiple.md).  
Typ: StringList  
Erforderlich: Nein (Wenn Sie den `{{RESOURCE_ID}}` Pseudo-Parameter nicht angeben InstanceIds oder verwenden, müssen Sie den `Targets` Parameter angeben.)

Targets  
Ein Array von Suchkriterien, das mithilfe einer von Ihnen angegebenen Kombination aus Schlüssel und Wert auf Instances abzielt. `Targets`ist erforderlich, wenn Sie IDs im Call keine oder mehrere Instanzen angeben. Weitere Informationen zur Verwendung des Parameters `Targets` finden Sie unter [Ausführen von Befehlen in großem Maßstab](send-commands-multiple.md).  
Typ: MapList (Das Schema der Map in der Liste muss mit dem Objekt übereinstimmen.) Informationen finden Sie unter [Target](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_Target.html) in der *AWS Systems Manager -API-Referenz*.  
Erforderlich: Nein (Wenn Sie nichts angeben`Targets`, müssen Sie den `{{RESOURCE_ID}}` Pseudo-Parameter angeben InstanceIds oder verwenden.)  
Im Folgenden sehen Sie ein Beispiel.  

```
- name: checkMembership
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    Targets:
      - Key: tag:Stage
        Values:
          - Gamma
          - Beta
      - Key: tag-key
        Values:
          - Suite
    Parameters:
      commands:
        - (Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain
```

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "Targets": [                   
            {
                "Key": "tag:Stage",
                "Values": [
                    "Gamma", "Beta"
                ]
            },
            {
                "Key": "tag:Application",
                "Values": [
                    "Suite"
                ]
            }
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        }
    }
}
```

Parameters  
Die erforderlichen und optionalen Parameter, die im Dokument angegeben sind.  
Typ: Zuordnung  
Erforderlich: Nein

CloudWatchOutputConfig  
Konfigurationsoptionen für das Senden von Befehlsausgaben an Amazon CloudWatch Logs. Weitere Informationen zum Senden von Befehlsausgaben an CloudWatch Logs finden Sie unter[Konfiguration von Amazon CloudWatch Logs für Run Command](sysman-rc-setting-up-cwlogs.md).  
Typ: StringMap (Das Schema der Map muss mit dem Objekt übereinstimmen. Weitere Informationen finden Sie [CloudWatchOutputConfig](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CloudWatchOutputConfig.html)in der *AWS Systems Manager API-Referenz*).  
Erforderlich: Nein  
Im Folgenden sehen Sie ein Beispiel.  

```
- name: checkMembership
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
      - "{{InstanceIds}}"
    Parameters:
      commands:
        - "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
    CloudWatchOutputConfig:
      CloudWatchLogGroupName: CloudWatchGroupForSSMAutomationService
      CloudWatchOutputEnabled: true
```

```
{
    "name": "checkMembership",
    "action": "aws:runCommand",
    "inputs": {
        "DocumentName": "AWS-RunPowerShellScript",
        "InstanceIds": [
            "{{InstanceIds}}"
        ],
        "Parameters": {
            "commands": [
                "(Get-WmiObject -Class Win32_ComputerSystem).PartOfDomain"
            ]
        },
        "CloudWatchOutputConfig" : { 
                "CloudWatchLogGroupName": "CloudWatchGroupForSSMAutomationService",
                "CloudWatchOutputEnabled": true
        }
    }
}
```

Comment  
Benutzerdefinierte Informationen über den Befehl.  
Typ: Zeichenfolge  
Erforderlich: Nein

DocumentHash  
Der Hash für das Dokument.  
Typ: Zeichenfolge  
Erforderlich: Nein

DocumentHashType  
Der Typ des Hash.  
Typ: Zeichenfolge  
Zulässige Werte: `Sha256` \$1 `Sha1`  
Erforderlich: Nein

NotificationConfig  
Die Konfigurationen für das Senden von Benachrichtigungen.  
Erforderlich: Nein

OutputS3 BucketName  
Der Name des S3-Buckets für Befehlsausgabeantworten. Ihr verwalteter Knoten muss Berechtigungen haben, damit der S3-Bucket die Ausgabe erfolgreich protokollieren kann.  
Typ: Zeichenfolge  
Erforderlich: Nein

OutputS3 KeyPrefix  
Das Präfix.  
Typ: Zeichenfolge  
Erforderlich: Nein

ServiceRoleArn  
Der ARN der AWS Identity and Access Management (IAM-) Rolle.  
Typ: Zeichenfolge  
Erforderlich: Nein

TimeoutSeconds  
Die Wartezeit in Sekunden, bis ein Befehl AWS Systems Manager SSM Agent an die Instance übermittelt wird. Wenn der Befehl vom SSM Agent auf der Instance vor dem Erreichen des angegebenen Werts nicht empfangen wurde, ändert sich der Status des Befehls in `Delivery Timed Out`.  
Typ: Ganzzahl  
Erforderlich: Nein  
Zulässige Werte: 30 bis 2 592 000Ausgabe

CommandId  
Die ID des Befehls.

Status  
Der Status des Befehls.

ResponseCode  
Der Antwortcode des Befehls. Wenn das Dokument, das Sie ausführen, mehr als einen Schritt umfasst, wird für diese Ausgabe kein Wert zurückgegeben.

Ausgabe  
Die Ausgabe des Befehls. Wenn Sie mit Ihrem Befehl auf ein Tag oder mehrere Instances abzielen, wird kein Ausgabewert zurückgegeben. Sie können die API-Vorgänge `GetCommandInvocation` und `ListCommandInvocations` verwenden, um Ausgaben für einzelne Instances abzurufen.

# `aws:runInstances` - So starten Sie eine Amazon-EC2-Instance
<a name="automation-action-runinstance"></a>

Startet eine neue Amazon Elastic Compute Cloud (Amazon EC2)-Instance.

**Anmerkung**  
Die Aktion `aws:runInstances` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Input**  
Die Aktion unterstützt die meisten API-Parameter. Weitere Informationen finden Sie in der [RunInstances](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_RunInstances.html)API-Dokumentation.

------
#### [ YAML ]

```
name: launchInstance
action: aws:runInstances
maxAttempts: 3
timeoutSeconds: 1200
onFailure: Abort
inputs:
  ImageId: ami-12345678
  InstanceType: t2.micro
  MinInstanceCount: 1
  MaxInstanceCount: 1
  IamInstanceProfileName: myRunCmdRole
  TagSpecifications:
  - ResourceType: instance
    Tags:
    - Key: LaunchedBy
      Value: SSMAutomation
    - Key: Category
      Value: HighAvailabilityFleetHost
```

------
#### [ JSON ]

```
{
   "name":"launchInstance",
   "action":"aws:runInstances",
   "maxAttempts":3,
   "timeoutSeconds":1200,
   "onFailure":"Abort",
   "inputs":{
      "ImageId":"ami-12345678",
      "InstanceType":"t2.micro",
      "MinInstanceCount":1,
      "MaxInstanceCount":1,
      "IamInstanceProfileName":"myRunCmdRole",
      "TagSpecifications":[
         {
            "ResourceType":"instance",
            "Tags":[
               {
                  "Key":"LaunchedBy",
                  "Value":"SSMAutomation"
               },
               {
                  "Key":"Category",
                  "Value":"HighAvailabilityFleetHost"
               }
            ]
         }
      ]
   }
}
```

------

AdditionalInfo  
Reserved Instances.  
Typ: Zeichenfolge  
Erforderlich: Nein

BlockDeviceMappings  
Die Blockgeräte für die Instance.  
Typ: MapList  
Erforderlich: Nein

ClientToken  
Der Bezeichner, um die Idempotenz der Anfrage sicherzustellen.  
Typ: Zeichenfolge  
Erforderlich: Nein

DisableApiTermination  
Aktiviert oder deaktiviert die Instance-API-Beendigung.  
Typ: Boolesch  
Erforderlich: Nein

EbsOptimized  
Aktiviert oder deaktiviert die Amazon Elastic Block Store (Amazon EBS)-Optimierung.  
Typ: Boolesch  
Erforderlich: Nein

IamInstanceProfileArn  
Der Amazon-Ressourcenname (ARN) des AWS Identity and Access Management (IAM) -Instance-Profils für die Instance.  
Typ: Zeichenfolge  
Erforderlich: Nein

IamInstanceProfileName  
Der Name des IAM-Instance-Profils für die Instance.  
Typ: Zeichenfolge  
Erforderlich: Nein

ImageId  
Die ID des Amazon Machine Image (AMI).  
Typ: Zeichenfolge  
Erforderlich: Ja

InstanceInitiatedShutdownBehavior  
Gibt an, ob die Instance beim Herunterfahren des Systems angehalten oder beendet wird.  
Typ: Zeichenfolge  
Erforderlich: Nein

InstanceType  
Der Instance-Typ.  
Wenn kein Wert für den Instance-Typ angegeben wird, wird der Instance-Typ m1.small verwendet.
Typ: Zeichenfolge  
Erforderlich: Nein

KernelId  
Die ID des Kernels.  
Typ: Zeichenfolge  
Erforderlich: Nein

KeyName  
Der Name des Schlüsselpaars.  
Typ: Zeichenfolge  
Erforderlich: Nein

MaxInstanceCount  
Die Höchstanzahl zu startender Instances.  
Typ: Zeichenfolge  
Erforderlich: Nein

MetadataOptions  
Die Metadatenoptionen für die Instance. Weitere Informationen finden Sie unter [InstanceMetadataOptionsRequest](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_InstanceMetadataOptionsRequest.html).  
Typ: StringMap  
Erforderlich: Nein

MinInstanceCount  
Die Mindestanzahl zu startender Instances.  
Typ: Zeichenfolge  
Erforderlich: Nein

Überwachen  
Aktiviert oder deaktiviert die detaillierte Überwachung.g  
Typ: Boolesch  
Erforderlich: Nein

NetworkInterfaces  
Die Netzwerkschnittstellen.  
Typ: MapList  
Erforderlich: Nein

Placement  
Die Platzierung für die Instance.  
Typ: StringMap  
Erforderlich: Nein

PrivateIpAddress  
Die primäre IPv4 Adresse.  
Typ: Zeichenfolge  
Erforderlich: Nein

RamdiskId  
Die ID des RAM-Datenträgers.  
Typ: Zeichenfolge  
Erforderlich: Nein

SecurityGroupIds  
Die IDs der Sicherheitsgruppen für die Instance.  
Typ: StringList  
Erforderlich: Nein

SecurityGroups  
Die Namen der Sicherheitsgruppen für die Instance.  
Typ: StringList  
Erforderlich: Nein

SubnetId  
Die Subnetz-ID.  
Typ: Zeichenfolge  
Erforderlich: Nein

TagSpecifications  
Die Tags, die beim Start auf die Ressourcen angewendet werden. Instances und Volumes können nur beim Start mit Tags versehen werden. Die angegebenen Tags werden auf alle Instances bzw. Volumes angewendet, die beim Start erstellt werden. Um eine Instance nach dem Start mit Tags zu versehen, verwenden Sie die Aktion [`aws:createTags`— Erstelle Tags für AWS Ressourcen](automation-action-createtag.md).  
Typ: MapList (Weitere Informationen finden Sie unter [TagSpecification](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_TagSpecification.html).)  
Erforderlich: Nein

UserData  
Ein Skript, das als Zeichenfolgenliteralwert bereitgestellt wird. Wenn ein Literalwert eingegeben wird, muss er Base64-kodiert sein.  
Typ: Zeichenfolge  
Erforderlich: NeinAusgabe

InstanceIds  
Die IDs der Instanzen.

InstanceStates  
Der Status der Instance.

# `aws:sleep` - Verzögerung einer Automatisierung
<a name="automation-action-sleep"></a>

Verzögert eine Automatisierung um eine bestimmte Zeit. Diese Aktion verwendet das Datums- und Uhrzeitformat der International Organization for Standardization (ISO) 8601. Weitere Informationen zu diesem Datums- und Uhrzeitformat finden Sie unter [ISO 8601](https://www.iso.org/iso-8601-date-and-time-format.html).

**Input**  
Sie können eine Automatisierung um eine festgelegte Dauer verzögern. 

------
#### [ YAML ]

```
name: sleep
action: aws:sleep
inputs:
  Duration: PT10M
```

------
#### [ JSON ]

```
{
   "name":"sleep",
   "action":"aws:sleep",
   "inputs":{
      "Duration":"PT10M"
   }
}
```

------

Sie können eine Automatisierung auch bis zu einem festgelegten Zeitpunkt verzögern. Wenn das Datum und die Uhrzeit verstrichen sind, erfolgt die Aktion unmittelbar. 

------
#### [ YAML ]

```
name: sleep
action: aws:sleep
inputs:
  Timestamp: '2020-01-01T01:00:00Z'
```

------
#### [ JSON ]

```
{
    "name": "sleep",
    "action": "aws:sleep",
    "inputs": {
        "Timestamp": "2020-01-01T01:00:00Z"
    }
}
```

------

**Anmerkung**  
Automation unterstützt eine maximale Verzögerung von 604799 Sekunden (7 Tage).

Dauer  
Ein ISO 8601-Dauer. Sie können keine negative Dauer angeben.   
Typ: Zeichenfolge  
Erforderlich: Nein

Zeitstempel  
Ein ISO 8601-Zeitstempel. Wenn Sie keinen Wert für diesen Parameter angeben, müssen Sie einen Wert für den `Duration`-Parameter angeben.   
Typ: Zeichenfolge  
Erforderlich: NeinAusgabe

Keine  


# `aws:updateVariable` – Aktualisiert einen Wert für eine Runbook-Variable
<a name="automation-action-update-variable"></a>

Diese Aktion aktualisiert einen Wert für eine Runbook-Variable. Der Datentyp des Werts muss dem Datentyp der Variable entsprechen, die Sie aktualisieren möchten. Datentypkonvertierungen werden nicht unterstützt. Die `onCancel`-Eigenschaft wird für die `aws:updateVariable`-Aktion nicht unterstützt.

**Input**  
Die Eingabe ist wie folgt.

------
#### [ YAML ]

```
name: updateStringList
action: aws:updateVariable
inputs:
    Name: variable:variable name
    Value:
    - "1"
    - "2"
```

------
#### [ JSON ]

```
{
    "name": "updateStringList",
    "action": "aws:updateVariable",
    "inputs": {
        "Name": "variable:variable name",
        "Value": ["1","2"]
    }
}
```

------

Name  
Der Name der Variable, deren Wert Sie aktualisieren möchten. Sie müssen das Format `variable:variable name` verwenden  
Typ: Zeichenfolge  
Erforderlich: Ja

Wert  
Der neue Wert, der der Variable zugewiesen werden soll. Der Wert muss mit dem Datentyp der Variable übereinstimmen. Datentypkonvertierungen werden nicht unterstützt.  
Typ: Boolean \$1 Integer \$1 \$1 String MapList \$1 \$1 StringList StringMap  
Erforderlich: Ja  
Einschränkungen:  
+ MapList kann eine maximale Anzahl von 200 Elementen enthalten.
+ Schlüssellängen können eine Mindestlänge von 1 und eine Maximallänge von 50 haben.
+ StringList kann eine Mindestanzahl von 0 Elementen und eine maximale Anzahl von 50 Elementen sein.
+ Die Länge einer Zeichenfolge kann eine Mindestlänge von 1 und eine Maximallänge von 512 haben.Ausgabe

Keine  


# `aws:waitForAwsResourceProperty`— Warte auf eine AWS Ressourceneigenschaft
<a name="automation-action-waitForAwsResourceProperty"></a>

Die `aws:waitForAwsResourceProperty`-Aktion erlaubt Ihrer Automatisierung auf einen bestimmten Ressourcenstatus oder Ereignisstatus zu warten, bevor Sie die Automatisierung fortsetzen. Weitere Beispiele zur Verwendung dieser Aktion finden Sie unter [Weitere Runbook-Beispiele](automation-document-examples.md).

**Anmerkung**  
Der Standardwert für die Zeitüberschreitung für diese Aktion beträgt 3 600 Sekunden (eine Stunde). Sie können die Zeitüberschreitung über den Parameter `timeoutSeconds` für einen `aws:waitForAwsResourceProperty`-Schritt anpassen. Weitere Informationen und Beispiele zur Verwendung dieser Aktion finden Sie unter [Behandeln von Timeouts in Runbooks](automation-handling-timeouts.md).

**Anmerkung**  
Die Aktion `aws:waitForAwsResourceProperty` unterstützt die automatische Drosselungswiederholung. Weitere Informationen finden Sie unter [Konfigurieren der automatischen Wiederholung für gedrosselte Vorgänge](automation-throttling-retry.md).

**Input**  
Eingaben werden von der ausgewählten API-Operation bestimmt.

------
#### [ YAML ]

```
action: aws:waitForAwsResourceProperty
inputs:
  Service: The official namespace of the service
  Api: The API operation or method name
  API operation inputs or parameters: A value
  PropertySelector: Response object
  DesiredValues:
  - Desired property value
```

------
#### [ JSON ]

```
{
  "action": "aws:waitForAwsResourceProperty",
  "inputs": {
    "Service":"The official namespace of the service",
    "Api":"The API operation or method name",
    "API operation inputs or parameters":"A value",
    "PropertySelector": "Response object",
    "DesiredValues": [
      "Desired property value"
    ]
  }
}
```

------

Service  
Der AWS-Service Namespace, der die API-Operation enthält, die Sie ausführen möchten. Der Namespace für ist beispielsweise. AWS Systems Manager `ssm` Der Namespace für Amazon Elastic Compute Cloud (Amazon EC2) ist `ec2`. *Eine Liste der unterstützten AWS-Service Namespaces finden Sie im Abschnitt [Verfügbare Dienste der Befehlsreferenz](https://docs.aws.amazon.com/cli/latest/reference/#available-services).AWS CLI *  
Typ: Zeichenfolge  
Erforderlich: Ja

Api  
Der Name der API-Operation, die Sie ausführen möchten. Sie können die API-Operationen (auch als Methoden bezeichnet) anzeigen, indem Sie einen Service in der linken Navigationsleiste auf der folgenden [Service-Referenzen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Seite auswählen. Wählen Sie eine Methode im Abschnitt **Client** für den Service, den Sie aufrufen möchten. Beispielsweise werden alle API-Vorgänge (Methoden) für Amazon Relational Database Service (Amazon RDS) auf der folgenden Seite aufgelistet: [Amazon RDS-Methoden](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).  
Typ: Zeichenfolge  
Erforderlich: Ja

API-Operation-Eingaben  
Eine oder mehrere API-Eingaben. Sie können die verfügbaren Eingaben (auch als Parameter bezeichnet) anzeigen, indem Sie einen Service in der linken Navigationsleiste auf der folgenden [Service-Referenzen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Seite auswählen. Wählen Sie eine Methode im Abschnitt **Client** für den Service, den Sie aufrufen möchten. Beispielsweise sind alle Methoden für Amazon RDS auf der folgenden Seite aufgeführt: [Amazon RDS-Methoden](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). ******Wählen Sie die Methode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) und scrollen Sie nach unten, um die verfügbaren Parameter wie Identifier, Name und Values zu sehen. DBInstance******  

```
inputs:
  Service: The official namespace of the service
  Api: The API operation name
  API input 1: A value
  API Input 2: A value
  API Input 3: A value
```

```
"inputs":{
      "Service":"The official namespace of the service",
      "Api":"The API operation name",
      "API input 1":"A value",
      "API Input 2":"A value",
      "API Input 3":"A value"
}
```
Typ: Abhängig von der gewählten API-Operation  
Erforderlich: Ja

PropertySelector  
Das JSONPath zu einem bestimmten Attribut im Antwortobjekt. Sie können die Antwortobjekte anzeigen indem Sie einen Service in der linken Navigationsleiste auf der folgenden [Service-Referenzen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Seite auswählen. Wählen Sie eine Methode im Abschnitt **Client** für den Service, den Sie aufrufen möchten. Beispielsweise sind alle Methoden für Amazon RDS auf der folgenden Seite aufgeführt: [Amazon RDS-Methoden](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html). **Wählen Sie die Methode [describe\$1db\$1instances](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html#RDS.Client.describe_db_instances) und scrollen Sie nach unten zum Abschnitt Antwortstruktur.** **DBInstances**ist als Antwortobjekt aufgeführt.  
Typ: Zeichenfolge  
Erforderlich: Ja

DesiredValues  
Die erwartete Status oder Zustand, bei dem die Automatisierung fortgesetzt werden soll.  
Typ: MapList, StringList  
Erforderlich: Ja

# Systemvariablen für Automation
<a name="automation-variables"></a>

AWS Systems Manager-Automation-Runbooks verwenden die folgenden Variablen. Ein Beispiel für die Verwendung dieser Variablen erhalten Sie, wenn Sie die JSON-Quelle des `AWS-UpdateWindowsAmi`-Runbooks anzeigen. 

**So zeigen Sie die JSON-Quelle des `AWS-UpdateWindowsAmi`-Runbooks an**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie in der Dokumentliste entweder über die Suchleiste oder die Zahlen rechts neben der Suchleiste das Runbook `AWS-UpdateWindowsAmi` aus.

1. Wählen Sie die Registerkarte **Content** aus. 

**Systemvariablen**  
Automation-Runbooks unterstützen die folgenden Variablen.


****  

| Variable | Details | 
| --- | --- | 
|  `global:ACCOUNT_ID`  |  Die AWS-Konto-ID des Benutzers oder der Rolle, in dem die Automatisierung ausgeführt wird.  | 
|  `global:DATE`  |  Das Datum (zur Ausführungszeit) im Format yyyy-MM-dd.  | 
|  `global:DATE_TIME`  |  Das Datum und die Uhrzeit (zur Ausführungszeit) im Format yyyy-MM-dd\$1HH.mm.ss.  | 
|  `global:AWS_PARTITION`  |  Die Partition, in der sich die Ressource befindet. Für Standard-AWS-Regionen lautet die Partition `aws`. Für Ressourcen in anderen Partitionen lautet die Partition `aws-partitionname`. Beispielsweise ist die Partition für Ressourcen in der AWS-GovCloud (US-West)-Region `aws-us-gov`.  | 
|  `global:REGION`  |  Die Region, in der das Runbook ausgeführt wird. Beispiel: us-east-2.  | 

**Variablen für Automation**  
Automation-Runbooks unterstützen die folgenden Automatisierungsvariablen.


****  

| Variable | Details | 
| --- | --- | 
|  `automation:EXECUTION_ID`  |  Die eindeutige ID, die der aktuellen Automatisierung zugewiesen ist. Beispiel, `1a2b3c-1a2b3c-1a2b3c-1a2b3c1a2b3c1a2b3c`.  | 

**Topics**
+ [Terminologie](#automation-terms)
+ [Unterstützte Szenarien](#automation-variables-support)
+ [Nicht unterstützte Szenarien](#automation-variables-unsupported)

## Terminologie
<a name="automation-terms"></a>

Die folgenden Bedingungen beschreiben, wie Variablen und Parameter gelöst werden.


****  

| Begriff | Definition | Beispiel | 
| --- | --- | --- | 
|  Konstanter ARN  |  Ein gültiger Amazon-Ressourcenname (ARN) ohne Variablen.  |  `arn:aws:iam::123456789012:role/roleName`  | 
|  Runbook-Parameter  |  Ein auf der Runbook-Ebene definierter Parameter (z. B. `instanceId`). Der Parameter wird in einer grundlegenden Zeichenfolgenersetzung verwendet. Sein Wert wird zur Startausführungszeit bereitgestellt.  |  <pre>{ <br />   "description": "Create Image Demo",<br />   "version": "0.3",<br />   "assumeRole": "Your_Automation_Assume_Role_ARN",<br />   "parameters":{ <br />      "instanceId": { <br />         "type": "String",<br />         "description": "Instance to create image from"<br />   }<br />}</pre>  | 
|  Systemvariable  |  Eine allgemeine Variable, die in das Runbook eingefügt wird, wenn ein beliebiger Teil des Runbooks bewertet wird.  |  <pre>"activities": [ <br />   { <br />      "id": "copyImage",<br />      "activityType": "AWS-CopyImage",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": { <br />         "ImageName": "{{imageName}}",<br />         "SourceImageId": "{{sourceImageId}}",<br />         "SourceRegion": "{{sourceRegion}}",<br />         "Encrypted": true,<br />         "ImageDescription": "Test CopyImage Description created on {{global:DATE}}"<br />      }<br />   }<br />]</pre>  | 
|  Variable für Automation  |  Eine Variable, die sich auf die Automatisierung bezieht, die in das Runbook eingefügt wird, wenn ein Teil des Runbooks bewertet wird.  |  <pre>{ <br />   "name": "runFixedCmds",<br />   "action": "aws:runCommand",<br />   "maxAttempts": 1,<br />   "onFailure": "Continue",<br />   "inputs": { <br />      "DocumentName": "AWS-RunPowerShellScript",<br />      "InstanceIds": [ <br />         "{{LaunchInstance.InstanceIds}}"<br />      ],<br />      "Parameters": { <br />         "commands": [ <br />            "dir",<br />            "date",<br />            "“{{outputFormat}}” -f “left”,”right”,”{{global:DATE}}”,”{{automation:EXECUTION_ID}}”<br />         ]<br />      }<br />   }<br />}</pre>  | 
|  Systems Manager-Parameter  |  Eine in AWS Systems Manager Parameter Store definierte Variable. Eine direkte Referenzierung in der Schritteingabe ist nicht möglich. Eventuell sind für den Zugriff auf den Parameter Berechtigungen erforderlich.  |  <pre><br />description: Launch new Windows test instance<br />schemaVersion: '0.3'<br />assumeRole: '{{AutomationAssumeRole}}'<br />parameters:<br />  AutomationAssumeRole:<br />    type: String<br />    default: ''<br />    description: >-<br />      (Required) The ARN of the role that allows Automation to perform the<br />      actions on your behalf. If no role is specified, Systems Manager<br />      Automation uses your IAM permissions to run this runbook.<br />  LatestAmi:<br />    type: String<br />    default: >-<br />      {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}<br />    description: The latest Windows Server 2016 AMI queried from the public parameter.<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{LatestAmi}}'<br />...</pre>  | 

## Unterstützte Szenarien
<a name="automation-variables-support"></a>


****  

| Szenario | Kommentare | Beispiel | 
| --- | --- | --- | 
|  Konstanter ARN `assumeRole` beim Erstellen.  |  Es wird eine Autorisierungsprüfung durchgeführt, um zu bestätigen, dass der aufrufende Benutzer über die Berechtigung zum Übergeben der Rolle `assumeRole` verfügt.  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "arn:aws:iam::123456789012:role/roleName",<br />  "parameters": { <br />  ...</pre>  | 
|  Der Runbook-Parameter wird für `AssumeRole` bereitgestellt, wenn die Automatisierung gestartet wird.  |  Muss in der Parameterliste des Runbooks definiert werden.  |  <pre>{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{dynamicARN}}",<br />  "parameters": {<br /> ...</pre>  | 
|  Für Runbookparameter beim Start bereitgestellter Wert.  |  Der Kunde stellt den für einen Parameter zu verwendenden Wert bereit. Alle zur bereitgestellten Eingaben müssen in der Parameterliste des Runbooks definiert sein.  |  <pre>...<br />"parameters": {<br />    "amiId": {<br />      "type": "String",<br />      "default": "ami-12345678",<br />      "description": "list of commands to run as part of first step"<br />    },<br />...</pre> Eingaben zum Start der Automation-Ausführung umfassen : `{"amiId" : ["ami-12345678"] }`  | 
|  Systems Manager Parameter, auf den im Runbook-Inhalt verwiesen wird.  |  Die Variable existiert im Kundenkonto oder ist ein öffentlich zugänglicher Parameter und die `AssumeRole` für das Runbook hat Zugriff auf die Variable. Beim Erstellen wird eine Überprüfung durchgeführt, um zu bestätigen, dass `AssumeRole` Zugriff hat. Der Parameter kann nicht direkt in der Schritteingabe referenziert werden.  |  <pre><br />...<br />parameters:<br />    LatestAmi:<br />    type: String<br />    default: >-<br />      {{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}<br />    description: The latest Windows Server 2016 AMI queried from the public parameter.<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{LatestAmi}}'<br />...</pre>  | 
|  Die Systemvariable, auf die in der Definition des Schritts verwiesen wird  |  Eine Systemvariable wird beim Start der Automatisierung in das Runbook eingefügt. Der in das Runbook eingefügte Wert steht in Relation zum Zeitpunkt des Einfügens. Das bedeutet, dass der Wert einer Zeitvariable, die in Schritt 1 eingefügt wurde, aufgrund der erforderlichen Zeit für die Ausführung der Schritte vom in Schritt 3 eingefügten Wert abweicht. Systemvariablen müssen nicht in der Parameterliste des Runbooks festgelegt werden.  |  <pre>...<br />  "mainSteps": [<br />    {<br />      "name": "RunSomeCommands",<br />      "action": "aws:runCommand",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "DocumentName": "AWS:RunPowerShell",<br />        "InstanceIds": ["{{LaunchInstance.InstanceIds}}"],<br />        "Parameters": {<br />            "commands" : [<br />                "echo {The time is now {{global:DATE_TIME}}}"<br />            ]<br />        }<br />    }<br />}, ... </pre>  | 
|  Die Automation-Variable, auf die in der Definition des Schritts verwiesen wird.  |  Automation-Variablen müssen nicht in der Parameterliste des Runbooks festgelegt werden. Die einzige unterstützte AAutomation-Variable ist **automation:EXECUTION\$1ID**.  |  <pre>...<br />"mainSteps": [<br />    {<br />      "name": "invokeLambdaFunction",<br />      "action": "aws:invokeLambdaFunction",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "FunctionName": "Hello-World-LambdaFunction",<br /><br />"Payload" : "{ "executionId" : "{{automation:EXECUTION_ID}}" }"<br />      }<br />    }<br />... </pre>  | 
|  Weitere Informationen finden Sie in der Ausgabe des vorherigen Schritts in der Definition des nächsten Schritts.  |  Dies ist die Parameterumleitung. Mithilfe der Syntax `{{stepName.OutputName}}` wird auf die Ausgabe eines vorherigen Schritts verwiesen. Diese Syntax kann vom Kunden nicht für Runbookparameter verwendet werden. Dies wird behoben, wenn der verweisende Schritt ausgeführt wird. Der Parameter ist nicht in der Liste der Parameter des Runbooks aufgeführt.  |  <pre>...<br />"mainSteps": [<br />    {<br />      "name": "LaunchInstance",<br />      "action": "aws:runInstances",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "ImageId": "{{amiId}}",<br />        "MinInstanceCount": 1,<br />        "MaxInstanceCount": 2<br />      }<br />    },<br />    {<br />      "name":"changeState",<br />      "action": "aws:changeInstanceState",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "InstanceIds": ["{{LaunchInstance.InstanceIds}}"],<br />        "DesiredState": "terminated"<br />      }<br />    }<br /><br />... </pre>  | 

## Nicht unterstützte Szenarien
<a name="automation-variables-unsupported"></a>


****  

| Szenario | Kommentar | Beispiel | 
| --- | --- | --- | 
|  Systems Manager Parameter bereitgestellt für `assumeRole` beim Erstellen  |  Nicht unterstützt  |  <pre>...<br /><br />{<br />  "description": "Test all Automation resolvable parameters",<br />  "schemaVersion": "0.3",<br />  "assumeRole": "{{ssm:administratorRoleARN}}",<br />  "parameters": {<br /><br />... </pre>  | 
|  System Manager-Parameter, der direkt in der Schritteingabe referenziert wird.  |  Gibt eine `InvalidDocumentContent`-Ausnahme zur Erstellungszeit zurück.  |  <pre><br />...<br />mainSteps:<br />  - name: launchInstance<br />    action: 'aws:runInstances'<br />    maxAttempts: 3<br />    timeoutSeconds: 1200<br />    onFailure: Abort<br />    inputs:<br />      ImageId: '{{ssm:/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base}}'<br />...</pre>  | 
|  Variablenschrittdefinition  |  Die Definition eines Schritts im Runbook wird anhand von Variablen zusammengestellt.  |  <pre>...<br /><br />"mainSteps": [<br />    {<br />      "name": "LaunchInstance",<br />      "action": "aws:runInstances",<br />      "{{attemptModel}}": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "ImageId": "ami-12345678",<br />        "MinInstanceCount": 1,<br />        "MaxInstanceCount": 2<br />      }<br /><br />...<br /><br />User supplies input : { "attemptModel" : "minAttempts" } </pre>  | 
|  Querverweise auf Runbook-Parameter  |  Der Benutzer liefert zur Startzeit einen Eingabeparameter, der ein Verweis auf einen anderen Parameter im Runbook ist.  |  <pre>...<br />"parameters": {<br />    "amiId": {<br />      "type": "String",<br />      "default": "ami-7f2e6015",<br />      "description": "list of commands to run as part of first step"<br />    },<br />    "alternateAmiId": {<br />      "type": "String",<br />      "description": "The alternate AMI to try if this first fails".<br /><br />"default" : "{{amiId}}"<br />    },<br /><br />... </pre>  | 
|  Multi-Level-Expansion  |  Das Runbook definiert eine Variable, die den Namen einer Variablen ergibt. Dieser befindet sich in den Variablentrennzeichen (d. h. *\$1\$1 \$1\$1*) und wird auf den Wert dieser Variable/dieses Parameters erweitert.  |  <pre>...<br />  "parameters": {<br />    "firstParameter": {<br />      "type": "String",<br />      "default": "param2",<br />      "description": "The parameter to reference"<br />    },<br />    "secondParameter": {<br />      "type": "String",<br />      "default" : "echo {Hello world}",<br />      "description": "What to run"<br />    }<br />  },<br />  "mainSteps": [{<br />      "name": "runFixedCmds",<br />      "action": "aws:runCommand",<br />      "maxAttempts": 1,<br />      "onFailure": "Continue",<br />      "inputs": {<br />        "DocumentName": "AWS-RunPowerShellScript",<br /><br />"InstanceIds" : "{{LaunchInstance.InstanceIds}}",<br />        "Parameters": {<br />          "commands": [ "{{ {{firstParameter}} }}"]<br /><br />}<br /><br />...<br /><br />Note: The customer intention here would be to run a command of "echo {Hello world}" </pre>  | 
|  Verweis auf die Ausgabe aus einem Runbook-Schritt, bei dem es sich um einen anderen Variablentyp handelt  |  Der Benutzer verweist auf die Ausgabe eines vorherigen Runbook-Schritts in einem späteren Schritt. Die Ausgabe ist ein Variablentyp, der nicht den Anforderungen der Aktion des nachfolgenden Schritts erfüllt.  |  <pre>...<br />mainSteps:<br />- name: getImageId<br />  action: aws:executeAwsApi<br />  inputs:<br />    Service: ec2<br />    Api: DescribeImages<br />    Filters:  <br />    - Name: "name"<br />      Values: <br />      - "{{ImageName}}"<br />  outputs:<br />  - Name: ImageIdList<br />    Selector: "$.Images"<br />    Type: "StringList"<br />- name: copyMyImages<br />  action: aws:copyImage<br />  maxAttempts: 3<br />  onFailure: Abort<br />  inputs:<br />    SourceImageId: {{getImageId.ImageIdList}}<br />    SourceRegion: ap-northeast-2<br />    ImageName: Encrypted Copies of LAMP base AMI in ap-northeast-2<br />    Encrypted: true <br />... <br />Note: You must provide the type required by the Automation action. <br />In this case, aws:copyImage requires a "String" type variable but the preceding step outputs a "StringList" type variable.<br />                                        </pre>  | 

# Erstellen Ihrer eigenen Runbooks
<a name="automation-documents"></a>

Ein Automatisierungs-Runbook definiert die *Aktionen*, die Systems Manager auf Ihren verwalteten Instanzen und anderen AWS Ressourcen ausführt, wenn eine Automatisierung ausgeführt wird. Automation ist ein Tool in AWS Systems Manager. Ein Runbook enthält einen oder mehrere Schritte, die in sequentieller Reihenfolge ausgeführt werden. Jeder Schritt basiert auf einer einzigen Aktion. Die Ausgabe eines Schritts kann als Eingabe in einem späteren Schritt verwendet werden. 

Der Prozess der Ausführung dieser Aktionen und ihrer Schritte wird als *Automatisierung* bezeichnet.

Mit den für Runbooks unterstützten Aktionstypen können Sie eine Vielzahl von Vorgängen in Ihrer AWS Umgebung automatisieren. Mithilfe des `executeScript` Aktionstyps können Sie beispielsweise eine Python oder ein PowerShell Skript direkt in Ihr Runbook einbetten. (Wenn Sie ein benutzerdefiniertes Runbook erstellen, können Sie Ihr Skript inline hinzufügen oder es von einem S3-Bucket oder von Ihrem lokalen Computer aus anhängen.) Sie können die Verwaltung Ihrer AWS CloudFormation Ressourcen automatisieren, indem Sie die `deleteStack` Aktionstypen `createStack` und verwenden. Darüber hinaus kann ein Schritt mithilfe des `executeAwsApi` Aktionstyps *jede beliebige* API-Operation ausführen AWS-Service, z. B. das Erstellen oder Löschen von AWS Ressourcen, das Starten anderer Prozesse, das Initiieren von Benachrichtigungen und vieles mehr. 

Eine Liste aller 20 unterstützten Aktionstypen für Automation finden Sie unter [Systems Manager Automation Aktionen-Referenz](automation-actions.md).

AWS Systems Manager Automation bietet mehrere Runbooks mit vordefinierten Schritten, mit denen Sie allgemeine Aufgaben wie den Neustart einer oder mehrerer Amazon Elastic Compute Cloud (Amazon EC2) -Instances oder das Erstellen einer Amazon Machine Image () ausführen können. AMI Sie können auch Ihre eigenen Runbooks erstellen und sie mit anderen AWS-Konten teilen oder sie für alle Automation-Benutzer veröffentlichen.

Runbooks werden mit YAML oder JSON geschrieben. Mit dem **Document Builder** in der Systems Manager-Automation-Konsole können Sie jedoch ein Runbook erstellen, ohne nativen JSON- oder YAML-Code erstellen zu müssen.

**Wichtig**  
Wenn Sie einen automatisierten Workflow ausführen, der andere Services mithilfe einer AWS Identity and Access Management -(IAM)-Servicerolle aufruft, muss die Servicerolle mit der Berechtigung zum Aufrufen dieser Services konfiguriert sein. Diese Anforderung gilt für alle AWS Automatisierungs-Runbooks (`AWS-*`Runbooks) wie die`AWS-ConfigureS3BucketLogging`, und `AWS-RestartEC2Instance` Runbooks`AWS-CreateDynamoDBBackup`, um nur einige zu nennen. Diese Anforderung gilt auch für alle benutzerdefinierten Automatisierungs-Runbooks, die Sie erstellen und die andere mithilfe AWS-Services von Aktionen aufrufen, die andere Dienste aufrufen. Wenn Sie unter anderem `aws:executeAwsApi`-, `aws:createStack`- oder `aws:copyImage`-Aktionen verwenden, konfigurieren Sie die Dienstrolle mit der Berechtigung zum Aufrufen solcher Services. Sie können anderen AWS-Services Berechtigungen erteilen, indem Sie der Rolle eine eingebundene IAM-Richtlinie hinzufügen. Weitere Informationen finden Sie unter [(Optional) Fügen Sie eine Inline-Automatisierungsrichtlinie oder eine vom Kunden verwaltete Richtlinie hinzu, um andere aufzurufen AWS-Services](automation-setup-iam.md#add-inline-policy).

Informationen zu den Aktionen, die Sie in einem Runbook angeben können, finden Sie unter [Systems Manager Automation Aktionen-Referenz](automation-actions.md).

Informationen zur Verwendung von AWS Toolkit for Visual Studio Code zum Erstellen von Runbooks finden Sie unter [Arbeiten mit Systems Manager Automation-Dokumenten](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/systems-manager-automation-docs.html) im *AWS Toolkit for Visual Studio Code Benutzerhandbuch*.

Informationen zur Verwendung des visuellen Designers zum Erstellen eines benutzerdefinierten Runbooks finden Sie unter [Visuelle Designerfahrung für Automation-Runbooks](automation-visual-designer.md). 

**Contents**
+ [Visuelle Designerfahrung für Automation-Runbooks](automation-visual-designer.md)
  + [Überblick über die Benutzeroberfläche für visuelle Designerfahrung](visual-designer-interface-overview.md)
    + [Aktionsbrowser](visual-designer-interface-overview.md#visual-designer-actions)
    + [Leinwand](visual-designer-interface-overview.md#visual-designer-canvas)
    + [Formular](visual-designer-interface-overview.md#visual-designer-form)
    + [Tastenkombinationen](visual-designer-interface-overview.md#visual-designer-keyboard-shortcuts)
  + [Die visuelle Designerfahrung nutzen](visual-designer-use.md)
    + [Einen Runbook-Workflow erstellen](visual-designer-use.md#visual-designer-create-runbook-workflow)
    + [Ein Runbook entwerfen](visual-designer-use.md#visual-designer-build)
    + [Ihr Runbook aktualisieren](visual-designer-use.md#visual-designer-update-runbook)
    + [Ihr Runbook exportieren](visual-designer-use.md#visual-designer-export-runbook)
  + [Konfigurieren von Eingaben und Ausgaben für Ihre Aktionen](visual-designer-action-inputs-outputs.md)
    + [Eingabedaten für eine Aktion angeben](visual-designer-action-inputs-outputs.md#providing-input)
    + [Die Ausgabedaten für eine Aktion definieren](visual-designer-action-inputs-outputs.md#defining-output)
  + [Fehlerbehandlung bei der visuellen Designerfahrung](visual-designer-error-handling.md)
    + [Bei einem Fehler die Aktion erneut versuchen](visual-designer-error-handling.md#retry-actions)
    + [Timeouts](visual-designer-error-handling.md#timeout-seconds)
    + [Fehlgeschlagene Aktionen](visual-designer-error-handling.md#failure-actions)
    + [Abgebrochene Aktionen](visual-designer-error-handling.md#cancel-actions)
    + [Kritische Aktionen](visual-designer-error-handling.md#critical-actions)
    + [Aktionen beenden](visual-designer-error-handling.md#end-actions)
  + [Tutorial: Ein Runbook mithilfe der visuellen Designerfahrung erstellen](visual-designer-tutorial.md)
    + [Schritt 1: Zur visuellen Designerfahrung navigieren](visual-designer-tutorial.md#navigate-console)
    + [Schritt 2: Einen Workflow erstellen](visual-designer-tutorial.md#create-workflow)
    + [Schritt 3: Den automatisch generierten Code überprüfen](visual-designer-tutorial.md#view-generated-code)
    + [Schritt 4: Ihr neues Runbook ausführen](visual-designer-tutorial.md#use-tutorial-runbook)
    + [Schritt 5: Bereinigen](visual-designer-tutorial.md#cleanup-tutorial-runbook)
+ [Erstellen von Automation-Runbooks](automation-authoring-runbooks.md)
  + [Identifizieren Sie Ihren Anwendungsfall](automation-authoring-runbooks.md#automation-authoring-runbooks-use-case)
  + [Einrichten Ihrer Entwicklungsumgebung](automation-authoring-runbooks.md#automation-authoring-runbooks-environment)
  + [Entwickeln von Runbook-Inhalten](automation-authoring-runbooks.md#automation-authoring-runbooks-developing-content)
  + [Beispiel 1: Erstellen von über- und untergeordneten Runbooks](automation-authoring-runbooks-parent-child-example.md)
    + [Erstellen des untergeordneten Runbooks](automation-authoring-runbooks-parent-child-example.md#automation-authoring-runbooks-child-runbook)
    + [Erstellen des übergeordneten Runbooks](automation-authoring-runbooks-parent-child-example.md#automation-authoring-runbooks-parent-runbook)
  + [Beispiel 2: Skriptbasiertes Runbook](automation-authoring-runbooks-scripted-example.md)
  + [Weitere Runbook-Beispiele](automation-document-examples.md)
    + [Bereitstellung der VPC-Architektur und der Microsoft Active Directory-Domänencontroller](automation-document-architecture-deployment-example.md)
    + [Wiederherstellen eines Root-Volumes aus dem letzten Snapshot](automation-document-instance-recovery-example.md)
    + [Erstellen eines AMI und einer regionenübergreifenden Kopie](automation-document-backup-maintenance-example.md)
+ [Eingabeparameter erstellen, die Ressourcen auffüllen AWS](populating-input-parameters.md)
+ [Verwenden von Document Builder zur Erstellung von Runbooks](automation-document-builder.md)
  + [Erstellen eines Runbooks mithilfe von Document Builder](automation-document-builder.md#create-runbook)
  + [Erstellen eines Runbooks, das Skripte ausführt](automation-document-builder.md#create-runbook-scripts)
+ [Verwenden von Skripten in Runbooks](automation-document-script-considerations.md)
  + [Berechtigungen für die Verwendung von Runbooks](automation-document-script-considerations.md#script-permissions)
  + [Hinzufügen von Skripts zu Runbooks](automation-document-script-considerations.md#adding-scripts)
  + [Skripteinschränkungen für Runbooks](automation-document-script-considerations.md#script-constraints)
+ [Verwendung bedingter Anweisungen in Runbooks](automation-branch-condition.md)
  + [Arbeiten mit der `aws:branch`-Aktion](automation-branch-condition.md#branch-action-explained)
    + [Erstellen eines `aws:branch`-Schritts in einem Runbook](automation-branch-condition.md#create-branch-action)
      + [Informationen zum Erstellen der Ausgabevariable](automation-branch-condition.md#branch-action-output)
    + [Beispiel `aws:branch`-Runbooks](automation-branch-condition.md#branch-runbook-examples)
    + [Erstellen komplexer verzweigender Automatisierungen mit Operatoren](automation-branch-condition.md#branch-operators)
  + [Beispiele für die Verwendung von bedingten Optionen](automation-branch-condition.md#conditional-examples)
+ [Verwenden von Aktionsausgaben als Eingaben](automation-action-outputs-inputs.md)
  + [Verwendung JSONPath in Runbooks](automation-action-outputs-inputs.md#automation-action-json-path)
+ [Erstellen von Webhook-Integrationen für Automation](creating-webhook-integrations.md)
  + [Erstellen von Integrationen (Konsole)](creating-webhook-integrations.md#creating-integrations-console)
  + [Erstellen von Integrationen (Befehlszeile)](creating-webhook-integrations.md#creating-integrations-commandline)
  + [Erstellen von Webhooks für Integrationen](creating-webhook-integrations.md#creating-webhooks)
+ [Behandeln von Timeouts in Runbooks](automation-handling-timeouts.md)

# Visuelle Designerfahrung für Automation-Runbooks
<a name="automation-visual-designer"></a>

AWS Systems Manager Automation bietet ein visuelles Designerlebnis mit geringem Code-Aufwand, mit dem Sie Automatisierungs-Runbooks erstellen können. Das visuelle Designerlebnis bietet eine drag-and-drop Benutzeroberfläche mit der Option, Ihren eigenen Code hinzuzufügen, sodass Sie Runbooks einfacher erstellen und bearbeiten können. Mit der visuellen Designerfahrung können Sie Folgendes tun:
+ Steuern Sie bedingte Anweisungen.
+ Steuern Sie, wie Eingabe und Ausgabe für jede Aktion gefiltert oder transformiert werden.
+ Konfigurieren Sie die Fehlerbehandlung.
+ Erstellen Sie Prototypen für neue Runbooks.
+ Verwenden Sie Ihre Prototyp-Runbooks als Ausgangspunkt für die lokale Entwicklung mit AWS Toolkit for Visual Studio Code.

Wenn Sie ein Runbook erstellen oder bearbeiten, können Sie über die [Automation-Konsole](https://console.aws.amazon.com/systems-manager/automation/home?region=us-east-1#/) auf die visuelle Designerfahrung zugreifen. Wenn Sie ein Runbook erstellen, überprüft die visuelle Designerfahrung Ihre Arbeit und generiert automatisch Code. Sie können den generierten Code überprüfen oder ihn für die lokale Entwicklung exportieren. Wenn Sie fertig sind, können Sie Ihr Runbook speichern, ausführen und die Ergebnisse in der Systems-Manager-Automation-Konsole überprüfen. 

**Topics**
+ [Übersicht über die Oberfläche](visual-designer-interface-overview.md)
+ [Die visuelle Designerfahrung nutzen](visual-designer-use.md)
+ [Eingaben und Ausgänge konfigurieren](visual-designer-action-inputs-outputs.md)
+ [Fehlerbehandlung bei der visuellen Designerfahrung](visual-designer-error-handling.md)
+ [Tutorial: Ein Runbook mithilfe der visuellen Designerfahrung erstellen](visual-designer-tutorial.md)

# Überblick über die Benutzeroberfläche für visuelle Designerfahrung
<a name="visual-designer-interface-overview"></a>

Die visuelle Designerfahrung für Systems Manager Automation ist ein visueller Workflow-Designer mit geringem Code-Aufwand, mit dem Sie Automation-Runbooks erstellen können.

Lernen Sie die visuelle Designerfahrung anhand eines Überblicks über die Komponenten der Benutzeroberfläche kennen:

![\[Komponenten der visuellen Designerfahrung\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_overview.png)

+ Der **Aktionsbrowser** enthält die Registerkarten **Aktionen** und **Runbooks**. **AWS APIs**
+ Auf der *Arbeitsfläche* können Sie Aktionen per Drag-and-Drop in Ihr Workflow-Diagramm ziehen, die Reihenfolge der Aktionen ändern und Aktionen auswählen, die konfiguriert oder angezeigt werden sollen.
+ Im **Formularfenster** können Sie die Eigenschaften jeder Aktion, die Sie auf der Arbeitsfläche ausgewählt haben, anzeigen und bearbeiten. Wählen Sie den Schalter **Inhalt**, um die YAML- oder JSON-Daten für Ihr Runbook anzuzeigen, wobei die aktuell ausgewählte Aktion hervorgehoben ist. 

Mit **Informationslinks** wird ein Fenster mit Kontextinformationen geöffnet, falls Sie Hilfe benötigen. Diese Bereiche enthalten auch Links zu verwandten Themen in der Systems-Manager-Automation-Dokumentation. 

## Aktionsbrowser
<a name="visual-designer-actions"></a>

Im Aktionsbrowser können Sie **Aktionen** auswählen, die Sie per Drag-and-Drop in Ihr Workflow-Diagramm ziehen möchten. Mit dem Suchfeld oben im Aktionsbrowser können Sie nach allen **Aktionen** suchen. Der **Aktionsbrowser** enthält die folgenden Registerkarten:
+ Die Registerkarte **Aktionen** enthält eine Liste von Automatisierungs-Aktionen, die Sie per Drag-and-Drop in das Workflow-Diagramm Ihres Runbooks auf dem Workflow ziehen können.
+ Die **AWS APIs**Registerkarte enthält eine Liste der Dateien AWS APIs , die Sie per Drag-and-Drop in das Workflow-Diagramm Ihres Runbooks auf der Arbeitsfläche ziehen können.
+ Die Registerkarte **Runbooks** enthält mehrere ready-to-use wiederverwendbare Runbooks als Bausteine, die Sie für eine Vielzahl von Anwendungsfällen verwenden können. Beispielsweise können Sie Runbooks verwenden, um allgemeine Behebungsaufgaben für Amazon-EC2-Instances in Ihrem Workflow durchzuführen, ohne dieselben Aktionen erneut erstellen zu müssen.

![\[Visuelle Designerfahrung – Aktionsbrowser\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_actions_multi_view.png)


## Leinwand
<a name="visual-designer-canvas"></a>

Nachdem Sie eine Aktion ausgewählt haben, die Sie zu Ihrer Automatisierung hinzufügen möchten, ziehen Sie sie auf den Workflow und legen Sie sie in Ihr Workflow-Diagramm ab. Sie können Aktionen auch per Drag-and-Drop an verschiedene Stellen im Workflow Ihres Runbooks verschieben. Wenn Ihr Workflow komplex ist, können Sie ihn möglicherweise nicht vollständig auf der Arbeitsfläche anzeigen. Verwenden Sie die Steuerelemente oben auf der Arbeitsfläche, um die Ansicht zu vergrößern oder zu verkleinern. Um verschiedene Teile eines Workflows anzuzeigen, können Sie das Workflow-Diagramm auf die Arbeitsfläche ziehen. 

Ziehen Sie eine Aktion aus dem Browser **Aktionen** und legen Sie sie in das Workflow-Diagramm Ihres Runbooks ab. Eine Linie zeigt, wo sie in Ihrem Workflow platziert wird. Um die Reihenfolge einer Aktion zu ändern, können Sie sie an eine andere Stelle in Ihrem Workflow ziehen. Die neue Aktion wurde zu Ihrem Workflow hinzugefügt und ihr Code wird automatisch generiert.

![\[Arbeitsfläche für visuelle Designerfahrung\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_canvas.png)


## Formular
<a name="visual-designer-form"></a>

Nachdem Sie Ihrem Runbook-Workflow eine Aktion hinzugefügt haben, können Sie sie so konfigurieren, dass sie Ihrem Anwendungsfall entspricht. Wählen Sie die Aktion aus, die Sie konfigurieren möchten, und die zugehörigen Parameter und Optionen werden im **Formular**-Bereich angezeigt. Sie können den YAML- oder JSON-Code auch sehen, indem Sie den Schalter **Inhalt** auswählen. Der Code, der von Ihnen ausgewählten Aktion zugeordnet ist, hervorgehoben.

![\[Bedienfeld „Visuelle Designerfahrung“\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_form.png)


![\[Inhaltsfeld „Visuelle Designerfahrung“\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_content.png)


## Tastenkombinationen
<a name="visual-designer-keyboard-shortcuts"></a>

Die visuelle Designerfahrung unterstützt die in der folgenden Tabelle aufgeführten Tastenkombinationen.


| Tastaturkürzel | Funktion | 
| --- | --- | 
| Strg\$1Z | Machen Sie den letzten Vorgang rückgängig. | 
| Strg\$1Umschalt\$1Z | Wiederholen Sie den letzten Vorgang. | 
| Alt \$1 C | Zentrieren Sie den Workflow auf der Arbeitsfläche. | 
| Backspace | Entfernen Sie alle ausgewählten Zustände. | 
| Delete | Entfernen Sie alle ausgewählten Zustände. | 
| Strg\$1D | Duplizieren Sie den ausgewählten Zustand. | 

# Die visuelle Designerfahrung nutzen
<a name="visual-designer-use"></a>

Erfahren Sie, wie Sie Runbook-Workflows mithilfe der visuellen Designerfahrung erstellen, bearbeiten und ausführen. Sobald Ihr Workflow fertig ist, können Sie ihn speichern oder exportieren. Sie können die visuelle Designerfahrung auch für Rapid Prototyping nutzen. 

## Einen Runbook-Workflow erstellen
<a name="visual-designer-create-runbook-workflow"></a>

1. Melden Sie sich bei der [Systems-Manager-Automation-Konsole](https://console.aws.amazon.com/systems-manager/automation/home?region=us-east-1#/) an.

1. Wählen Sie **Runbook erstellen**.

1. Geben Sie im Feld **Name** einen Namen für Ihr Runbook ein, z. B. `MyNewRunbook`.

1. Wählen Sie neben der Option **Design** und **Code** das Stiftsymbol aus und geben Sie einen Namen für Ihr Runbook ein.

Sie können jetzt einen Workflow für Ihr neues Runbook entwerfen.

## Ein Runbook entwerfen
<a name="visual-designer-build"></a>

 Um einen Runbook-Workflow mithilfe der visuellen Designerfahrung zu entwerfen, ziehen Sie eine Automatisierungs-Aktion aus dem Browser **Aktionen** auf die Arbeitsfläche und platzieren sie an der gewünschten Stelle im Workflow Ihres Runbooks. Sie können Aktionen in Ihrem Workflow auch neu anordnen, indem Sie sie an eine andere Position ziehen. Wenn Sie eine Aktion auf die Arbeitsfläche ziehen, wird an der Stelle, an der Sie die Aktion in Ihrem Workflow ablegen können, eine Linie angezeigt. Nachdem eine Aktion auf der Arbeitsfläche abgelegt wurde, wird ihr Code automatisch generiert und dem Inhalt Ihres Runbooks hinzugefügt.

Wenn Sie den Namen der Aktion kennen, die Sie hinzufügen möchten, verwenden Sie das Suchfeld oben im Browser **Aktionen**, um die Aktion zu finden.

Nachdem Sie eine Aktion auf der Arbeitsfläche abgelegt haben, konfigurieren Sie sie mithilfe des Fensters **Formular** auf der rechten Seite. Dieser Bereich enthält die Registerkarten **Allgemein**, **Eingaben**, **Ausgaben** und **Konfiguration** für jede Automatisierungs-Aktion oder API-Aktion, die Sie auf der Arbeitsfläche platzieren. Die Registerkarte **Allgemein** enthält beispielsweise die folgenden Abschnitte:
+ Der **Schrittname** identifiziert den Schritt. Geben Sie einen eindeutigen Wert für den Schrittnamen an.
+ Mithilfe der **Beschreibung** können Sie beschreiben, was die Aktion im Workflow Ihres Runbooks bewirkt.

Die Registerkarte **Eingaben** enthält Felder, die je nach Aktion variieren. Die `aws:executeScript`-Automatisierungs-Aktion enthält beispielsweise die folgenden Abschnitte:
+ Die **Laufzeit** ist die Sprache, die zum Ausführen des bereitgestellten Skripts verwendet wird.
+ Der **Handler** ist der Name Ihrer Funktion. Sie müssen sicherstellen, dass die im Handler definierte Funktion über zwei Parameter verfügt: `events` und `context`. Die PowerShell-Laufzeit unterstützt diesen Parameter nicht. 
+ Das **Skript** ist ein eingebettetes Skript, das während des Workflows ausgeführt werden soll.
+ (Optional) Der **Anhang** ist für eigenständige Skripts oder ZIP-Dateien vorgesehen, die durch die Aktion aufgerufen werden können. Dieser Parameter muss für JSON-Runbooks angegeben werden.

Auf der Registerkarte **Ausgaben** können Sie die Werte angeben, die Sie aus einer Aktion ausgeben möchten. Sie können in späteren Aktionen Ihres Workflows auf Ausgabewerte verweisen oder zu Protokollierungszwecken Ausgaben aus Aktionen generieren. Nicht alle Aktionen verfügen über eine Registerkarte **Ausgaben**, da nicht alle Aktionen Ausgaben unterstützen. Die `aws:pause`-Aktion unterstützt beispielsweise keine Ausgaben. Für Aktionen, die Ausgaben unterstützen, besteht die Registerkarte **Ausgaben** aus den folgenden Abschnitten:
+ Der **Name** ist der Name, der für den Ausgabewert verwendet werden soll. Sie können in späteren Aktionen Ihres Workflows auf Ausgaben verweisen.
+ Der **Selector** ist eine JSONPath-Ausdruckszeichenfolge, die mit `"$."` beginnt und zum Auswählen einer oder mehrerer Komponenten innerhalb eines JSON-Elements verwendet wird.
+ Der **Typ** ist der Datentyp für den Ausgabewert. Beispielsweise ein Datentyp `String` oder `Integer`.

Die Registerkarte **Konfiguration** enthält Eigenschaften und Optionen, die von allen Automatisierungs-Aktionen verwendet werden können. Die Aktion besteht aus folgenden Abschnitten:
+ Die Eigenschaft **Max. Versuche** gibt an, wie oft eine Aktion wiederholt wird, wenn sie fehlschlägt.
+ Die Eigenschaft **Timeout in Sekunden** gibt den Timeout-Wert für eine Aktion an.
+ Die Eigenschaft **Ist kritisch** bestimmt, ob der Aktionsfehler die gesamte Automatisierung stoppt.
+ Die Eigenschaft **Nächster Schritt** bestimmt, welche Aktion die Automatisierung als Nächstes im Runbook ausführt.
+ Die Eigenschaft **Schlägt fehl** bestimmt, welche Aktion die Automatisierung im Runbook als Nächstes ausführt, falls die Aktion fehlschlägt.
+ Die Eigenschaft **Wird abgebrochen** bestimmt, welche Aktion die Automatisierung als Nächstes im Runbook ausführt, wenn die Aktion von einem Benutzer abgebrochen wird.

Um eine Aktion zu löschen, können Sie die Rücktaste, die Werkzeugleiste über der Arbeitsfläche, verwenden oder mit der rechten Maustaste klicken und **Aktion löschen** wählen.

Wenn Ihr Workflow wächst, passt er möglicherweise nicht in die Arbeitsfläche. Um den Workflow an die Arbeitsfläche anzupassen, führen Sie eine der folgenden Optionen aus: 
+ Verwenden Sie die Steuerelemente an den Seitenbereichen, um die Größe der Bedienfelder zu ändern oder sie zu schließen.
+ Verwenden Sie die Werkzeugleiste oben auf der Leinwand, um das Workflow-Diagramm zu vergrößern oder zu verkleinern.

## Ihr Runbook aktualisieren
<a name="visual-designer-update-runbook"></a>

Sie können einen vorhandenen Runbook-Workflow aktualisieren, indem Sie eine neue Version Ihres Runbook erstellen. Aktualisierungen Ihrer Runbooks können mithilfe der visuellen Designerfahrung oder durch direkte Bearbeitung des Codes vorgenommen werden. Um ein vorhandenes Runbook zu aktualisieren, gehen Sie wie folgt vor:

1. Melden Sie sich bei der [Systems-Manager-Automation-Konsole](https://console.aws.amazon.com/systems-manager/automation/home?region=us-east-1#/) an.

1. Wählen Sie das Runbooks, das Sie aktualisieren möchten.

1. Wählen Sie **Create new version (Neue Version erstellen)**aus.

1. Die visuelle Designerfahrung besteht aus zwei Bereichen: einem Codebereich und einem visuellen Workflow-Bereich. Wählen Sie im visuellen Workflow-Bereich die Option **Design** aus, um Ihren Workflow mit der visuellen Designerfahrung zu bearbeiten. Wenn Sie fertig sind, wählen Sie **Neue Version erstellen** aus, um Ihre Änderungen zu speichern und den Vorgang zu beenden.

1. (Optional) Verwenden Sie den Codebereich, um den Runbook-Inhalt in YAML oder JSON zu bearbeiten.

## Ihr Runbook exportieren
<a name="visual-designer-export-runbook"></a>

Gehen Sie wie folgt vor, um den Workflow-YAML- oder JSON-Code Ihres Runbooks sowie ein Diagramm Ihres Workflows zu exportieren: 

1. Wählen Sie Ihr Runbook in der **Dokumenten**konsole aus.

1. Wählen Sie **Create new version (Neue Version erstellen)**aus.

1. Wählen Sie in der Dropdownliste **Aktionen** aus, ob Sie das Diagramm oder das Runbook exportieren möchten und welches Format Sie bevorzugen.

# Konfigurieren von Eingaben und Ausgaben für Ihre Aktionen
<a name="visual-designer-action-inputs-outputs"></a>

Jede Automatisierungs-Aktion reagiert auf der Grundlage von Eingaben, die sie empfängt. In den meisten Fällen geben Sie die Ausgabe dann an die nachfolgenden Aktionen weiter. In der visuellen Designerfahrung können Sie die Eingabe- und Ausgabedaten einer Aktion auf den Registerkarten **Eingaben** und **Ausgaben** des **Formularfensters** konfigurieren.

Weitere Informationen zum Definieren und Verwenden von Ausgaben für Automatisierungs-Aktionen finden Sie unter [Verwenden von Aktionsausgaben als Eingaben](automation-action-outputs-inputs.md). 

## Eingabedaten für eine Aktion angeben
<a name="providing-input"></a>

Jede Automatisierungs-Aktion hat eine oder mehrere Eingaben, für die Sie einen Wert angeben müssen. Der Wert, den Sie für die Eingabe einer Aktion angeben, wird durch den Datentyp und das Format bestimmt, die von der Aktion akzeptiert werden. Für die `aws:sleep`-Aktionen ist beispielsweise ein Zeichenfolgenwert im ISO-8601-Format für die `Duration`-Eingabe erforderlich.

Im Allgemeinen verwenden Sie im Workflow Ihres Runbooks Aktionen, die Ausgaben zurückgeben, die Sie in nachfolgenden Aktionen verwenden möchten. Es ist wichtig, dass Sie sicherstellen, dass Ihre Eingabewerte korrekt sind, um Fehler im Workflow Ihres Runbooks zu vermeiden. Eingabewerte sind auch deshalb wichtig, weil sie bestimmen, ob die Aktion die erwartete Ausgabe zurückgibt. Wenn Sie die `aws:executeAwsApi`-Aktion verwenden, sollten Sie beispielsweise sicherstellen, dass Sie den richtigen Wert für den API-Vorgang angeben.

## Die Ausgabedaten für eine Aktion definieren
<a name="defining-output"></a>

Einige Automatisierungs-Aktionen geben eine Ausgabe zurück, nachdem sie ihre definierten Operationen ausgeführt haben. Aktionen, die Ausgaben zurückgeben, haben entweder vordefinierte Ausgaben oder ermöglichen es Ihnen, die Ausgaben selbst zu definieren. Die `aws:createImage`-Aktion hat beispielsweise vordefinierte Ausgaben, die `ImageId` und `ImageState` zurückgeben. Im Vergleich dazu können Sie mit der `aws:executeAwsApi`-Aktion die Ausgaben definieren, die Sie von der angegebenen API-Operation erwarten. Daher können Sie einen oder mehrere Werte aus einer einzelnen API-Operation zurückgeben, um sie in nachfolgenden Aktionen zu verwenden.

Um Ihre eigenen Ausgaben für eine Automatisierungs-Aktion zu definieren, müssen Sie einen Namen der Ausgabe, den Datentyp und den Ausgabewert angeben. Um die `aws:executeAwsApi`-Aktion weiterhin als Beispiel zu verwenden, nehmen wir an, Sie rufen den `DescribeInstances`-API-Vorgang von Amazon EC2 aus auf. In diesem Beispiel möchten Sie den `State` einer Amazon-EC2-Instance zurückgeben oder ausgeben und den Workflow Ihres Runbooks auf der Grundlage der Ausgabe verzweigen. Sie geben der Ausgabe **InstanceState** einen Namen und verwenden den **String**-Datentyp. 

Das Verfahren zur Definition des tatsächlichen Werts der Ausgabe unterscheidet sich je nach Aktion. Wenn Sie beispielsweise die `aws:executeScript`-Aktion verwenden, müssen Sie `return`-Anweisungen in Ihren Funktionen verwenden, um Daten für Ihre Ausgaben bereitzustellen. Bei anderen Aktionen wie `aws:executeAwsApi`, `aws:waitForAwsResourceProperty` und `aws:assertAwsResourceProperty` ist `Selector` erforderlich. `Selector` oder `PropertySelector`, wie sich einige Aktionen darauf beziehen, ist eine JSONPath-Zeichenfolge, die verwendet wird, um die JSON-Antwort aus einer API-Operation zu verarbeiten. Es ist wichtig zu verstehen, wie das JSON-Antwortobjekt aus einer API-Operation strukturiert ist, damit Sie den richtigen Wert für Ihre Ausgabe auswählen können. Sehen Sie sich das folgende Beispiel für eine JSON-Antwort an, indem Sie die zuvor erwähnte `DescribeInstances`-API-Operation verwenden:

```
{
  "reservationSet": {
    "item": {
      "reservationId": "r-1234567890abcdef0",
      "ownerId": 123456789012,
      "groupSet": "",
      "instancesSet": {
        "item": {
          "instanceId": "i-1234567890abcdef0",
          "imageId": "ami-bff32ccc",
          "instanceState": {
            "code": 16,
            "name": "running"
          },
          "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal",
          "dnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com",
          "reason": "",
          "keyName": "my_keypair",
          "amiLaunchIndex": 0,
          "productCodes": "",
          "instanceType": "t2.micro",
          "launchTime": "2018-05-08T16:46:19.000Z",
          "placement": {
            "availabilityZone": "eu-west-1c",
            "groupName": "",
            "tenancy": "default"
          },
          "monitoring": {
            "state": "disabled"
          },
          "subnetId": "subnet-56f5f000",
          "vpcId": "vpc-11112222",
          "privateIpAddress": "192.168.1.88",
          "ipAddress": "54.194.252.215",
          "sourceDestCheck": true,
          "groupSet": {
            "item": {
              "groupId": "sg-e4076000",
              "groupName": "SecurityGroup1"
            }
          },
          "architecture": "x86_64",
          "rootDeviceType": "ebs",
          "rootDeviceName": "/dev/xvda",
          "blockDeviceMapping": {
            "item": {
              "deviceName": "/dev/xvda",
              "ebs": {
                "volumeId": "vol-1234567890abcdef0",
                "status": "attached",
                "attachTime": "2015-12-22T10:44:09.000Z",
                "deleteOnTermination": true
              }
            }
          },
          "virtualizationType": "hvm",
          "clientToken": "xMcwG14507example",
          "tagSet": {
            "item": {
              "key": "Name",
              "value": "Server_1"
            }
          },
          "hypervisor": "xen",
          "networkInterfaceSet": {
            "item": {
              "networkInterfaceId": "eni-551ba000",
              "subnetId": "subnet-56f5f000",
              "vpcId": "vpc-11112222",
              "description": "Primary network interface",
              "ownerId": 123456789012,
              "status": "in-use",
              "macAddress": "02:dd:2c:5e:01:69",
              "privateIpAddress": "192.168.1.88",
              "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal",
              "sourceDestCheck": true,
              "groupSet": {
                "item": {
                  "groupId": "sg-e4076000",
                  "groupName": "SecurityGroup1"
                }
              },
              "attachment": {
                "attachmentId": "eni-attach-39697adc",
                "deviceIndex": 0,
                "status": "attached",
                "attachTime": "2018-05-08T16:46:19.000Z",
                "deleteOnTermination": true
              },
              "association": {
                "publicIp": "54.194.252.215",
                "publicDnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com",
                "ipOwnerId": "amazon"
              },
              "privateIpAddressesSet": {
                "item": {
                  "privateIpAddress": "192.168.1.88",
                  "privateDnsName": "ip-192-168-1-88.eu-west-1.compute.internal",
                  "primary": true,
                  "association": {
                    "publicIp": "54.194.252.215",
                    "publicDnsName": "ec2-54-194-252-215.eu-west-1.compute.amazonaws.com",
                    "ipOwnerId": "amazon"
                  }
                }
              },
              "ipv6AddressesSet": {
                "item": {
                  "ipv6Address": "2001:db8:1234:1a2b::123"
                }
              }
            }
          },
          "iamInstanceProfile": {
            "arn": "arn:aws:iam::123456789012:instance-profile/AdminRole",
            "id": "ABCAJEDNCAA64SSD123AB"
          },
          "ebsOptimized": false,
          "cpuOptions": {
            "coreCount": 1,
            "threadsPerCore": 1
          }
        }
      }
    }
  }
}
```

Im JSON-Antwortobjekt ist die Instance `State` in einem `Instances`-Objekt verschachtelt, das im `Reservations`-Objekt verschachtelt ist. Um den Wert der Instance `State` zurückzugeben, verwenden Sie die folgende Zeichenfolge für `Selector`, damit der Wert in unserer Ausgabe verwendet werden kann: **\$1.Reservations[0].Instances[0].State.Name**.

Um in nachfolgenden Aktionen des Workflows Ihres Runbooks auf einen Ausgabewert zu verweisen, wird das folgende Format verwendet: `{{ StepName.NameOfOutput }}`. Beispiel, **\$1\$1 GetInstanceState.InstanceState \$1\$1**. In der visuellen Designerfahrung können Sie mithilfe der Dropdownliste für die Eingabe Ausgabewerte auswählen, die in nachfolgenden Aktionen verwendet werden sollen. Wenn Sie Ausgaben in nachfolgenden Aktionen verwenden, muss der Datentyp der Ausgabe mit dem Datentyp für die Eingabe übereinstimmen. In diesem Beispiel ist die `InstanceState`-Ausgabe `String`. Um den Wert in der Eingabe einer nachfolgenden Aktion zu verwenden, muss die Eingabe daher `String` akzeptieren.

# Fehlerbehandlung bei der visuellen Designerfahrung
<a name="visual-designer-error-handling"></a>

Wenn eine Aktion einen Fehler meldet, stoppt Automation standardmäßig den Workflow des Runbooks vollständig. Das liegt daran, dass der Standardwert für die `onFailure`-Eigenschaft für alle Aktionen `Abort` ist. Sie können konfigurieren, wie Automation mit Fehlern im Workflow Ihres Runbooks umgeht. Auch wenn Sie die Fehlerbehandlung konfiguriert haben, können einige Fehler dennoch dazu führen, dass eine Automatisierung fehlschlägt. Weitere Informationen finden Sie unter [Fehlerbehebung für Systems Manager Automation.](automation-troubleshooting.md). In der visuellen Designerfahrung konfigurieren Sie die Fehlerbehandlung im Bereich **Konfiguration**.

![\[Fehlerbehandlungsoptionen\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_error_handling.png)


## Bei einem Fehler die Aktion erneut versuchen
<a name="retry-actions"></a>

Um eine Aktion im Falle eines Fehlers erneut zu versuchen, geben Sie einen Wert für die Eigenschaft **Max. Versuche** an. Der Standardwert ist 1. Wenn Sie einen Wert größer als 1 angeben, gilt die Aktion erst dann als fehlgeschlagen, wenn alle Wiederholungsversuche fehlgeschlagen sind.

## Timeouts
<a name="timeout-seconds"></a>

Sie können ein Timeout für Aktionen konfigurieren, um festzulegen, wie viele Sekunden Ihre Aktion maximal ausgeführt werden kann, bevor sie fehlschlägt. Um ein Timeout zu konfigurieren, geben Sie in der Eigenschaft **Timeout-Sekunden** die Anzahl der Sekunden ein, die Ihre Aktion warten soll, bis die Aktion fehlschlägt. Wenn das Timeout erreicht ist und die Aktion einen Wert von `Max attempts` hat, der größer als 1 ist, gilt der Schritt erst dann als Timeout, wenn die Wiederholungsversuche abgeschlossen sind.

## Fehlgeschlagene Aktionen
<a name="failure-actions"></a>

Wenn eine Aktion fehlschlägt, stoppt Automation standardmäßig den Workflow des Runbooks vollständig. Sie können dieses Verhalten ändern, indem Sie einen alternativen Wert für die Eigenschaft **Bei einem Ausfall** der Aktionen in Ihrem Runbook angeben. Wenn Sie möchten, dass der Workflow mit dem nächsten Schritt im Runbook fortfährt, wählen Sie **Weiter** aus. Wenn der Workflow zu einem anderen nachfolgenden Schritt im Runbook springen soll, wählen Sie **Schritt** aus und geben Sie dann den Namen des Schritts ein.

## Abgebrochene Aktionen
<a name="cancel-actions"></a>

Wenn eine Aktion von einem Benutzer abgebrochen wird, stoppt Automation standardmäßig den Workflow des Runbooks vollständig. Sie können dieses Verhalten ändern, indem Sie einen alternativen Wert für die Eigenschaft **Bei Abbruch** der Aktionen in Ihrem Runbook angeben. Wenn der Workflow zu einem anderen nachfolgenden Schritt im Runbook springen soll, wählen Sie **Schritt** aus und geben Sie dann den Namen des Schritts ein.

## Kritische Aktionen
<a name="critical-actions"></a>

Sie können eine Aktion als *kritisch* kennzeichnen, was bedeutet, dass sie den allgemeinen Berichtsstatus Ihrer Automatisierung bestimmt. Wenn ein Schritt mit dieser Bezeichnung fehlschlägt, meldet Automation den Endstatus als `Failed` unabhängig vom Erfolg anderer Aktionen. Um eine Aktion als kritisch zu konfigurieren, belassen Sie den Standardwert **Richtig** für die Eigenschaft **Ist kritisch**.

## Aktionen beenden
<a name="end-actions"></a>

Die Eigenschaft **Ist am Ende** stoppt eine Automatisierung am Ende der angegebenen Aktion. Der Standardwert dieser Eigenschaft ist `false`. Wenn Sie diese Eigenschaft für eine Aktion konfigurieren, stoppt die Automatisierung unabhängig davon, ob die Aktion erfolgreich ist oder fehlschlägt. Diese Eigenschaft wird am häufigsten bei `aws:branch`-Aktionen verwendet, um unerwartete oder undefinierte Eingabewerte zu verarbeiten. Das folgende Beispiel zeigt ein Runbook, das einen Instance-Status von entweder `running`, `stopping` oder `stopped` erwartet. Wenn sich eine Instance in einem anderen Status befindet, wird die Automatisierung beendet.

![\[Die visuelle Designerfahrung ist das letzte Beispiel\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_is_end_example.png)


# Tutorial: Ein Runbook mithilfe der visuellen Designerfahrung erstellen
<a name="visual-designer-tutorial"></a>

In diesem Tutorial lernen Sie die Grundlagen für die Arbeit mit der visuellen Designerfahrung von Systems Manager Automation. In der visuellen Designerfahrung können Sie ein Runbook erstellen, das mehrere Aktionen verwendet. Sie verwenden das Drag-and-Drop-Feature, um Aktionen auf der Arbeitsfläche anzuordnen. Sie suchen auch nach diesen Aktionen, wählen sie aus und konfigurieren sie. Anschließend können Sie den automatisch generierten YAML-Code für den Workflow Ihres Runbooks anzeigen, die visuelle Designerfahrung beenden, das Runbook ausführen und die Ausführungsdetails überprüfen.

In diesem Tutorial erfahren Sie auch, wie Sie das Runbook aktualisieren und die neue Version anzeigen. Am Ende des Tutorials führen Sie einen Bereinigungsschritt durch und löschen Ihr Runbook.

Nachdem Sie dieses Tutorial abgeschlossen haben, wissen Sie, wie Sie mithilfe der visuellen Designerfahrung ein Runbook erstellen können. Sie werden auch wissen, wie Sie Ihr Runbook aktualisieren, ausführen und löschen.

**Anmerkung**  
Bevor Sie mit diesem Tutorial beginnen, stellen Sie sicher, dass Sie [Einrichten der Automatisierung](automation-setup.md) abschließen.

**Topics**
+ [Schritt 1: Zur visuellen Designerfahrung navigieren](#navigate-console)
+ [Schritt 2: Einen Workflow erstellen](#create-workflow)
+ [Schritt 3: Den automatisch generierten Code überprüfen](#view-generated-code)
+ [Schritt 4: Ihr neues Runbook ausführen](#use-tutorial-runbook)
+ [Schritt 5: Bereinigen](#cleanup-tutorial-runbook)

## Schritt 1: Zur visuellen Designerfahrung navigieren
<a name="navigate-console"></a>

1. Melden Sie sich bei der [Systems-Manager-Automation-Konsole](https://console.aws.amazon.com/systems-manager/automation/home?region=us-east-1#/) an.

1. Wählen Sie **Automation-Runbook erstellen**.

## Schritt 2: Einen Workflow erstellen
<a name="create-workflow"></a>

In der visuellen Designerfahrung ist ein Workflow eine grafische Darstellung Ihres Runbooks auf der Arbeitsfläche. Sie können die visuelle Designerfahrung verwenden, um die einzelnen Aktionen Ihres Runbooks zu definieren, zu konfigurieren und zu untersuchen.

**So erstellen Sie ein Workflow**

1. Wählen Sie neben der Option **Design** und **Code** das Stiftsymbol aus und geben Sie einen Namen für Ihr Runbook ein. Geben Sie für dieses Tutorial **VisualDesignExperienceTutorial** ein.  
![\[Visuelle Designerfahrung – Ihr Runbook benennen\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_tutorial_name.png)

1. Erweitern Sie im Bereich **Dokumentattribute** des Bedienfelds **Formular** die Dropdownliste **Eingabeparameter** und wählen Sie **Parameter hinzufügen** aus.

   1. Geben Sie im Feld **Parametername** **InstanceId** ein.

   1. Wählen Sie in der Dropdownliste **Typ** die Option **AWS::EC2::Instance**.

   1. Wählen Sie den Schalter **Erforderlich** aus.  
![\[Einen Parameter für Ihr Runbook erstellen\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_actions_tutorial_parameter.png)

1. Geben Sie im **AWS APIs**Browser **DescribeInstances** in die Suchleiste ein.

1. Ziehen Sie eine **Amazon EC2 — DescribeInstances** Aktion auf die leere Leinwand.

1. Geben Sie für **Schrittname** einen Wert ein. Verwenden Sie in diesem Tutorial **GetInstanceState** als Namen.  
![\[Wählen Sie eine Amazon-EC2-API-Aktion zum Beschreiben von Instances aus.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_tutorial_api_action.png)

   1. Erweitern Sie das Dropdown-Menü **Zusätzliche Eingaben** und geben Sie im Feld **Eingabename** **InstanceIds** ein.

   1. Wählen Sie die Registerkarte **Eingaben**.

   1. Wählen Sie im Feld **Eingabewert** die **InstanceId** Dokumenteingabe aus. Dies verweist auf den Wert des Eingabeparameters, den Sie zu Beginn des Verfahrens erstellt haben. Da die **InstanceIds**Eingabe für die `DescribeInstances` Aktion `StringList` Werte akzeptiert, müssen Sie die **InstanceId**Eingabe in eckige Klammern setzen. Das YAML für den **Eingabewert sollte dem Folgenden entsprechen**: **['\$1\$1 InstanceId \$1\$1']**.

   1. Wählen Sie auf der Registerkarte **Ausgaben** die Option **Ausgabe hinzufügen** aus und geben Sie **InstanceState** in das Feld **Name** ein.

   1. Geben Sie **\$1.Reservations[0].Instances[0].State.Name** im Feld **Auswahl** ein.

   1. Wählen Sie in der Dropdownliste **Typ** die Option **Zeichenfolge** aus.

1. Ziehen Sie eine **Branch-Aktion** aus dem **Aktionsbrowser** und legen Sie sie unter dem **`GetInstanceState`**-Schritt ab. 

1. Geben Sie für **Schrittname** einen Wert ein. Verwenden Sie in diesem Tutorial den Namen `BranchOnInstanceState`.

   Um die Branch-Logik zu definieren, führen Sie die folgenden Schritte aus:

   1. Wählen Sie den **`Branch`**-Status auf der Arbeitsfläche aus. Wählen Sie dann unter **Eingaben** und **Wahlmöglichkeiten** das Stiftsymbol aus, um **Regel \$11** zu bearbeiten.

   1. Wählen Sie **Bedingungen hinzufügen**.

   1. Wählen Sie im Dialogfeld **Bedingungen für Regel \$11** die **GetInstanceState.InstanceState**-Schrittausgabe aus der Dropdownliste **Variable** aus.

   1. Wählen Sie für **Operator** die Option **Ist gleich** aus.

   1. Wählen Sie als **Wert** **Zeichenfolge** aus der Dropdown-Liste aus. Geben Sie **stopped** ein.  
![\[Definieren Sie eine Bedingung für eine Branch-Aktion.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_tutorial_condition.png)

   1. Wählen Sie **Bedingungen speichern** aus.

   1. Wählen Sie **Neue Auswahlregel hinzufügen** aus.

   1. Wählen Sie **Bedingungen hinzufügen** für **Regel \$12**.

   1. Wählen Sie im Dialogfeld **Bedingungen für Regel \$12** die **GetInstanceState.InstanceState**-Schrittausgabe aus der Dropdownliste **Variable** aus.

   1. Wählen Sie für **Operator** die Option **Ist gleich** aus.

   1. Wählen Sie als **Wert** **Zeichenfolge** aus der Dropdown-Liste aus. Geben Sie **stopping** ein.

   1. Wählen Sie **Bedingungen speichern** aus.

   1. Wählen Sie **Neue Auswahlregel hinzufügen** aus.

   1. Wählen Sie für **Regel \$13** **Bedingungen hinzufügen**.

   1. Wählen Sie im Dialogfeld **Bedingungen für Regel \$13** die **GetInstanceState.InstanceState**-Schrittausgabe aus der Dropdownliste **Variable** aus.

   1. Wählen Sie für **Operator** die Option **Ist gleich** aus.

   1. Wählen Sie als **Wert** **Zeichenfolge** aus der Dropdown-Liste aus. Geben Sie **running** ein.

   1. Wählen Sie **Bedingungen speichern** aus.

   1. Wählen Sie in der **Standardregel** für den **Standardschritt** die Option **Gehe zum Ende** aus.

1. Ziehen Sie eine Aktion „**Instanzstatus ändern**“ in das leere Feld „**Aktion hierher ziehen**“ unter dem Feld **\$1\$1 GetInstanceState. InstanceState \$1\$1 == Zustand „gestoppt“**.

   1. Geben Sie als **Schrittnamen** **StartInstance** ein.

   1. Wählen Sie auf der Registerkarte „**Eingaben**“ unter „**Instanz IDs**“ den Eingabewert für **InstanceId**das Dokument aus der Dropdownliste aus.

   1. Geben Sie für den **gewünschten Status** **`running`** an.

1. Ziehen Sie eine Aktion „**Auf AWS Ressource warten**“ in das leere Feld **Aktion hierher ziehen** unter dem Feld **\$1\$1 GetInstanceState. InstanceState \$1\$1 == Zustand „stoppt“**.

1. Geben Sie für **Schrittname** einen Wert ein. Verwenden Sie in diesem Tutorial den Namen `WaitForInstanceStop`.

   1. Wählen Sie für das Feld **Service** **Amazon EC2** aus.

   1. Wählen Sie für das **API-Feld **DescribeInstances****.

   1. Geben Sie für das Feld **Eigenschaftsauswahl** den Wert **\$1.Reservations[0].Instances[0].State.Name** ein.

   1. Geben **`["stopped"]`** Sie für den Parameter **Gewünschte Werte** ein.

   1. Wählen Sie auf der Registerkarte „**Konfiguration**“ der **WaitForInstanceStop**Aktion die Option „**Nächster Schritt**“ **StartInstance**aus.

1. Ziehen Sie die Aktion **„Befehl auf Instanzen ausführen**“ in das leere Feld **Aktion hierher ziehen** unter **\$1\$1 GetInstanceState. InstanceState \$1\$1 == Zustand „läuft“**.

1. Geben Sie als **Schrittnamen** **SayHello** ein.

   1. Geben Sie auf der Registerkarte **Eingaben** den Wert **AWS-RunShellScript** für den Parameter **Dokumentname** ein.

   1. Wählen Sie für **InstanceIds**den **InstanceId**Dokumenteingabewert aus der Dropdownliste aus.

   1. Erweitern Sie das Dropdownmenü **Zusätzliche Eingaben** und wählen Sie im Dropdownmenü **Eingabename** die Option **Parameter** aus.

   1. Geben Sie im Feld **Eingabewert** **`{"commands": "echo 'Hello World'"}`** ein.

1. Prüfen Sie das fertige Runbook auf der Arbeitsfläche und wählen Sie **Runbook erstellen** aus, um das Tutorial-Runbook zu speichern.  
![\[Überprüfen und erstellen Sie das Runbook.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/visual_designer_tutorial_complete.png)

## Schritt 3: Den automatisch generierten Code überprüfen
<a name="view-generated-code"></a>

Wenn Sie Aktionen aus dem Browser **Aktion** auf die Arbeitsfläche ziehen und dort ablegen, erstellt die visuelle Designerfahrung automatisch den YAML- oder JSON-Inhalt Ihres Runbooks in Echtzeit. Sie können diesen Code anzeigen und bearbeiten. Um den automatisch generierten Code anzuzeigen, wählen Sie **Code** für die Umschalter **Design** und **Code** aus.

## Schritt 4: Ihr neues Runbook ausführen
<a name="use-tutorial-runbook"></a>

Nachdem Sie Ihr Runbook erstellt haben, können Sie die Automatisierung ausführen.

**So führen Sie Ihr neues Automation-Runbook aus**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich **Automatisierung** und **Automatisierung ausführen** aus.

1. Wählen Sie in der Liste **Automation-Dokument** ein Runbook. Wählen Sie eine oder mehrere Optionen im Bereich **Dokumentkategorien**, um SSM-Dokumente nach ihrem Zweck zu filtern. Um ein Runbook anzuzeigen, das Sie besitzen, wählen Sie die **Im Besitz von mir**-Registerkarte. Um ein Runbook anzuzeigen, das für Ihr Konto freigegeben ist, wählen Sie die Registerkarte **Mit mir geteilt**. Um alle Runbooks anzuzeigen, wählen Sie die Registerkarte **Alle Dokumente**.
**Anmerkung**  
Sie können Informationen zu einem Runbook einsehen, indem Sie den Runbook-Namen auswählen.

1. Überprüfen Sie im Abschnitt **Dokument-Details**, ob **Dokumentversion** auf die Version gesetzt ist, die Sie ausführen möchten. Das System bietet die folgenden Versionsoptionen: 
   + **Standardversion zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird und eine neue Standardversion zugewiesen ist.
   + **Letzte Version zur Laufzeit** – Wählen Sie diese Option aus, wenn das Automation-Runbook regelmäßig aktualisiert wird, und Sie die Version auszuführen möchten, die zuletzt aktualisiert wurde.
   + **1 (Standard)** – Wählen Sie diese Option zur Ausführung der ersten Version des Dokuments, welches der Standard ist.

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

1. Klicken Sie auf der Seite **Automation-Runbook ausführen** auf **Einfache Ausführung**.

1. Geben Sie im Abschnitt **Eingabeparameter** die erforderlichen Eingaben an. Optional können Sie eine IAM-Dienstrolle aus der **AutomationAssumeRole**Liste auswählen.

1. (Optional) Wählen Sie einen CloudWatch Amazon-Alarm aus, der auf Ihre Automatisierung zur Überwachung angewendet werden soll. Um Ihrer Automatisierung einen CloudWatch Alarm zuzuweisen, muss der IAM-Principal, der die Automatisierung startet, über die Genehmigung für die `iam:createServiceLinkedRole` Aktion verfügen. Weitere Informationen zu CloudWatch Alarmen finden Sie unter [ CloudWatchAmazon-Alarme verwenden](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html). Wenn die Automatisierung gestoppt wird, wird Ihr Alarm aktiviert. Wenn Sie AWS CloudTrail verwenden, sehen Sie den API-Aufruf in Ihrem Trail. 

1. Wählen Sie **Ausführen**. 

## Schritt 5: Bereinigen
<a name="cleanup-tutorial-runbook"></a>

**So löschen Sie Ihr Runbook**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie die Registerkarte **In meinem Besitz** aus.

1. Suchen Sie das **VisualDesignExperienceTutorial**Runbook.

1. Wählen Sie die Schaltfläche auf der Dokumentkartenseite aus und wählen Sie dann in der Dropdownliste **Aktionen** die Option **Dokument löschen** aus.

# Erstellen von Automation-Runbooks
<a name="automation-authoring-runbooks"></a>

Jedes Runbook in Automation, ein Tool in AWS Systems Manager, definiert eine Automatisierung. Automatisierungs-Runbooks definieren die Aktionen, die während einer Automatisierung ausgeführt werden. Im Runbook-Inhalt definieren Sie die Eingabeparameter, Ausgaben und Aktionen, die Systems Manager für Ihre verwalteten Instanzen und AWS Ressourcen ausführt. 

Automatisierung umfasst mehrere vordefinierte Runbooks, die Sie verwenden können, um allgemeine Aufgaben wie das Neustarten einer oder mehrerer Amazon Elastic Compute Cloud (Amazon EC2)-Instances oder das Erstellen eines Amazon Machine Image (AMI) auszuführen. Ihre Anwendungsfälle können jedoch über die Funktionen der vordefinierten Runbooks hinausgehen. In diesem Fall können Sie eigene Runbooks erstellen und an Ihre Bedürfnisse anpassen.

Ein Runbook besteht aus Automatisierungsaktionen, Parametern für diese Aktionen und Eingabeparametern, die Sie angeben. Der Inhalt eines Runbooks wird entweder in YAML oder JSON geschrieben. Wenn Sie mit YAML oder JSON nicht vertraut sind, empfehlen wir die Verwendung des visuellen Designers oder das Erlernen mehr über eine der Auszeichnungssprachen, bevor Sie versuchen, Ihr eigenes Runbook zu erstellen. Weitere Informationen zum visuellen Designer finden Sie unter [Visuelle Designerfahrung für Automation-Runbooks](automation-visual-designer.md).

Die folgenden Abschnitten helfen Ihnen, Ihr erstes Runbook erstellen.

## Identifizieren Sie Ihren Anwendungsfall
<a name="automation-authoring-runbooks-use-case"></a>

Der erste Schritt beim Erstellen eines Runbooks besteht darin, Ihren Anwendungsfall zu identifizieren. Beispielsweise haben Sie geplant, das `AWS-CreateImage`-Runbook täglich auf allen Ihren Amazon EC2 Produktions-Instances auszuführen.. Am Ende des Monats entscheiden Sie, dass Sie über mehr Images verfügen, als für Wiederherstellungspunkte erforderlich sind. Künftig möchten Sie automatisch die älteste AMI einer Amazon-EC2-Instance löschen, wenn eine neue AMI erstellt wird. Um dies zu erreichen, erstellen Sie ein neues Runbook, das folgende Funktionen erfüllt:

1. Führt die `aws:createImage`-Aktion aus und gibt die Instance-ID in der Image-Beschreibung an.

1. Führt die `aws:waitForAwsResourceProperty`-Aktion aus, um den Zustand des Images abzufragen, bis es `available` ist.

1. Nachdem der Image-Status `available` ist, führt die`aws:executeScript`-Aktion ein benutzerdefiniertes Python-Skript aus, das die IDs aller Images sammelt, die mit Ihrer Amazon-EC2-Instance verknüpft sind. Das Skript führt diese Filterung aus, indem es die Instance-ID in der Image-Beschreibung verwendet, die Sie bei der Erstellung angegeben haben. Anschließend sortiert das Skript die Liste der Bilder auf der IDs Grundlage `creationDate` des Bildes und gibt die ID des ältesten AMI Bildes aus.

1. Zu guter Letzt wird die `aws:deleteImage`-Aktion ausgeführt, um die älteste AMI zu löschen, mithilfe der ID aus der Ausgabe des vorherigen Schritts.

In diesem Szenario haben Sie bereits das `AWS-CreateImage`-Runbook verwendet, haben aber festgestellt, dass Ihr Anwendungsfall eine größere Flexibilität erforderte. Das kommt häufig vor, da es Überschneidungen zwischen Runbooks und Automatisierungsaktionen geben kann. Daher müssen Sie möglicherweise anpassen, welche Runbooks oder Aktionen Sie verwenden, um Ihren Anwendungsfall zu adressieren.

Zum Beispiel ermöglichen die `aws:executeScript`- und die `aws:invokeLambdaFunction`-Aktion es Ihnen, benutzerdefinierte Skripts als Teil Ihrer Automatisierung auszuführen. Sie bevorzugen vielleicht `aws:invokeLambdaFunction` aufgrund der zusätzlichen unterstützten Laufzeitsprachen. Möglicherweise bevorzugen Sie jedoch `aws:executeScript`, da Sie damit Ihre Skriptinhalte direkt in YAML Runbooks erstellen und Skriptinhalte als Anhänge für JSON-Runbooks bereitstellen können. Sie könnten auch `aws:executeScript` als einfacher in Bezug auf AWS Identity and Access Management (IAM)-Einrichtung empfinden. Da es die in der angegebenen Berechtigungen verwendet`AutomationAssumeRole`, `aws:executeScript` ist keine zusätzliche AWS Lambda Funktionsausführungsrolle erforderlich.

In einem bestimmten Szenario kann eine Aktion mehr Flexibilität oder zusätzliche Funktionalität gegenüber einer anderen bieten. Daher empfiehlt es sich, die verfügbaren Eingabeparameter für das Runbook oder die Aktion zu überprüfen, die Sie verwenden möchten, um zu bestimmen, welche am besten zu Ihrem Anwendungsfall und Ihren Voreinstellungen passt.

## Einrichten Ihrer Entwicklungsumgebung
<a name="automation-authoring-runbooks-environment"></a>

Nachdem Sie Ihren Anwendungsfall und die vordefinierten Runbooks oder Automatisierungsaktionen identifiziert haben, die Sie in Ihrem Runbook verwenden möchten, müssen Sie Ihre Entwicklungsumgebung für den Inhalt Ihres Runbooks einrichten. Für die Entwicklung Ihrer Runbook-Inhalte empfehlen wir die Verwendung der Systems Manager-Dokumentenkonsole AWS Toolkit for Visual Studio Code anstelle der Systems Manager Documents Console. 

Das Toolkit for VS Code ist eine Open-Source-Erweiterung für Visual Studio Code (VS Code), die mehr Funktionen bietet als die Systems Manager Dokumentenkonsole. Zu den hilfreichen Funktionen gehören die Schemavalidierung für YAML und JSON, Snippets für Automatisierungsaktionstypen und die automatische Vervollständigung verschiedener Optionen in YAML und JSON. 

Weitere Informationen zum Installieren des Toolkit for VS Code finden Sie unter[Installieren von AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/setup-toolkit.html). Weitere Informationen zur Verwendung des Toolkit for VS Code zum Erstellen von Runbooks finden Sie unter [Arbeiten mit Systems Manager Automation-Dokumenten](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/systems-manager-automation-docs.html) im *AWS Toolkit for Visual Studio Code -Benutzerhandbuch*.

## Entwickeln von Runbook-Inhalten
<a name="automation-authoring-runbooks-developing-content"></a>

Nachdem Ihr Anwendungsfall identifiziert und die Umgebung eingerichtet ist, können Sie den Inhalt für Ihr Runbook entwickeln. Ihr Anwendungsfall und Ihre Einstellungen bestimmen weitgehend die Automatisierungsaktionen oder Runbooks, die Sie in Ihren Runbook-Inhalten verwenden. Einige Aktionen unterstützen nur eine Teilmenge von Eingabeparametern im Vergleich zu einer anderen Aktion, mit der Sie eine ähnliche Aufgabe ausführen können. Andere Aktionen haben spezifische Ausgaben, wie `aws:createImage`, wo einige Aktionen es Ihnen ermöglichen, eigene Ausgaben zu definieren, z. B. `aws:executeAwsApi`. 

Wenn Sie sich nicht sicher sind, wie Sie eine bestimmte Aktion in Ihrem Runbook verwenden, empfehlen wir Ihnen, den entsprechenden Eintrag für die Aktion im [Systems Manager Automation Aktionen-Referenz](automation-actions.md) nachzulesen. Wir empfehlen auch, den Inhalt vordefinierter Runbooks zu überprüfen, um Beispiele für die Verwendung dieser Aktionen zu sehen. Weitere Beispiele für Anwendungen von Runbooks in der Praxis finden Sie unter [Weitere Runbook-Beispiele](automation-document-examples.md).

Um die Unterschiede in Bezug auf Einfachheit und Flexibilität zu demonstrieren, die Runbook-Inhalte bieten, bieten die folgenden Tutorials ein Beispiel, wie Sie Gruppen von Amazon-EC2-Instances stufenweise patchen:
+ [Beispiel 1: Erstellen von über- und untergeordneten Runbooks](automation-authoring-runbooks-parent-child-example.md) – In diesem Beispiel werden zwei Runbooks in einer Untergeordnet-Übergeordnet-Beziehung verwendet. Das übergeordnete Runbook initiiert eine Automatisierung der Ratensteuerung des untergeordneten Runbooks. 
+ [Beispiel 2: Skriptbasiertes Runbook](automation-authoring-runbooks-scripted-example.md) – Dieses Beispiel zeigt, wie Sie die gleichen Aufgaben von Beispiel 1 ausführen können, indem Sie den Inhalt zu einem einzigen Runbook zusammenfassen und Skripte in Ihrem Runbook verwenden.

# Beispiel 1: Erstellen von über- und untergeordneten Runbooks
<a name="automation-authoring-runbooks-parent-child-example"></a>

Das folgende Beispiel erläutert, wie Sie zwei Runbooks erstellen, die getaggte Gruppen von Amazon Elastic Compute Cloud (Amazon EC2)-Instances stufenweise patchen. Diese Runbooks werden in einer Untergeordnet–Übergeordnet-Beziehung mit dem übergeordneten Runbook verwendet, das verwendet wird, um eine Kurssteuerungsautomatisierung des untergeordneten Runbooks zu initiieren. Weitere Informationen über die Ratenregelung-Automatisierungen finden Sie unter [Automatisierte Abläufe in großem Umfang ausführen](running-automations-scale.md). Weitere Informationen zu den hier verwendeten Automation-Aktionen finden Sie unter [Systems Manager Automation Aktionen-Referenz](automation-actions.md).

## Erstellen des untergeordneten Runbooks
<a name="automation-authoring-runbooks-child-runbook"></a>

In diesem Beispiel-Runbook wird das folgende Szenario behandelt. Emily ist Systemingenieurin bei AnyCompany Consultants, LLC. Sie muss Patches für Gruppen von Amazon Elastic Compute Cloud (Amazon EC2)-Instances konfigurieren, die primäre und sekundäre Datenbanken hosten. Anwendungen greifen 24 Stunden am Tag auf diese Datenbanken zu, sodass eine der Datenbankinstances immer verfügbar sein muss. 

Sie entscheidet, dass das Patchen der Instances stufenweise der beste Ansatz ist. Die primäre Gruppe von Datenbankinstances wird zuerst gepatcht, gefolgt von der sekundären Gruppe von Datenbankinstances. Um zusätzliche Kosten zu vermeiden, indem Instances ausgeführt werden, die zuvor gestoppt wurden, möchte Emily außerdem, dass die gepatchten Instances in ihren ursprünglichen Zustand zurückversetzt werden, bevor das Patchen stattgefunden hat. 

Emily identifiziert die primären und sekundären Gruppen von Datenbankinstances anhand der Tags, die den Instances zugeordnet sind. Sie beschließt, ein übergeordnetes Runbook zu erstellen, das eine Automatisierung der Ratenkontrolle eines untergeordneten Runbooks startet. Auf diese Weise kann sie die Tags ausrichten, die mit den primären und sekundären Gruppen von Datenbank-Instances verknüpft sind, und die Parallelität der untergeordneten Automatisierungen verwalten. Nachdem sie die verfügbaren Systems Manager (SSM)-Dokumente zum Patchen überprüft hat, wählt sie das `AWS-RunPatchBaseline`-Document. Mithilfe dieses SSM-Dokuments können ihre Kollegen die zugehörigen Patch-Compliance-Informationen überprüfen, nachdem der Patch-Vorgang abgeschlossen ist.

Um mit der Erstellung ihrer Runbook-Inhalte zu beginnen, überprüft Emily die verfügbaren Automatisierungsaktionen und beginnt mit der Erstellung des Inhalts für das untergeordnete Runbook wie folgt:

1. Zunächst stellt sie Werte für das Schema und die Beschreibung des Runbooks bereit und definiert die Eingabeparameter für das untergeordnete Runbook.

   Durch die Verwendung des `AutomationAssumeRole`-Parameters können Emily und ihre Kollegen eine vorhandene IAM-Rolle verwenden, die der Automatisierung erlaubt, die Aktionen im Runbook für sie auszuführen. Emily verwendet das `InstanceId`-Parameter, um die Instance zu bestimmen, die gepatcht werden soll. Optional können die `Operation`-,`RebootOption`- , und`SnapshotId`-Parameter verwendet werden, um Werte für Dokumentparameter für `AWS-RunPatchBaseline` bereitzustellen. Um zu verhindern, dass für diese Dokumentparameter ungültige Werte bereitgestellt werden, definiert sie die `allowedValues` nach Bedarf.

------
#### [ YAML ]

   ```
   schemaVersion: '0.3'
   description: 'An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: >-
         '(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the
         actions on your behalf. If no role is specified, Systems Manager
         Automation uses your IAM permissions to operate this runbook.'
       default: ''
     InstanceId:
       type: String
       description: >-
         '(Required) The instance you want to patch.'
     SnapshotId:
       type: String
       description: '(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.'
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: '(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.'
       allowedValues:
         - Install
         - Scan
       default: Install
   ```

------
#### [ JSON ]

   ```
   {
      "schemaVersion":"0.3",
      "description":"An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "assumeRole":"{{AutomationAssumeRole}}",
      "parameters":{
         "AutomationAssumeRole":{
            "type":"String",
            "description":"(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.",
            "default":""
         },
         "InstanceId":{
            "type":"String",
            "description":"(Required) The instance you want to patch."
         },
         "SnapshotId":{
            "type":"String",
            "description":"(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.",
            "default":""
         },
         "RebootOption":{
            "type":"String",
            "description":"(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.",
            "allowedValues":[
               "NoReboot",
               "RebootIfNeeded"
            ],
            "default":"RebootIfNeeded"
         },
         "Operation":{
            "type":"String",
            "description":"(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.",
            "allowedValues":[
               "Install",
               "Scan"
            ],
            "default":"Install"
         }
      }
   },
   ```

------

1. Wenn die Elemente der obersten Ebene definiert sind, arbeitet Emily mit der Erstellung der Aktionen, welche die `mainSteps` des Runbooks melden. Der erste Schritt gibt den aktuellen Status der Ziel-Instance aus, die im `InstanceId`-Eingabeparameter mit der `aws:executeAwsApi`-Aktion angegeben ist. Die Ausgabe dieser Aktion wird in späteren Aktionen verwendet.

------
#### [ YAML ]

   ```
   mainSteps:
     - name: getInstanceState
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
       outputs:
         - Name: instanceState
           Selector: '$.Reservations[0].Instances[0].State.Name'
           Type: String
       nextStep: branchOnInstanceState
   ```

------
#### [ JSON ]

   ```
   "mainSteps":[
         {
            "name":"getInstanceState",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "inputs":null,
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            },
            "outputs":[
               {
                  "Name":"instanceState",
                  "Selector":"$.Reservations[0].Instances[0].State.Name",
                  "Type":"String"
               }
            ],
            "nextStep":"branchOnInstanceState"
         },
   ```

------

1. Anstatt den ursprünglichen Zustand jeder Instance, die gepatcht werden muss, manuell zu starten und zu verfolgen, verwendet Emily die Ausgabe der vorherigen Aktion, um die Automatisierung basierend auf dem Status der Ziel-Instance zu verzweigen. Auf diese Weise kann die Automatisierung verschiedene Schritte ausführen, abhängig von den Bedingungen, die in der `aws:branch`-Aktion angegeben sind und verbessert die Gesamteffizienz der Automatisierung ohne manuellen Eingriff.

   Wenn der Instance-Status bereits `running` ist, schreitet die Automatisierung mit dem Patchen der Instance mit dem `AWS-RunPatchBaseline`-Dokument unter Verwendung der `aws:runCommand`-Aktion fort.

   Wenn der Instancestatus `stopping` ist, fragt die Automatisierung ab, ob die Instance den Status `stopped` mit der Aktion `aws:waitForAwsResourceProperty` erreicht, startet die Instance mit der Aktion `executeAwsApi` und fragt die Instance ab, um den Status `running` zu erreichen, bevor die Instance gepatcht wird.

   Wenn der Status der Instance `stopped` ist, startet die Automatisierung die Instance und fragt die Instance ab, einen `running`-Status vor dem Patchen der Instance unter Verwendung der gleichen Aktionen zu erreichen.

------
#### [ YAML ]

   ```
   - name: branchOnInstanceState
       action: 'aws:branch'
       onFailure: Abort
       inputs:
         Choices:
           - NextStep: startInstance
              Variable: '{{getInstanceState.instanceState}}'
              StringEquals: stopped
            - NextStep: verifyInstanceStopped
              Variable: '{{getInstanceState.instanceState}}'
              StringEquals: stopping
            - NextStep: patchInstance
              Variable: '{{getInstanceState.instanceState}}'
              StringEquals: running
       isEnd: true
     - name: startInstance
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         Service: ec2
         Api: StartInstances
         InstanceIds:
           - '{{InstanceId}}'
       nextStep: verifyInstanceRunning
     - name: verifyInstanceRunning
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 120
       inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
         PropertySelector: '$.Reservations[0].Instances[0].State.Name'
         DesiredValues:
           - running
       nextStep: patchInstance
     - name: verifyInstanceStopped
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 120
       inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
         PropertySelector: '$.Reservations[0].Instances[0].State.Name'
         DesiredValues:
           - stopped
         nextStep: startInstance
     - name: patchInstance
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 5400
       inputs:
         DocumentName: 'AWS-RunPatchBaseline'
         InstanceIds: 
         - '{{InstanceId}}'
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
   ```

------
#### [ JSON ]

   ```
   {
            "name":"branchOnInstanceState",
            "action":"aws:branch",
            "onFailure":"Abort",
            "inputs":{
               "Choices":[
                  {
                     "NextStep":"startInstance",
                     "Variable":"{{getInstanceState.instanceState}}",
                     "StringEquals":"stopped"
                  },
                  {
                     "Or":[
                        {
                           "Variable":"{{getInstanceState.instanceState}}",
                           "StringEquals":"stopping"
                        }
                     ],
                     "NextStep":"verifyInstanceStopped"
                  },
                  {
                     "NextStep":"patchInstance",
                     "Variable":"{{getInstanceState.instanceState}}",
                     "StringEquals":"running"
                  }
               ]
            },
            "isEnd":true
         },
         {
            "name":"startInstance",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "Service":"ec2",
               "Api":"StartInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            },
            "nextStep":"verifyInstanceRunning"
         },
         {
            "name":"verifyInstanceRunning",
            "action":"aws:waitForAwsResourceProperty",
            "timeoutSeconds":120,
            "inputs":{
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "PropertySelector":"$.Reservations[0].Instances[0].State.Name",
               "DesiredValues":[
                  "running"
               ]
            },
            "nextStep":"patchInstance"
         },
         {
            "name":"verifyInstanceStopped",
            "action":"aws:waitForAwsResourceProperty",
            "timeoutSeconds":120,
            "inputs":{
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "PropertySelector":"$.Reservations[0].Instances[0].State.Name",
               "DesiredValues":[
                  "stopped"
               ],
               "nextStep":"startInstance"
            }
         },
         {
            "name":"patchInstance",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":5400,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               }
            }
         },
   ```

------

1. Nach Abschluss des Patching-Vorgangs möchte Emily, dass die Automatisierung die Ziel-Instance in denselben Zustand versetzt, in dem sie sich vor dem Automatisierungsstart befanden. Sie tut dies, indem sie erneut die Ausgabe der ersten Aktion verwendet. Die Automatisierung verzweigt sich basierend auf dem ursprünglichen Zustand der Ziel-Instance unter Verwendung der `aws:branch`-Aktion. Wenn sich die Instance zuvor in einem anderen Zustand als `running` befand, wird die Instance angehalten. Lautet der Status der Instance `running`, stoppt die Automatisierung.

------
#### [ YAML ]

   ```
   - name: branchOnOriginalInstanceState
       action: 'aws:branch'
       onFailure: Abort
       inputs:
         Choices:
           - NextStep: stopInstance
             Not: 
               Variable: '{{getInstanceState.instanceState}}'
               StringEquals: running
       isEnd: true
     - name: stopInstance
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         Service: ec2
         Api: StopInstances
         InstanceIds:
           - '{{InstanceId}}'
   ```

------
#### [ JSON ]

   ```
   {
            "name":"branchOnOriginalInstanceState",
            "action":"aws:branch",
            "onFailure":"Abort",
            "inputs":{
               "Choices":[
                  {
                     "NextStep":"stopInstance",
                     "Not":{
                        "Variable":"{{getInstanceState.instanceState}}",
                        "StringEquals":"running"
                     }
                  }
               ]
            },
            "isEnd":true
         },
         {
            "name":"stopInstance",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "Service":"ec2",
               "Api":"StopInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            }
         }
      ]
   }
   ```

------

1. Emily überprüft den vollständigen Inhalt des untergeordneten Runbooks und erstellt das Runbook in derselben AWS-Konto und in den AWS-Region Zielinstanzen. Jetzt ist sie bereit, mit der Erstellung des übergeordneten Runbooks fortzufahren. Im Folgenden finden Sie den vollständigen untergeordneten Runbook-Inhalt.

------
#### [ YAML ]

   ```
   schemaVersion: '0.3'
   description: 'An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: >-
         '(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the
         actions on your behalf. If no role is specified, Systems Manager
         Automation uses your IAM permissions to operate this runbook.'
       default: ''
     InstanceId:
       type: String
       description: >-
         '(Required) The instance you want to patch.'
     SnapshotId:
       type: String
       description: '(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.'
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: '(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.'
       allowedValues:
         - Install
         - Scan
       default: Install
   mainSteps:
     - name: getInstanceState
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
       outputs:
         - Name: instanceState
           Selector: '$.Reservations[0].Instances[0].State.Name'
           Type: String
       nextStep: branchOnInstanceState
     - name: branchOnInstanceState
       action: 'aws:branch'
       onFailure: Abort
       inputs:
         Choices:
           - NextStep: startInstance
             Variable: '{{getInstanceState.instanceState}}'
             StringEquals: stopped
           - Or:
               - Variable: '{{getInstanceState.instanceState}}'
                 StringEquals: stopping
             NextStep: verifyInstanceStopped
           - NextStep: patchInstance
             Variable: '{{getInstanceState.instanceState}}'
             StringEquals: running
       isEnd: true
     - name: startInstance
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         Service: ec2
         Api: StartInstances
         InstanceIds:
           - '{{InstanceId}}'
       nextStep: verifyInstanceRunning
     - name: verifyInstanceRunning
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 120
       inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
         PropertySelector: '$.Reservations[0].Instances[0].State.Name'
         DesiredValues:
           - running
       nextStep: patchInstance
     - name: verifyInstanceStopped
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 120
       inputs:
         Service: ec2
         Api: DescribeInstances
         InstanceIds:
           - '{{InstanceId}}'
         PropertySelector: '$.Reservations[0].Instances[0].State.Name'
         DesiredValues:
           - stopped
         nextStep: startInstance
     - name: patchInstance
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 5400
       inputs:
         DocumentName: 'AWS-RunPatchBaseline'
         InstanceIds: 
         - '{{InstanceId}}'
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
     - name: branchOnOriginalInstanceState
       action: 'aws:branch'
       onFailure: Abort
       inputs:
         Choices:
           - NextStep: stopInstance
             Not: 
               Variable: '{{getInstanceState.instanceState}}'
               StringEquals: running
       isEnd: true
     - name: stopInstance
       action: 'aws:executeAwsApi'
       onFailure: Abort
       inputs:
         Service: ec2
         Api: StopInstances
         InstanceIds:
           - '{{InstanceId}}'
   ```

------
#### [ JSON ]

   ```
   {
      "schemaVersion":"0.3",
      "description":"An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "assumeRole":"{{AutomationAssumeRole}}",
      "parameters":{
         "AutomationAssumeRole":{
            "type":"String",
            "description":"'(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'",
            "default":""
         },
         "InstanceId":{
            "type":"String",
            "description":"'(Required) The instance you want to patch.'"
         },
         "SnapshotId":{
            "type":"String",
            "description":"(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.",
            "default":""
         },
         "RebootOption":{
            "type":"String",
            "description":"(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.",
            "allowedValues":[
               "NoReboot",
               "RebootIfNeeded"
            ],
            "default":"RebootIfNeeded"
         },
         "Operation":{
            "type":"String",
            "description":"(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.",
            "allowedValues":[
               "Install",
               "Scan"
            ],
            "default":"Install"
         }
      },
      "mainSteps":[
         {
            "name":"getInstanceState",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "inputs":null,
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            },
            "outputs":[
               {
                  "Name":"instanceState",
                  "Selector":"$.Reservations[0].Instances[0].State.Name",
                  "Type":"String"
               }
            ],
            "nextStep":"branchOnInstanceState"
         },
         {
            "name":"branchOnInstanceState",
            "action":"aws:branch",
            "onFailure":"Abort",
            "inputs":{
               "Choices":[
                  {
                     "NextStep":"startInstance",
                     "Variable":"{{getInstanceState.instanceState}}",
                     "StringEquals":"stopped"
                  },
                  {
                     "Or":[
                        {
                           "Variable":"{{getInstanceState.instanceState}}",
                           "StringEquals":"stopping"
                        }
                     ],
                     "NextStep":"verifyInstanceStopped"
                  },
                  {
                     "NextStep":"patchInstance",
                     "Variable":"{{getInstanceState.instanceState}}",
                     "StringEquals":"running"
                  }
               ]
            },
            "isEnd":true
         },
         {
            "name":"startInstance",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "Service":"ec2",
               "Api":"StartInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            },
            "nextStep":"verifyInstanceRunning"
         },
         {
            "name":"verifyInstanceRunning",
            "action":"aws:waitForAwsResourceProperty",
            "timeoutSeconds":120,
            "inputs":{
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "PropertySelector":"$.Reservations[0].Instances[0].State.Name",
               "DesiredValues":[
                  "running"
               ]
            },
            "nextStep":"patchInstance"
         },
         {
            "name":"verifyInstanceStopped",
            "action":"aws:waitForAwsResourceProperty",
            "timeoutSeconds":120,
            "inputs":{
               "Service":"ec2",
               "Api":"DescribeInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "PropertySelector":"$.Reservations[0].Instances[0].State.Name",
               "DesiredValues":[
                  "stopped"
               ],
               "nextStep":"startInstance"
            }
         },
         {
            "name":"patchInstance",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":5400,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "InstanceIds":[
                  "{{InstanceId}}"
               ],
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               }
            }
         },
         {
            "name":"branchOnOriginalInstanceState",
            "action":"aws:branch",
            "onFailure":"Abort",
            "inputs":{
               "Choices":[
                  {
                     "NextStep":"stopInstance",
                     "Not":{
                        "Variable":"{{getInstanceState.instanceState}}",
                        "StringEquals":"running"
                     }
                  }
               ]
            },
            "isEnd":true
         },
         {
            "name":"stopInstance",
            "action":"aws:executeAwsApi",
            "onFailure":"Abort",
            "inputs":{
               "Service":"ec2",
               "Api":"StopInstances",
               "InstanceIds":[
                  "{{InstanceId}}"
               ]
            }
         }
      ]
   }
   ```

------

Weitere Informationen zu den hier verwendeten Automation-Aktionen finden Sie unter [Systems Manager Automation Aktionen-Referenz](automation-actions.md).

## Erstellen des übergeordneten Runbooks
<a name="automation-authoring-runbooks-parent-runbook"></a>

In diesem Beispiel-Runbook wird das Szenario fortgesetzt, das im vorherigen Abschnitt beschrieben wird. Nachdem Emily nun das untergeordnete Runbook erstellt hat, beginnt sie mit der Erstellung des Inhalts für das übergeordnete Runbook wie folgt:

1. Zunächst stellt sie Werte für das Schema und die Beschreibung des Runbooks bereit und definiert die Eingabeparameter für das übergeordnete Runbook.

   Durch die Verwendung des `AutomationAssumeRole`-Parameters können Emily und ihre Kollegen eine vorhandene IAM-Rolle verwenden, die der Automatisierung erlaubt, die Aktionen im Runbook für sie auszuführen. Emily verwendet die `PatchGroupPrimaryKey`- und `PatchGroupPrimaryValue`-Parameter, um das Tag anzugeben, das mit der primären Gruppe von Datenbankinstances verknüpft ist, die gepatcht werden sollen. Sie verwendet den `PatchGroupSecondaryKey`- und `PatchGroupSecondaryValue`-Parameter, um das Tag anzugeben, das mit der sekundären Gruppe von Datenbankinstances verknüpft ist, die gepatcht werden sollen.

------
#### [ YAML ]

   ```
   description: 'An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.'
   schemaVersion: '0.3'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
       default: ''
     PatchGroupPrimaryKey:
       type: String
       description: '(Required) The key of the tag for the primary group of instances you want to patch.''
     PatchGroupPrimaryValue:
       type: String
       description: '(Required) The value of the tag for the primary group of instances you want to patch.'
     PatchGroupSecondaryKey:
       type: String
       description: '(Required) The key of the tag for the secondary group of instances you want to patch.'
     PatchGroupSecondaryValue:
       type: String
       description: '(Required) The value of the tag for the secondary group of instances you want to patch.'
   ```

------
#### [ JSON ]

   ```
   {
      "schemaVersion": "0.3",
      "description": "An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "assumeRole": "{{AutomationAssumeRole}}",
      "parameters": {
         "AutomationAssumeRole": {
            "type": "String",
            "description": "(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.",
            "default": ""
         },
         "PatchGroupPrimaryKey": {
            "type": "String",
            "description": "(Required) The key of the tag for the primary group of instances you want to patch."
         },
         "PatchGroupPrimaryValue": {
            "type": "String",
            "description": "(Required) The value of the tag for the primary group of instances you want to patch."
         },
         "PatchGroupSecondaryKey": {
            "type": "String",
            "description": "(Required) The key of the tag for the secondary group of instances you want to patch."
         },
         "PatchGroupSecondaryValue": {
            "type": "String",
            "description": "(Required) The value of the tag for the secondary group of instances you want to patch."
         }
      }
   },
   ```

------

1. Wenn die Elemente der obersten Ebene definiert sind, arbeitet Emily mit der Erstellung der Aktionen, welche die `mainSteps` des Runbooks melden. 

   Bei der ersten Aktion wird eine Ratensteuerungsautomatisierung mit dem soeben erstellten untergeordneten Runbook gestartet, das Instances betrifft, die mit dem Tag verknüpft sind, das in den `PatchGroupPrimaryKey`- und `PatchGroupPrimaryValue`-Eingabeparametern angegeben ist. Sie verwendet die Werte, die den Eingabeparametern zur Verfügung gestellt werden, um den Schlüssel und den Wert des Tags anzugeben, welcher der primären Gruppe von Datenbankinstances zugeordnet ist, die sie patchen möchte.

   Nach der Fertigstellung der ersten Automatisierung, startet die zweite Aktion eine andere Ratensteuerungsautomatisierung unter Verwendung des untergeordneten Runbooks, das Instances betrifft, die mit dem Tag verknüpft sind, das in den `PatchGroupSecondaryKey`- und `PatchGroupSecondaryValue`-Eingabeparametern angegeben ist. Sie verwendet die Werte, die den Eingabeparametern zur Verfügung gestellt werden, um den Schlüssel und den Wert des Tags anzugeben, welcher der sekundären Gruppe von Datenbankinstances zugeordnet ist, die sie patchen möchte.

------
#### [ YAML ]

   ```
   mainSteps:
     - name: patchPrimaryTargets
       action: 'aws:executeAutomation'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: RunbookTutorialChildAutomation
         Targets:
           - Key: 'tag:{{PatchGroupPrimaryKey}}'
             Values:
               - '{{PatchGroupPrimaryValue}}'
         TargetParameterName: 'InstanceId'
     - name: patchSecondaryTargets
       action: 'aws:executeAutomation'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: RunbookTutorialChildAutomation
         Targets:
           - Key: 'tag:{{PatchGroupSecondaryKey}}'
             Values:
               - '{{PatchGroupSecondaryValue}}'
         TargetParameterName: 'InstanceId'
   ```

------
#### [ JSON ]

   ```
   "mainSteps":[
         {
            "name":"patchPrimaryTargets",
            "action":"aws:executeAutomation",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"RunbookTutorialChildAutomation",
               "Targets":[
                  {
                     "Key":"tag:{{PatchGroupPrimaryKey}}",
                     "Values":[
                        "{{PatchGroupPrimaryValue}}"
                     ]
                  }
               ],
               "TargetParameterName":"InstanceId"
            }
         },
         {
            "name":"patchSecondaryTargets",
            "action":"aws:executeAutomation",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"RunbookTutorialChildAutomation",
               "Targets":[
                  {
                     "Key":"tag:{{PatchGroupSecondaryKey}}",
                     "Values":[
                        "{{PatchGroupSecondaryValue}}"
                     ]
                  }
               ],
               "TargetParameterName":"InstanceId"
            }
         }
      ]
   }
   ```

------

1. Emily überprüft den vollständigen Inhalt des übergeordneten Runbooks und erstellt das Runbook in derselben AWS-Konto und in den Ziel-Instances AWS-Region . Jetzt ist sie bereit, ihre Runbooks zu testen, um sicherzustellen, dass die Automatisierung wie gewünscht funktioniert, bevor sie in ihre Produktionsumgebung implementiert werden. Im Folgenden finden Sie den vollständigen übergeordneten Runbook-Inhalt.

------
#### [ YAML ]

   ```
   description: An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.
   schemaVersion: '0.3'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
       default: ''
     PatchGroupPrimaryKey:
       type: String
       description: (Required) The key of the tag for the primary group of instances you want to patch.
     PatchGroupPrimaryValue:
       type: String
       description: '(Required) The value of the tag for the primary group of instances you want to patch. '
     PatchGroupSecondaryKey:
       type: String
       description: (Required) The key of the tag for the secondary group of instances you want to patch.
     PatchGroupSecondaryValue:
       type: String
       description: '(Required) The value of the tag for the secondary group of instances you want to patch.  '
   mainSteps:
     - name: patchPrimaryTargets
       action: 'aws:executeAutomation'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: RunbookTutorialChildAutomation
         Targets:
           - Key: 'tag:{{PatchGroupPrimaryKey}}'
             Values:
               - '{{PatchGroupPrimaryValue}}'
         TargetParameterName: 'InstanceId'
     - name: patchSecondaryTargets
       action: 'aws:executeAutomation'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: RunbookTutorialChildAutomation
         Targets:
           - Key: 'tag:{{PatchGroupSecondaryKey}}'
             Values:
               - '{{PatchGroupSecondaryValue}}'
         TargetParameterName: 'InstanceId'
   ```

------
#### [ JSON ]

   ```
   {
      "description":"An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "schemaVersion":"0.3",
      "assumeRole":"{{AutomationAssumeRole}}",
      "parameters":{
         "AutomationAssumeRole":{
            "type":"String",
            "description":"(Optional) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.",
            "default":""
         },
         "PatchGroupPrimaryKey":{
            "type":"String",
            "description":"(Required) The key of the tag for the primary group of instances you want to patch."
         },
         "PatchGroupPrimaryValue":{
            "type":"String",
            "description":"(Required) The value of the tag for the primary group of instances you want to patch. "
         },
         "PatchGroupSecondaryKey":{
            "type":"String",
            "description":"(Required) The key of the tag for the secondary group of instances you want to patch."
         },
         "PatchGroupSecondaryValue":{
            "type":"String",
            "description":"(Required) The value of the tag for the secondary group of instances you want to patch.  "
         }
      },
      "mainSteps":[
         {
            "name":"patchPrimaryTargets",
            "action":"aws:executeAutomation",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"RunbookTutorialChildAutomation",
               "Targets":[
                  {
                     "Key":"tag:{{PatchGroupPrimaryKey}}",
                     "Values":[
                        "{{PatchGroupPrimaryValue}}"
                     ]
                  }
               ],
               "TargetParameterName":"InstanceId"
            }
         },
         {
            "name":"patchSecondaryTargets",
            "action":"aws:executeAutomation",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"RunbookTutorialChildAutomation",
               "Targets":[
                  {
                     "Key":"tag:{{PatchGroupSecondaryKey}}",
                     "Values":[
                        "{{PatchGroupSecondaryValue}}"
                     ]
                  }
               ],
               "TargetParameterName":"InstanceId"
            }
         }
      ]
   }
   ```

------

Weitere Informationen zu den hier verwendeten Automation-Aktionen finden Sie unter [Systems Manager Automation Aktionen-Referenz](automation-actions.md).

# Beispiel 2: Skriptbasiertes Runbook
<a name="automation-authoring-runbooks-scripted-example"></a>

In diesem Beispiel-Runbook wird das folgende Szenario behandelt. Emily ist Systemingenieurin bei AnyCompany Consultants, LLC. Sie hat zuvor zwei Runbooks erstellt, die in einer Untergeordnet-Übergeordnet-Beziehung verwendet werden, um Patch-Gruppen von Amazon Elastic Compute Cloud (Amazon EC2)-Instances zu patchen, die primäre und sekundäre Datenbanken hosten. Anwendungen greifen 24 Stunden am Tag auf diese Datenbanken zu, sodass eine der Datenbankinstances immer verfügbar sein muss. 

Basierend auf dieser Anforderung hat sie eine Lösung entwickelt, welche die Instances stufenweise mit dem `AWS-RunPatchBaseline`-Systems Manager (SSM)-Dokument patcht. Mithilfe dieses SSM-Dokuments können ihre Kollegen die zugehörigen Patch-Compliance-Informationen überprüfen, nachdem der Patch-Vorgang abgeschlossen ist. 

Die primäre Gruppe von Datenbankinstances wird zuerst gepatcht, gefolgt von der sekundären Gruppe von Datenbankinstances. Um zusätzliche Kosten zu vermeiden, indem Instances ausgeführt werden, die zuvor gestoppt wurden, hat Emily sichergestellt, dass die Automatisierung die gepatchten Instances in ihren ursprünglichen Zustand zurückversetzte, bevor das Patchen stattgefunden hat. Emily verwendete Tags, die den primären und sekundären Gruppen von Datenbankinstances zugeordnet sind, um zu ermitteln, welche Instances in der gewünschten Reihenfolge gepatcht werden sollen.

Ihre bestehende automatisierte Lösung funktioniert, aber sie will ihre Lösung nach Möglichkeit verbessern. Um bei der Wartung des Runbook-Inhalts zu helfen und die Fehlerbehebung zu erleichtern, möchte sie die Automatisierung zu einem einzigen Runbook zusammenfassen und die Anzahl der Eingabeparameter vereinfachen. Außerdem möchte sie vermeiden, dass mehrere untergeordnete Automatisierungen erstellt werden. 

Nachdem Emily die verfügbaren Automatisierungsaktionen überprüft hat, stellt sie fest, dass sie ihre Lösung mithilfe der `aws:executeScript`-Aktion verbessern kann, um ihre benutzerdefinierten Python-Skripte auszuführen. Sie beginnt nun mit der Erstellung des Inhalts für das Runbook wie folgt:

1. Zunächst stellt sie Werte für das Schema und die Beschreibung des Runbooks bereit und definiert die Eingabeparameter für das übergeordnete Runbook.

   Durch die Verwendung des `AutomationAssumeRole`-Parameters können Emily und ihre Kollegen eine vorhandene IAM-Rolle verwenden, die der Automatisierung erlaubt, die Aktionen im Runbook für sie auszuführen. Im Gegensatz zum [Beispiel 1](automation-authoring-runbooks-parent-child-example.md) ist der `AutomationAssumeRole`-Parameter ist jetzt erforderlich und nicht optional. Da dieses Runbook `aws:executeScript` Aktionen enthält, ist immer eine AWS Identity and Access Management (IAM-) Dienstrolle (oder Rolle übernehmen) erforderlich. Diese Anforderung ist notwendig, da einige der Python-Skripte, die für die Aktionen angegeben sind, AWS -API-Operationen aufrufen.

   Emily verwendet die `PrimaryPatchGroupTag`- und `SecondaryPatchGroupTag`-Parameter, um die Tags anzugeben, die mit der primären und sekundären Gruppe von Datenbankinstances verknüpft sind, die gepatcht werden sollen. Um die erforderlichen Eingabeparameter zu vereinfachen, entscheidet sie sich, `StringMap`-Parameter anstatt mehrerer `String`-Parameter zu verwenden, wie sie im Runbook von Beispiel 1 verwendet wurde. Optional können die `Operation`-,`RebootOption`- , und`SnapshotId`-Parameter verwendet werden, um Werte für Dokumentparameter für `AWS-RunPatchBaseline` bereitzustellen. Um zu verhindern, dass für diese Dokumentparameter ungültige Werte bereitgestellt werden, definiert sie die `allowedValues` nach Bedarf.

------
#### [ YAML ]

   ```
   description: 'An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.'
   schemaVersion: '0.3'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
     PrimaryPatchGroupTag:
       type: StringMap
       description: '(Required) The tag for the primary group of instances you want to patch. Specify a key-value pair. Example: {"key" : "value"}'
     SecondaryPatchGroupTag:
       type: StringMap
       description: '(Required) The tag for the secondary group of instances you want to patch. Specify a key-value pair. Example: {"key" : "value"}'
     SnapshotId:
       type: String
       description: '(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.'
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: '(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.'
       allowedValues:
         - Install
         - Scan
       default: Install
   ```

------
#### [ JSON ]

   ```
   {
      "description":"An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "schemaVersion":"0.3",
      "assumeRole":"{{AutomationAssumeRole}}",
      "parameters":{
         "AutomationAssumeRole":{
            "type":"String",
            "description":"(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook."
         },
         "PrimaryPatchGroupTag":{
            "type":"StringMap",
            "description":"(Required) The tag for the primary group of instances you want to patch. Specify a key-value pair. Example: {\"key\" : \"value\"}"
         },
         "SecondaryPatchGroupTag":{
            "type":"StringMap",
            "description":"(Required) The tag for the secondary group of instances you want to patch. Specify a key-value pair. Example: {\"key\" : \"value\"}"
         },
         "SnapshotId":{
            "type":"String",
            "description":"(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.",
            "default":""
         },
         "RebootOption":{
            "type":"String",
            "description":"(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.",
            "allowedValues":[
               "NoReboot",
               "RebootIfNeeded"
            ],
            "default":"RebootIfNeeded"
         },
         "Operation":{
            "type":"String",
            "description":"(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.",
            "allowedValues":[
               "Install",
               "Scan"
            ],
            "default":"Install"
         }
      }
   },
   ```

------

1. Wenn die Elemente der obersten Ebene definiert sind, arbeitet Emily mit der Erstellung der Aktionen, welche die `mainSteps` des Runbooks melden. Im ersten Schritt werden alle Instanzen erfasst, die IDs dem im Parameter angegebenen Tag zugeordnet sind, und es wird ein `PrimaryPatchGroupTag` `StringMap` Parameter ausgegeben, der die Instanz-ID und den aktuellen Status der Instanz enthält. Die Ausgabe dieser Aktion wird in späteren Aktionen verwendet. 

   Beachten Sie, dass die `script`-Eingabeparameter für JSON-Runbooks nicht unterstützt werden. JSON-Runbooks müssen Skriptinhalt mithilfe des `attachment`-Eingabeparameters bereitstellen.

------
#### [ YAML ]

   ```
   mainSteps:
     - name: getPrimaryInstanceState
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: getInstanceStates
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def getInstanceStates(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             tag = events['primaryTag']
             tagKey, tagValue = list(tag.items())[0]
             instanceQuery = ec2.describe_instances(
             Filters=[
                 {
                     "Name": "tag:" + tagKey,
                     "Values": [tagValue]
                 }]
             )
             if not instanceQuery['Reservations']:
                 noInstancesForTagString = "No instances found for specified tag."
                 return({ 'noInstancesFound' : noInstancesForTagString })
             else:
                 queryResponse = instanceQuery['Reservations']
                 originalInstanceStates = {}
                 for results in queryResponse:
                     instanceSet = results['Instances']
                     for instance in instanceSet:
                         instanceId = instance['InstanceId']
                         originalInstanceStates[instanceId] = instance['State']['Name']
                 return originalInstanceStates
       outputs:
         - Name: originalInstanceStates
           Selector: $.Payload
           Type: StringMap
       nextStep: verifyPrimaryInstancesRunning
   ```

------
#### [ JSON ]

   ```
   "mainSteps":[
         {
            "name":"getPrimaryInstanceState",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"getInstanceStates",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"originalInstanceStates",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               }
            ],
            "nextStep":"verifyPrimaryInstancesRunning"
         },
   ```

------

1. Emily verwendet die Ausgabe der vorherigen Aktion in einer anderen `aws:executeScript`-Aktion, um zu überprüfen, ob alle Instances, die dem im `PrimaryPatchGroupTag`-Parameter angegebenen Tag zugeordnet sind, in einem `running`-Zustand sind.

   Wenn der Instance-Status bereits `running` oder `shutting-down` ist, durchläuft das Skript weiterhin die verbleibenden Instances.

   Wenn der Status der Instance `stopping` ist, fragt das Skript die Instance ab, den `stopped`-Status zu erreichen und startet die Instance.

   Wenn der Status der Instance `stopped` ist, startet das Skript die Instance.

------
#### [ YAML ]

   ```
   - name: verifyPrimaryInstancesRunning
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: verifyInstancesRunning
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def verifyInstancesRunning(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped':
                   print("The target instance " + instance + " is stopped. The instance will now be started.")
                   ec2.start_instances(
                       InstanceIds=[instance]
                       )
               elif instanceDict[instance] == 'stopping':
                   print("The target instance " + instance + " is stopping. Polling for instance to reach stopped state.")
                   while instanceDict[instance] != 'stopped':
                       poll = ec2.get_waiter('instance_stopped')
                       poll.wait(
                           InstanceIds=[instance]
                       )
                   ec2.start_instances(
                       InstanceIds=[instance]
                   )
               else:
                 pass
       nextStep: waitForPrimaryRunningInstances
   ```

------
#### [ JSON ]

   ```
   {
            "name":"verifyPrimaryInstancesRunning",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"verifyInstancesRunning",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"waitForPrimaryRunningInstances"
         },
   ```

------

1. Emily überprüft, ob alle Instances, die dem im `PrimaryPatchGroupTag`-Parameter angegebenen Tag zugeordnet sind, gestartet wurden oder sich bereits in einem `running`-Zustand befinden. Dann verwendet sie ein anderes Skript, um zu überprüfen, ob alle Instances, einschließlich derjenigen, die in der vorherigen Aktion gestartet wurden, den `running`-Zustand erreicht haben.

------
#### [ YAML ]

   ```
   - name: waitForPrimaryRunningInstances
       action: 'aws:executeScript'
       timeoutSeconds: 300
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: waitForRunningInstances
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def waitForRunningInstances(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
                 poll = ec2.get_waiter('instance_running')
                 poll.wait(
                     InstanceIds=[instance]
                 )
       nextStep: returnPrimaryTagKey
   ```

------
#### [ JSON ]

   ```
   {
            "name":"waitForPrimaryRunningInstances",
            "action":"aws:executeScript",
            "timeoutSeconds":300,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"waitForRunningInstances",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"returnPrimaryTagKey"
         },
   ```

------

1. Emily verwendet zwei weitere Skripte, um einzelne `String`-Werte des Schlüssels und des Werts des Tags zurückzugeben, das im `PrimaryPatchGroupTag`-Parameter angegeben ist. Die Werte, die von diesen Aktionen zurückgegeben werden, ermöglichen es ihr, Werte direkt für die `Targets`-Parameter für das `AWS-RunPatchBaseline`-Dokument bereitzustellen. Die Automatisierung schreitet dann mit dem Patchen der Instance mit dem `AWS-RunPatchBaseline`-Dokument unter Verwendung der `aws:runCommand`-Aktion fort.

------
#### [ YAML ]

   ```
   - name: returnPrimaryTagKey
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['primaryTag']
             tagKey = list(tag)[0]
             stringKey = "tag:" + tagKey
             return {'tagKey' : stringKey}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: primaryPatchGroupKey
           Selector: $.Payload.tagKey
           Type: String
       nextStep: returnPrimaryTagValue
     - name: returnPrimaryTagValue
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['primaryTag']
             tagKey = list(tag)[0]
             tagValue = tag[tagKey]
             return {'tagValue' : tagValue}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: primaryPatchGroupValue
           Selector: $.Payload.tagValue
           Type: String
       nextStep: patchPrimaryInstances
     - name: patchPrimaryInstances
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         Targets:
           - Key: '{{returnPrimaryTagKey.primaryPatchGroupKey}}'
             Values:
               - '{{returnPrimaryTagValue.primaryPatchGroupValue}}'
         MaxConcurrency: 10%
         MaxErrors: 10%
       nextStep: returnPrimaryToOriginalState
   ```

------
#### [ JSON ]

   ```
   {
            "name":"returnPrimaryTagKey",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"primaryPatchGroupKey",
                  "Selector":"$.Payload.tagKey",
                  "Type":"String"
               }
            ],
            "nextStep":"returnPrimaryTagValue"
         },
         {
            "name":"returnPrimaryTagValue",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"primaryPatchGroupValue",
                  "Selector":"$.Payload.tagValue",
                  "Type":"String"
               }
            ],
            "nextStep":"patchPrimaryInstances"
         },
         {
            "name":"patchPrimaryInstances",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               },
               "Targets":[
                  {
                     "Key":"{{returnPrimaryTagKey.primaryPatchGroupKey}}",
                     "Values":[
                        "{{returnPrimaryTagValue.primaryPatchGroupValue}}"
                     ]
                  }
               ],
               "MaxConcurrency":"10%",
               "MaxErrors":"10%"
            },
            "nextStep":"returnPrimaryToOriginalState"
         },
   ```

------

1. Nach Abschluss des Patching-Voragngs möchte Emily, dass die Automatisierung die Ziel-Instances, die dem im `PrimaryPatchGroupTag`-Parameter angegebenen Tag zugeordnet sind, in den Zustand zurückversetzt, in dem sie sich vor dem Automatisierungsstart befanden. Sie tut dies, indem sie erneut die Ausgabe der ersten Aktion in einem Skript verwendet. Basierend auf dem ursprünglichen Zustand der Ziel-Instance, wenn sich die Instance zuvor in einem anderen Zustand als `running` befand, wird die Instance angehalten. Wenn der Instance-Status bereits `running` ist, durchläuft das Skript weiterhin die verbleibenden Instances.

------
#### [ YAML ]

   ```
   - name: returnPrimaryToOriginalState
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnToOriginalState
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def returnToOriginalState(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped' or instanceDict[instance] == 'stopping':
                   ec2.stop_instances(
                       InstanceIds=[instance]
                       )
               else:
                 pass
       nextStep: getSecondaryInstanceState
   ```

------
#### [ JSON ]

   ```
   {
            "name":"returnPrimaryToOriginalState",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnToOriginalState",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"getSecondaryInstanceState"
         },
   ```

------

1. Der Patchvorgang wird für die Instances abgeschlossen, die mit dem Tag verknüpft sind, das im `PrimaryPatchGroupTag`-Parameter angegeben ist. Jetzt dupliziert Emily alle vorherigen Aktionen in ihrem Runbook-Inhalt, um auf die Instances abzuzielen, die dem im `SecondaryPatchGroupTag`-Parameter angegebenen Tag zugeordnet sind.

------
#### [ YAML ]

   ```
   - name: getSecondaryInstanceState
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: getInstanceStates
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def getInstanceStates(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             tag = events['secondaryTag']
             tagKey, tagValue = list(tag.items())[0]
             instanceQuery = ec2.describe_instances(
             Filters=[
                 {
                     "Name": "tag:" + tagKey,
                     "Values": [tagValue]
                 }]
             )
             if not instanceQuery['Reservations']:
                 noInstancesForTagString = "No instances found for specified tag."
                 return({ 'noInstancesFound' : noInstancesForTagString })
             else:
                 queryResponse = instanceQuery['Reservations']
                 originalInstanceStates = {}
                 for results in queryResponse:
                     instanceSet = results['Instances']
                     for instance in instanceSet:
                         instanceId = instance['InstanceId']
                         originalInstanceStates[instanceId] = instance['State']['Name']
                 return originalInstanceStates
       outputs:
         - Name: originalInstanceStates
           Selector: $.Payload
           Type: StringMap
       nextStep: verifySecondaryInstancesRunning
     - name: verifySecondaryInstancesRunning
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: verifyInstancesRunning
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def verifyInstancesRunning(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped':
                   print("The target instance " + instance + " is stopped. The instance will now be started.")
                   ec2.start_instances(
                       InstanceIds=[instance]
                       )
               elif instanceDict[instance] == 'stopping':
                   print("The target instance " + instance + " is stopping. Polling for instance to reach stopped state.")
                   while instanceDict[instance] != 'stopped':
                       poll = ec2.get_waiter('instance_stopped')
                       poll.wait(
                           InstanceIds=[instance]
                       )
                   ec2.start_instances(
                       InstanceIds=[instance]
                   )
               else:
                 pass
       nextStep: waitForSecondaryRunningInstances
     - name: waitForSecondaryRunningInstances
       action: 'aws:executeScript'
       timeoutSeconds: 300
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: waitForRunningInstances
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def waitForRunningInstances(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
                 poll = ec2.get_waiter('instance_running')
                 poll.wait(
                     InstanceIds=[instance]
                 )
       nextStep: returnSecondaryTagKey
     - name: returnSecondaryTagKey
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['secondaryTag']
             tagKey = list(tag)[0]
             stringKey = "tag:" + tagKey
             return {'tagKey' : stringKey}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: secondaryPatchGroupKey
           Selector: $.Payload.tagKey
           Type: String
       nextStep: returnSecondaryTagValue
     - name: returnSecondaryTagValue
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['secondaryTag']
             tagKey = list(tag)[0]
             tagValue = tag[tagKey]
             return {'tagValue' : tagValue}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: secondaryPatchGroupValue
           Selector: $.Payload.tagValue
           Type: String
       nextStep: patchSecondaryInstances
     - name: patchSecondaryInstances
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         Targets:
           - Key: '{{returnSecondaryTagKey.secondaryPatchGroupKey}}'
             Values:
             - '{{returnSecondaryTagValue.secondaryPatchGroupValue}}'
         MaxConcurrency: 10%
         MaxErrors: 10%
       nextStep: returnSecondaryToOriginalState
     - name: returnSecondaryToOriginalState
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnToOriginalState
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def returnToOriginalState(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped' or instanceDict[instance] == 'stopping':
                   ec2.stop_instances(
                       InstanceIds=[instance]
                       )
               else:
                 pass
   ```

------
#### [ JSON ]

   ```
   {
            "name":"getSecondaryInstanceState",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"getInstanceStates",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"originalInstanceStates",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               }
            ],
            "nextStep":"verifySecondaryInstancesRunning"
         },
         {
            "name":"verifySecondaryInstancesRunning",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"verifyInstancesRunning",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"waitForSecondaryRunningInstances"
         },
         {
            "name":"waitForSecondaryRunningInstances",
            "action":"aws:executeScript",
            "timeoutSeconds":300,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"waitForRunningInstances",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"returnSecondaryTagKey"
         },
         {
            "name":"returnSecondaryTagKey",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"secondaryPatchGroupKey",
                  "Selector":"$.Payload.tagKey",
                  "Type":"String"
               }
            ],
            "nextStep":"returnSecondaryTagValue"
         },
         {
            "name":"returnSecondaryTagValue",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"secondaryPatchGroupValue",
                  "Selector":"$.Payload.tagValue",
                  "Type":"String"
               }
            ],
            "nextStep":"patchSecondaryInstances"
         },
         {
            "name":"patchSecondaryInstances",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               },
               "Targets":[
                  {
                     "Key":"{{returnSecondaryTagKey.secondaryPatchGroupKey}}",
                     "Values":[
                        "{{returnSecondaryTagValue.secondaryPatchGroupValue}}"
                     ]
                  }
               ],
               "MaxConcurrency":"10%",
               "MaxErrors":"10%"
            },
            "nextStep":"returnSecondaryToOriginalState"
         },
         {
            "name":"returnSecondaryToOriginalState",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnToOriginalState",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            }
         }
      ]
   }
   ```

------

1. Emily überprüft den fertigen skriptbasierten Runbook-Inhalt und erstellt das Runbook in derselben AWS-Konto und AWS-Region wie die Ziel-Instances. Jetzt ist sie bereit, ihr Runbook zu testen, um sicherzustellen, dass die Automatisierung wie gewünscht funktioniert, bevor es in ihre Produktionsumgebung implementiert wird. Im Folgenden finden Sie den vollständigen geskripteten Runbook-Inhalt.

------
#### [ YAML ]

   ```
   description: An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.
   schemaVersion: '0.3'
   assumeRole: '{{AutomationAssumeRole}}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook.'
     PrimaryPatchGroupTag:
       type: StringMap
       description: '(Required) The tag for the primary group of instances you want to patch. Specify a key-value pair. Example: {"key" : "value"}'
     SecondaryPatchGroupTag:
       type: StringMap
       description: '(Required) The tag for the secondary group of instances you want to patch. Specify a key-value pair. Example: {"key" : "value"}'
     SnapshotId:
       type: String
       description: '(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.'
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: '(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.'
       allowedValues:
         - Install
         - Scan
       default: Install
   mainSteps:
     - name: getPrimaryInstanceState
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: getInstanceStates
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def getInstanceStates(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             tag = events['primaryTag']
             tagKey, tagValue = list(tag.items())[0]
             instanceQuery = ec2.describe_instances(
             Filters=[
                 {
                     "Name": "tag:" + tagKey,
                     "Values": [tagValue]
                 }]
             )
             if not instanceQuery['Reservations']:
                 noInstancesForTagString = "No instances found for specified tag."
                 return({ 'noInstancesFound' : noInstancesForTagString })
             else:
                 queryResponse = instanceQuery['Reservations']
                 originalInstanceStates = {}
                 for results in queryResponse:
                     instanceSet = results['Instances']
                     for instance in instanceSet:
                         instanceId = instance['InstanceId']
                         originalInstanceStates[instanceId] = instance['State']['Name']
                 return originalInstanceStates
       outputs:
         - Name: originalInstanceStates
           Selector: $.Payload
           Type: StringMap
       nextStep: verifyPrimaryInstancesRunning
     - name: verifyPrimaryInstancesRunning
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: verifyInstancesRunning
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def verifyInstancesRunning(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped':
                   print("The target instance " + instance + " is stopped. The instance will now be started.")
                   ec2.start_instances(
                       InstanceIds=[instance]
                       )
               elif instanceDict[instance] == 'stopping':
                   print("The target instance " + instance + " is stopping. Polling for instance to reach stopped state.")
                   while instanceDict[instance] != 'stopped':
                       poll = ec2.get_waiter('instance_stopped')
                       poll.wait(
                           InstanceIds=[instance]
                       )
                   ec2.start_instances(
                       InstanceIds=[instance]
                   )
               else:
                 pass
       nextStep: waitForPrimaryRunningInstances
     - name: waitForPrimaryRunningInstances
       action: 'aws:executeScript'
       timeoutSeconds: 300
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: waitForRunningInstances
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def waitForRunningInstances(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
                 poll = ec2.get_waiter('instance_running')
                 poll.wait(
                     InstanceIds=[instance]
                 )
       nextStep: returnPrimaryTagKey
     - name: returnPrimaryTagKey
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['primaryTag']
             tagKey = list(tag)[0]
             stringKey = "tag:" + tagKey
             return {'tagKey' : stringKey}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: primaryPatchGroupKey
           Selector: $.Payload.tagKey
           Type: String
       nextStep: returnPrimaryTagValue
     - name: returnPrimaryTagValue
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           primaryTag: '{{PrimaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['primaryTag']
             tagKey = list(tag)[0]
             tagValue = tag[tagKey]
             return {'tagValue' : tagValue}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: primaryPatchGroupValue
           Selector: $.Payload.tagValue
           Type: String
       nextStep: patchPrimaryInstances
     - name: patchPrimaryInstances
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         Targets:
           - Key: '{{returnPrimaryTagKey.primaryPatchGroupKey}}'
             Values:
               - '{{returnPrimaryTagValue.primaryPatchGroupValue}}'
         MaxConcurrency: 10%
         MaxErrors: 10%
       nextStep: returnPrimaryToOriginalState
     - name: returnPrimaryToOriginalState
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnToOriginalState
         InputPayload:
           targetInstances: '{{getPrimaryInstanceState.originalInstanceStates}}'
         Script: |-
           def returnToOriginalState(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped' or instanceDict[instance] == 'stopping':
                   ec2.stop_instances(
                       InstanceIds=[instance]
                       )
               else:
                 pass
       nextStep: getSecondaryInstanceState
     - name: getSecondaryInstanceState
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: getInstanceStates
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def getInstanceStates(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             tag = events['secondaryTag']
             tagKey, tagValue = list(tag.items())[0]
             instanceQuery = ec2.describe_instances(
             Filters=[
                 {
                     "Name": "tag:" + tagKey,
                     "Values": [tagValue]
                 }]
             )
             if not instanceQuery['Reservations']:
                 noInstancesForTagString = "No instances found for specified tag."
                 return({ 'noInstancesFound' : noInstancesForTagString })
             else:
                 queryResponse = instanceQuery['Reservations']
                 originalInstanceStates = {}
                 for results in queryResponse:
                     instanceSet = results['Instances']
                     for instance in instanceSet:
                         instanceId = instance['InstanceId']
                         originalInstanceStates[instanceId] = instance['State']['Name']
                 return originalInstanceStates
       outputs:
         - Name: originalInstanceStates
           Selector: $.Payload
           Type: StringMap
       nextStep: verifySecondaryInstancesRunning
     - name: verifySecondaryInstancesRunning
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: verifyInstancesRunning
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def verifyInstancesRunning(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped':
                   print("The target instance " + instance + " is stopped. The instance will now be started.")
                   ec2.start_instances(
                       InstanceIds=[instance]
                       )
               elif instanceDict[instance] == 'stopping':
                   print("The target instance " + instance + " is stopping. Polling for instance to reach stopped state.")
                   while instanceDict[instance] != 'stopped':
                       poll = ec2.get_waiter('instance_stopped')
                       poll.wait(
                           InstanceIds=[instance]
                       )
                   ec2.start_instances(
                       InstanceIds=[instance]
                   )
               else:
                 pass
       nextStep: waitForSecondaryRunningInstances
     - name: waitForSecondaryRunningInstances
       action: 'aws:executeScript'
       timeoutSeconds: 300
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: waitForRunningInstances
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def waitForRunningInstances(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
                 poll = ec2.get_waiter('instance_running')
                 poll.wait(
                     InstanceIds=[instance]
                 )
       nextStep: returnSecondaryTagKey
     - name: returnSecondaryTagKey
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['secondaryTag']
             tagKey = list(tag)[0]
             stringKey = "tag:" + tagKey
             return {'tagKey' : stringKey}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: secondaryPatchGroupKey
           Selector: $.Payload.tagKey
           Type: String
       nextStep: returnSecondaryTagValue
     - name: returnSecondaryTagValue
       action: 'aws:executeScript'
       timeoutSeconds: 120
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnTagValues
         InputPayload:
           secondaryTag: '{{SecondaryPatchGroupTag}}'
         Script: |-
           def returnTagValues(events,context):
             tag = events['secondaryTag']
             tagKey = list(tag)[0]
             tagValue = tag[tagKey]
             return {'tagValue' : tagValue}
       outputs:
         - Name: Payload
           Selector: $.Payload
           Type: StringMap
         - Name: secondaryPatchGroupValue
           Selector: $.Payload.tagValue
           Type: String
       nextStep: patchSecondaryInstances
     - name: patchSecondaryInstances
       action: 'aws:runCommand'
       onFailure: Abort
       timeoutSeconds: 7200
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         Targets:
           - Key: '{{returnSecondaryTagKey.secondaryPatchGroupKey}}'
             Values:
             - '{{returnSecondaryTagValue.secondaryPatchGroupValue}}'
         MaxConcurrency: 10%
         MaxErrors: 10%
       nextStep: returnSecondaryToOriginalState
     - name: returnSecondaryToOriginalState
       action: 'aws:executeScript'
       timeoutSeconds: 600
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: returnToOriginalState
         InputPayload:
           targetInstances: '{{getSecondaryInstanceState.originalInstanceStates}}'
         Script: |-
           def returnToOriginalState(events,context):
             import boto3
   
             #Initialize client
             ec2 = boto3.client('ec2')
             instanceDict = events['targetInstances']
             for instance in instanceDict:
               if instanceDict[instance] == 'stopped' or instanceDict[instance] == 'stopping':
                   ec2.stop_instances(
                       InstanceIds=[instance]
                       )
               else:
                 pass
   ```

------
#### [ JSON ]

   ```
   {
      "description":"An example of an Automation runbook that patches groups of Amazon EC2 instances in stages.",
      "schemaVersion":"0.3",
      "assumeRole":"{{AutomationAssumeRole}}",
      "parameters":{
         "AutomationAssumeRole":{
            "type":"String",
            "description":"(Required) The Amazon Resource Name (ARN) of the IAM role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to operate this runbook."
         },
         "PrimaryPatchGroupTag":{
            "type":"StringMap",
            "description":"(Required) The tag for the primary group of instances you want to patch. Specify a key-value pair. Example: {\"key\" : \"value\"}"
         },
         "SecondaryPatchGroupTag":{
            "type":"StringMap",
            "description":"(Required) The tag for the secondary group of instances you want to patch. Specify a key-value pair. Example: {\"key\" : \"value\"}"
         },
         "SnapshotId":{
            "type":"String",
            "description":"(Optional) The snapshot ID to use to retrieve a patch baseline snapshot.",
            "default":""
         },
         "RebootOption":{
            "type":"String",
            "description":"(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.",
            "allowedValues":[
               "NoReboot",
               "RebootIfNeeded"
            ],
            "default":"RebootIfNeeded"
         },
         "Operation":{
            "type":"String",
            "description":"(Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.",
            "allowedValues":[
               "Install",
               "Scan"
            ],
            "default":"Install"
         }
      },
      "mainSteps":[
         {
            "name":"getPrimaryInstanceState",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"getInstanceStates",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"originalInstanceStates",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               }
            ],
            "nextStep":"verifyPrimaryInstancesRunning"
         },
         {
            "name":"verifyPrimaryInstancesRunning",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"verifyInstancesRunning",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"waitForPrimaryRunningInstances"
         },
         {
            "name":"waitForPrimaryRunningInstances",
            "action":"aws:executeScript",
            "timeoutSeconds":300,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"waitForRunningInstances",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"returnPrimaryTagKey"
         },
         {
            "name":"returnPrimaryTagKey",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"primaryPatchGroupKey",
                  "Selector":"$.Payload.tagKey",
                  "Type":"String"
               }
            ],
            "nextStep":"returnPrimaryTagValue"
         },
         {
            "name":"returnPrimaryTagValue",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "primaryTag":"{{PrimaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"primaryPatchGroupValue",
                  "Selector":"$.Payload.tagValue",
                  "Type":"String"
               }
            ],
            "nextStep":"patchPrimaryInstances"
         },
         {
            "name":"patchPrimaryInstances",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               },
               "Targets":[
                  {
                     "Key":"{{returnPrimaryTagKey.primaryPatchGroupKey}}",
                     "Values":[
                        "{{returnPrimaryTagValue.primaryPatchGroupValue}}"
                     ]
                  }
               ],
               "MaxConcurrency":"10%",
               "MaxErrors":"10%"
            },
            "nextStep":"returnPrimaryToOriginalState"
         },
         {
            "name":"returnPrimaryToOriginalState",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnToOriginalState",
               "InputPayload":{
                  "targetInstances":"{{getPrimaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"getSecondaryInstanceState"
         },
         {
            "name":"getSecondaryInstanceState",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"getInstanceStates",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"originalInstanceStates",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               }
            ],
            "nextStep":"verifySecondaryInstancesRunning"
         },
         {
            "name":"verifySecondaryInstancesRunning",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"verifyInstancesRunning",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"waitForSecondaryRunningInstances"
         },
         {
            "name":"waitForSecondaryRunningInstances",
            "action":"aws:executeScript",
            "timeoutSeconds":300,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"waitForRunningInstances",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            },
            "nextStep":"returnSecondaryTagKey"
         },
         {
            "name":"returnSecondaryTagKey",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"secondaryPatchGroupKey",
                  "Selector":"$.Payload.tagKey",
                  "Type":"String"
               }
            ],
            "nextStep":"returnSecondaryTagValue"
         },
         {
            "name":"returnSecondaryTagValue",
            "action":"aws:executeScript",
            "timeoutSeconds":120,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnTagValues",
               "InputPayload":{
                  "secondaryTag":"{{SecondaryPatchGroupTag}}"
               },
               "Script":"..."
            },
            "outputs":[
               {
                  "Name":"Payload",
                  "Selector":"$.Payload",
                  "Type":"StringMap"
               },
               {
                  "Name":"secondaryPatchGroupValue",
                  "Selector":"$.Payload.tagValue",
                  "Type":"String"
               }
            ],
            "nextStep":"patchSecondaryInstances"
         },
         {
            "name":"patchSecondaryInstances",
            "action":"aws:runCommand",
            "onFailure":"Abort",
            "timeoutSeconds":7200,
            "inputs":{
               "DocumentName":"AWS-RunPatchBaseline",
               "Parameters":{
                  "SnapshotId":"{{SnapshotId}}",
                  "RebootOption":"{{RebootOption}}",
                  "Operation":"{{Operation}}"
               },
               "Targets":[
                  {
                     "Key":"{{returnSecondaryTagKey.secondaryPatchGroupKey}}",
                     "Values":[
                        "{{returnSecondaryTagValue.secondaryPatchGroupValue}}"
                     ]
                  }
               ],
               "MaxConcurrency":"10%",
               "MaxErrors":"10%"
            },
            "nextStep":"returnSecondaryToOriginalState"
         },
         {
            "name":"returnSecondaryToOriginalState",
            "action":"aws:executeScript",
            "timeoutSeconds":600,
            "onFailure":"Abort",
            "inputs":{
               "Runtime":"python3.11",
               "Handler":"returnToOriginalState",
               "InputPayload":{
                  "targetInstances":"{{getSecondaryInstanceState.originalInstanceStates}}"
               },
               "Script":"..."
            }
         }
      ]
   }
   ```

------

Weitere Informationen zu den hier verwendeten Automation-Aktionen finden Sie unter [Systems Manager Automation Aktionen-Referenz](automation-actions.md).

# Weitere Runbook-Beispiele
<a name="automation-document-examples"></a>

Das folgende Beispiel-Runbook zeigt, wie Sie AWS Systems Manager Automatisierungsaktionen verwenden können, um allgemeine Bereitstellungs-, Problembehandlungs- und Wartungsaufgaben zu automatisieren.

**Anmerkung**  
Die Beispiel-Runbooks in diesem Abschnitt werden bereitgestellt, um zu veranschaulichen, wie Sie benutzerdefinierte Runbooks erstellen können, um Ihre spezifischen Betriebsanforderungen zu erfüllen. Diese Runbooks sind nicht für den Einsatz in Produktionsumgebungen vorgesehen. Sie können sie jedoch für Ihren eigenen Gebrauch anpassen.

**Topics**
+ [Bereitstellung der VPC-Architektur und der Microsoft Active Directory-Domänencontroller](automation-document-architecture-deployment-example.md)
+ [Wiederherstellen eines Root-Volumes aus dem letzten Snapshot](automation-document-instance-recovery-example.md)
+ [Erstellen eines AMI und einer regionenübergreifenden Kopie](automation-document-backup-maintenance-example.md)

# Bereitstellung der VPC-Architektur und der Microsoft Active Directory-Domänencontroller
<a name="automation-document-architecture-deployment-example"></a>

Um die Effizienz zu steigern und allgemeine Aufgaben zu standardisieren, können Sie sich für die Automatisierung von Bereitstellungen entscheiden. Dies ist nützlich, wenn Sie regelmäßig dieselbe Architektur für mehrere Konten bereitstellen und AWS-Regionen. Durch die Automatisierung von Architekturbereitstellungen kann auch das Risiko menschlicher Fehler verringert werden, die bei der manuellen Bereitstellung der Architektur auftreten können. AWS Systems Manager Automatisierungsaktionen können Ihnen dabei helfen, dies zu erreichen. Automation ist ein Tool in AWS Systems Manager.

Das folgende AWS Systems Manager Beispiel-Runbook führt diese Aktionen aus:
+ Ruft das neueste Windows Server 2016 Amazon Machine Image (AMI) mithilfe von Systems Manager Parameter Store ab, das beim Starten der EC2-Instances verwendet wird, die als Domaincontroller konfiguriert werden. Parameter Store ist ein Tool in AWS Systems Manager.
+ Verwendet die `aws:executeAwsApi` Automatisierungsaktion, um mehrere AWS API-Operationen aufzurufen, um die VPC-Architektur zu erstellen. Die Domänencontroller-Instances werden in privaten Subnetzen gestartet und stellen über ein NAT-Gateway eine Verbindung zum Internet her. Dies ermöglicht dem SSM Agent auf den Instances auf die erforderlichen Systems Manager Endpunkte zuzugreifen.
+ Verwendet die `aws:waitForAwsResourceProperty` Automatisierungsaktion, um zu bestätigen, dass die durch die vorherige Aktion gestarteten Instances `Online` für AWS Systems Manager gelten.
+ Verwendet die `aws:runCommand` Automatisierungsaktion zur Konfiguration der als Microsoft Active Directory-Domänencontroller gestarteten Instances.

------
#### [ YAML ]

```
    ---
    description: Custom Automation Deployment Example
    schemaVersion: '0.3'
    parameters:
      AutomationAssumeRole:
        type: String
        default: ''
        description: >-
          (Optional) The ARN of the role that allows Automation to perform the
          actions on your behalf. If no role is specified, Systems Manager
          Automation uses your IAM permissions to run this runbook.
    mainSteps:
      - name: getLatestWindowsAmi
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ssm
          Api: GetParameter
          Name: >-
            /aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base
        outputs:
          - Name: amiId
            Selector: $.Parameter.Value
            Type: String
        nextStep: createSSMInstanceRole
      - name: createSSMInstanceRole
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: iam
          Api: CreateRole
          AssumeRolePolicyDocument: >-
            {"Version": "2012-10-17",		 	 	 "Statement":[{"Effect":"Allow","Principal":{"Service":["ec2.amazonaws.com"]},"Action":["sts:AssumeRole"]}]}
          RoleName: sampleSSMInstanceRole
        nextStep: attachManagedSSMPolicy
      - name: attachManagedSSMPolicy
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: iam
          Api: AttachRolePolicy
          PolicyArn: 'arn:aws:iam::aws:policy/service-role/AmazonSSMManagedInstanceCore'
          RoleName: sampleSSMInstanceRole
        nextStep: createSSMInstanceProfile
      - name: createSSMInstanceProfile
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: iam
          Api: CreateInstanceProfile
          InstanceProfileName: sampleSSMInstanceRole
        outputs:
          - Name: instanceProfileArn
            Selector: $.InstanceProfile.Arn
            Type: String
        nextStep: addSSMInstanceRoleToProfile
      - name: addSSMInstanceRoleToProfile
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: iam
          Api: AddRoleToInstanceProfile
          InstanceProfileName: sampleSSMInstanceRole
          RoleName: sampleSSMInstanceRole
        nextStep: createVpc
      - name: createVpc
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateVpc
          CidrBlock: 10.0.100.0/22
        outputs:
          - Name: vpcId
            Selector: $.Vpc.VpcId
            Type: String
        nextStep: getMainRtb
      - name: getMainRtb
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: DescribeRouteTables
          Filters:
            - Name: vpc-id
              Values:
                - '{{ createVpc.vpcId }}'
        outputs:
          - Name: mainRtbId
            Selector: '$.RouteTables[0].RouteTableId'
            Type: String
        nextStep: verifyMainRtb
      - name: verifyMainRtb
        action: aws:assertAwsResourceProperty
        onFailure: Abort
        inputs:
          Service: ec2
          Api: DescribeRouteTables
          RouteTableIds:
            - '{{ getMainRtb.mainRtbId }}'
          PropertySelector: '$.RouteTables[0].Associations[0].Main'
          DesiredValues:
            - 'True'
        nextStep: createPubSubnet
      - name: createPubSubnet
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateSubnet
          CidrBlock: 10.0.103.0/24
          AvailabilityZone: us-west-2c
          VpcId: '{{ createVpc.vpcId }}'
        outputs:
          - Name: pubSubnetId
            Selector: $.Subnet.SubnetId
            Type: String
        nextStep: createPubRtb
      - name: createPubRtb
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateRouteTable
          VpcId: '{{ createVpc.vpcId }}'
        outputs:
          - Name: pubRtbId
            Selector: $.RouteTable.RouteTableId
            Type: String
        nextStep: createIgw
      - name: createIgw
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateInternetGateway
        outputs:
          - Name: igwId
            Selector: $.InternetGateway.InternetGatewayId
            Type: String
        nextStep: attachIgw
      - name: attachIgw
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: AttachInternetGateway
          InternetGatewayId: '{{ createIgw.igwId }}'
          VpcId: '{{ createVpc.vpcId }}'
        nextStep: allocateEip
      - name: allocateEip
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: AllocateAddress
          Domain: vpc
        outputs:
          - Name: eipAllocationId
            Selector: $.AllocationId
            Type: String
        nextStep: createNatGw
      - name: createNatGw
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateNatGateway
          AllocationId: '{{ allocateEip.eipAllocationId }}'
          SubnetId: '{{ createPubSubnet.pubSubnetId }}'
        outputs:
          - Name: natGwId
            Selector: $.NatGateway.NatGatewayId
            Type: String
        nextStep: verifyNatGwAvailable
      - name: verifyNatGwAvailable
        action: aws:waitForAwsResourceProperty
        timeoutSeconds: 150
        inputs:
          Service: ec2
          Api: DescribeNatGateways
          NatGatewayIds:
            - '{{ createNatGw.natGwId }}'
          PropertySelector: '$.NatGateways[0].State'
          DesiredValues:
            - available
        nextStep: createNatRoute
      - name: createNatRoute
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateRoute
          DestinationCidrBlock: 0.0.0.0/0
          NatGatewayId: '{{ createNatGw.natGwId }}'
          RouteTableId: '{{ getMainRtb.mainRtbId }}'
        nextStep: createPubRoute
      - name: createPubRoute
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateRoute
          DestinationCidrBlock: 0.0.0.0/0
          GatewayId: '{{ createIgw.igwId }}'
          RouteTableId: '{{ createPubRtb.pubRtbId }}'
        nextStep: setPubSubAssoc
      - name: setPubSubAssoc
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: AssociateRouteTable
          RouteTableId: '{{ createPubRtb.pubRtbId }}'
          SubnetId: '{{ createPubSubnet.pubSubnetId }}'
      - name: createDhcpOptions
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateDhcpOptions
          DhcpConfigurations:
            - Key: domain-name-servers
              Values:
                - '10.0.100.50,10.0.101.50'
            - Key: domain-name
              Values:
                - sample.com
        outputs:
          - Name: dhcpOptionsId
            Selector: $.DhcpOptions.DhcpOptionsId
            Type: String
        nextStep: createDCSubnet1
      - name: createDCSubnet1
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateSubnet
          CidrBlock: 10.0.100.0/24
          AvailabilityZone: us-west-2a
          VpcId: '{{ createVpc.vpcId }}'
        outputs:
          - Name: firstSubnetId
            Selector: $.Subnet.SubnetId
            Type: String
        nextStep: createDCSubnet2
      - name: createDCSubnet2
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateSubnet
          CidrBlock: 10.0.101.0/24
          AvailabilityZone: us-west-2b
          VpcId: '{{ createVpc.vpcId }}'
        outputs:
          - Name: secondSubnetId
            Selector: $.Subnet.SubnetId
            Type: String
        nextStep: createDCSecGroup
      - name: createDCSecGroup
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: CreateSecurityGroup
          GroupName: SampleDCSecGroup
          Description: Security Group for Sample Domain Controllers
          VpcId: '{{ createVpc.vpcId }}'
        outputs:
          - Name: dcSecGroupId
            Selector: $.GroupId
            Type: String
        nextStep: authIngressDCTraffic
      - name: authIngressDCTraffic
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: AuthorizeSecurityGroupIngress
          GroupId: '{{ createDCSecGroup.dcSecGroupId }}'
          IpPermissions:
            - FromPort: -1
              IpProtocol: '-1'
              IpRanges:
                - CidrIp: 0.0.0.0/0
                  Description: Allow all traffic between Domain Controllers
        nextStep: verifyInstanceProfile
      - name: verifyInstanceProfile
        action: aws:waitForAwsResourceProperty
        maxAttempts: 5
        onFailure: Abort
        inputs:
          Service: iam
          Api: ListInstanceProfilesForRole
          RoleName: sampleSSMInstanceRole
          PropertySelector: '$.InstanceProfiles[0].Arn'
          DesiredValues:
            - '{{ createSSMInstanceProfile.instanceProfileArn }}'
        nextStep: iamEventualConsistency
      - name: iamEventualConsistency
        action: aws:sleep
        inputs:
          Duration: PT2M
        nextStep: launchDC1
      - name: launchDC1
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: RunInstances
          BlockDeviceMappings:
            - DeviceName: /dev/sda1
              Ebs:
                DeleteOnTermination: true
                VolumeSize: 50
                VolumeType: gp2
            - DeviceName: xvdf
              Ebs:
                DeleteOnTermination: true
                VolumeSize: 100
                VolumeType: gp2
          IamInstanceProfile:
            Arn: '{{ createSSMInstanceProfile.instanceProfileArn }}'
          ImageId: '{{ getLatestWindowsAmi.amiId }}'
          InstanceType: t2.micro
          MaxCount: 1
          MinCount: 1
          PrivateIpAddress: 10.0.100.50
          SecurityGroupIds:
            - '{{ createDCSecGroup.dcSecGroupId }}'
          SubnetId: '{{ createDCSubnet1.firstSubnetId }}'
          TagSpecifications:
            - ResourceType: instance
              Tags:
                - Key: Name
                  Value: SampleDC1
        outputs:
          - Name: pdcInstanceId
            Selector: '$.Instances[0].InstanceId'
            Type: String
        nextStep: launchDC2
      - name: launchDC2
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: RunInstances
          BlockDeviceMappings:
            - DeviceName: /dev/sda1
              Ebs:
                DeleteOnTermination: true
                VolumeSize: 50
                VolumeType: gp2
            - DeviceName: xvdf
              Ebs:
                DeleteOnTermination: true
                VolumeSize: 100
                VolumeType: gp2
          IamInstanceProfile:
            Arn: '{{ createSSMInstanceProfile.instanceProfileArn }}'
          ImageId: '{{ getLatestWindowsAmi.amiId }}'
          InstanceType: t2.micro
          MaxCount: 1
          MinCount: 1
          PrivateIpAddress: 10.0.101.50
          SecurityGroupIds:
            - '{{ createDCSecGroup.dcSecGroupId }}'
          SubnetId: '{{ createDCSubnet2.secondSubnetId }}'
          TagSpecifications:
            - ResourceType: instance
              Tags:
                - Key: Name
                  Value: SampleDC2
        outputs:
          - Name: adcInstanceId
            Selector: '$.Instances[0].InstanceId'
            Type: String
        nextStep: verifyDCInstanceState
      - name: verifyDCInstanceState
        action: aws:waitForAwsResourceProperty
        inputs:
          Service: ec2
          Api: DescribeInstanceStatus
          IncludeAllInstances: true
          InstanceIds:
            - '{{ launchDC1.pdcInstanceId }}'
            - '{{ launchDC2.adcInstanceId }}'
          PropertySelector: '$.InstanceStatuses..InstanceState.Name'
          DesiredValues:
            - running
        nextStep: verifyInstancesOnlineSSM
      - name: verifyInstancesOnlineSSM
        action: aws:waitForAwsResourceProperty
        timeoutSeconds: 600
        inputs:
          Service: ssm
          Api: DescribeInstanceInformation
          InstanceInformationFilterList:
            - key: InstanceIds
              valueSet:
                - '{{ launchDC1.pdcInstanceId }}'
                - '{{ launchDC2.adcInstanceId }}'
          PropertySelector: '$.InstanceInformationList..PingStatus'
          DesiredValues:
            - Online
        nextStep: installADRoles
      - name: installADRoles
        action: aws:runCommand
        inputs:
          DocumentName: AWS-RunPowerShellScript
          InstanceIds:
            - '{{ launchDC1.pdcInstanceId }}'
            - '{{ launchDC2.adcInstanceId }}'
          Parameters:
            commands: |-
              try {
                  Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
              }
              catch {
                  Write-Error "Failed to install ADDS Role."
              }
        nextStep: setAdminPassword
      - name: setAdminPassword
        action: aws:runCommand
        inputs:
          DocumentName: AWS-RunPowerShellScript
          InstanceIds:
            - '{{ launchDC1.pdcInstanceId }}'
          Parameters:
            commands:
              - net user Administrator "sampleAdminPass123!"
        nextStep: createForest
      - name: createForest
        action: aws:runCommand
        inputs:
          DocumentName: AWS-RunPowerShellScript
          InstanceIds:
            - '{{ launchDC1.pdcInstanceId }}'
          Parameters:
            commands: |-
              $dsrmPass = 'sample123!' | ConvertTo-SecureString -asPlainText -Force
              try {
                  Install-ADDSForest -DomainName "sample.com" -DomainMode 6 -ForestMode 6 -InstallDNS -DatabasePath "D:\NTDS" -SysvolPath "D:\SYSVOL" -SafeModeAdministratorPassword $dsrmPass -Force
              }
              catch {
                  Write-Error $_
              }
              try {
                  Add-DnsServerForwarder -IPAddress "10.0.100.2"
              }
              catch {
                  Write-Error $_
              }
        nextStep: associateDhcpOptions
      - name: associateDhcpOptions
        action: aws:executeAwsApi
        onFailure: Abort
        inputs:
          Service: ec2
          Api: AssociateDhcpOptions
          DhcpOptionsId: '{{ createDhcpOptions.dhcpOptionsId }}'
          VpcId: '{{ createVpc.vpcId }}'
        nextStep: waitForADServices
      - name: waitForADServices
        action: aws:sleep
        inputs:
          Duration: PT1M
        nextStep: promoteADC
      - name: promoteADC
        action: aws:runCommand
        inputs:
          DocumentName: AWS-RunPowerShellScript
          InstanceIds:
            - '{{ launchDC2.adcInstanceId }}'
          Parameters:
            commands: |-
              ipconfig /renew
              $dsrmPass = 'sample123!' | ConvertTo-SecureString -asPlainText -Force
              $domAdminUser = "sample\Administrator"
              $domAdminPass = "sampleAdminPass123!" | ConvertTo-SecureString -asPlainText -Force
              $domAdminCred = New-Object System.Management.Automation.PSCredential($domAdminUser,$domAdminPass)
    
              try {
                  Install-ADDSDomainController -DomainName "sample.com" -InstallDNS -DatabasePath "D:\NTDS" -SysvolPath "D:\SYSVOL" -SafeModeAdministratorPassword $dsrmPass -Credential $domAdminCred -Force
              }
              catch {
                  Write-Error $_
              }
```

------
#### [ JSON ]

```
{
      "description": "Custom Automation Deployment Example",
      "schemaVersion": "0.3",
      "assumeRole": "{{ AutomationAssumeRole }}",
      "parameters": {
        "AutomationAssumeRole": {
          "type": "String",
          "description": "(Optional) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to run this runbook.",
          "default": ""
        }
      },
      "mainSteps": [
        {
          "name": "getLatestWindowsAmi",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ssm",
            "Api": "GetParameter",
            "Name": "/aws/service/ami-windows-latest/Windows_Server-2016-English-Full-Base"
          },
          "outputs": [
            {
              "Name": "amiId",
              "Selector": "$.Parameter.Value",
              "Type": "String"
            }
          ],
          "nextStep": "createSSMInstanceRole"
        },
        {
          "name": "createSSMInstanceRole",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "iam",
            "Api": "CreateRole",
            "AssumeRolePolicyDocument": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"ec2.amazonaws.com\"]},\"Action\":[\"sts:AssumeRole\"]}]}",
            "RoleName": "sampleSSMInstanceRole"
          },
          "nextStep": "attachManagedSSMPolicy"
        },
        {
          "name": "attachManagedSSMPolicy",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "iam",
            "Api": "AttachRolePolicy",
            "PolicyArn": "arn:aws:iam::aws:policy/service-role/AmazonSSMManagedInstanceCore",
            "RoleName": "sampleSSMInstanceRole"
          },
          "nextStep": "createSSMInstanceProfile"
        },
        {
          "name": "createSSMInstanceProfile",
          "action":"aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "iam",
            "Api": "CreateInstanceProfile",
            "InstanceProfileName": "sampleSSMInstanceRole"
          },
          "outputs": [
            {
              "Name": "instanceProfileArn",
              "Selector": "$.InstanceProfile.Arn",
              "Type": "String"
            }
          ],
          "nextStep": "addSSMInstanceRoleToProfile"
        },
        {
          "name": "addSSMInstanceRoleToProfile",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "iam",
            "Api": "AddRoleToInstanceProfile",
            "InstanceProfileName": "sampleSSMInstanceRole",
            "RoleName": "sampleSSMInstanceRole"
          },
          "nextStep": "createVpc"
        },
        {
          "name": "createVpc",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateVpc",
            "CidrBlock": "10.0.100.0/22"
          },
          "outputs": [
            {
              "Name": "vpcId",
              "Selector": "$.Vpc.VpcId",
              "Type": "String"
            }
          ],
          "nextStep": "getMainRtb"
        },
        {
          "name": "getMainRtb",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "DescribeRouteTables",
            "Filters": [
              {
                "Name": "vpc-id",
                "Values": ["{{ createVpc.vpcId }}"]
              }
            ]
          },
          "outputs": [
            {
              "Name": "mainRtbId",
              "Selector": "$.RouteTables[0].RouteTableId",
              "Type": "String"
            }
          ],
          "nextStep": "verifyMainRtb"
        },
        {
          "name": "verifyMainRtb",
          "action": "aws:assertAwsResourceProperty",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "DescribeRouteTables",
            "RouteTableIds": ["{{ getMainRtb.mainRtbId }}"],
            "PropertySelector": "$.RouteTables[0].Associations[0].Main",
            "DesiredValues": ["True"]
          },
          "nextStep": "createPubSubnet"
        },
        {
          "name": "createPubSubnet",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateSubnet",
            "CidrBlock": "10.0.103.0/24",
            "AvailabilityZone": "us-west-2c",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "outputs":[
            {
              "Name": "pubSubnetId",
              "Selector": "$.Subnet.SubnetId",
              "Type": "String"
            }
          ],
          "nextStep": "createPubRtb"
        },
        {
          "name": "createPubRtb",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateRouteTable",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "outputs": [
            {
              "Name": "pubRtbId",
              "Selector": "$.RouteTable.RouteTableId",
              "Type": "String"
            }
          ],
          "nextStep": "createIgw"
        },
        {
          "name": "createIgw",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateInternetGateway"
          },
          "outputs": [
            {
              "Name": "igwId",
              "Selector": "$.InternetGateway.InternetGatewayId",
              "Type": "String"
            }
          ],
          "nextStep": "attachIgw"
        },
        {
          "name": "attachIgw",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "AttachInternetGateway",
            "InternetGatewayId": "{{ createIgw.igwId }}",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "nextStep": "allocateEip"
        },
        {
          "name": "allocateEip",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "AllocateAddress",
            "Domain": "vpc"
          },
          "outputs": [
            {
              "Name": "eipAllocationId",
              "Selector": "$.AllocationId",
              "Type": "String"
            }
          ],
          "nextStep": "createNatGw"
        },
        {
          "name": "createNatGw",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateNatGateway",
            "AllocationId": "{{ allocateEip.eipAllocationId }}",
            "SubnetId": "{{ createPubSubnet.pubSubnetId }}"
          },
          "outputs":[
            {
              "Name": "natGwId",
              "Selector": "$.NatGateway.NatGatewayId",
              "Type": "String"
            }
          ],
          "nextStep": "verifyNatGwAvailable"
        },
        {
          "name": "verifyNatGwAvailable",
          "action": "aws:waitForAwsResourceProperty",
          "timeoutSeconds": 150,
          "inputs": {
            "Service": "ec2",
            "Api": "DescribeNatGateways",
            "NatGatewayIds": [
              "{{ createNatGw.natGwId }}"
            ],
            "PropertySelector": "$.NatGateways[0].State",
            "DesiredValues": [
              "available"
            ]
          },
          "nextStep": "createNatRoute"
        },
        {
          "name": "createNatRoute",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateRoute",
            "DestinationCidrBlock": "0.0.0.0/0",
            "NatGatewayId": "{{ createNatGw.natGwId }}",
            "RouteTableId": "{{ getMainRtb.mainRtbId }}"
          },
          "nextStep": "createPubRoute"
        },
        {
          "name": "createPubRoute",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateRoute",
            "DestinationCidrBlock": "0.0.0.0/0",
            "GatewayId": "{{ createIgw.igwId }}",
            "RouteTableId": "{{ createPubRtb.pubRtbId }}"
          },
          "nextStep": "setPubSubAssoc"
        },
        {
          "name": "setPubSubAssoc",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "AssociateRouteTable",
            "RouteTableId": "{{ createPubRtb.pubRtbId }}",
            "SubnetId": "{{ createPubSubnet.pubSubnetId }}"
          }
        },
        {
          "name": "createDhcpOptions",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateDhcpOptions",
            "DhcpConfigurations": [
              {
                "Key": "domain-name-servers",
                "Values": ["10.0.100.50,10.0.101.50"]
              },
              {
                "Key": "domain-name",
                "Values": ["sample.com"]
              }
            ]
          },
          "outputs": [
            {
              "Name": "dhcpOptionsId",
              "Selector": "$.DhcpOptions.DhcpOptionsId",
              "Type": "String"
            }
          ],
          "nextStep": "createDCSubnet1"
        },
        {
          "name": "createDCSubnet1",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateSubnet",
            "CidrBlock": "10.0.100.0/24",
            "AvailabilityZone": "us-west-2a",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "outputs": [
            {
              "Name": "firstSubnetId",
              "Selector": "$.Subnet.SubnetId",
              "Type": "String"
            }
          ],
          "nextStep": "createDCSubnet2"
        },
        {
          "name": "createDCSubnet2",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateSubnet",
            "CidrBlock": "10.0.101.0/24",
            "AvailabilityZone": "us-west-2b",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "outputs": [
            {
              "Name": "secondSubnetId",
              "Selector": "$.Subnet.SubnetId",
              "Type": "String"
            }
          ],
          "nextStep": "createDCSecGroup"
        },
        {
          "name": "createDCSecGroup",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "CreateSecurityGroup",
            "GroupName": "SampleDCSecGroup",
            "Description": "Security Group for Example Domain Controllers",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "outputs": [
            {
              "Name": "dcSecGroupId",
              "Selector": "$.GroupId",
              "Type": "String"
            }
          ],
          "nextStep": "authIngressDCTraffic"
        },
        {
          "name": "authIngressDCTraffic",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "AuthorizeSecurityGroupIngress",
            "GroupId": "{{ createDCSecGroup.dcSecGroupId }}",
            "IpPermissions": [
              {
                "FromPort": -1,
                "IpProtocol": "-1",
                "IpRanges": [
                  {
                    "CidrIp": "0.0.0.0/0",
                    "Description": "Allow all traffic between Domain Controllers"
                  }
                ]
              }
            ]
          },
          "nextStep": "verifyInstanceProfile"
        },
        {
          "name": "verifyInstanceProfile",
          "action": "aws:waitForAwsResourceProperty",
          "maxAttempts": 5,
          "onFailure": "Abort",
          "inputs": {
            "Service": "iam",
            "Api": "ListInstanceProfilesForRole",
            "RoleName": "sampleSSMInstanceRole",
            "PropertySelector": "$.InstanceProfiles[0].Arn",
            "DesiredValues": [
              "{{ createSSMInstanceProfile.instanceProfileArn }}"
            ]
          },
          "nextStep": "iamEventualConsistency"
        },
        {
          "name": "iamEventualConsistency",
          "action": "aws:sleep",
          "inputs": {
            "Duration": "PT2M"
          },
          "nextStep": "launchDC1"
        },
        {
          "name": "launchDC1",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "RunInstances",
            "BlockDeviceMappings": [
              {
                "DeviceName": "/dev/sda1",
                "Ebs": {
                  "DeleteOnTermination": true,
                  "VolumeSize": 50,
                  "VolumeType": "gp2"
                }
              },
              {
                "DeviceName": "xvdf",
                "Ebs": {
                  "DeleteOnTermination": true,
                  "VolumeSize": 100,
                  "VolumeType": "gp2"
                }
              }
            ],
            "IamInstanceProfile": {
              "Arn": "{{ createSSMInstanceProfile.instanceProfileArn }}"
            },
            "ImageId": "{{ getLatestWindowsAmi.amiId }}",
            "InstanceType": "t2.micro",
            "MaxCount": 1,
            "MinCount": 1,
            "PrivateIpAddress": "10.0.100.50",
            "SecurityGroupIds": [
              "{{ createDCSecGroup.dcSecGroupId }}"
            ],
            "SubnetId": "{{ createDCSubnet1.firstSubnetId }}",
            "TagSpecifications": [
              {
                "ResourceType": "instance",
                "Tags": [
                  {
                    "Key": "Name",
                    "Value": "SampleDC1"
                  }
                ]
              }
            ]
          },
          "outputs": [
            {
              "Name": "pdcInstanceId",
              "Selector": "$.Instances[0].InstanceId",
              "Type": "String"
            }
          ],
          "nextStep": "launchDC2"
        },
        {
          "name": "launchDC2",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "RunInstances",
            "BlockDeviceMappings": [
              {
                "DeviceName": "/dev/sda1",
                "Ebs": {
                  "DeleteOnTermination": true,
                  "VolumeSize": 50,
                  "VolumeType": "gp2"
                }
              },
              {
                "DeviceName": "xvdf",
                "Ebs": {
                  "DeleteOnTermination": true,
                  "VolumeSize": 100,
                  "VolumeType": "gp2"
                }
              }
            ],
            "IamInstanceProfile": {
              "Arn": "{{ createSSMInstanceProfile.instanceProfileArn }}"
            },
            "ImageId": "{{ getLatestWindowsAmi.amiId }}",
            "InstanceType": "t2.micro",
            "MaxCount": 1,
            "MinCount": 1,
            "PrivateIpAddress": "10.0.101.50",
            "SecurityGroupIds": [
              "{{ createDCSecGroup.dcSecGroupId }}"
            ],
            "SubnetId": "{{ createDCSubnet2.secondSubnetId }}",
            "TagSpecifications": [
              {
                "ResourceType": "instance",
                "Tags": [
                  {
                    "Key": "Name",
                    "Value": "SampleDC2"
                  }
                ]
              }
            ]
          },
          "outputs": [
            {
              "Name": "adcInstanceId",
              "Selector": "$.Instances[0].InstanceId",
              "Type": "String"
            }
          ],
          "nextStep": "verifyDCInstanceState"
        },
        {
          "name": "verifyDCInstanceState",
          "action": "aws:waitForAwsResourceProperty",
          "inputs": {
            "Service": "ec2",
            "Api": "DescribeInstanceStatus",
            "IncludeAllInstances": true,
            "InstanceIds": [
              "{{ launchDC1.pdcInstanceId }}",
              "{{ launchDC2.adcInstanceId }}"
            ],
            "PropertySelector": "$.InstanceStatuses[0].InstanceState.Name",
            "DesiredValues": [
              "running"
            ]
          },
          "nextStep": "verifyInstancesOnlineSSM"
        },
        {
          "name": "verifyInstancesOnlineSSM",
          "action": "aws:waitForAwsResourceProperty",
          "timeoutSeconds": 600,
          "inputs": {
            "Service": "ssm",
            "Api": "DescribeInstanceInformation",
            "InstanceInformationFilterList": [
              {
                "key": "InstanceIds",
                "valueSet": [
                  "{{ launchDC1.pdcInstanceId }}",
                  "{{ launchDC2.adcInstanceId }}"
                ]
              }
            ],
            "PropertySelector": "$.InstanceInformationList[0].PingStatus",
            "DesiredValues": [
              "Online"
            ]
          },
          "nextStep": "installADRoles"
        },
        {
          "name": "installADRoles",
          "action": "aws:runCommand",
          "inputs": {
            "DocumentName": "AWS-RunPowerShellScript",
            "InstanceIds": [
              "{{ launchDC1.pdcInstanceId }}",
              "{{ launchDC2.adcInstanceId }}"
            ],
            "Parameters": {
              "commands": [
                "try {",
                "  Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools",
                "}",
                "catch {",
                "  Write-Error \"Failed to install ADDS Role.\"",
                "}"
              ]
            }
          },
          "nextStep": "setAdminPassword"
        },
        {
          "name": "setAdminPassword",
          "action": "aws:runCommand",
          "inputs": {
            "DocumentName": "AWS-RunPowerShellScript",
            "InstanceIds": [
              "{{ launchDC1.pdcInstanceId }}"
            ],
            "Parameters": {
              "commands": [
                "net user Administrator \"sampleAdminPass123!\""
              ]
            }
          },
          "nextStep": "createForest"
        },
        {
          "name": "createForest",
          "action": "aws:runCommand",
          "inputs": {
            "DocumentName": "AWS-RunPowerShellScript",
            "InstanceIds": [
              "{{ launchDC1.pdcInstanceId }}"
            ],
            "Parameters": {
              "commands": [
                "$dsrmPass = 'sample123!' | ConvertTo-SecureString -asPlainText -Force",
                "try {",
                "   Install-ADDSForest -DomainName \"sample.com\" -DomainMode 6 -ForestMode 6 -InstallDNS -DatabasePath \"D:\\NTDS\" -SysvolPath \"D:\\SYSVOL\" -SafeModeAdministratorPassword $dsrmPass -Force",
                "}",
                "catch {",
                "   Write-Error $_",
                "}",
                "try {",
                "   Add-DnsServerForwarder -IPAddress \"10.0.100.2\"",
                "}",
                "catch {",
                "   Write-Error $_",
                "}"
              ]
            }
          },
          "nextStep": "associateDhcpOptions"
        },
        {
          "name": "associateDhcpOptions",
          "action": "aws:executeAwsApi",
          "onFailure": "Abort",
          "inputs": {
            "Service": "ec2",
            "Api": "AssociateDhcpOptions",
            "DhcpOptionsId": "{{ createDhcpOptions.dhcpOptionsId }}",
            "VpcId": "{{ createVpc.vpcId }}"
          },
          "nextStep": "waitForADServices"
        },
        {
          "name": "waitForADServices",
          "action": "aws:sleep",
          "inputs": {
            "Duration": "PT1M"
          },
          "nextStep": "promoteADC"
        },
        {
          "name": "promoteADC",
          "action": "aws:runCommand",
          "inputs": {
            "DocumentName": "AWS-RunPowerShellScript",
            "InstanceIds": [
              "{{ launchDC2.adcInstanceId }}"
            ],
            "Parameters": {
              "commands": [
                "ipconfig /renew",
                "$dsrmPass = 'sample123!' | ConvertTo-SecureString -asPlainText -Force",
                "$domAdminUser = \"sample\\Administrator\"",
                "$domAdminPass = \"sampleAdminPass123!\" | ConvertTo-SecureString -asPlainText -Force",
                "$domAdminCred = New-Object System.Management.Automation.PSCredential($domAdminUser,$domAdminPass)",
                "try {",
                "   Install-ADDSDomainController -DomainName \"sample.com\" -InstallDNS -DatabasePath \"D:\\NTDS\" -SysvolPath \"D:\\SYSVOL\" -SafeModeAdministratorPassword $dsrmPass -Credential $domAdminCred -Force",
                "}",
                "catch {",
                "   Write-Error $_",
                "}"
              ]
            }
          }
        }
      ]
    }
```

------

# Wiederherstellen eines Root-Volumes aus dem letzten Snapshot
<a name="automation-document-instance-recovery-example"></a>

Das Betriebssystem auf einem Root-Volume kann aus verschiedenen Gründen beschädigt werden. Beispielsweise können Instances nach einem Patchvorgang aufgrund eines beschädigten Kernels oder einer beschädigten Registrierung nicht mehr erfolgreich gestartet werden. Durch die Automatisierung gängiger Problembehandlungsaufgaben, wie z. B. das Wiederherstellen eines Root-Volumes aus dem letzten Snapshot, der vor dem Patch-Vorgang erstellt wurde, können Ausfallzeiten reduziert und Ihre Problembehebungsmaßnahmen beschleunigt werden. AWS Systems Manager Automatisierungsmaßnahmen können Ihnen dabei helfen, dies zu erreichen. Automation ist ein Tool in AWS Systems Manager.

Das folgende AWS Systems Manager Beispiel-Runbook führt diese Aktionen aus: 
+ Verwendet die `aws:executeAwsApi` Automatisierungsaktion zum Abrufen von Details aus dem Root-Volumen der Instance.
+ Verwendet die `aws:executeScript` Automatisierungsaktion zum Abrufen des neuesten Snapshots für das Root-Volume.
+ Verwendet die `aws:branch` Automatisierungsaktion, um die Automatisierung fortzusetzen, wenn ein Snapshot für das Root-Volume gefunden wird.

------
#### [ YAML ]

```
    ---
    description: Custom Automation Troubleshooting Example
    schemaVersion: '0.3'
    assumeRole: "{{ AutomationAssumeRole }}"
    parameters:
      AutomationAssumeRole:
        type: String
        description: "(Required) The ARN of the role that allows Automation to perform
          the actions on your behalf. If no role is specified, Systems Manager Automation
          uses your IAM permissions to use this runbook."
        default: ''
      InstanceId:
          type: String
          description: "(Required) The Instance Id whose root EBS volume you want to restore the latest Snapshot."
          default: ''
    mainSteps:
    - name: getInstanceDetails
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: DescribeInstances
        InstanceIds:
        - "{{ InstanceId }}"
      outputs:
        - Name: availabilityZone
          Selector: "$.Reservations[0].Instances[0].Placement.AvailabilityZone"
          Type: String
        - Name: rootDeviceName
          Selector: "$.Reservations[0].Instances[0].RootDeviceName"
          Type: String
      nextStep: getRootVolumeId
    - name: getRootVolumeId
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: DescribeVolumes
        Filters:
        -  Name: attachment.device
           Values: ["{{ getInstanceDetails.rootDeviceName }}"]
        -  Name: attachment.instance-id
           Values: ["{{ InstanceId }}"]
      outputs:
        - Name: rootVolumeId
          Selector: "$.Volumes[0].VolumeId"
          Type: String
      nextStep: getSnapshotsByStartTime
    - name: getSnapshotsByStartTime
      action: aws:executeScript
      timeoutSeconds: 45
      onFailure: Abort
      inputs:
        Runtime: python3.11
        Handler: getSnapshotsByStartTime
        InputPayload:
          rootVolumeId : "{{ getRootVolumeId.rootVolumeId }}"
        Script: |-
          def getSnapshotsByStartTime(events,context):
            import boto3
    
            #Initialize client
            ec2 = boto3.client('ec2')
            rootVolumeId = events['rootVolumeId']
            snapshotsQuery = ec2.describe_snapshots(
              Filters=[
                {
                  "Name": "volume-id",
                  "Values": [rootVolumeId]
                }
              ]
            )
            if not snapshotsQuery['Snapshots']:
              noSnapshotFoundString = "NoSnapshotFound"
              return { 'noSnapshotFound' : noSnapshotFoundString }
            else:
              jsonSnapshots = snapshotsQuery['Snapshots']
              sortedSnapshots = sorted(jsonSnapshots, key=lambda k: k['StartTime'], reverse=True)
              latestSortedSnapshotId = sortedSnapshots[0]['SnapshotId']
              return { 'latestSnapshotId' : latestSortedSnapshotId }
      outputs:
      - Name: Payload
        Selector: $.Payload
        Type: StringMap
      - Name: latestSnapshotId
        Selector: $.Payload.latestSnapshotId
        Type: String
      - Name: noSnapshotFound
        Selector: $.Payload.noSnapshotFound
        Type: String 
      nextStep: branchFromResults
    - name: branchFromResults
      action: aws:branch
      onFailure: Abort
      inputs:
        Choices:
        - NextStep: createNewRootVolumeFromSnapshot
          Not:
            Variable: "{{ getSnapshotsByStartTime.noSnapshotFound }}"
            StringEquals: "NoSnapshotFound"
      isEnd: true
    - name: createNewRootVolumeFromSnapshot
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: CreateVolume
        AvailabilityZone: "{{ getInstanceDetails.availabilityZone }}"
        SnapshotId: "{{ getSnapshotsByStartTime.latestSnapshotId }}"
      outputs:
        - Name: newRootVolumeId
          Selector: "$.VolumeId"
          Type: String
      nextStep: stopInstance
    - name: stopInstance
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: StopInstances
        InstanceIds:
        - "{{ InstanceId }}"
      nextStep: verifyVolumeAvailability
    - name: verifyVolumeAvailability
      action: aws:waitForAwsResourceProperty
      timeoutSeconds: 120
      inputs:
        Service: ec2
        Api: DescribeVolumes
        VolumeIds:
        - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
        PropertySelector: "$.Volumes[0].State"
        DesiredValues:
        - "available"
      nextStep: verifyInstanceStopped
    - name: verifyInstanceStopped
      action: aws:waitForAwsResourceProperty
      timeoutSeconds: 120
      inputs:
        Service: ec2
        Api: DescribeInstances
        InstanceIds:
        - "{{ InstanceId }}"
        PropertySelector: "$.Reservations[0].Instances[0].State.Name"
        DesiredValues:
        - "stopped"
      nextStep: detachRootVolume
    - name: detachRootVolume
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: DetachVolume
        VolumeId: "{{ getRootVolumeId.rootVolumeId }}"
      nextStep: verifyRootVolumeDetached
    - name: verifyRootVolumeDetached
      action: aws:waitForAwsResourceProperty
      timeoutSeconds: 30
      inputs:
        Service: ec2
        Api: DescribeVolumes
        VolumeIds:
        - "{{ getRootVolumeId.rootVolumeId }}"
        PropertySelector: "$.Volumes[0].State"
        DesiredValues:
        - "available"
      nextStep: attachNewRootVolume
    - name: attachNewRootVolume
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: AttachVolume
        Device: "{{ getInstanceDetails.rootDeviceName }}"
        InstanceId: "{{ InstanceId }}"
        VolumeId: "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
      nextStep: verifyNewRootVolumeAttached
    - name: verifyNewRootVolumeAttached
      action: aws:waitForAwsResourceProperty
      timeoutSeconds: 30
      inputs:
        Service: ec2
        Api: DescribeVolumes
        VolumeIds:
        - "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
        PropertySelector: "$.Volumes[0].Attachments[0].State"
        DesiredValues:
        - "attached"
      nextStep: startInstance
    - name: startInstance
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: StartInstances
        InstanceIds:
        - "{{ InstanceId }}"
```

------
#### [ JSON ]

```
    {
       "description": "Custom Automation Troubleshooting Example",
       "schemaVersion": "0.3",
       "assumeRole": "{{ AutomationAssumeRole }}",
       "parameters": {
          "AutomationAssumeRole": {
             "type": "String",
             "description": "(Required) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to run this runbook.",
             "default": ""
          },
          "InstanceId": {
             "type": "String",
             "description": "(Required) The Instance Id whose root EBS volume you want to restore the latest Snapshot.",
             "default": ""
          }
       },
       "mainSteps": [
          {
             "name": "getInstanceDetails",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeInstances",
                "InstanceIds": [
                   "{{ InstanceId }}"
                ]
             },
             "outputs": [
                {
                   "Name": "availabilityZone",
                   "Selector": "$.Reservations[0].Instances[0].Placement.AvailabilityZone",
                   "Type": "String"
                },
                {
                   "Name": "rootDeviceName",
                   "Selector": "$.Reservations[0].Instances[0].RootDeviceName",
                   "Type": "String"
                }
             ],
             "nextStep": "getRootVolumeId"
          },
          {
             "name": "getRootVolumeId",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeVolumes",
                "Filters": [
                   {
                      "Name": "attachment.device",
                      "Values": [
                         "{{ getInstanceDetails.rootDeviceName }}"
                      ]
                   },
                   {
                      "Name": "attachment.instance-id",
                      "Values": [
                         "{{ InstanceId }}"
                      ]
                   }
                ]
             },
             "outputs": [
                {
                   "Name": "rootVolumeId",
                   "Selector": "$.Volumes[0].VolumeId",
                   "Type": "String"
                }
             ],
             "nextStep": "getSnapshotsByStartTime"
          },
          {
             "name": "getSnapshotsByStartTime",
             "action": "aws:executeScript",
             "timeoutSeconds": 45,
             "onFailure": "Continue",
             "inputs": {
                "Runtime": "python3.11",
                "Handler": "getSnapshotsByStartTime",
                "InputPayload": {
                   "rootVolumeId": "{{ getRootVolumeId.rootVolumeId }}"
                },
                "Attachment": "getSnapshotsByStartTime.py"
             },
             "outputs": [
                {
                   "Name": "Payload",
                   "Selector": "$.Payload",
                   "Type": "StringMap"
                },
                {
                   "Name": "latestSnapshotId",
                   "Selector": "$.Payload.latestSnapshotId",
                   "Type": "String"
                },
                {
                   "Name": "noSnapshotFound",
                   "Selector": "$.Payload.noSnapshotFound",
                   "Type": "String"
                }
             ],
             "nextStep": "branchFromResults"
          },
          {
             "name": "branchFromResults",
             "action": "aws:branch",
             "onFailure": "Abort",
             "inputs": {
                "Choices": [
                   {
                      "NextStep": "createNewRootVolumeFromSnapshot",
                      "Not": {
                         "Variable": "{{ getSnapshotsByStartTime.noSnapshotFound }}",
                         "StringEquals": "NoSnapshotFound"
                      }
                   }
                ]
             },
             "isEnd": true
          },
          {
             "name": "createNewRootVolumeFromSnapshot",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "CreateVolume",
                "AvailabilityZone": "{{ getInstanceDetails.availabilityZone }}",
                "SnapshotId": "{{ getSnapshotsByStartTime.latestSnapshotId }}"
             },
             "outputs": [
                {
                   "Name": "newRootVolumeId",
                   "Selector": "$.VolumeId",
                   "Type": "String"
                }
             ],
             "nextStep": "stopInstance"
          },
          {
             "name": "stopInstance",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "StopInstances",
                "InstanceIds": [
                   "{{ InstanceId }}"
                ]
             },
             "nextStep": "verifyVolumeAvailability"
          },
          {
             "name": "verifyVolumeAvailability",
             "action": "aws:waitForAwsResourceProperty",
             "timeoutSeconds": 120,
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeVolumes",
                "VolumeIds": [
                   "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
                ],
                "PropertySelector": "$.Volumes[0].State",
                "DesiredValues": [
                   "available"
                ]
             },
             "nextStep": "verifyInstanceStopped"
          },
          {
             "name": "verifyInstanceStopped",
             "action": "aws:waitForAwsResourceProperty",
             "timeoutSeconds": 120,
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeInstances",
                "InstanceIds": [
                   "{{ InstanceId }}"
                ],
                "PropertySelector": "$.Reservations[0].Instances[0].State.Name",
                "DesiredValues": [
                   "stopped"
                ]
             },
             "nextStep": "detachRootVolume"
          },
          {
             "name": "detachRootVolume",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "DetachVolume",
                "VolumeId": "{{ getRootVolumeId.rootVolumeId }}"
             },
             "nextStep": "verifyRootVolumeDetached"
          },
          {
             "name": "verifyRootVolumeDetached",
             "action": "aws:waitForAwsResourceProperty",
             "timeoutSeconds": 30,
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeVolumes",
                "VolumeIds": [
                   "{{ getRootVolumeId.rootVolumeId }}"
                ],
                "PropertySelector": "$.Volumes[0].State",
                "DesiredValues": [
                   "available"
                ]
             },
             "nextStep": "attachNewRootVolume"
          },
          {
             "name": "attachNewRootVolume",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "AttachVolume",
                "Device": "{{ getInstanceDetails.rootDeviceName }}",
                "InstanceId": "{{ InstanceId }}",
                "VolumeId": "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
             },
             "nextStep": "verifyNewRootVolumeAttached"
          },
          {
             "name": "verifyNewRootVolumeAttached",
             "action": "aws:waitForAwsResourceProperty",
             "timeoutSeconds": 30,
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeVolumes",
                "VolumeIds": [
                   "{{ createNewRootVolumeFromSnapshot.newRootVolumeId }}"
                ],
                "PropertySelector": "$.Volumes[0].Attachments[0].State",
                "DesiredValues": [
                   "attached"
                ]
             },
             "nextStep": "startInstance"
          },
          {
             "name": "startInstance",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "StartInstances",
                "InstanceIds": [
                   "{{ InstanceId }}"
                ]
             }
          }
       ],
       "files": {
            "getSnapshotsByStartTime.py": {
                "checksums": {
                    "sha256": "sampleETagValue"
                }
            }
        }
    }
```

------

# Erstellen eines AMI und einer regionenübergreifenden Kopie
<a name="automation-document-backup-maintenance-example"></a>

Das Erstellen eines Amazon Machine Image (AMI) einer Instance ist ein üblicher Prozess, der bei Backup und Wiedherherstellung verwendet wird. Sie können sich auch dafür entscheiden, ein AMI als Teil einer Notfallwiederherstellungsarchitektur in eine andere AWS-Region zu kopieren. Durch die Automatisierung gängiger Wartungsaufgaben kann die Ausfallzeit reduziert werden, wenn ein Problem ein Failover erfordert. AWS Systems Manager Automatisierungsaktionen können Ihnen dabei helfen. Automation ist ein Tool in AWS Systems Manager.

Das folgende AWS Systems Manager Beispiel-Runbook führt diese Aktionen aus:
+ Verwendet die `aws:executeAwsApi` Automatisierungsaktion zur Erstellung eines AMI.
+ Verwendet die `aws:waitForAwsResourceProperty` Automatisierungsaktion zur Bestätigung der Verfügbarkeit des AMI.
+ Verwendet die `aws:executeScript` Automatisierungsaktion zum Kopieren des AMI in die Zielregion.

------
#### [ YAML ]

```
    ---
    description: Custom Automation Backup and Recovery Example
    schemaVersion: '0.3'
    assumeRole: "{{ AutomationAssumeRole }}"
    parameters:
      AutomationAssumeRole:
        type: String
        description: "(Required) The ARN of the role that allows Automation to perform
          the actions on your behalf. If no role is specified, Systems Manager Automation
          uses your IAM permissions to use this runbook."
        default: ''
      InstanceId:
        type: String
        description: "(Required) The ID of the EC2 instance."
        default: ''
    mainSteps:
    - name: createImage
      action: aws:executeAwsApi
      onFailure: Abort
      inputs:
        Service: ec2
        Api: CreateImage
        InstanceId: "{{ InstanceId }}"
        Name: "Automation Image for {{ InstanceId }}"
        NoReboot: false
      outputs:
        - Name: newImageId
          Selector: "$.ImageId"
          Type: String
      nextStep: verifyImageAvailability
    - name: verifyImageAvailability
      action: aws:waitForAwsResourceProperty
      timeoutSeconds: 600
      inputs:
        Service: ec2
        Api: DescribeImages
        ImageIds:
        - "{{ createImage.newImageId }}"
        PropertySelector: "$.Images[0].State"
        DesiredValues:
        - available
      nextStep: copyImage
    - name: copyImage
      action: aws:executeScript
      timeoutSeconds: 45
      onFailure: Abort
      inputs:
        Runtime: python3.11
        Handler: crossRegionImageCopy
        InputPayload:
          newImageId : "{{ createImage.newImageId }}"
        Script: |-
          def crossRegionImageCopy(events,context):
            import boto3
    
            #Initialize client
            ec2 = boto3.client('ec2', region_name='us-east-1')
            newImageId = events['newImageId']
    
            ec2.copy_image(
              Name='DR Copy for ' + newImageId,
              SourceImageId=newImageId,
              SourceRegion='us-west-2'
            )
```

------
#### [ JSON ]

```
    {
       "description": "Custom Automation Backup and Recovery Example",
       "schemaVersion": "0.3",
       "assumeRole": "{{ AutomationAssumeRole }}",
       "parameters": {
          "AutomationAssumeRole": {
             "type": "String",
             "description": "(Required) The ARN of the role that allows Automation to perform\nthe actions on your behalf. If no role is specified, Systems Manager Automation\nuses your IAM permissions to run this runbook.",
             "default": ""
          },
          "InstanceId": {
             "type": "String",
             "description": "(Required) The ID of the EC2 instance.",
             "default": ""
          }
       },
       "mainSteps": [
          {
             "name": "createImage",
             "action": "aws:executeAwsApi",
             "onFailure": "Abort",
             "inputs": {
                "Service": "ec2",
                "Api": "CreateImage",
                "InstanceId": "{{ InstanceId }}",
                "Name": "Automation Image for {{ InstanceId }}",
                "NoReboot": false
             },
             "outputs": [
                {
                   "Name": "newImageId",
                   "Selector": "$.ImageId",
                   "Type": "String"
                }
             ],
             "nextStep": "verifyImageAvailability"
          },
          {
             "name": "verifyImageAvailability",
             "action": "aws:waitForAwsResourceProperty",
             "timeoutSeconds": 600,
             "inputs": {
                "Service": "ec2",
                "Api": "DescribeImages",
                "ImageIds": [
                   "{{ createImage.newImageId }}"
                ],
                "PropertySelector": "$.Images[0].State",
                "DesiredValues": [
                   "available"
                ]
             },
             "nextStep": "copyImage"
          },
          {
             "name": "copyImage",
             "action": "aws:executeScript",
             "timeoutSeconds": 45,
             "onFailure": "Abort",
             "inputs": {
                "Runtime": "python3.11",
                "Handler": "crossRegionImageCopy",
                "InputPayload": {
                   "newImageId": "{{ createImage.newImageId }}"
                },
                "Attachment": "crossRegionImageCopy.py"
             }
          }
       ],
       "files": {
            "crossRegionImageCopy.py": {
                "checksums": {
                    "sha256": "sampleETagValue"
                }
            }
        }
    }
```

------

# Eingabeparameter erstellen, die Ressourcen auffüllen AWS
<a name="populating-input-parameters"></a>

Automation, ein Tool in Systems Manager, füllt AWS Ressourcen in die, AWS-Managementkonsole die dem Ressourcentyp entsprechen, den Sie für einen Eingabeparameter definieren. Ressourcen in Ihrem AWS-Konto , die mit dem Ressourcentyp übereinstimmen, werden in einer Dropdown-Liste angezeigt, die Sie auswählen können. Sie können Eingabeparametertypen für Amazon Elastic Compute Cloud (Amazon EC2) -Instances, Amazon Simple Storage Service (Amazon S3) -Buckets und AWS Identity and Access Management (IAM) -Rollen definieren. Die unterstützten Typdefinitionen und die regulären Ausdrücke, die zum Suchen übereinstimmender Ressourcen verwendet werden, lauten wie folgt:
+ `AWS::EC2::Instance::Id` - `^m?i-([a-z0-9]{8}|[a-z0-9]{17})$`
+ `List<AWS::EC2::Instance::Id>` - `^m?i-([a-z0-9]{8}|[a-z0-9]{17})$`
+ `AWS::S3::Bucket::Name` - `^[0-9a-z][a-z0-9\\-\\.]{3,63}$`
+ `List<AWS::S3::Bucket::Name>` - `^[0-9a-z][a-z0-9\\-\\.]{3,63}$`
+ `AWS::IAM::Role::Arn` - `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$`
+ `List<AWS::IAM::Role::Arn>` - `^arn:(aws|aws-cn|aws-us-gov|aws-iso|aws-iso-b):iam::[0-9]{12}:role/.*$`

Es folgt ein Beispiel für Eingabeparameter-Typen, die im Runbook-Inhalt definiert sind.

------
#### [ YAML ]

```
description: Enables encryption on an Amazon S3 bucket
schemaVersion: '0.3'
assumeRole: '{{ AutomationAssumeRole }}'
parameters:
  BucketName:
    type: 'AWS::S3::Bucket::Name'
    description: (Required) The name of the Amazon S3 bucket you want to encrypt.
  SSEAlgorithm:
    type: String
    description: (Optional) The server-side encryption algorithm to use for the default encryption.
    default: AES256
  AutomationAssumeRole:
    type: 'AWS::IAM::Role::Arn'
    description: (Optional) The Amazon Resource Name (ARN) of the role that allows Automation to perform the actions on your behalf.
    default: ''
mainSteps:
  - name: enableBucketEncryption
    action: 'aws:executeAwsApi'
    inputs:
      Service: s3
      Api: PutBucketEncryption
      Bucket: '{{BucketName}}'
      ServerSideEncryptionConfiguration:
        Rules:
          - ApplyServerSideEncryptionByDefault:
              SSEAlgorithm: '{{SSEAlgorithm}}'
    isEnd: true
```

------
#### [ JSON ]

```
{
   "description": "Enables encryption on an Amazon S3 bucket",
   "schemaVersion": "0.3",
   "assumeRole": "{{ AutomationAssumeRole }}",
   "parameters": {
      "BucketName": {
         "type": "AWS::S3::Bucket::Name",
         "description": "(Required) The name of the Amazon S3 bucket you want to encrypt."
      },
      "SSEAlgorithm": {
         "type": "String",
         "description": "(Optional) The server-side encryption algorithm to use for the default encryption.",
         "default": "AES256"
      },
      "AutomationAssumeRole": {
         "type": "AWS::IAM::Role::Arn",
         "description": "(Optional) The Amazon Resource Name (ARN) of the role that allows Automation to perform the actions on your behalf.",
         "default": ""
      }
   },
   "mainSteps": [
      {
         "name": "enableBucketEncryption",
         "action": "aws:executeAwsApi",
         "inputs": {
            "Service": "s3",
            "Api": "PutBucketEncryption",
            "Bucket": "{{BucketName}}",
            "ServerSideEncryptionConfiguration": {
               "Rules": [
                  {
                     "ApplyServerSideEncryptionByDefault": {
                        "SSEAlgorithm": "{{SSEAlgorithm}}"
                     }
                  }
               ]
            }
         },
         "isEnd": true
      }
   ]
}
```

------

# Verwenden von Document Builder zur Erstellung von Runbooks
<a name="automation-document-builder"></a>

Wenn die AWS Systems Manager öffentlichen Runbooks nicht alle Aktionen unterstützen, die Sie für Ihre AWS Ressourcen ausführen möchten, können Sie Ihre eigenen Runbooks erstellen. Um ein benutzerdefiniertes Runbook zu erstellen, können Sie manuell eine lokale Datei im YAML- oder JSON-Format mit den entsprechenden Automatisierungsaktionen erstellen. Alternativ können Sie Document Builder in der Systems-Manager-Automation-Konsole verwenden, um ein benutzerdefiniertes Runbook zu erstellen.

Mit Document Builder können Sie Ihrem benutzerdefinierten Runbook Automatisierungsaktionen hinzufügen und die erforderlichen Parameter bereitstellen, ohne die JSON- oder YAML-Syntax verwenden zu müssen. Nachdem Sie Schritte hinzugefügt und das Runbook erstellt haben, konvertiert das System die von Ihnen hinzugefügten Aktionen in das YAML-Format, das von Systems Manager zum Ausführen von Automation verwendet werden kann.

Runbooks unterstützen die Verwendung von Markdown, einer Markup-Sprache, mit der Sie Wiki-Beschreibungen zu Runbooks und einzelnen Schritten innerhalb des Runbooks hinzufügen können. Weitere Informationen zur Verwendung von Markdown finden Sie unter [Verwenden von Markdown in AWS](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html).

## Erstellen eines Runbooks mithilfe von Document Builder
<a name="create-runbook"></a>

**Bevor Sie beginnen**  
Wir empfehlen Ihnen, sich über die verschiedenen Aktionen zu informieren, die Sie in einem Runbook verwenden können. Weitere Informationen finden Sie unter [Systems Manager Automation Aktionen-Referenz](automation-actions.md).

**So erstellen Sie ein Runbook mit Document Builder**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie **Create automation (Automation erstellen)**.

1. Geben Sie unter **Name** einen aussagekräftigen Namen für das Runbook ein.

1. Geben Sie für **Document description (Dokumentbeschreibung)** die Beschreibung des Markdown-Stils für das Runbook an. Sie können Anweisungen für die Verwendung des Runbooks, nummerierte Schritte oder jede andere Art von Informationen zur Beschreibung des Runbooks bereitstellen. Informationen zum Formatieren von Inhalten finden Sie im Standardtext.
**Tipp**  
Wechseln Sie zwischen **Hide preview (Vorschau ausblenden)** und **Show preview (Vorschau anzeigen)**, um zu sehen, wie der Beschreibungsinhalt während der Erstellung aussieht.

1. (Optional) Geben Sie unter **Assume role (Rolle übernehmen)** den Namen oder den ARN einer Servicerolle ein, um Aktionen in Ihrem Auftrag auszuführen. Wenn Sie keine Rolle angeben, verwendet Automation die Zugriffsberechtigungen des Benutzers, der die Automatisierung durchführt.
**Wichtig**  
Für Runbooks, die sich nicht im Besitz von Amazon befinden und die die `aws:executeScript`-Aktion verwenden, muss eine Rolle angegeben werden. Weitere Informationen finden Sie unter [Berechtigungen für die Verwendung von Runbooks](automation-document-script-considerations.md#script-permissions).

1. (Optional) Geben Sie unter **Outputs (Ausgänge)** alle Ausgaben für die Automatisierung dieses Runbooks ein, um sie für andere Prozesse verfügbar zu machen. 

   Wenn Ihr Runbook beispielsweise ein neues AMI erstellt, können Sie [“ CreateImage angeben. ImageId„] und verwenden Sie dann diese Ausgabe, um in einer nachfolgenden Automatisierung neue Instances zu erstellen.

1. (Optional) Erweitern Sie den Abschnitt **Input parameters (Eingabeparameter)** und führen Sie die folgenden Schritte aus.

   1. Geben Sie unter **Parameter name (Parametername)** einen beschreibenden Namen für den Runbookparameter ein, den Sie erstellen.

   1. Wählen Sie unter **Type (Typ)** einen Typ für den Parameter, z. B. `String` oder `MapList`.

   1. Führen Sie unter **Required (Erforderlich)** eine der folgenden Aktionen aus: 
      + Wählen Sie **Yes (Ja)**, wenn zur Laufzeit ein Wert für diesen Runbookparameter angegeben werden muss.
      + Wählen Sie **No** (Nein), wenn der Parameter nicht erforderlich ist, und geben Sie (optional) unter **Default value** (Standardwert) einen Standardparameterwert ein.

   1. Geben Sie unter **Description (Beschreibung)** eine Beschreibung für den Runbookparameter ein.
**Anmerkung**  
Um weitere Runbookparameter hinzuzufügen, wählen Sie **Add a parameter (Parameter hinzufügen)**. Um einen Runbookparameter zu entfernen, klicken Sie auf die Schaltfläche **X** (Entfernen).

1. (Optional) Erweitern Sie den Abschnitt **Target type (Zieltyp)** und wählen Sie einen Zieltyp, um die Arten der Ressourcen zu definieren, auf denen die Automatisierung ausgeführt werden kann. Um beispielsweise ein Runbook auf EC2-Instances zu wählen, wählen Sie `/AWS::EC2::Instance`.
**Anmerkung**  
Wenn Sie den Wert '`/`' angeben, kann das Runbook auf allen Arten von Ressourcen ausgeführt werden. Eine Liste gültiger Ressourcentypen finden Sie unter [AWS -Ressourcentypen – Referenz](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html) im *AWS CloudFormation Benutzerhandbuch*.

1. (Optional) Erweitern Sie den Abschnitt **Document tags (Dokument-Tags)** und geben Sie ein oder mehrere Tag-Schlüssel-Wert-Paare ein, die auf das Runbook angewendet werden sollen. Tags erleichtern die Identifizierung, Organisation und Suche nach Ressourcen.

1. Geben Sie im Abschnitt **Step 1 (Schritt 1)** die folgenden Informationen an.
   + Geben Sie unter **Step name (Schrittname)** einen beschreibenden Namen für den ersten Schritt der Automatisierung ein.
   + Wählen Sie unter **Action type (Aktionstyp)** den Aktionstyp aus, der für diesen Schritt verwendet werden soll.

     Eine Liste und Informationen zu den verfügbaren Aktionstypen finden Sie unter [Systems Manager Automation Aktionen-Referenz](automation-actions.md).
   + Geben Sie unter **Description (Beschreibung)** eine Beschreibung für den Automatisierungsschritt ein. Sie können Markdown verwenden, um Ihren Text zu formatieren.
   + Je nach ausgewähltem **Action type (Aktionstyp)** geben Sie im Abschnitt **Step inputs (Schritteingaben)** die erforderlichen Eingaben für den Aktionstyp ein. Wenn Sie beispielsweise die Aktion `aws:approve` ausgewählt haben, müssen Sie einen Wert für die `Approvers`-Eigenschaft angeben.

     Informationen zu den Schritteingabefeldern finden Sie im Eintrag [Systems Manager Automation Aktionen-Referenz](automation-actions.md) für den ausgewählten Aktionstyp. Beispiel: [`aws:executeStateMachine`— Führen Sie eine AWS Step Functions Zustandsmaschine aus](automation-action-executeStateMachine.md).
   + (Optional) Geben Sie für **Additional inputs (Zusätzliche Eingaben)** alle zusätzlichen Eingabewerte an, die für das Runbook erforderlich sind. Die verfügbaren Eingabetypen hängen vom Aktionstyp ab, den Sie für den Schritt ausgewählt haben. (Beachten Sie, dass einige Aktionstypen Eingabewerte erfordern.)
**Anmerkung**  
Um weitere Eingaben hinzuzufügen, wählen Sie **Add optional input (Optionale Eingabe hinzufügen)**. Um eine Eingabe zu entfernen, wählen Sie die Schaltfläche **X** (Entfernen).
   + (Optional) Geben Sie unter **Outputs (Ausgänge)** alle Ausgaben für diesen Schritts ein, um sie für andere Prozesse verfügbar zu machen.
**Anmerkung**  
**Outputs (Ausgaben)** sind nicht für alle Aktionstypen verfügbar.
   + (Optional) Erweitern Sie den Abschnitt **Common properties (Allgemeine Eigenschaften)** und geben Sie Eigenschaften für die Aktionen an, die allen Automation-Aktionen gemeinsam sind. Beispielsweise können Sie für **Timeout seconds (Timeout in Sekunden)** anhand eines Werts in Sekunden angeben, wie lange der Schritt ausgeführt werden kann, bevor er beendet wird.

     Weitere Informationen finden Sie unter [Von allen Aktionen gemeinsam genutzte Eigenschaften](automation-actions.md#automation-common).
**Anmerkung**  
Um weitere Schritte hinzuzufügen, wählen Sie **Add step** (Schritt hinzufügen) aus und wiederholen Sie das Verfahren zum Erstellen eines Schritts. Um einen Schritt zu entfernen, wählen Sie **Remove step (Schritt entfernen)**.

1. Wählen Sie **Create automation (Automation erstellen)**, um das Runbook zu speichern.

## Erstellen eines Runbooks, das Skripte ausführt
<a name="create-runbook-scripts"></a>

Das folgende Verfahren zeigt, wie Sie mit Document Builder in der AWS Systems Manager -Automation-Konsole ein benutzerdefiniertes Runbook erstellen, das ein Skript ausführt.

Im ersten Schritt des von Ihnen erstellten Runbooks wird ein Skript ausgeführt, um eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance zu starten. Im zweiten Schritt wird ein weiteres Skript ausgeführt, um zu überwachen, ob die Instance-Zustandsprüfung auf `ok` geändert werden soll. Anschließend wird für die Automatisierung ein Gesamtzustand von `Success` gemeldet.

**Bevor Sie beginnen**  
Stellen Sie sicher, dass Sie die folgenden Schritte ausgeführt haben:
+ Stellen Sie sicher, dass Sie über Administratorrechte verfügen oder dass Ihnen die entsprechenden Berechtigungen für den Zugriff auf Systems Manager in AWS Identity and Access Management (IAM) erteilt wurden. 

  Weitere Informationen finden Sie unter [Überprüfen des Benutzerzugriffs für Runbooks](automation-setup.md#automation-setup-user-access).
+ Stellen Sie sicher, dass Sie in Ihrem AWS-Kontoüber eine IAM-Service-Rolle für Automation (auch als *Rolle übernehmen* bezeichnet) verfügen. Die Rolle ist erforderlich, da in dieser Anleitung die Aktion `aws:executeScript` verwendet wird. 

  Weitere Informationen zum Erstellen dieser Rolle finden Sie unter [Konfigurieren eines Service-Rollenzugriffs (Rolle übernehmen) für Automatisierungen](automation-setup.md#automation-setup-configure-role). 

  Hinweise zur IAM-Service-Rollenanforderung zum Ausführen von `aws:executeScript`, finden Sie unter [Berechtigungen für die Verwendung von Runbooks](automation-document-script-considerations.md#script-permissions).
+ Stellen Sie sicher, dass Sie berechtigt sind, EC2-Instances zu starten. 

  Informationen zu IAM-Rollen finden Sie unter [IAM-Rollen und Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/UsingIAM.html#intro-to-iam) im *Amazon-EC2-Benutzerhandbuch*.

**So erstellen Sie ein benutzerdefiniertes Runbook, das Skripts mit Document Builder ausführt**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie **Create automation (Automation erstellen)**.

1. Geben Sie unter **Name** diesen beschreibenden Namen für das Runbook ein: **LaunchInstanceAndCheckStatus**.

1. (Optional) Ersetzen Sie bei **Document description (Dokumentbeschreibung)** den Standardtext durch eine Beschreibung für dieses Runbooks, indem Sie Markdown verwenden. Im Folgenden wird ein -Beispiel gezeigt.

   ```
   ##Title: LaunchInstanceAndCheckState
       -----
       **Purpose**: This runbook first launches an EC2 instance using the AMI ID provided in the parameter ```imageId```. The second step of this runbook continuously checks the instance status check value for the launched instance until the status ```ok``` is returned.
       
       ##Parameters:
       -----
       Name | Type | Description | Default Value
       ------------- | ------------- | ------------- | -------------
       assumeRole | String | (Optional) The ARN of the role that allows Automation to perform the actions on your behalf. | -
       imageId  | String | (Optional) The AMI ID to use for launching the instance. The default value uses the latest Amazon Linux 2023 AMI ID available. | {{ ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64 }}
   ```

1. Geben Sie unter **Assume role (Rolle übernehmen)** den ARN der IAM-Service-Rolle für Automation (Rolle übernehmen) für die Automatisierung im Format **arn:aws:iam::111122223333:role/AutomationServiceRole** ein. Ersetzen Sie 111122223333 durch Ihre AWS-Konto ID.

   Die von Ihnen angegebene Rolle wird verwendet, um die Berechtigungen bereitzustellen, die zum Starten der Automatisierung erforderlich sind.
**Wichtig**  
Für Runbooks, die sich nicht im Besitz von Amazon befinden und die die `aws:executeScript`-Aktion verwenden, muss eine Rolle angegeben werden. Weitere Informationen finden Sie unter [Berechtigungen für die Verwendung von Runbooks](automation-document-script-considerations.md#script-permissions).

1. Erweitern Sie **Input parameters (Eingabeparameter)** und gehen Sie folgendermaßen vor.

   1. Geben Sie unter **Parameter name (Parametername)** **imageId** ein.

   1. Wählen Sie für **Type (Typ)** die Option **String** aus.

   1. Wählen Sie unter **Required (Erforderlich)** die Option `No`. 

   1. Geben Sie unter **Default value (Standardwert)** Folgendes ein.

      ```
      {{ ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-arm64 }}
      ```
**Anmerkung**  
Dieser Wert startet eine Amazon EC2 EC2-Instance mit der neuesten Amazon Linux 2023 Amazon Machine Image (AMI) -ID. Wenn Sie ein anderes AMI verwenden möchten, ersetzen Sie den Wert durch Ihre AMI-ID.

   1. Geben Sie unter **Description (Beschreibung)** Folgendes ein.

      ```
      (Optional) The AMI ID to use for launching the instance. The default value uses the latest released Amazon Linux 2023 AMI ID.
      ```

1. Wählen Sie **Add a parameter** (Parameter hinzufügen), um den zweiten Parameter **tagValue** zu erstellen, und geben Sie Folgendes ein.

   1. Geben Sie unter **Parameter name (Parametername)** **tagValue** ein.

   1. Wählen Sie für **Type (Typ)** die Option **String** aus.

   1. Wählen Sie unter **Required (Erforderlich)** die Option `No`. 

   1. Für **Default value (Standardwert)** geben Sie **LaunchedBySsmAutomation** ein. Dadurch wird der Instance der Schlüsselpaarwert des Tags `Name:LaunchedBySsmAutomation` hinzugefügt.

   1. Geben Sie unter **Description (Beschreibung)** Folgendes ein.

      ```
      (Optional) The tag value to add to the instance. The default value is LaunchedBySsmAutomation.
      ```

1. Wählen Sie **Add a parameter** (Parameter hinzufügen), um den dritten Parameter **instanceType** zu erstellen, und geben Sie folgende Informationen ein.

   1. Geben Sie unter **Parameter name (Parametername)** **instanceType** ein.

   1. Wählen Sie für **Type (Typ)** die Option **String** aus.

   1. Wählen Sie unter **Required (Erforderlich)** die Option `No`. 

   1. Für **Default value (Standardwert)** geben Sie **t2.micro** ein.

   1. Geben Sie unter **Parameter description (Parameterbeschreibung)** Folgendes ein.

      ```
      (Optional) The instance type to use for the instance. The default value is t2.micro.
      ```

1. Erweitern Sie **Target type (Zieltyp)** und wählen Sie **"/"**.

1. (Optional) Erweitern Sie **Document tags (Dokument-Tags)**, um Ressourcen-Tags auf Ihr Runbook anzuwenden. Geben Sie für **Tag key (Tag-Schlüssel** **Purpose** und für **Tag value (Tag-Wert)** **LaunchInstanceAndCheckState** ein.

1. Führen Sie im Abschnitt **Step 1 (Schritt 1)** die folgenden Schritte aus.

   1. Geben Sie unter **Step name (Schrittname)** diesen beschreibenden Schrittnamen für den ersten Schritt der Automatisierung ein: **LaunchEc2Instance**.

   1. Wählen Sie unter **Action type (Aktionstyp)** die Option **Run a script (Skript ausführen)** (**aws:executeScript**).

   1. Geben Sie unter **Description (Beschreibung)** eine Beschreibung für den Automation-Schritt ein, wie etwa folgende.

      ```
      **About This Step**
          
          This step first launches an EC2 instance using the ```aws:executeScript``` action and the provided script.
      ```

   1. Erweitern Sie **Inputs (Eingaben)**.

   1. Wählen Sie für **Runtime (Laufzeit)** die Laufzeitsprache aus, die zum Ausführen des bereitgestellten Skripts verwendet werden soll.

   1. Geben Sie unter **Handler** **launch\$1instance** ein. Dies ist der Funktionsname, der im folgenden Skript deklariert wird.
**Anmerkung**  
Dies ist nicht erforderlich für PowerShell.

   1. Ersetzen Sie für **Script (Skript)** den Standardinhalt durch Folgendes. Stellen Sie sicher, dass das Skript dem entsprechenden Laufzeitwert entspricht.

------
#### [ Python ]

      ```
      def launch_instance(events, context):
            import boto3
            ec2 = boto3.client('ec2')
          
            image_id = events['image_id']
            tag_value = events['tag_value']
            instance_type = events['instance_type']
          
            tag_config = {'ResourceType': 'instance', 'Tags': [{'Key':'Name', 'Value':tag_value}]}
          
            res = ec2.run_instances(ImageId=image_id, InstanceType=instance_type, MaxCount=1, MinCount=1, TagSpecifications=[tag_config])
          
            instance_id = res['Instances'][0]['InstanceId']
          
            print('[INFO] 1 EC2 instance is successfully launched', instance_id)
          
            return { 'InstanceId' : instance_id }
      ```

------
#### [ PowerShell ]

      ```
      Install-Module AWS.Tools.EC2 -Force
          Import-Module AWS.Tools.EC2
          
          $payload = $env:InputPayload | ConvertFrom-Json
          
          $imageid = $payload.image_id
          
          $tagvalue = $payload.tag_value
          
          $instanceType = $payload.instance_type
          
          $type = New-Object Amazon.EC2.InstanceType -ArgumentList $instanceType
          
          $resource = New-Object Amazon.EC2.ResourceType -ArgumentList 'instance'
          
          $tag = @{Key='Name';Value=$tagValue}
          
          $tagSpecs = New-Object Amazon.EC2.Model.TagSpecification
          
          $tagSpecs.ResourceType = $resource
          
          $tagSpecs.Tags.Add($tag)
          
          $res = New-EC2Instance -ImageId $imageId -MinCount 1 -MaxCount 1 -InstanceType $type -TagSpecification $tagSpecs
          
          return @{'InstanceId'=$res.Instances.InstanceId}
      ```

------

   1. Erweitern Sie **Additional inputs (Zusätzliche Eingaben)**. 

   1. Wählen Sie für **Eingabename** die Option **InputPayload**. Geben Sie unter **Input value (Eingabewert)** die folgenden YAML-Daten ein. 

      ```
      image_id: "{{ imageId }}"
          tag_value: "{{ tagValue }}"
          instance_type: "{{ instanceType }}"
      ```

1. Erweitern Sie **Outputs (Ausgänge)** und gehen Sie folgendermaßen vor:
   + Geben Sie unter **Name** **payload** ein.
   + Geben Sie für **Selector (Selektor)** **\$1.Payload** ein.
   + Wählen Sie für **Type (Typ)** die Option `StringMap` aus.

1. Klicken Sie auf **Schritt hinzufügen**, um dem Runbook einen zweiten Schritt hinzuzufügen. Der zweite Schritt fragt den Status der in Schritt 1 gestarteten Instance ab und wartet, bis der zurückgegebene Status `ok` ist.

1.  Gehen Sie im Abschnitt **Step 2 (Schritt 2)** folgendermaßen vor.

   1. Geben Sie unter **Step name (Schrittname)** diesen beschreibenden Namen für den zweiten Schritt der Automatisierung ein: **WaitForInstanceStatusOk**.

   1. Wählen Sie unter **Action type (Aktionstyp)** die Option **Run a script (Skript ausführen)** (**aws:executeScript**).

   1. Geben Sie unter **Description (Beschreibung)** eine Beschreibung für den Automation-Schritt ein, wie etwa folgende.

      ```
      **About This Step**
          
          The script continuously polls the instance status check value for the instance launched in Step 1 until the ```ok``` status is returned.
      ```

   1. Bei **Runtime (Laufzeit)** wählen Sie die Laufzeitsprache für die Ausführung des bereitgestellten Skripts verwendet werden soll.

   1. Geben Sie unter **Handler** **poll\$1instance** ein. Dies ist der Funktionsname, der im folgenden Skript deklariert wird.
**Anmerkung**  
Dies ist nicht erforderlich für PowerShell.

   1. Ersetzen Sie für **Script (Skript)** den Standardinhalt durch Folgendes. Stellen Sie sicher, dass das Skript dem entsprechenden Laufzeitwert entspricht.

------
#### [ Python ]

      ```
      def poll_instance(events, context):
            import boto3
            import time
          
            ec2 = boto3.client('ec2')
          
            instance_id = events['InstanceId']
          
            print('[INFO] Waiting for instance status check to report ok', instance_id)
          
            instance_status = "null"
          
            while True:
              res = ec2.describe_instance_status(InstanceIds=[instance_id])
          
              if len(res['InstanceStatuses']) == 0:
                print("Instance status information is not available yet")
                time.sleep(5)
                continue
          
              instance_status = res['InstanceStatuses'][0]['InstanceStatus']['Status']
          
              print('[INFO] Polling to get status of the instance', instance_status)
          
              if instance_status == 'ok':
                break
          
              time.sleep(10)
          
            return {'Status': instance_status, 'InstanceId': instance_id}
      ```

------
#### [ PowerShell ]

      ```
          Install-Module AWS.Tools.EC2 -Force
          
          $inputPayload = $env:InputPayload | ConvertFrom-Json
          
          $instanceId = $inputPayload.payload.InstanceId
          
          $status = Get-EC2InstanceStatus -InstanceId $instanceId
          
          while ($status.Status.Status -ne 'ok'){
             Write-Host 'Polling get status of the instance', $instanceId
          
             Start-Sleep -Seconds 5
          
             $status = Get-EC2InstanceStatus -InstanceId $instanceId
          }
          
          return @{Status = $status.Status.Status; InstanceId = $instanceId}
      ```

------

   1. Erweitern Sie **Additional inputs (Zusätzliche Eingaben)**. 

   1. Wählen Sie für **Eingabename** die Option **InputPayload**. Geben Sie unter **Input value (Eingabewert)** Folgendes ein:

      ```
      {{ LaunchEc2Instance.payload }}
      ```

1. Wählen Sie **Create automation (Automation erstellen)**, um das Runbook zu speichern.

# Verwenden von Skripten in Runbooks
<a name="automation-document-script-considerations"></a>

Automation-Runbooks unterstützen das Ausführen von Skripts im Rahmen der Automatisierung. Automation ist ein Tool in AWS Systems Manager. Mithilfe von Runbooks können Sie Skripts direkt in AWS ausführen, ohne eine separate Datenverarbeitungsumgebung zum Ausführen Ihrer Skripts zu erstellen. Da Runbooks Skriptschritte neben anderen Automation-Schritttypen wie Genehmigungen ausführen können, haben Sie in kritischen oder unklaren Situationen die Möglichkeit, manuell einzugreifen. Sie können die Ausgabe von `aws:executeScript` Aktionen in Ihren Runbooks an Amazon CloudWatch Logs senden. Weitere Informationen finden Sie unter [Ausgabe von Automatisierungsaktionen mit CloudWatch Protokollen protokollieren](automation-action-logging.md).

## Berechtigungen für die Verwendung von Runbooks
<a name="script-permissions"></a>

Um ein Runbook verwenden zu können, muss Systems Manager die Berechtigungen einer AWS Identity and Access Management (IAM-) Rolle verwenden. Die Methode, die Automation verwendet, um zu bestimmen, von welcher Rolle die Berechtigungen verwendet werden, hängt von einigen Faktoren und davon ab, ob ein Schritt die `aws:executeScript`-Aktion verwendet. 

Für Runbooks, die `aws:executeScript` nicht verwenden, verwendet Automation eine von zwei Berechtigungsquellen:
+ Die Berechtigungen einer IAM-Service-Rolle oder einer Assume-Rolle, die im Runbook angegeben oder als Parameter übergeben wird.
+ Wenn keine IAM-Servicerolle angegeben ist, werden die Berechtigungen des IAM-Benutzers verwendet, der die Automatisierung gestartet hat. 

Wenn ein Schritt in einem Runbook die `aws:executeScript` Aktion enthält, ist jedoch immer eine IAM-Dienstrolle (Rolle annehmen) erforderlich, wenn das für die Aktion angegebene Python- oder PowerShell Skript AWS API-Operationen aufruft. Automation prüft diese Rolle in der folgenden Reihenfolge:
+ Die Berechtigungen einer IAM-Service-Rolle oder einer Assume-Rolle, die im Runbook angegeben oder als Parameter übergeben wird.
+ Wenn keine Rolle gefunden wird, versucht Automation, das für angegebene Python oder PowerShell das angegebene Skript `aws:executeScript` ohne Berechtigungen auszuführen. Wenn das Skript eine AWS API-Operation aufruft (z. B. die Amazon EC2 `CreateImage` EC2-Operation) oder versucht, auf eine AWS Ressource (z. B. eine EC2-Instance) zu reagieren, schlägt der Schritt mit dem Skript fehl und Systems Manager gibt eine Fehlermeldung zurück, in der der Fehler gemeldet wird. 

## Hinzufügen von Skripts zu Runbooks
<a name="adding-scripts"></a>

Sie können Skripts zu Runbooks hinzufügen, indem Sie das Skript inline als Teil eines Schritts in das Runbook einfügen. Sie können Skripts auch an das Runbook anhängen, indem Sie die Skripts von Ihrem lokalen Computer hochladen oder einen Amazon Simple Storage Service (Amazon S3)-Bucket angeben, in dem sich die Skripts befinden. Nachdem ein Schritt abgeschlossen ist, in dem ein Skript ausgeführt wird, steht die Ausgabe des Skripts als JSON-Objekt zur Verfügung, das Sie dann als Eingabe für nachfolgende Schritte im Runbook verwenden können. Weitere Informationen zur `aws:executeScript`-Aktion und zur Verwendung von Anlagen für Skripts finden Sie unter [`aws:executeScript` - Führen Sie ein Skript aus](automation-action-executeScript.md).

## Skripteinschränkungen für Runbooks
<a name="script-constraints"></a>

Runbooks erzwingen ein Limit von fünf Dateianhängen. Skripts können entweder in Form eines Python-Skripts (.py), eines PowerShell Core-Skripts (.ps1) vorliegen oder als Inhalt in einer ZIP-Datei angehängt werden.

# Verwendung bedingter Anweisungen in Runbooks
<a name="automation-branch-condition"></a>

Standardmäßig werden die Schritte, die Sie im Abschnitt `mainSteps` eines Runbooks definieren, nacheinander ausgeführt. Wenn eine Aktion abgeschlossen ist, beginnt die nächste im Abschnitt `mainSteps` angegebene Aktion. Wenn eine Aktion nicht erfolgreich ausgeführt wird, schlägt (standardmäßig) die gesamte Automatisierung fehl. Sie können die Automation-Aktion `aws:branch` und die in diesem Abschnitt beschriebenen Optionen für das Runbook zum Erstellen von Automatisierungen verwenden, die *bedingte Verzweigungen* durchführen. Dies bedeutet, dass Sie Automatisierungen erstellen können, die zu einem anderen Schritt springen, nachdem verschiedene Optionen bewertet wurden oder dynamisch auf Änderungen beim Abschluss eines Schrittes reagieren. Hier finden Sie eine Liste der Optionen, die Sie verwenden können, um dynamische Automatisierungen zu erstellen.
+ **`aws:branch`**: Diese Automatisierungsaktion erlaubt das Erstellen einer dynamischen Automatisierung, die mehrere Auswahlmöglichkeiten in einem einzigen Schritt evaluiert und dann auf der Grundlage dieser Evaluierung zu einem anderen Schritt in dem Runbook springt.
+ **`nextStep`**: Diese Option gibt an, welcher Schritt in einer Automatisierung nach dem erfolgreichem Abschluss eines Schritts als nächster auszuführen ist. 
+ **`isEnd`**: Diese Option stoppt eine Automatisierung am Ende eines bestimmten Schrittes. Der Standardwert für diese Option ist "false".
+ **`isCritical`**: Diese Option bezeichnet einen Schritt als kritisch für den erfolgreichen Abschluss der Automatisierung. Wenn ein Schritt mit dieser Bezeichnung fehlschlägt, meldet Automation den Endstatus der Automatisierung als `Failed`. Der Standardwert für diese Option ist `true`.
+ **`onFailure`**: Diese Option gibt an, ob die Automatisierung bei einem Fehler abgebrochen, fortgesetzt oder bis zu einem bestimmten Schritt übersprungen werden soll. Der Standardwert für diese Option ist "abort".

Der folgende Abschnitt beschreibt die Automation-Aktion `aws:branch`. Weitere Informationen über die Optionen `nextStep`, `isEnd`, `isCritical` und `onFailure` finden Sie unter [Beispiel `aws:branch`-Runbooks](#branch-runbook-examples).

## Arbeiten mit der `aws:branch`-Aktion
<a name="branch-action-explained"></a>

Die Aktion `aws:branch` bietet die dynamischsten Optionen für bedingte Verzweigungen für Automatisierungen. Wie bereits erwähnt, erlaubt diese Aktion, dass Ihre Automatisierung mehrere Bedingungen in einem einzigen Schritt evaluiert und dann auf der Grundlage der Ergebnisse dieser Bewertung zu einem neuen Schritt springt. Die Aktion `aws:branch` funktioniert wie eine `IF-ELIF-ELSE`-Anweisung beim Programmieren.

Hier ist ein YAML-Beispiel für einen `aws:branch`-Schritt:

```
- name: ChooseOSforCommands
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Linux
    Default:
      PostProcessing
```

Wenn Sie die Aktion `aws:branch` für einen Schritt angeben, geben Sie die `Choices` an, die die Automatisierung evaluieren muss. Die Automatisierung kann `Choices` auf der Grundlage des Parameters evaluieren, den Sie im Abschnitt `Parameters` des Runbooks angegeben haben. Die Automatisierung kann `Choices` auch auf der Grundlage der Ausgabe eines vorherigen Schritts evaluieren.

Die Automatisierung evaluiert jede Auswahl mithilfe eines booleschen Ausdrucks. Wenn die Evaluierung zu dem Schluss kommt, dass die erste Auswahl `true` ist, springt die Automatisierung zum nächsten Schritt für diese Auswahl. Wenn die Auswertung zu dem Schluss kommt, dass die erste Auswahl `false` ist, evaluiert die Automatisierung die nächste Auswahl. Wenn Ihr Schritt drei oder mehr `Choices` beinhaltet, evaluiert die Automatisierung die Auswahlen nacheinander, bis eine Auswahl als `true` evaluiert wird. Die Automatisierung springt dann zu dem für die als `true` evaluierte Auswahl angegebenen Schritt.

Wenn keine `Choices` als `true` evaluiert werden, prüft die Automatisierung, ob der Schritt einen `Default`-Wert enthält. Ein `Default`-Wert definiert einen Schritt, zu dem die Automatisierung springen soll, wenn keine der Auswahlmöglichkeiten als `true` evaluiert wird. Wenn kein `Default`-Wert für den Schritt definiert ist, verarbeitet die Automatisierung den nächsten Schritt in dem Runbook.

Hier ist ein `aws:branch` Schritt in YAML mit dem Namen **Choose OSfrom Parameter**. Der Schritt beinhaltet zwei `Choices`: (`NextStep: runWindowsCommand`) und (`NextStep: runLinuxCommand`). Die Automatisierung evaluiert diese `Choices`, um zu bestimmen, welcher Befehl für das entsprechende Betriebssystem ausgeführt werden soll. Die `Variable` für jede Auswahl verwendet `{{OSName}}`. Dabei handelt es sich um einen Parameter, den der Autor des Runbooks im Abschnitt `Parameters` des Runbooks festgelegt hat.

```
mainSteps:
- name: chooseOSfromParameter
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runWindowsCommand
      Variable: "{{OSName}}"
      StringEquals: Windows
    - NextStep: runLinuxCommand
      Variable: "{{OSName}}"
      StringEquals: Linux
```

Hier ist ein `aws:branch` Schritt in YAML mit dem Namen **OSfromChoose** Output. Der Schritt beinhaltet zwei `Choices`: (`NextStep: runPowerShellCommand`) und (`NextStep: runShellCommand`). Die Automatisierung evaluiert diese `Choices`, um zu bestimmen, welcher Befehl für das entsprechende Betriebssystem ausgeführt werden soll. Die `Variable` für jede Auswahl verwendet `{{GetInstance.platform}}`. Dies ist die Ausgabe aus einem früheren Schritt in dem Runbook. Dieses Beispiel enthält auch eine Option mit dem Namen `Default`. Wenn die Automatisierung beide `Choices` evaluiert und keine davon `true` ist, springt die Automatisierung zu einem Schritt mit dem Namen `PostProcessing`.

```
mainSteps:
- name: chooseOSfromOutput
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Linux
    Default:
      PostProcessing
```

### Erstellen eines `aws:branch`-Schritts in einem Runbook
<a name="create-branch-action"></a>

Wenn Sie einen `aws:branch`-Schritt in einem Runbook erstellen, definieren Sie die `Choices`, die die Automatisierung evaluieren soll, um festzustellen, zu welchem Schritt die Automatisierung dann springen soll. Wie bereits erwähnt, werden `Choices` mit einem booleschen Ausdruck evaluiert. Jede Auswahl muss die folgenden Optionen definieren:
+ **NextStep**: Der nächste Schritt im Runbook, der verarbeitet werden muss, falls die angegebene Option ist. `true`
+ **Variable**: Geben Sie entweder den Namen eines Parameters an, der im Abschnitt `Parameters` des Runbooks definiert ist, einer Variable, die im Abschnitt `Variables` definiert ist, oder geben Sie ein Ausgabeobjekt aus einem vorherigen Schritt in dem Runbook an.

  Geben Sie Variablenwerte mithilfe des folgenden Formulars an.

  `Variable: "{{variable name}}"`

  Geben Sie Parameterwerte mithilfe ders folgenden Formulars an.

  `Variable: "{{parameter name}}"`

  Geben Sie Ausgabeobjektvariablen in der folgenden Form an.

  `Variable: "{{previousStepName.outputName}}"`
**Anmerkung**  
Das Erstellen der Ausgabevariable wird im nächsten Abschnitt ausführlicher beschrieben: [Informationen zum Erstellen der Ausgabevariable](#branch-action-output).
+ **Operation**: Die Kriterien für die Evaluierung der Auswahl, etwa `StringEquals: Linux`. Die Aktion `aws:branch` unterstützt die folgenden Operationen:

**Zeichenfolgenoperationen**
  + StringEquals
  + EqualsIgnoreCase
  + StartsWith
  + EndsWith
  + Enthält

**Numerische Operationen**
  + NumericEquals
  + NumericGreater
  + NumericLesser
  + NumericGreaterOrEquals
  + NumericLesser
  + NumericLesserOrEquals

**Boolesche Operation**
  + BooleanEquals
**Wichtig**  
Wenn Sie ein Runbook erstellen, validiert das System alle Operationen im Runbook. Wenn eine Operation nicht unterstützt wird, gibt das System einen Fehler aus, wenn Sie versuchen, das Runbook zu erstellen.
+ **Default**: Geben Sie einen Rückfallschritt an, zu dem die Automatisierung springen soll, wenn keine der `Choices` `true` ist.
**Anmerkung**  
Wenn Sie keinen `Default`-Wert angeben möchten, können Sie die `isEnd`-Option angeben. Wenn keine der `Choices` `true` ist und kein `Default`-Wert angegeben ist, wird die Automatisierung am Ende des Schrittes angehalten.

Verwenden Sie die folgenden Vorlagen für die Konstruktion des Schrittes `aws:branch` in Ihrem Runbook. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ YAML ]

```
mainSteps:
- name: step name
  action: aws:branch
  inputs:
    Choices:
    - NextStep: step to jump to if evaluation for this choice is true
      Variable: "{{parameter name or output from previous step}}"
      Operation type: Operation value
    - NextStep: step to jump to if evaluation for this choice is true
      Variable: "{{parameter name or output from previous step}}"
      Operation type: Operation value
    Default:
      step to jump to if all choices are false
```

------
#### [ JSON ]

```
{
   "mainSteps":[
      {
         "name":"a name for the step",
         "action":"aws:branch",
         "inputs":{
            "Choices":[
               {
                  "NextStep":"step to jump to if evaluation for this choice is true",
                  "Variable":"{{parameter name or output from previous step}}",
                  "Operation type":"Operation value"
               },
               {
                  "NextStep":"step to jump to if evaluation for this choice is true",
                  "Variable":"{{parameter name or output from previous step}}",
                  "Operation type":"Operation value"
               }
            ],
            "Default":"step to jump to if all choices are false"
         }
      }
   ]
}
```

------

#### Informationen zum Erstellen der Ausgabevariable
<a name="branch-action-output"></a>

Um eine `aws:branch`-Auswahl zu erstellen, die auf die Ausgabe eines vorherigen Schrittes verweist, müssen Sie den Namen des vorherigen Schrittes und den des Ausgabefeldes angeben. Anschließend kombinieren Sie die Namen des Schrittes und des Feldes im folgenden Format.

`Variable: "{{previousStepName.outputName}}"`

Beispielsweise hat der erste Schritt im folgenden Beispiel den Namen `GetInstance`. Dann gibt es unter `outputs` ein Feld mit dem Namen `platform`. Im zweiten Schritt (`ChooseOSforCommands`) möchte der Autor auf die Ausgabe des Plattform-Feldes als Variable verweisen. Um die Variable zu erstellen, kombinieren Sie einfach den Schrittnamen (GetInstance) und den Namen des Ausgabefeldes (Plattform), um sie zu erstellen`Variable: "{{GetInstance.platform}}"`.

```
mainSteps:
- Name: GetInstance
  action: aws:executeAwsApi
  inputs:
    Service: ssm
    Api: DescribeInstanceInformation
    Filters:
    - Key: InstanceIds
      Values: ["{{ InstanceId }}"]
  outputs:
  - Name: myInstance
    Selector: "$.InstanceInformationList[0].InstanceId"
    Type: String
  - Name: platform
    Selector: "$.InstanceInformationList[0].PlatformType"
    Type: String
- name: ChooseOSforCommands
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Linux
    Default:
      Sleep
```

Hier ist ein Beispiel, das zeigt, wie *"Variable": "\$1\$1 describeInstance.Platform \$1\$1"* es aus dem vorherigen Schritt und der Ausgabe erstellt wird.

```
- name: describeInstance
  action: aws:executeAwsApi
  onFailure: Abort
  inputs:
    Service: ec2
    Api: DescribeInstances
    InstanceIds:
    - "{{ InstanceId }}"
  outputs:
  - Name: Platform
    Selector: "$.Reservations[0].Instances[0].Platform"
    Type: String
  nextStep: branchOnInstancePlatform
- name: branchOnInstancePlatform
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runEC2RescueForWindows
      Variable: "{{ describeInstance.Platform }}"
      StringEquals: windows
    Default: runEC2RescueForLinux
```

### Beispiel `aws:branch`-Runbooks
<a name="branch-runbook-examples"></a>

Hier sind einige Beispiele für Runbooks, die `aws:branch` verwenden.

**Beispiel 1: Verwendung von `aws:branch` mit einer Ausgabevariablen zur Ausführung von Befehlen auf der Grundlage des Betriebssystemtyps**

Im ersten Schritt dieses Beispiels (`GetInstance`) verwendet der Runbook-Autor die `aws:executeAwsApi`-Aktion zum Aufrufen der `ssm` `DescribeInstanceInformation`-API-Operation. Der Autor verwendet diese Aktion, um den Typ des von einer Instance zu verwendenden Betriebssystems zu bestimmen. Die Aktion `aws:executeAwsApi` gibt die Instance-ID und den Plattformtyp aus.

Im zweiten Schritt (`ChooseOSforCommands`) verwendet der Autor die Aktion `aws:branch` mit zwei `Choices` (`NextStep: runPowerShellCommand`) und (`NextStep: runShellCommand`). Die Automatisierung evaluiert das Betriebssystem der Instance anhand der Ausgabe des vorherigen Schritts (`Variable: "{{GetInstance.platform}}"`). Die Automatisierung springt zu einem Schritt für das angegebene Betriebssystem.

```
---
schemaVersion: '0.3'
assumeRole: "{{AutomationAssumeRole}}"
parameters:
  AutomationAssumeRole:
    default: ""
    type: String
mainSteps:
- name: GetInstance
  action: aws:executeAwsApi
  inputs:
    Service: ssm
    Api: DescribeInstanceInformation
  outputs:
  - Name: myInstance
    Selector: "$.InstanceInformationList[0].InstanceId"
    Type: String
  - Name: platform
    Selector: "$.InstanceInformationList[0].PlatformType"
    Type: String
- name: ChooseOSforCommands
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runPowerShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Windows
    - NextStep: runShellCommand
      Variable: "{{GetInstance.platform}}"
      StringEquals: Linux
    Default:
      Sleep
- name: runShellCommand
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunShellScript
    InstanceIds:
    - "{{GetInstance.myInstance}}"
    Parameters:
      commands:
      - ls
  isEnd: true
- name: runPowerShellCommand
  action: aws:runCommand
  inputs:
    DocumentName: AWS-RunPowerShellScript
    InstanceIds:
    - "{{GetInstance.myInstance}}"
    Parameters:
      commands:
      - ls
  isEnd: true
- name: Sleep
  action: aws:sleep
  inputs:
    Duration: PT3S
```

**Beispiel 2: Verwendung von `aws:branch` mit einer Parametervariablen zur Ausführung von Befehlen auf der Grundlage des Betriebssystemtyps**

Der Autor des Runbooks definiert verschiedene Parameteroptionen am Anfang des Runbooks im Abschnitt `parameters`. Ein Parameter hat den Namen `OperatingSystemName`. Im ersten Schritt (`ChooseOS`) verwendet der Autor die Aktion `aws:branch` mit zwei `Choices` (`NextStep: runWindowsCommand`) und (`NextStep: runLinuxCommand`). Die Variable für diese `Choices` verweist auf die im Parameter-Abschnitt angegebene Parameteroption (`Variable: "{{OperatingSystemName}}"`). Wenn der Benutzer dieses Runbook ausführt, gibt er zur Laufzeit einen Wert für `OperatingSystemName` an. Die Automatisierung verwendet den Laufzeitparameter während der Evaluierung der `Choices`. Die Automatisierung springt zu einem Schritt für das angegebene Betriebssystem auf der Grundlage des für `OperatingSystemName` angegebenen Laufzeitparameters.

```
---
schemaVersion: '0.3'
assumeRole: "{{AutomationAssumeRole}}"
parameters:
  AutomationAssumeRole:
    default: ""
    type: String
  OperatingSystemName:
    type: String
  LinuxInstanceId:
    type: String
  WindowsInstanceId:
    type: String
mainSteps:
- name: ChooseOS
  action: aws:branch
  inputs:
    Choices:
    - NextStep: runWindowsCommand
      Variable: "{{OperatingSystemName}}"
      StringEquals: windows
    - NextStep: runLinuxCommand
      Variable: "{{OperatingSystemName}}"
      StringEquals: linux
    Default:
      Sleep
- name: runLinuxCommand
  action: aws:runCommand
  inputs:
    DocumentName: "AWS-RunShellScript"
    InstanceIds:
    - "{{LinuxInstanceId}}"
    Parameters:
      commands:
      - ls
  isEnd: true
- name: runWindowsCommand
  action: aws:runCommand
  inputs:
    DocumentName: "AWS-RunPowerShellScript"
    InstanceIds:
    - "{{WindowsInstanceId}}"
    Parameters:
      commands:
      - date
  isEnd: true
- name: Sleep
  action: aws:sleep
  inputs:
    Duration: PT3S
```

### Erstellen komplexer verzweigender Automatisierungen mit Operatoren
<a name="branch-operators"></a>

Sie können Automatisierungen mit komplexen Verzweigungen erstellen, indem Sie die Operatoren `And`, `Or` und `Not` in Ihren `aws:branch`-Schritten verwenden.

**Der „Und“-Operator**  
Verwenden Sie den `And`-Operator, wenn Sie wünschen, dass mehrere Variablen für eine Auswahl `true` sind. Im folgenden Beispiel wird die erste Wahl darauf evaluiert, ob eine Instance `running` ist und das Betriebssystem `Windows` verwendet. Wenn die Evaluierung *beider* dieser Variablen „true“ ergibt, springt die Automatisierung zum Schritt `runPowerShellCommand`. Wenn eine oder mehrere der Variablen `false` ist, evaluiert die Automatisierung die Variablen für die zweite Auswahl.

```
mainSteps:
- name: switch2
  action: aws:branch
  inputs:
    Choices:
    - And:
      - Variable: "{{GetInstance.pingStatus}}"
        StringEquals: running
      - Variable: "{{GetInstance.platform}}"
        StringEquals: Windows
      NextStep: runPowerShellCommand

    - And:
      - Variable: "{{GetInstance.pingStatus}}"
        StringEquals: running
      - Variable: "{{GetInstance.platform}}"
        StringEquals: Linux
      NextStep: runShellCommand
    Default:
      sleep3
```

**Der „Oder“-Operator**  
Verwenden Sie den `Or`-Operator, wenn Sie wünschen, *eine beliebige* von mehreren Variablen für eine Auswahl „true“ ist. Im folgenden Beispiel wird die erste Auswahl darauf evaluiert, ob eine Parameterzeichenfolge `Windows` ist, und ob die Ausgabe eines AWS Lambda -Schrittes „true“ ist. Wenn die Evaluierung feststellt, dass *eine* dieser Variablen „true“ ist, springt die Automatisierung zum Schritt `RunPowerShellCommand`. Wenn beide Variablen „false“ sind, evaluiert die Automatisierung die Variablen für die zweite Auswahl.

```
- Or:
  - Variable: "{{parameter1}}"
    StringEquals: Windows
  - Variable: "{{BooleanParam1}}"
    BooleanEquals: true
  NextStep: RunPowershellCommand
- Or:
  - Variable: "{{parameter2}}"
    StringEquals: Linux
  - Variable: "{{BooleanParam2}}"
    BooleanEquals: true
  NextStep: RunShellScript
```

**Der „Nicht“-Operator**  
Verwenden Sie den `Not`-Operator, wenn zu einem Schritt gesprungen werden soll, wenn eine Variable *nicht* „true“ ist. Im folgenden Beispiel wird die erste Auswahl danach evaluiert, ob eine Parameterzeichenfolge `Not Linux` ist. Wenn die Evaluierung feststellt, dass die Variable nicht „Linux“ ist, springt die Automatisierung zum Schritt `sleep2`. Wenn die Evaluierung der ersten Auswahl feststellt, dass sie Linux *ist*, evaluiert die Automatisierung die nächste Auswahl.

```
mainSteps:
- name: switch
  action: aws:branch
  inputs:
    Choices:
    - NextStep: sleep2
      Not:
        Variable: "{{testParam}}"
        StringEquals: Linux
    - NextStep: sleep1
      Variable: "{{testParam}}"
      StringEquals: Windows
    Default:
      sleep3
```

## Beispiele für die Verwendung von bedingten Optionen
<a name="conditional-examples"></a>

Dieser Abschnitt enthält verschiedene Beispiele für die Verwendung dynamischer Optionen in einem Runbook. Jedes Beispiel in diesem Abschnitt erweitert das nachfolgende Runbook. Dieses Runbook verfügt über zwei Aktionen. Die erste Aktion hat den Namen `InstallMsiPackage`. Sie verwendet die Aktion `aws:runCommand` zur Installation einer Anwendung auf einer Windows Server-Instance. Die zweite Aktion hat den Namen `TestInstall`. Sie verwendet die Aktion `aws:invokeLambdaFunction` zum Ausführen eines Tests der installierten Anwendung, sofern die Anwendung erfolgreich installiert wurde. Der erste Schritt gibt `onFailure: Abort` an. Dies bedeutet, dass die Ausführung der Automatisierung vor dem zweiten Schritt gestoppt wird, wenn die Anwendung nicht erfolgreich installiert wird.

**Beispiel 1: Runbook mit zwei linearen Aktionen**

```
---
schemaVersion: '0.3'
description: Install MSI package and run validation.
assumeRole: "{{automationAssumeRole}}"
parameters:
  automationAssumeRole:
    type: String
    description: "(Required) Assume role."
  packageName:
    type: String
    description: "(Required) MSI package to be installed."
  instanceIds:
    type: String
    description: "(Required) Comma separated list of instances."
mainSteps:
- name: InstallMsiPackage
  action: aws:runCommand
  maxAttempts: 2
  onFailure: Abort
  inputs:
    InstanceIds:
    - "{{instanceIds}}"
    DocumentName: AWS-RunPowerShellScript
    Parameters:
      commands:
      - msiexec /i {{packageName}}
- name: TestInstall
  action: aws:invokeLambdaFunction
  maxAttempts: 1
  timeoutSeconds: 500
  inputs:
    FunctionName: TestLambdaFunction
...
```

**Erstellen einer dynamischen Automatisierung, die anhand der Option `onFailure` zu verschiedenen Schritten springt**

Im folgenden Beispiel werden die Optionen `onFailure: step:step name`, `nextStep` und `isEnd` zur Erstellung einer dynamischen Automatisierung verwendet. Wenn in diesem Beispiel die `InstallMsiPackage` Aktion fehlschlägt, springt die Automatisierung zu einer Aktion namens *PostFailure*(`onFailure: step:PostFailure`) über, um eine AWS Lambda Funktion auszuführen, die eine Aktion ausführt, falls die Installation fehlschlägt. Wenn die Installation erfolgreich ist, springt die Automatisierung zur TestInstall Aktion () über. `nextStep: TestInstall` Die Schritte `TestInstall` und `PostFailure` verwenden die Option `isEnd` (`isEnd: true`), so dass die Automatisierung abschließt, wenn einer dieser Schritte abgeschlossen ist.

**Anmerkung**  
Die Verwendung der Option `isEnd` im letzten Schritt des Abschnitts `mainSteps` ist optional. Wenn der letzte Schritt nicht zu anderen Schritten springt, stoppt die Automatisierung nach der Ausführung der Aktion im letzten Schritt.

**Beispiel 2: Eine dynamische Automatisierung, die zu verschiedenen Schritten springt**

```
mainSteps
- name: InstallMsiPackage
  action: aws:runCommand
  onFailure: step:PostFailure
  maxAttempts: 2
  inputs:
    InstanceIds:
    - "{{instanceIds}}"
    DocumentName: AWS-RunPowerShellScript
    Parameters:
      commands:
      - msiexec /i {{packageName}}
  nextStep: TestInstall
- name: TestInstall
  action: aws:invokeLambdaFunction
  maxAttempts: 1
  timeoutSeconds: 500
  inputs:
    FunctionName: TestLambdaFunction
  isEnd: true
- name: PostFailure
  action: aws:invokeLambdaFunction
  maxAttempts: 1
  timeoutSeconds: 500
  inputs:
    FunctionName: PostFailureRecoveryLambdaFunction
  isEnd: true
...
```

**Anmerkung**  
Vor der Verarbeitung eines Runbooks überprüft das System, dass das Runbook keine Endlosschleife erstellt. Wenn eine Endlosschleife erkannt wird, gibt Automation einen Fehler und einen Kreis-Trace zurück, aus dem hervorgeht, welche Schritte die Schleife erzeugen.

**Erstellen einer dynamischen Automatisierung, die entscheidende Schritte definiert**

Sie können angeben, dass ein Schritt für den Erfolg der Automatisierung entscheidend ist. Wenn ein solcher kritischer Schritt fehlschlägt, meldet Automation den Status der Automatisierung als `Failed`. Dies gilt auch dann, wenn ein oder mehrere Schritte erfolgreich ausgeführt wurden. Im folgenden Beispiel identifiziert der Benutzer den Schritt, falls der *VerifyDependencies*InstallMsiPackage**Schritt fehlschlägt ()`onFailure: step:VerifyDependencies`. Der Benutzer gibt an, dass der Schritt `InstallMsiPackage` nicht kritisch ist (`isCritical: false`). In diesem Beispiel gilt: Wenn die Anwendung nicht installiert werden konnten, verarbeitet Automation den Schritt `VerifyDependencies`, um zu bestimmen, ob eine oder mehrere Abhängigkeiten fehlen, was dazu führte, dass die Anwendung nicht installiert werden konnte. 

**Beispiel 3: Definieren von kritischen Schritten für die Automatisierung**

```
---
name: InstallMsiPackage
action: aws:runCommand
onFailure: step:VerifyDependencies
isCritical: false
maxAttempts: 2
inputs:
  InstanceIds:
  - "{{instanceIds}}"
  DocumentName: AWS-RunPowerShellScript
  Parameters:
    commands:
    - msiexec /i {{packageName}}
nextStep: TestPackage
...
```

# Verwenden von Aktionsausgaben als Eingaben
<a name="automation-action-outputs-inputs"></a>

Verschiedene Automatisierungs-Aktionen geben vordefinierte Ausgaben zurück. Sie können diese Ausgaben mithilfe des Formats `{{stepName.outputName}}` als Eingaben an spätere Schritte in Ihrem Runbook übergeben. Sie können benutzerdefinierte Ausgaben für Automatisierungs-Aktionen in Ihren Runbooks definieren. Auf diese Weise können Sie Skripts ausführen oder API-Operationen für andere AWS-Services einmalig aufrufen, sodass Sie die Werte als Eingaben in späteren Aktionen wiederverwenden können. Parametertypen in Runbooks sind statisch. Dies bedeutet, dass der Parametertyp nicht geändert werden kann, nachdem er definiert wurde. Um eine Schrittausgabe zu definieren, geben Sie die folgenden Felder an:
+ Name: (Erforderlich) Der Ausgabename, der in späteren Schritten verwendet wird, um auf den Ausgabewert zu verweisen.
+ Selektor: (Erforderlich) Der JSONPath Ausdruck, der zur Bestimmung des Ausgabewerts verwendet wird.
+ Typ: (Optional) Der Datentyp des Werts, der vom Auswahlfeld zurückgegeben wird. Gültige Typwerte sind `String`, `Integer`, `Boolean`, `StringList`, `StringMap`, `MapList`. Der Standardwert ist `String`.

Wenn der Wert einer Ausgabe nicht dem von Ihnen angegebenen Datentyp entspricht, versucht Automation, den Datentyp zu konvertieren. Wenn der zurückgegebene Wert beispielsweise ein `Integer` ist, der angegebene `Type` jedoch ein `String` ist, ist der endgültige Ausgabewert ein `String`-Wert. Die folgenden Typkonvertierungen werden unterstützt:
+ `String`-Werte können in `StringList`, `Integer` und `Boolean` umgewandelt werden.
+ `Integer`-Werte können in `String` und `StringList` umgewandelt werden.
+ `Boolean`-Werte können in `String` und `StringList` umgewandelt werden.
+ `StringList`-, `IntegerList`-, oder `BooleanList`-Werte, die ein Element enthalten, können in `String`, `Integer` oder `Boolean` umgewandelt werden.

Bei der Verwendung von Parametern oder Ausgaben mit Automatisierungs-Aktionen kann der Datentyp nicht dynamisch innerhalb der Eingabe einer Aktion geändert werden.

Hier ist ein Beispiel-Runbook, das veranschaulicht, wie Sie Aktionsausgaben definieren und auf den Wert als Eingabe für eine spätere Aktion verweisen. Die Runbooks tun Folgendes:
+ Verwendet die `aws:executeAwsApi` Aktion, um den Amazon EC2 DescribeImages EC2-API-Vorgang aufzurufen, um den Namen eines bestimmten Windows Server 2016 AMI abzurufen. Es gibt die Image-ID als `ImageId` aus.
+ Verwendet die `aws:executeAwsApi` Aktion, um den Amazon EC2 RunInstances EC2-API-Vorgang aufzurufen, um eine Instance zu starten, die den `ImageId` aus dem vorherigen Schritt verwendet. Es gibt die Instance-ID als `InstanceId` aus.
+ Verwendet die ` aws:waitForAwsResourceProperty` Aktion, um den Amazon EC2 DescribeInstanceStatus EC2-API-Vorgang abzufragen, um darauf zu warten, dass die Instance den `running` Status erreicht. Die Aktion endet nach 60 Sekunden durch Timeout. Der Schritt endet durch Timeout, wenn die Instance nach 60 Sekunden Abfrage nicht den Status `running` erreicht.
+ Verwendet die `aws:assertAwsResourceProperty`-Aktion zum Aufrufen der Amazon EC2 `DescribeInstanceStatus`-API-Operation, um geltend zu machen, dass sich die Instance im `running`-Zustand befindet. Der Schritt schlägt fehl, wenn der Status der Instance nicht `running` ist.

```
---
description: Sample runbook using AWS API operations
schemaVersion: '0.3'
assumeRole: "{{ AutomationAssumeRole }}"
parameters:
  AutomationAssumeRole:
    type: String
    description: "(Optional) The ARN of the role that allows Automation to perform the actions on your behalf."
    default: ''
  ImageName:
    type: String
    description: "(Optional) Image Name to launch EC2 instance with."
    default: "Windows_Server-2022-English-Full-Base*"
mainSteps:
- name: getImageId
  action: aws:executeAwsApi
  inputs:
    Service: ec2
    Api: DescribeImages
    Filters:  
    - Name: "name"
      Values: 
      - "{{ ImageName }}"
  outputs:
  - Name: ImageId
    Selector: "$.Images[0].ImageId"
    Type: "String"
- name: launchOneInstance
  action: aws:executeAwsApi
  inputs:
    Service: ec2
    Api: RunInstances
    ImageId: "{{ getImageId.ImageId }}"
    MaxCount: 1
    MinCount: 1
  outputs:
  - Name: InstanceId
    Selector: "$.Instances[0].InstanceId"
    Type: "String"
- name: waitUntilInstanceStateRunning
  action: aws:waitForAwsResourceProperty
  timeoutSeconds: 60
  inputs:
    Service: ec2
    Api: DescribeInstanceStatus
    InstanceIds:
    - "{{ launchOneInstance.InstanceId }}"
    PropertySelector: "$.InstanceStatuses[0].InstanceState.Name"
    DesiredValues:
    - running
- name: assertInstanceStateRunning
  action: aws:assertAwsResourceProperty
  inputs:
    Service: ec2
    Api: DescribeInstanceStatus
    InstanceIds:
    - "{{ launchOneInstance.InstanceId }}"
    PropertySelector: "$.InstanceStatuses[0].InstanceState.Name"
    DesiredValues:
    - running
outputs:
- "launchOneInstance.InstanceId"
...
```

Sie können mit jeder der oben beschriebenen Automatisierungsaktionen eine bestimmte API-Operation aufrufen, indem Sie den Service-Namespace, den Namen der API-Operation, die Eingabeparameter und die Ausgabeparameter angeben. Eingaben werden von der ausgewählten API-Operation bestimmt. Sie können die API-Operationen (auch als Methoden bezeichnet) anzeigen, indem Sie einen Service in der linken Navigationsleiste auf der folgenden [Service-Referenzen](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/index.html)-Seite auswählen. Wählen Sie eine Methode im Abschnitt **Client** für den Service, den Sie aufrufen möchten. Beispielsweise werden alle API-Vorgänge (Methoden) für Amazon Relational Database Service (Amazon RDS) auf der folgenden Seite aufgelistet: [Amazon RDS-Methoden](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds.html).

Sie können das Schema für jede Automatisierungsaktion an den folgenden Orten anzeigen:
+ [`aws:assertAwsResourceProperty`— Bestätigt einen AWS Ressourcen- oder Ereignisstatus](automation-action-assertAwsResourceProperty.md)
+ [`aws:executeAwsApi`— AWS API-Operationen aufrufen und ausführen](automation-action-executeAwsApi.md)
+ [`aws:waitForAwsResourceProperty`— Warte auf eine AWS Ressourceneigenschaft](automation-action-waitForAwsResourceProperty.md)

Die Schemata umfassen Beschreibungen der erforderlichen Felder für jede Aktion.

**Verwendung der Felder Selector/PropertySelector**  
Jede Automatisierungsaktion erfordert, dass Sie entweder eine Ausgabe `Selector` (für `aws:executeAwsApi`) oder einen `PropertySelector` (für `aws:assertAwsResourceProperty` und `aws:waitForAwsResourceProperty`) enthalten. Diese Felder werden verwendet, um die JSON-Antwort aus einer AWS API-Operation zu verarbeiten. Diese Felder verwenden die JSONPath Syntax.

Hier finden Sie ein Beispiel, das dieses Konzept für die Aktion `aws:executeAwsAPi` erläutert.

```
---
mainSteps:
- name: getImageId
  action: aws:executeAwsApi
  inputs:
    Service: ec2
    Api: DescribeImages
    Filters:  
      - Name: "name"
        Values: 
          - "{{ ImageName }}"
  outputs:
    - Name: ImageId
      Selector: "$.Images[0].ImageId"
      Type: "String"
...
```

Im `aws:executeAwsApi`-Schritt`getImageId` ruft die Automatisierung die `DescribeImages`-API-Operation auf und empfängt eine Antwort von `ec2`. Die Automatisierung wendet dann `Selector - "$.Images[0].ImageId"` auf die API-Antwort an und weist der `ImageId`-Ausgabevariablen den ausgewählten Wert zu. Weitere Schritte in dieser Automatisierung können den Wert von `ImageId` verwenden, indem `"{{ getImageId.ImageId }}"` angegeben wird.

Hier finden Sie ein Beispiel, das dieses Konzept für die Aktion `aws:waitForAwsResourceProperty` erläutert.

```
---
- name: waitUntilInstanceStateRunning
  action: aws:waitForAwsResourceProperty
  # timeout is strongly encouraged for action - aws:waitForAwsResourceProperty
  timeoutSeconds: 60
  inputs:
    Service: ec2
    Api: DescribeInstanceStatus
    InstanceIds:
    - "{{ launchOneInstance.InstanceId }}"
    PropertySelector: "$.InstanceStatuses[0].InstanceState.Name"
    DesiredValues:
    - running
...
```

Im `aws:waitForAwsResourceProperty`-Schritt`waitUntilInstanceStateRunning` ruft die Automatisierung die `DescribeInstanceStatus`-API-Operation auf und empfängt eine Antwort von `ec2`. Die Automatisierung wendet dann `PropertySelector - "$.InstanceStatuses[0].InstanceState.Name"` auf die Antwort an und prüft, ob der angegebene zurückgegebene Wert einem Wert in der Liste `DesiredValues` entspricht (in diesem Fall `running`). Der Schritt wiederholt den Prozess, bis die Antwort den Instance-Status `running` zurückgibt. 

## Verwendung JSONPath in Runbooks
<a name="automation-action-json-path"></a>

Ein JSONPath Ausdruck ist eine Zeichenfolge, die mit „\$1“ beginnt. die zur Auswahl einer oder mehrerer Komponenten in einem JSON-Element verwendet wird. Die folgende Liste enthält Informationen zu JSONPath Operatoren, die von Systems Manager Automation unterstützt werden:
+ **Dot-notated child (.)**: Verwendung mit einem JSON-Objekt. Dieser Operator wählt den Wert eines bestimmten Schlüssels aus.
+ **Deep-scan (..)**: Verwendung mit einem JSON-Element. Dieser Operator untersucht das JSON-Element Ebene für Ebene und wählt eine Liste von Werten mit dem spezifischen Schlüssel aus. Der Rückgabetyp dieses Operators ist immer ein JSON-Array. Im Kontext eines Ausgabetyps einer Automatisierungsaktion kann der Operator entweder StringList oder sein MapList.
+ **Array-Index ([ ])**: Verwendung mit einem JSON-Array. Dieser Operator ruft den Wert eines bestimmten Index ab.
+ **Filter ([? (*expression*)])**: Wird mit einem JSON-Array verwendet. Dieser Operator filtert JSON-Array-Werte, die den im Filterausdruck definierten Kriterien entsprechen. Filterausdrücke können nur die folgenden Operatoren verwenden: ==,\$1 =, >, <, >= oder <=. Die Kombination mehrerer Filterausdrücke mit AND (&&) oder OR (\$1\$1) wird nicht unterstützt. Der Rückgabetyp dieses Operators ist immer ein JSON-Array. 

Um JSONPath Operatoren besser zu verstehen, lesen Sie sich die folgende JSON-Antwort aus dem `DescribeInstances` ec2-API-Vorgang durch. Auf diese Antwort folgen mehrere Beispiele, die unterschiedliche Ergebnisse zeigen, indem unterschiedliche JSONPath Ausdrücke auf die Antwort aus dem `DescribeInstances` API-Vorgang angewendet werden.

```
{
    "NextToken": "abcdefg",
    "Reservations": [
        {
            "OwnerId": "123456789012",
            "ReservationId": "r-abcd12345678910",
            "Instances": [
                {
                    "ImageId": "ami-12345678",
                    "BlockDeviceMappings": [
                        {
                            "Ebs": {
                                "DeleteOnTermination": true,
                                "Status": "attached",
                                "VolumeId": "vol-000000000000"
                            },
                            "DeviceName": "/dev/xvda"
                        }
                    ],
                    "State": {
                        "Code": 16,
                        "Name": "running"
                    }
                }
            ],
            "Groups": []
        },
        {
            "OwnerId": "123456789012",
            "ReservationId": "r-12345678910abcd",
            "Instances": [
                {
                    "ImageId": "ami-12345678",
                    "BlockDeviceMappings": [
                        {
                            "Ebs": {
                                "DeleteOnTermination": true,
                                "Status": "attached",
                                "VolumeId": "vol-111111111111"
                            },
                            "DeviceName": "/dev/xvda"
                        }
                    ],
                    "State": {
                        "Code": 80,
                        "Name": "stopped"
                    }
                }
            ],
            "Groups": []
        }
    ]
}
```

**JSONPath Beispiel 1: Rufen Sie eine bestimmte Zeichenfolge aus einer JSON-Antwort ab**

```
JSONPath: 
$.Reservations[0].Instances[0].ImageId 

Returns:
"ami-12345678"

Type: String
```

**JSONPath Beispiel 2: Rufen Sie einen bestimmten booleschen Wert aus einer JSON-Antwort ab**

```
JSONPath:
$.Reservations[0].Instances[0].BlockDeviceMappings[0].Ebs.DeleteOnTermination
        
Returns:
true

Type: Boolean
```

**JSONPath Beispiel 3: Holen Sie sich eine bestimmte Ganzzahl aus einer JSON-Antwort**

```
JSONPath:
$.Reservations[0].Instances[0].State.Code
        
Returns:
16

Type: Integer
```

**JSONPath Beispiel 4: Eine JSON-Antwort gründlich scannen und dann alle Werte für VolumeId als StringList** 

```
JSONPath:
$.Reservations..BlockDeviceMappings..VolumeId
        
Returns:
[
   "vol-000000000000",
   "vol-111111111111"
]

Type: StringList
```

**JSONPath Beispiel 5: Holen Sie sich ein bestimmtes BlockDeviceMappings Objekt als StringMap**

```
JSONPath:
$.Reservations[0].Instances[0].BlockDeviceMappings[0]
        
Returns:
{
   "Ebs" : {
      "DeleteOnTermination" : true,
      "Status" : "attached",
      "VolumeId" : "vol-000000000000"
   },
   "DeviceName" : "/dev/xvda"
}

Type: StringMap
```

**JSONPath Beispiel 6: Tiefenscan einer JSON-Antwort und Abrufen aller State-Objekte als MapList**

```
JSONPath:
$.Reservations..Instances..State 
    
Returns:
[
   {
      "Code" : 16,
      "Name" : "running"
   },
   {
      "Code" : 80,
      "Name" : "stopped"
   }
]

Type: MapList
```

**JSONPath Beispiel 7: Filtern Sie nach Instanzen im `running` Bundesstaat**

```
JSONPath:
$.Reservations..Instances[?(@.State.Name == 'running')]

Returns:
[
  {
    "ImageId": "ami-12345678",
    "BlockDeviceMappings": [
      {
        "Ebs": {
          "DeleteOnTermination": true,
          "Status": "attached",
          "VolumeId": "vol-000000000000"
        },
        "DeviceName": "/dev/xvda"
      }
    ],
    "State": {
      "Code": 16,
      "Name": "running"
    }
  }
]

Type: MapList
```

**JSONPath Beispiel 8: Gibt die Anzahl `ImageId` der Instanzen zurück, die sich nicht im `running` Status befinden**

```
JSONPath:
$.Reservations..Instances[?(@.State.Name != 'running')].ImageId

Returns:
[
  "ami-12345678"
]

Type: StringList | String
```

# Erstellen von Webhook-Integrationen für Automation
<a name="creating-webhook-integrations"></a>

Um während einer Automatisierung Nachrichten über Webhooks zu senden, erstellen Sie eine Integration. Integrationen können während einer Automatisierung mithilfe der neuen Aktion `aws:invokeWebhook` in Ihrem Runbook aufgerufen werden. Wenn Sie noch keinen Webhook erstellt haben, finden Sie weitere Informationen unter [Erstellen von Webhooks für Integrationen](#creating-webhooks). Weitere Informationen über die Aktion `aws:invokeWebhook` finden Sie unter [`aws:invokeWebhook` – Automation-Webhook-Integration aufrufen](invoke-webhook.md).

Wie in den folgenden Verfahren gezeigt, können Sie Integrationen über die Automation-Konsole von Systems Manager oder mit Ihrem bevorzugten Befehlszeilen-Tool erstellen. 

## Erstellen von Integrationen (Konsole)
<a name="creating-integrations-console"></a>

**So erstellen Sie eine Integration für Automation (Konsole)**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie die Registerkarte **Integrations** (Integrationen) aus.

1. Wählen Sie **Add integration** (Integration hinzufügen) und dann **Webhook** aus.

1. Geben Sie die erforderlichen Werte und optionale Werte ein, die Sie für die Integration einbeziehen möchten.

1. Wählen Sie **Add** (Hinzufügen) aus, um die Integration zu erstellen.

## Erstellen von Integrationen (Befehlszeile)
<a name="creating-integrations-commandline"></a>

Um eine Integration mit Befehlszeilen-Tools zu erstellen, muss der erforderliche `SecureString`-Parameter für eine Integration erstellt werden. Automation nutzt einen reservierten Namespace in Parameter Store, einem Tool in Systems Manager, um Informationen über Ihre Integration zu speichern. Wenn Sie eine Integration mit dem erstellen AWS-Managementkonsole, erledigt Automation diesen Prozess für Sie. Nach dem Namespace geben Sie den Typ der zu erstellenden Integration und dann deren Namen an. Derzeit unterstützt Automation Integrationen vom Typ `webhook`.

Folgende Felder werden für Integrationen vom Typ `webhook` unterstützt:
+ Description
+ Header
+ Nutzlast
+ URL

**Bevor Sie beginnen**  
Falls Sie dies noch nicht getan haben, installieren und konfigurieren Sie die AWS Command Line Interface (AWS CLI) oder die AWS -Tools für PowerShell. Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

**So erstellen Sie eine Integration für Automation (Befehlszeile)**
+ Führen Sie die folgenden Befehle aus, um den erforderlichen `SecureString`-Parameter für eine Integration zu erstellen. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen. Der Namespace `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/` ist im Parameter Store für Integrationen reserviert. Im Namen des Parameters muss dieser Namespace verwendet werden, gefolgt vom Namen der Integration. Zum Beispiel `/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/myWebhookIntegration`.

------
#### [ Linux & macOS ]

  ```
  aws ssm put-parameter \
      --name "/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/myWebhookIntegration" \
      --type "SecureString" \
      --data-type "aws:ssm:integration" \
      --value '{"description": "My first webhook integration for Automation.", "url": "myWebHookURL"}'
  ```

------
#### [ Windows ]

  ```
  aws ssm put-parameter ^
      --name "/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/myWebhookIntegration" ^
      --type "SecureString" ^
      --data-type "aws:ssm:integration" ^
      --value  "{\"description\":\"My first webhook integration for Automation.\",\"url\":\"myWebHookURL\"}"
  ```

------
#### [ PowerShell ]

  ```
  Write-SSMParameter `
      -Name "/d9d01087-4a3f-49e0-b0b4-d568d7826553/ssm/integrations/webhook/myWebhookIntegration" `
      -Type "SecureString"
      -DataType "aws:ssm:integration"
      -Value '{"description": "My first webhook integration for Automation.", "url": "myWebHookURL"}'
  ```

------

## Erstellen von Webhooks für Integrationen
<a name="creating-webhooks"></a>

Beachten Sie beim Erstellen von Webhooks bei Ihrem Anbieter Folgendes:
+ Das Protokoll muss HTTPS lauten.
+ Benutzerdefinierte Anforderungs-Header werden unterstützt.
+ Ein Standardanforderungstext kann angegeben werden.
+ Der Standardanforderungstext kann überschrieben werden, wenn eine Integration mit der Aktion `aws:invokeWebhook` aufgerufen wird.

# Behandeln von Timeouts in Runbooks
<a name="automation-handling-timeouts"></a>

Die Eigenschaft `timeoutSeconds` wird von allen Automatisierungsaktionen gemeinsam genutzt. Sie können diese Eigenschaft verwenden, um den Ausführungstimeout-Wert für eine Aktion anzugeben. Außerdem können Sie die Auswirkung des Timeouts einer Aktion auf die Automatisierung und den gesamten Ausführungsstatus ändern. Zu diesem Zweck definieren Sie auch die gemeinsam genutzten Eigenschaften `onFailure` und `isCritical` für eine Aktion.

Je nach Anwendungsfall möchten Sie vielleicht, dass Ihre Automatisierung mit einer anderen Aktion fortgesetzt wird und der Gesamtstatus der Automation nicht betroffen ist, wenn es zum Timeout einer Aktion kommt. In diesem Beispiel geben Sie mit der Eigenschaft `timeoutSeconds` an, wie lange gewartet werden soll, bevor es zum Timeout der Aktion kommt. Anschließend geben Sie die Aktion oder den Schritt an, zu dem die Automatisierung bei einem Timeout übergehen soll. Geben Sie einen Wert im Format `step:step name` für die Eigenschaft `onFailure` anstelle des Standardwerts `Abort` an. Beim Timeout einer Aktion wird der Automatisierungs-Ausführungsstatus standardmäßig `Timed Out` lauten. Um zu verhindern, dass sich ein Timeout auf den Automatisierungs-Ausführungsstatus auswirkt, geben Sie `false` für die Eigenschaft `isCritical` an.

Das folgende Beispiel zeigt, wie die gemeinsam genutzten Eigenschaften für eine in diesem Szenario beschriebene Aktion definiert werden.

------
#### [ YAML ]

```
- name: verifyImageAvailability
  action: 'aws:waitForAwsResourceProperty'
  timeoutSeconds: 600
  isCritical: false
  onFailure: 'step:getCurrentImageState'
  inputs:
    Service: ec2
    Api: DescribeImages
    ImageIds:
      - '{{ createImage.newImageId }}'
    PropertySelector: '$.Images[0].State'
    DesiredValues:
      - available
  nextStep: copyImage
```

------
#### [ JSON ]

```
{
    "name": "verifyImageAvailability",
    "action": "aws:waitForAwsResourceProperty",
    "timeoutSeconds": 600,
    "isCritical": false,
    "onFailure": "step:getCurrentImageState",
    "inputs": {
        "Service": "ec2",
        "Api": "DescribeImages",
        "ImageIds": [
            "{{ createImage.newImageId }}"
        ],
        "PropertySelector": "$.Images[0].State",
        "DesiredValues": [
            "available"
        ]
    },
    "nextStep": "copyImage"
}
```

------

Weitere Informationen zu Eigenschaften, die von allen Automatisierungsaktionen gemeinsam genutzt werden, finden Sie unter [Von allen Aktionen gemeinsam genutzte Eigenschaften](automation-actions.md#automation-common).

# Runbook-Referenz für Systems Manager Automation
<a name="automation-documents-reference"></a>

 AWS Systems Manager Stellt vordefinierte Runbooks bereit, damit Sie schnell loslegen können. Diese Runbooks werden von Amazon Web Services verwaltet, AWS Support, und AWS Config. Die Runbook-Referenz beschreibt jedes der vordefinierten Runbooks, die von Systems Manager Support, und bereitgestellt werden. AWS Config Weitere Informationen finden Sie unter [Referenz zum Systems Manager Automation-Runbook](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide).

# Tutorials
<a name="automation-tutorials"></a>

Die folgenden Tutorials unterstützen Sie bei der Verwendung von AWS Systems Manager Automation zur Bewältigung gängiger Anwendungsfälle. Diese Tutorials veranschaulichen, wie Sie eigene Runbooks, von Automation bereitgestellte Runbooks und andere Systems-Manager-Tools mit anderen AWS-Services verwenden.

**Contents**
+ [Aktualisieren von AMIs](automation-tutorial-update-ami.md)
  + [Aktualisieren eines Linux AMI](automation-tutorial-update-patch-linux-ami.md)
  + [Aktualisieren eines Linux AMI (AWS CLI)](automation-tutorial-update-ami.md#update-patch-linux-ami-cli)
  + [Aktualisieren eines Windows Server-AMI](automation-tutorial-update-patch-windows-ami.md)
  + [Aktualisieren Sie ein Golden AMI mithilfe von Automation, AWS Lambda, und Parameter Store](automation-tutorial-update-patch-golden-ami.md)
    + [Aufgabe 1: Erstellen eines Parameters im Systems Manager-Parameter Store](automation-tutorial-update-patch-golden-ami.md#create-parameter-ami)
    + [Aufgabe 2: Erstellen Sie eine IAM-Rolle für AWS Lambda](automation-tutorial-update-patch-golden-ami.md#create-lambda-role)
    + [Aufgabe 3: Eine AWS Lambda Funktion erstellen](automation-tutorial-update-patch-golden-ami.md#create-lambda-function)
    + [Aufgabe 4: Erstellen eines Runbooks und Patchen des AMI](automation-tutorial-update-patch-golden-ami.md#create-custom-ami-update-runbook)
  + [Aktualisierung von AMIs mithilfe von Automation und Jenkins](automation-tutorial-update-patch-ami-jenkins-integration.md)
  + [Aktualisieren von AMIs für Auto-Scaling-Gruppen](automation-tutorial-update-patch-windows-ami-autoscaling.md)
    + [Erstellen Sie das **Patch AMIAnd UpdateASG-Runbook**](automation-tutorial-update-patch-windows-ami-autoscaling.md#create-autoscaling-update-runbook)
+ [AWS Support Self-Service-Runbooks verwenden](automation-tutorial-support-runbooks.md)
  + [Führen Sie das EC2 Rescue-Tool auf nicht erreichbaren Instanzen aus](automation-ec2rescue.md)
    + [Funktionsweise](automation-ec2rescue.md#automation-ec2rescue-how)
    + [Bevor Sie beginnen](automation-ec2rescue.md#automation-ec2rescue-begin)
      + [Gewähren von `AWSSupport-EC2Rescue`-Berechtigungen zum Durchführen von Aktionen auf Ihren Instances](automation-ec2rescue.md#automation-ec2rescue-access)
        + [Erteilen von Berechtigungen mithilfe von IAM-Richtlinien](automation-ec2rescue.md#automation-ec2rescue-access-iam)
        + [Erteilen von Berechtigungen mithilfe einer CloudFormation Vorlage](automation-ec2rescue.md#automation-ec2rescue-access-cfn)
    + [Ausführen der Automation](automation-ec2rescue.md#automation-ec2rescue-executing)
  + [Zurücksetzen von Passwörtern und SSH-Schlüsseln auf EC2-Instances](automation-ec2reset.md)
    + [Funktionsweise](automation-ec2reset.md#automation-ec2reset-how)
    + [Bevor Sie beginnen](automation-ec2reset.md#automation-ec2reset-begin)
      + [Erteilen Sie AWSSupport-EC 2Rescue-Berechtigungen zur Durchführung von Aktionen auf Ihren Instances](automation-ec2reset.md#automation-ec2reset-access)
        + [Erteilen von Berechtigungen mithilfe von IAM-Richtlinien](automation-ec2reset.md#automation-ec2reset-access-iam)
        + [Erteilen von Berechtigungen mithilfe einer CloudFormation Vorlage](automation-ec2reset.md#automation-ec2reset-access-cfn)
    + [Ausführen der Automation](automation-ec2reset.md#automation-ec2reset-executing)
+ [Übergabe von Daten an Automation mithilfe von Eingangstransformatoren](automation-tutorial-eventbridge-input-transformers.md)

# Aktualisieren von AMIs
<a name="automation-tutorial-update-ami"></a>

Die folgenden Tutorials erläutern, wie Sie Amazon Machine Image (AMIs) aktualisieren, um die neuesten Patches einzubeziehen.

**Topics**
+ [Aktualisieren eines Linux AMI](automation-tutorial-update-patch-linux-ami.md)
+ [Aktualisieren eines Linux AMI (AWS CLI)](#update-patch-linux-ami-cli)
+ [Aktualisieren eines Windows Server-AMI](automation-tutorial-update-patch-windows-ami.md)
+ [Aktualisieren Sie ein Golden AMI mithilfe von Automation, AWS Lambda, und Parameter Store](automation-tutorial-update-patch-golden-ami.md)
+ [Aktualisierung von AMIs mithilfe von Automation und Jenkins](automation-tutorial-update-patch-ami-jenkins-integration.md)
+ [Aktualisieren von AMIs für Auto-Scaling-Gruppen](automation-tutorial-update-patch-windows-ami-autoscaling.md)

# Aktualisieren eines Linux AMI
<a name="automation-tutorial-update-patch-linux-ami"></a>

Diese Vorgehensweise für Systems Manager Automation zeigt Ihnen, wie Sie die Konsole oder das AWS CLI - und das `AWS-UpdateLinuxAmi`-Runbook verwenden, um ein Linux-AMI mit den neuesten Patches der von Ihnen angegebenen Pakete zu aktualisieren. Automation ist ein Tool in AWS Systems Manager. Das `AWS-UpdateLinuxAmi`-Runbook automatisiert auch die Installation zusätzlicher websitespezifischer Pakete und Konfigurationen. Sie können mit dieser Anleitung eine Vielzahl von Linux-Distributionen aktualisieren, einschließlich Ubuntu Server, Red Hat Enterprise Linux (RHEL) oder Amazon Linux AMIs. Eine vollständige Liste der unterstützten Linux-Versionen finden Sie unter [Patch Manager-Voraussetzungen](patch-manager-prerequisites.md).

Mit dem `AWS-UpdateLinuxAmi`-Runbook können Sie Aufgaben zur Imagewartung automatisieren, ohne das Runbook in JSON oder YAML erstellen zu müssen. Sie können das Runbook `AWS-UpdateLinuxAmi` verwenden, um die folgenden Arten von Aufgaben auszuführen.
+ Aktualisieren Sie alle Distributionspakete und jegliche Amazon-Software in einem Amazon Machine Image (AMI) mit Amazon Linux, Red Hat Enterprise Linux oder Ubuntu Server. Dies ist das Runbook-Standardverhalten.
+ Installieren Sie es AWS Systems Manager SSM Agent auf einem vorhandenen Image, um Systems Manager Manager-Tools zu aktivieren, z. B. das Ausführen von Remotebefehlen mithilfe von AWS Systems Manager Run Command oder die Softwareinventurerfassung mithilfe von Inventar.
+ Installieren Sie zusätzliche Softwarepakete.

**Bevor Sie beginnen**  
Bevor Sie mit der Arbeit mit Runbooks beginnen, konfigurieren Sie Rollen und optional die Funktionen EventBridge für die Automatisierung. Weitere Informationen finden Sie unter [Einrichten der Automatisierung](automation-setup.md). Für diese exemplarische Vorgehensweise müssen Sie außerdem den Namen eines AWS Identity and Access Management (IAM-) Instanzprofils angeben. Weitere Informationen zum Erstellen eines IAM-Instance-Profils finden Sie unter [Konfigurieren von erforderlichen Instance-Berechtigungen für Systems Manager](setup-instance-permissions.md).

Das Runbook `AWS-UpdateLinuxAmi` akzeptiert die folgenden Eingabeparameter.


****  

| Parameter | Typ | Description | 
| --- | --- | --- | 
|  SourceAmiId  |  Zeichenfolge  |  (Erforderlich) Die Quell-AMI-ID.  | 
|  IamInstanceProfileName  |  Zeichenfolge  |  (Erforderlich) Der Name der IAM-Instance-Profilrolle, die Sie unter [Erforderliche Instance-Berechtigungen für Systems Manager konfigurieren](setup-instance-permissions.md) erstellt haben. Die Instance-Profilrolle erteilt der Automation die Berechtigung, auf Ihren Instances Aktionen durchzuführen, wie etwa das Ausführen von Befehlen oder das Starten und Beenden von Services. Das Runbook verwendet nur den Namen der Instance-Profilrolle. Wenn Sie den Amazon-Ressourcennamen (ARN) angeben, schlägt die Automatisierung fehl.  | 
|  AutomationAssumeRole  |  Zeichenfolge  |  (Erforderlich) Der Name der IAM-Servicerolle, die Sie in [Einrichten der Automatisierung](automation-setup.md) erstellt haben. Mit der Servicerolle (auch als assume-Rolle bezeichnet) gestatten Sie der Automatisierung, Ihre IAM-Rolle zu übernehmen und in Ihrem Auftrag Aktionen auszuführen. Mit der Servicerolle gestatten Sie der Automation beispielsweise beim Ausführen der Aktion `aws:createImage` in einem Runbook, ein neues AMI zu erstellen. Für diesen Parameter muss der vollständige ARN angegeben werden.  | 
|  TargetAmiName  |  Zeichenfolge  |  (Optional) Der Name des neuen AMI nach seiner Erstellung. Der Standardname ist eine systemgenerierte Zeichenfolge, die die Quell-AMI-ID sowie Uhrzeit und Datum der Erstellung enthält.  | 
|  InstanceType  |  Zeichenfolge  |  (Optional) Der Typ der zu startenden Instance als Arbeitsbereich hosten. Die Instance-Typen sind je nach Region unterschiedlich. Der Standardtyp ist t2.micro.  | 
|  PreUpdateScript  |  Zeichenfolge  |  (Optional) Die URL eines Skripts, das ausgeführt werden muss, bevor Updates übernommen werden. Standard („none“) ist die Ausführung keines Skripts.  | 
|  PostUpdateScript  |  Zeichenfolge  |  (Optional) Die URL eines Skripts, das ausgeführt werden muss, nachdem Paketupdates angewendet werden. Standard („none“) ist die Ausführung keines Skripts.  | 
|  IncludePackages  |  Zeichenfolge  |  (Optional) Aktualisieren Sie nur diese benannten Pakete. Standardmäßig werden alle (\$1"all\$1") verfügbaren Updates übernommen.  | 
|  ExcludePackages  |  Zeichenfolge  |  (Optional) Namen der Pakete, die bei Updates unter allen Umständen zurückgehalten werden müssen. Standardmäßig wird kein (\$1"none\$1") Paket ausgeschlossen.  | 

**Automation-Schritte**  
Das `AWS-UpdateLinuxAmi`-Runbook umfasst standardmäßig die folgenden Automatisierungsaktionen.

**Schritt 1: launchInstance (`aws:runInstances`-Aktion) **  
Dieser Schritt startet eine Instance mit Amazon Elastic Compute Cloud (Amazon EC2)-Benutzerdaten und eine IAM-Instance-Profilrolle. Userdata installiert je nach Betriebssystem den entsprechenden SSM Agent. Durch Installieren von SSM Agent können Sie Systems-Manager-Tools wie Run Command, State Manager und Inventory verwenden.

**Schritt 2: Aktualisieren OSSoftware (Aktion) `aws:runCommand` **  
Dieser Schritt führt die folgenden Befehle auf der gestarteten Instance aus:  
+ Lädt ein Update-Skript aus Amazon S3 herunter.
+ Führt ein optionales Pre-Update-Skript aus.
+ Aktualisiert Verteilungspakete und Amazon-Software.
+ Führt ein optionales Post-Update-Skript aus.
Das Ausführungsprotokoll wird im Ordner /tmp gespeichert, damit es der Benutzer zu einem späteren Zeitpunkt ansehen kann.  
Falls Sie eine bestimmte Reihe von Paketen aktualisieren möchten, können Sie die Liste mithilfe des `IncludePackages`-Parameters bereitstellen. Bei der Bereitstellung versucht das System nur diese Pakete und deren abhängige Objekte zu aktualisieren. Es werden keine weiteren Updates vorgenommen. Wenn standardmäßig keine *include*-Pakete festgelegt sind, aktualisiert das Programm alle verfügbaren Pakete.  
Falls Sie eine bestimmte Reihe von Paketen von der Aktualisierung ausschließen möchten, können Sie die Liste mithilfe des `ExcludePackages`-Parameters bereitstellen. Wenn diese Pakete bereitgestellt werden, bleiben sie in ihrer aktuellen Version, unabhängig von anderen festgelegten Optionen. Wenn keine *exclude*-Pakete festgelegt sind, werden standardmäßig keine Pakete ausgeschlossen.

**Schritt 3: StopInstance (`aws:changeInstanceState`-Aktion)**  
Dieser Schritt stoppt die aktualisierte Instance.

**Schritt 4: CreateImage (`aws:createImage`-Aktion) **  
Dieser Schritt erstellt ein neues AMI mit einem aussagekräftigen Namen, der es mit der Quell-ID und dem Zeitpunkt der Erstellung verknüpft. Zum Beispiel: „AMIGeneriert von EC2 Automation am \$1\$1global:Date\$1Time\$1\$1 von \$1\$1\$1SourceAmiId\$1“, wobei DATE\$1TIME und SourceID Automatisierungsvariablen darstellen.

**Schritt 5: TerminateInstance (`aws:changeInstanceState`-Aktion) **  
Dieser Schritt bereinigt die Automatisierung durch Beenden der ausgeführten Instance.

**Ausgabe**  
Die Automatisierung gibt die neue AMI-ID als Ausgabe zurück.

**Anmerkung**  
Standardmäßig erstellt das System eine temporäre Instance in der Standard-VPC (172.30.0.0/16), wenn Automation das `AWS-UpdateLinuxAmi`-Runbook ausführt. Wenn Sie die Standard-VPC gelöscht haben, erhalten Sie den folgenden Fehler:  
`VPC not defined 400`  
Zur Behebung dieses Problems erstellen Sie eine Kopie des `AWS-UpdateLinuxAmi`-Runbooks und geben eine Subnetz-ID an. Weitere Informationen finden Sie unter [VPC nicht definiert 400](automation-troubleshooting.md#automation-trbl-common-vpc).

**So erstellen Sie ein gepatchtes AMImit der Automation (AWS Systems Manager)**

1.  AWS Systems Manager [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)Öffnen Sie die Konsole unter.

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie **Automatisierung ausführen**.

1. Wählen Sie in der Liste **Automation-Dokument** `AWS-UpdateLinuxAmi`.

1. Überprüfen Sie im Abschnitt **Document details (Dokumentdetails)**, ob **Document version (Dokumentversion)** auf **Default version at runtime (Standardversion bei Laufzeit)** gesetzt ist.

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

1. Wählen Sie im Abschnitt **Execution mode (Ausführungsmodus)** die Option **Simple Execution (Einfache Ausführung)** aus.

1. Geben Sie im Abschnitt **Input parameters** (Eingabeparameter) die Informationen ein, die Sie im Abschnitt **Before You Begin** (Bevor Sie beginnen) erfasst haben.

1. Wählen Sie **Ausführen**. Die Konsole zeigt den Status der Automation-Ausführung an.

Nach dem Abschluss der Automatisierung starten Sie eine Test-Instance über das aktualisierte AMI, um die Änderungen zu überprüfen.

**Anmerkung**  
Falls ein Schritt in der Automatisierung fehlschlägt, werden die Informationen zu dem Fehler auf der Seite **Automation Executions** (Automation-Ausführungen) aufgelistet. Die Automatisierung ist so konzipiert, dass sie die temporäre Instance nach erfolgreichem Abschluss aller Aufgaben beendet. Wenn ein Schritt fehlschlägt, beendet das System die Instance möglicherweise nicht. Wenn also ein Schritt fehlschlägt, beenden Sie die temporäre Instance manuell.

## Aktualisieren eines Linux AMI (AWS CLI)
<a name="update-patch-linux-ami-cli"></a>

Diese exemplarische Vorgehensweise zur AWS Systems Manager Automatisierung zeigt Ihnen, wie Sie das Runbook AWS Command Line Interface (AWS CLI) und das Systems Manager `AWS-UpdateLinuxAmi` Manager-Runbook verwenden, um ein Linux Amazon Machine Image (AMI) automatisch mit den neuesten Versionen der von Ihnen angegebenen Pakete zu patchen. Automation ist ein Tool in AWS Systems Manager. Das `AWS-UpdateLinuxAmi`-Runbook automatisiert auch die Installation zusätzlicher websitespezifischer Pakete und Konfigurationen. Sie können mit dieser Anleitung eine Vielzahl von Linux-Distributionen aktualisieren, einschließlich Ubuntu Server, Red Hat Enterprise Linux (RHEL) oder Amazon Linux AMIs. Eine vollständige Liste der unterstützten Linux-Versionen finden Sie unter [Patch Manager-Voraussetzungen](patch-manager-prerequisites.md).

Das `AWS-UpdateLinuxAmi`-Runbook ermöglicht Ihnen die Automatisierung von Image-Verwaltungsaufgaben ohne Erstellen des Runbooks in JSON oder YAML. Sie können das Runbook `AWS-UpdateLinuxAmi` verwenden, um die folgenden Arten von Aufgaben auszuführen.
+ Aktualisieren Sie alle Distributionspakete und jegliche Amazon-Software in einem Amazon Machine Image (AMI) mit Amazon Linux, RHEL oder Ubuntu Server. Dies ist das Runbook-Standardverhalten.
+ Installieren Sie AWS Systems Manager SSM Agent auf einem vorhandenen Image, um Systems Manager Manager-Funktionen zu aktivieren, z. B. das Ausführen von Remotebefehlen mithilfe von AWS Systems Manager Run Command oder die Erfassung von Softwareinventar mithilfe von Inventar.
+ Installieren Sie zusätzliche Softwarepakete.

**Bevor Sie beginnen**  
Bevor Sie mit der Arbeit mit Runbooks beginnen, konfigurieren Sie Rollen und optional die Funktionen EventBridge für die Automatisierung. Weitere Informationen finden Sie unter [Einrichten der Automatisierung](automation-setup.md). Für diese exemplarische Vorgehensweise müssen Sie außerdem den Namen eines AWS Identity and Access Management (IAM-) Instanzprofils angeben. Weitere Informationen zum Erstellen eines IAM-Instance-Profils finden Sie unter [Konfigurieren von erforderlichen Instance-Berechtigungen für Systems Manager](setup-instance-permissions.md).

Das Runbook `AWS-UpdateLinuxAmi` akzeptiert die folgenden Eingabeparameter.


****  

| Parameter | Typ | Description | 
| --- | --- | --- | 
|  SourceAmiId  |  String  |  (Erforderlich) Die Quell-AMI-ID. Mithilfe eines AWS Systems Manager Parameter Store *öffentlichen* Parameters können Sie automatisch auf die neueste ID eines Amazon EC2 AMI für Linux verweisen. Weitere Informationen finden Sie unter [Query for the latest Amazon Linux AMI IDs using AWS Systems ManagerParameter Store](https://aws.amazon.com/blogs/compute/query-for-the-latest-amazon-linux-ami-ids-using-aws-systems-manager-parameter-store/).  | 
|  IamInstanceProfileName  |  String  |  (Erforderlich) Der Name der IAM-Instance-Profilrolle, die Sie unter [Erforderliche Instance-Berechtigungen für Systems Manager konfigurieren](setup-instance-permissions.md) erstellt haben. Die Instance-Profilrolle erteilt der Automation die Berechtigung, auf Ihren Instances Aktionen durchzuführen, wie etwa das Ausführen von Befehlen oder das Starten und Beenden von Services. Das Runbook verwendet nur den Namen der Instance-Profilrolle.  | 
|  AutomationAssumeRole  |  String  |  (Erforderlich) Der Name der IAM-Servicerolle, die Sie in [Einrichten der Automatisierung](automation-setup.md) erstellt haben. Mit der Servicerolle (auch als assume-Rolle bezeichnet) gestatten Sie der Automatisierung, Ihre IAM-Rolle zu übernehmen und in Ihrem Auftrag Aktionen auszuführen. Mit der Servicerolle gestatten Sie der Automation beispielsweise beim Ausführen der Aktion `aws:createImage` in einem Runbook, ein neues AMI zu erstellen. Für diesen Parameter muss der vollständige ARN angegeben werden.  | 
|  TargetAmiName  |  String  |  (Optional) Der Name des neuen AMI nach seiner Erstellung. Der Standardname ist eine systemgenerierte Zeichenfolge, die die Quell-AMI-ID sowie Uhrzeit und Datum der Erstellung enthält.  | 
|  InstanceType  |  String  |  (Optional) Der Typ der zu startenden Instance als Arbeitsbereich hosten. Die Instance-Typen sind je nach Region unterschiedlich. Der Standardtyp ist t2.micro.  | 
|  PreUpdateScript  |  String  |  (Optional) Die URL eines Skripts, das ausgeführt werden muss, bevor Updates übernommen werden. Standard („none“) ist die Ausführung keines Skripts.  | 
|  PostUpdateScript  |  String  |  (Optional) Die URL eines Skripts, das ausgeführt werden muss, nachdem Paketupdates angewendet werden. Standard („none“) ist die Ausführung keines Skripts.  | 
|  IncludePackages  |  String  |  (Optional) Aktualisieren Sie nur diese benannten Pakete. Standardmäßig werden alle (\$1"all\$1") verfügbaren Updates übernommen.  | 
|  ExcludePackages  |  String  |  (Optional) Namen der Pakete, die bei Updates unter allen Umständen zurückgehalten werden müssen. Standardmäßig wird kein (\$1"none\$1") Paket ausgeschlossen.  | 

**Automation-Schritte**  
Das `AWS-UpdateLinuxAmi`-Runbook enthält standardmäßig die folgenden Schritte.

**Schritt 1: launchInstance (`aws:runInstances`-Aktion) **  
In diesem Schritt wird eine Instance mit Amazon Elastic Compute Cloud (Amazon EC2) -Benutzerdaten und einer IAM-Instance-Profilrolle gestartet. Userdata installiert je nach Betriebssystem den entsprechenden SSM-Agent. Durch Installieren von SSM Agent können Sie Systems-Manager-Tools wie Run Command, State Manager und Inventory verwenden.

**Schritt 2: Aktualisieren OSSoftware (`aws:runCommand`Aktion) **  
Dieser Schritt führt die folgenden Befehle auf der gestarteten Instance aus:  
+ Lädt ein Update-Skript von Amazon Simple Storage Service (Amazon S3) herunter.
+ Führt ein optionales Pre-Update-Skript aus.
+ Aktualisiert Verteilungspakete und Amazon-Software.
+ Führt ein optionales Post-Update-Skript aus.
Das Ausführungsprotokoll wird im Ordner /tmp gespeichert, damit es der Benutzer zu einem späteren Zeitpunkt ansehen kann.  
Falls Sie eine bestimmte Reihe von Paketen aktualisieren möchten, können Sie die Liste mithilfe des `IncludePackages`-Parameters bereitstellen. Bei der Bereitstellung versucht das System nur diese Pakete und deren abhängige Objekte zu aktualisieren. Es werden keine weiteren Updates vorgenommen. Wenn standardmäßig keine *include*-Pakete festgelegt sind, aktualisiert das Programm alle verfügbaren Pakete.  
Falls Sie eine bestimmte Reihe von Paketen von der Aktualisierung ausschließen möchten, können Sie die Liste mithilfe des `ExcludePackages`-Parameters bereitstellen. Wenn diese Pakete bereitgestellt werden, bleiben sie in ihrer aktuellen Version, unabhängig von anderen festgelegten Optionen. Wenn keine *exclude*-Pakete festgelegt sind, werden standardmäßig keine Pakete ausgeschlossen.

**Schritt 3: StopInstance (`aws:changeInstanceState`-Aktion)**  
Dieser Schritt stoppt die aktualisierte Instance.

**Schritt 4: CreateImage (`aws:createImage`-Aktion) **  
Dieser Schritt erstellt ein neues AMI mit einem aussagekräftigen Namen, der es mit der Quell-ID und dem Zeitpunkt der Erstellung verknüpft. Zum Beispiel: „AMI, generiert durch EC2 Automatisierung am \$1\$1global:Date\$1Time\$1\$1 von \$1\$1\$1SourceAmiId\$1“, wobei DATE\$1TIME und SourceID Automatisierungsvariablen darstellen.

**Schritt 5: TerminateInstance (`aws:changeInstanceState`-Aktion) **  
Dieser Schritt bereinigt die Automatisierung durch Beenden der ausgeführten Instance.

**Output**  
Die Automatisierung gibt die neue AMI-ID als Ausgabe zurück.

**Anmerkung**  
Standardmäßig erstellt das System eine temporäre Instance in der Standard-VPC (172.30.0.0/16), wenn Automation das `AWS-UpdateLinuxAmi`-Runbook ausführt. Wenn Sie die Standard-VPC gelöscht haben, erhalten Sie den folgenden Fehler:  
`VPC not defined 400`  
Zur Behebung dieses Problems erstellen Sie eine Kopie des `AWS-UpdateLinuxAmi`-Runbooks und geben eine Subnetz-ID an. Weitere Informationen finden Sie unter [VPC nicht definiert 400](automation-troubleshooting.md#automation-trbl-common-vpc).

**So erstellen Sie ein gepatchtes AMI mithilfe von Automation**

1. Installieren und konfigurieren Sie AWS Command Line Interface (AWS CLI), falls Sie dies noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version von AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Führen Sie den folgenden Befehl aus, um das `AWS-UpdateLinuxAmi`-Runbook zu starten. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

   ```
   aws ssm start-automation-execution \
       --document-name "AWS-UpdateLinuxAmi" \
       --parameters \
       SourceAmiId=AMI ID, \
       IamInstanceProfileName=IAM instance profile, \
       AutomationAssumeRole='arn:aws:iam::{{global:ACCOUNT_ID}}:role/AutomationServiceRole'
   ```

   Der Befehl gibt eine Ausführungs-ID zurück. Kopieren Sie diese ID in die Zwischenablage. Sie werden diese ID zum Anzeigen des Status der Automatisierung verwenden.

   ```
   {
       "AutomationExecutionId": "automation execution ID"
   }
   ```

1. Führen Sie den folgenden Befehl aus AWS CLI, um die Automatisierung mit dem anzuzeigen:

   ```
   aws ssm describe-automation-executions
   ```

1. Führen Sie den folgenden Befehl aus, um Details über den Automatisierungsprozess anzuzeigen. *automation execution ID*Ersetzen Sie es durch Ihre eigenen Informationen.

   ```
   aws ssm get-automation-execution --automation-execution-id automation execution ID
   ```

   Die Aktualisierung kann 30 Minuten oder länger in Anspruch nehmen.
**Anmerkung**  
Sie können auch den Status der Automatisierung in der Konsole überwachen. Wählen Sie in der Liste die Automatisierung, die Sie gerade ausgeführt haben, und wählen Sie dann die Registerkarte **Steps** (Schritte). Diese Registerkarte zeigt Ihnen den Status der Automatisierungsaktionen.

Nach dem Abschluss der Automatisierung starten Sie eine Test-Instance über das aktualisierte AMI, um die Änderungen zu überprüfen.

**Anmerkung**  
Falls ein Schritt in der Automatisierung fehlschlägt, werden die Informationen zu dem Fehler auf der Seite **Automation Executions** (Automation-Ausführungen) aufgelistet. Die Automatisierung ist so konzipiert, dass sie die temporäre Instance nach erfolgreichem Abschluss aller Aufgaben beendet. Wenn ein Schritt fehlschlägt, beendet das System die Instance möglicherweise nicht. Wenn also ein Schritt fehlschlägt, beenden Sie die temporäre Instance manuell.

# Aktualisieren eines Windows Server-AMI
<a name="automation-tutorial-update-patch-windows-ami"></a>

Das Runbook `AWS-UpdateWindowsAmi` ermöglicht die Automatisierung von Image-Verwaltungsaufgaben auf Ihrem Amazon Windows Amazon Machine Image (AMI), ohne dass Sie das Runbook in JSON oder YAML erstellen müssen. Dieses Runbook wird unterstützt für Windows Server 2008 R2 oder höher. Sie können das Runbook `AWS-UpdateWindowsAmi` verwenden, um die folgenden Arten von Aufgaben auszuführen.
+ Installieren Sie alle Windows-Updates und aktualisieren Sie die Amazon-Software (Standardverhalten).
+ Installieren Sie spezifische Windows-Updates und aktualisieren Sie die Amazon-Software.
+ Passen Sie ein AMI mithilfe Ihrer Skripts an.

**Bevor Sie beginnen**  
Bevor Sie mit Runbooks arbeiten, [konfigurieren Sie Rollen für Automation](automation-setup-iam.md), um eine `iam:PassRole`-Richtlinie hinzuzufügen, die auf den ARN des Instance-Profils verweist, dem Sie den Zugriff gewähren möchten. Konfigurieren Sie optional Amazon EventBridge for Automation, ein Tool in AWS Systems Manager. Weitere Informationen finden Sie unter [Einrichten der Automatisierung](automation-setup.md). Für diese exemplarische Vorgehensweise müssen Sie außerdem den Namen eines AWS Identity and Access Management (IAM-) Instance-Profils angeben. Weitere Informationen zum Erstellen eines IAM-Instance-Profils finden Sie unter [Konfigurieren von erforderlichen Instance-Berechtigungen für Systems Manager](setup-instance-permissions.md).

**Anmerkung**  
Updates für AWS Systems Manager SSM Agent werden in der Regel für verschiedene Regionen zu verschiedenen Zeiten angeboten. Wenn Sie ein AMI anpassen oder aktualisieren, verwenden Sie nur die Quelle, die für die Region AMIs veröffentlicht wurde, in der Sie arbeiten. Auf diese Weise stellen Sie sicher, dass Sie mit dem neuesten SSM Agent für diese Region arbeiten und vermeiden Kompatibilitätsprobleme.

Das Runbook `AWS-UpdateWindowsAmi` akzeptiert die folgenden Eingabeparameter.


****  

| Parameter | Typ | Description | 
| --- | --- | --- | 
|  SourceAmiId  |  Zeichenfolge  |  (Erforderlich) Die Quell-AMI-ID. Sie können automatisch auf die neueste Windows Server-AMI mithilfe eines Systems ManagerParameter Store *öffentlich*-Parameter verweisen. Weitere Informationen finden Sie unter [Query for the latest Windows AMI IDs using AWS Systems ManagerParameter Store](https://aws.amazon.com/blogs/mt/query-for-the-latest-windows-ami-using-systems-manager-parameter-store/).  | 
|  SubnetId  |  Zeichenfolge  |  (Optional) Das Subnetz, in dem Sie die temporäre Instance starten möchten. Sie müssen einen Wert für diesen Parameter angeben, wenn Sie Ihre Standard-VPC gelöscht haben.  | 
|  IamInstanceProfileName  |  Zeichenfolge  |  (Erforderlich) Der Name der IAM-Instance-Profilrolle, die Sie unter [Erforderliche Instance-Berechtigungen für Systems Manager konfigurieren](setup-instance-permissions.md) erstellt haben. Die Instance-Profilrolle erteilt der Automation die Berechtigung, auf Ihren Instances Aktionen durchzuführen, wie etwa das Ausführen von Befehlen oder das Starten und Beenden von Services. Das Runbook verwendet nur den Namen der Instance-Profilrolle.  | 
|  AutomationAssumeRole  |  Zeichenfolge  |  (Erforderlich) Der Name der IAM-Servicerolle, die Sie in [Einrichten der Automatisierung](automation-setup.md) erstellt haben. Mit der Servicerolle (auch als assume-Rolle bezeichnet) gestatten Sie der Automatisierung, Ihre IAM-Rolle zu übernehmen und in Ihrem Auftrag Aktionen auszuführen. Mit der Servicerolle gestatten Sie der Automation beispielsweise beim Ausführen der Aktion `aws:createImage` in einem Runbook, ein neues AMI zu erstellen. Für diesen Parameter muss der vollständige ARN angegeben werden.  | 
|  TargetAmiName  |  Zeichenfolge  |  (Optional) Der Name des neuen AMI nach seiner Erstellung. Der Standardname ist eine systemgenerierte Zeichenfolge, die die Quell-AMI-ID sowie Uhrzeit und Datum der Erstellung enthält.  | 
|  InstanceType  |  Zeichenfolge  |  (Optional) Der Typ der zu startenden Instance als Arbeitsbereich hosten. Die Instance-Typen sind je nach Region unterschiedlich. Der Standardtyp ist t2.medium.  | 
|  PreUpdateScript  |  Zeichenfolge  |  (Optional) Ein Skript, das ausgeführt werden muss, bevor das AMI aktualisiert wird. Geben Sie ein Skript im Runbook oder zur Laufzeit als Parameter an.  | 
|  PostUpdateScript  |  Zeichenfolge  |  (Optional) Ein Skript, das ausgeführt werden muss, nachdem das AMI aktualisiert wird. Geben Sie ein Skript im Runbook oder zur Laufzeit als Parameter an.  | 
|  IncludeKbs  |  Zeichenfolge  |  (Optional) Geben Sie einen oder mehrere Microsoft Knowledge Base-Artikel (KB) IDs an, die aufgenommen werden sollen. Sie können mehrere IDs mit kommagetrennten Werten installieren. Gültige Formate: KB9876543 oder 9876543.  | 
|  ExcludeKbs  |  Zeichenfolge  |  (Optional) Geben Sie einen oder mehrere Microsoft Knowledge Base-Artikel (KB) IDs an, die ausgeschlossen werden sollen. Sie können mehrere IDs durch Kommas getrennte Werte ausschließen. Gültige Formate: KB9876543 oder 9876543.  | 
|  Kategorien  |  Zeichenfolge  |  (Optional) Geben Sie mindestens eine Updatekategorie an. Sie können Kategorien anhand kommaseparierter Werte filtern. Optionen: Wichtiges Update, Sicherheitsupdate, Definitionsupdate, Update-Rollup, Service Pack, Tool, Update oder Treiber. Zu den gültigen Formaten gehört ein einzelner Eintrag. Beispiel: Wichtiges Update. Sie können auch eine kommaseparierte Liste angeben: Wichtiges Update,Sicherheitsupdate,Definitionsupdate.  | 
|  SeverityLevels  |  Zeichenfolge  |  (Optional) Geben Sie mindestens eine MSRC-Ebene an, die einem Update zugeordnet ist. Sie können Dringlichkeitsstufen anhand kommaseparierter Werte filtern. Optionen: Kritisch, Wichtig, Niedrige, Mittel oder Nicht angegeben. Zu den gültigen Formaten gehört ein einzelner Eintrag. Beispiel: Wichtig. Sie können auch eine kommaseparierte Liste angeben: Kritisch,Wichtig,Niedrig.  | 

**Automation-Schritte**  
Das `AWS-UpdateWindowsAmi`-Runbook enthält standardmäßig die folgenden Schritte.

**Schritt 1: launchInstance (`aws:runInstances`-Aktion)**  
Dieser Schritt startet eine Instance mit einer IAM-Instance-Profilrolle über das angegebene `SourceAmiID`.

**Schritt 2: runPreUpdate Skript (Aktion) `aws:runCommand`**  
Mit diesem Schritt können Sie ein Skript als Zeichenfolge angeben, das ausgeführt wird, bevor Updates installiert werden.

**Schritt 3: EC2 Config aktualisieren (`aws:runCommand`Aktion)**  
In diesem Schritt wird das `AWS-InstallPowerShellModule` Runbook verwendet, um ein AWS öffentliches PowerShell Modul herunterzuladen. Systems Manager überprüft die Integrität des Modul mithilfe eines SHA-256-Hash. Systems Manager überprüft dann das Betriebssystem, um festzustellen, ob EC2 Config oder EC2 Launch aktualisiert werden soll. EC2Config läuft auf Windows Server 2008 R2 bis Windows Server 2012 R2. EC2Launch läuft auf Windows Server 2016.

**Schritt 4: Update SSMAgent (`aws:runCommand`Aktion)**  
Dieser Schritt aktualisiert SSM Agent mithilfe des `AWS-UpdateSSMAgent`-Runbooks.

**Schritt 5: Update AWSPVDriver (`aws:runCommand`Aktion)**  
In diesem Schritt werden die AWS PV-Treiber mithilfe des `AWS-ConfigureAWSPackage` Runbooks aktualisiert.

**Schritt 6: updateAwsEna NetworkDriver (`aws:runCommand`Aktion)**  
In diesem Schritt werden die AWS ENA-Netzwerktreiber mithilfe des `AWS-ConfigureAWSPackage` Runbooks aktualisiert.

**Schritt 7: installWindowsUpdates (`aws:runCommand`Aktion) **  
Dieser Schritt installiert Windows-Updates mithilfe des `AWS-InstallWindowsUpdates`-Runbooks. Standardmäßig sucht und installiert Systems Manager alle fehlenden Updates. Sie können das Standardverhalten ändern, indem Sie einen der folgenden Parameter festlegen: `IncludeKbs`, `ExcludeKbs`, `Categories` oder `SeverityLevels`. 

**Schritt 8: runPostUpdate Script (`aws:runCommand`Aktion)**  
Mit diesem Schritt können Sie ein Skript als Zeichenfolge angeben, das ausgeführt wird, nachdem Updates installiert wurden.

**Schritt 9: runSysprepGeneralize (`aws:runCommand`Aktion) **  
In diesem Schritt wird das `AWS-InstallPowerShellModule` Runbook verwendet, um ein AWS öffentliches PowerShell Modul herunterzuladen. Systems Manager überprüft die Integrität des Modul mithilfe eines SHA-256-Hash. Systems Manager führt dann Sysprep mit AWS unterstützten Methoden für EC2 Launch (Windows Server 2016) oder EC2 Config (Windows Server 2008 R2 bis 2012 R2) aus.

**Schritt 10: stopInstance (`aws:changeInstanceState`-Aktion) **  
Dieser Schritt stoppt die aktualisierte Instance. 

**Schritt 11: createImage (`aws:createImage`-Aktion) **  
Dieser Schritt erstellt ein neues AMI mit einem aussagekräftigen Namen, der es mit der Quell-ID und dem Zeitpunkt der Erstellung verknüpft. Zum Beispiel: „AMI, generiert von EC2 Automation am \$1\$1global:Date\$1Time\$1\$1 von \$1\$1\$1SourceAmiId\$1“, wobei DATE\$1TIME und SourceID Automatisierungsvariablen darstellen.

** TerminateInstance `aws:changeInstanceState`Schritt 12: (Aktion) **  
Dieser Schritt bereinigt die Automatisierung durch Beenden der ausgeführten Instance. 

**Ausgabe**  
In diesem Abschnitt können Sie die Ausgabe verschiedener Schritte oder Werte eines beliebigen Parameters als die Automation-Ausgabe bestimmen. Standardmäßig ist die Ausgabe die ID des aktualisierten Windows-AMI, das von der Automatisierung erstellt wurde.

**Anmerkung**  
Standardmäßig verwendet das System die Standard-VPC (172.30.0.0/16), wenn Automation das `AWS-UpdateWindowsAmi`-Runbbok ausführt und eine temporäre Instance erstellt. Wenn Sie die Standard-VPC gelöscht haben, erhalten Sie den folgenden Fehler:  
VPC nicht definiert 400  
Zur Behebung dieses Problems erstellen Sie eine Kopie des `AWS-UpdateWindowsAmi`-Runbooks und geben eine Subnetz-ID an. Weitere Informationen finden Sie unter [VPC nicht definiert 400](automation-troubleshooting.md#automation-trbl-common-vpc).

**So erstellen Sie ein gepatchtes Windows-AMI mit der Automation**

1. Installieren und konfigurieren Sie AWS Command Line Interface (AWS CLI), falls Sie dies noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version von AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Führen Sie den folgenden Befehl aus, um das `AWS-UpdateWindowsAmi`-Runbook zu starten. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen. Der Beispielbefehl unten verwendet ein aktuelles Amazon EC2 AMI zum Minimieren der Anzahl von Patches, die angewendet werden müssen. Wenn Sie diesen Befehl mehrmals ausführen, müssen Sie einen eindeutigen Wert für `targetAMIname` angeben. AMI-Namen müssen einzigartig sein.

   ```
   aws ssm start-automation-execution \
       --document-name="AWS-UpdateWindowsAmi" \
       --parameters SourceAmiId='AMI ID',IamInstanceProfileName='IAM instance profile',AutomationAssumeRole='arn:aws:iam::{{global:ACCOUNT_ID}}:role/AutomationServiceRole'
   ```

   Der Befehl gibt eine Ausführungs-ID zurück. Kopieren Sie diese ID in die Zwischenablage. Sie werden diese ID zum Anzeigen des Status der Automatisierung verwenden.

   ```
   {
       "AutomationExecutionId": "automation execution ID"
   }
   ```

1. Führen Sie den folgenden Befehl aus AWS CLI, um die Automatisierung mit dem anzuzeigen:

   ```
   aws ssm describe-automation-executions
   ```

1. Führen Sie den folgenden Befehl aus, um Details über den Automatisierungsprozess anzuzeigen.

   ```
   aws ssm get-automation-execution 
       --automation-execution-id automation execution ID
   ```

**Anmerkung**  
Abhängig von der Anzahl der angewendeten Patches kann der Windows-Patch-Vorgang in dieser Beispielautomatisierung 30 Minuten oder länger in Anspruch nehmen.

# Aktualisieren Sie ein Golden AMI mithilfe von Automation, AWS Lambda, und Parameter Store
<a name="automation-tutorial-update-patch-golden-ami"></a>

Im folgenden Beispiel wird das Modell verwendet, bei dem eine Organisation ihre eigenen, proprietären AMIs verwaltet und regelmäßig patcht, anstatt aus Amazon Elastic Compute Cloud (Amazon EC2)-AMIs aufzubauen.

Das folgende Verfahren zeigt, wie Betriebssystem-Patches automatisch auf ein Betriebssystem angewendet werdenAMI, das bereits als die *aktuellsten up-to-date oder aktuellsten* giltAMI. In diesem Beispiel `SourceAmiId` wird der Standardwert des Parameters durch einen AWS Systems Manager Parameter Store Parameter definiert, der aufgerufen wird`latestAmi`. Der Wert von `latestAmi` wird durch eine AWS Lambda Funktion aktualisiert, die am Ende der Automatisierung aufgerufen wird. Durch diesen Automatisierungsprozess werden der Zeit- und Arbeitsaufwand für das Patchen minimiert, da AMIs das Patchen immer auf die meisten angewendet wird. up-to-date AMI Parameter Storeund Automatisierung sind Werkzeuge von. AWS Systems Manager

**Bevor Sie beginnen**  
Konfigurieren Sie Automatisierungsrollen und optional Amazon EventBridge for Automation. Weitere Informationen finden Sie unter [Einrichten der Automatisierung](automation-setup.md).

**Topics**
+ [Aufgabe 1: Erstellen eines Parameters im Systems Manager-Parameter Store](#create-parameter-ami)
+ [Aufgabe 2: Erstellen Sie eine IAM-Rolle für AWS Lambda](#create-lambda-role)
+ [Aufgabe 3: Eine AWS Lambda Funktion erstellen](#create-lambda-function)
+ [Aufgabe 4: Erstellen eines Runbooks und Patchen des AMI](#create-custom-ami-update-runbook)

## Aufgabe 1: Erstellen eines Parameters im Systems Manager-Parameter Store
<a name="create-parameter-ami"></a>

Erstellen Sie einen Zeichenfolgen-Parameter in Parameter Store, der die folgenden Informationen verwendet:
+ **Name**: `latestAmi`.
+ **Value** (Wert): Eine AMI-ID. Zum Beispiel:` ami-188d6e0e`.

Informationen zur Erstellung eines Parameter Store-Zeichenfolgenparameters finden Sie unter [Parameter Store-Parameter im Systems Manager erstellen](sysman-paramstore-su-create.md).

## Aufgabe 2: Erstellen Sie eine IAM-Rolle für AWS Lambda
<a name="create-lambda-role"></a>

Gehen Sie wie folgt vor, um eine IAM-Dienstrolle für zu erstellen. AWS Lambda Diese Richtlinien erteilen Lambda die Berechtigung zum Aktualisieren des Werts des `latestAmi`-Parameters mithilfe einer Lambda-Funktion und von Systems Manager.

**So erstellen Sie eine IAM-Service-Rolle für Lambda**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Wählen Sie im Navigationsbereich **Richtlinien** und dann **Richtlinie erstellen**.

1. Wählen Sie den Tab **JSON**.

1. Ersetzen Sie den Standardinhalt durch die folgende Richtlinie. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "logs:CreateLogGroup",
               "Resource": "arn:aws:logs:us-east-1:111122223333:*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "logs:CreateLogStream",
                   "logs:PutLogEvents"
               ],
               "Resource": [
                   "arn:aws:logs:us-east-1:111122223333:log-group:/aws/lambda/function name:*"
               ]
           }
       ]
   }
   ```

------

1. Wählen Sie **Weiter: Tags** aus.

1. (Optional) Fügen Sie ein oder mehrere Tag-Schlüssel-Wert-Paare hinzu, um den Zugriff für diese Richtlinie zu organisieren, zu verfolgen oder zu steuern. 

1. Wählen Sie **Weiter: Prüfen** aus.

1. Geben Sie auf der Seite **Richtlinie prüfen** im Feld **Name** einen Namen für die Inline-Richtlinie ein, z. B. **amiLambda**.

1. Wählen Sie **Richtlinie erstellen** aus.

1. Wiederholen Sie die Schritte 2 und 3.

1. Fügen Sie die folgende Richtlinie ein. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "ssm:PutParameter",
               "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/latestAmi"
           },
           {
               "Effect": "Allow",
               "Action": "ssm:DescribeParameters",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Wählen Sie **Weiter: Tags** aus.

1. (Optional) Fügen Sie ein oder mehrere Tag-Schlüssel-Wert-Paare hinzu, um den Zugriff für diese Richtlinie zu organisieren, zu verfolgen oder zu steuern. 

1. Wählen Sie **Weiter: Prüfen** aus.

1. Geben Sie auf der Seite **Richtlinie prüfen** im Feld **Name** einen Namen für die Inline-Richtlinie ein, z. B. **amiParameter**.

1. Wählen Sie **Richtlinie erstellen** aus.

1. Wählen Sie im Navigationsbereich **Rollen** und dann **Rolle erstellen**.

1. Wählen Sie direkt unter **Anwendungsfall** die Option **Lambda** und dann **Weiter** aus.

1. Suchen Sie auf der Seite **Berechtigungsrichtlinien anfügen** im Feld **Suche** die beiden Richtlinien, die Sie zuvor erstellt haben.

1. Aktivieren Sie das Kontrollkästchen neben den Richtlinien und wählen Sie anschließend **Weiter** aus.

1. Geben Sie unter **Role name (Rollenname)** einen Namen für Ihre neue Rolle, wie z. B. **lambda-ssm-role**, oder einen anderen von Ihnen bevorzugten Namen ein. 
**Anmerkung**  
Da möglicherweise verschiedene Entitäten auf die Rolle verweisen, kann der Rollenname nach der Erstellung nicht geändert werden.

1. (Optional) Fügen Sie ein oder mehrere Tag-Schlüssel-Wert-Paare hinzu, um den Zugriff für diese Rolle zu organisieren, nachzuverfolgen oder zu steuern, und wählen Sie dann **Rolle erstellen** aus.

## Aufgabe 3: Eine AWS Lambda Funktion erstellen
<a name="create-lambda-function"></a>

Führen Sie die folgenden Schritte zum Erstellen einer Lambda-Funktion aus, die den Wert des `latestAmi`-Parameters automatisch aktualisiert.

**So erstellen Sie eine Lambda-Funktion**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die AWS Lambda Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Wählen Sie **Funktion erstellen**.

1. Wählen Sie auf der Seite **Create function** die Option **Author from scratch**.

1. Geben Sie für **Function name** (Funktionsname) **Automation-UpdateSsmParam** ein.

1. Wählen Sie für **Runtime** **Python 3.11**.

1. Wählen Sie unter **Architektur** den Computerprozessortyp aus, den Lambda zum Ausführen der Funktion verwenden soll, **x86\$164** oder **arm64**, 

1. Erweitern Sie im Abschnitt **Berechtigungen** die Option **Standardausführungsrolle ändern**.

1. Wählen Sie **Use an existing role** (Vorhandene Rolle verwenden) aus und wählen Sie dann die Servicerolle für Lambda aus, die Sie in Aufgabe 2 erstellt haben.

1. Wählen Sie **Funktion erstellen**.

1. Löschen Sie im Bereich **Code-Quelle** in der Registerkarte **lambda\$1function** den vorab ausgefüllten Code im Feld und fügen Sie das folgende Codebeispiel ein.

   ```
   from __future__ import print_function
   
   import json
   import boto3
   
   print('Loading function')
   
   
   #Updates an SSM parameter
   #Expects parameterName, parameterValue
   def lambda_handler(event, context):
       print("Received event: " + json.dumps(event, indent=2))
   
       # get SSM client
       client = boto3.client('ssm')
   
       #confirm  parameter exists before updating it
       response = client.describe_parameters(
          Filters=[
             {
              'Key': 'Name',
              'Values': [ event['parameterName'] ]
             },
           ]
       )
   
       if not response['Parameters']:
           print('No such parameter')
           return 'SSM parameter not found.'
   
       #if parameter has a Description field, update it PLUS the Value
       if 'Description' in response['Parameters'][0]:
           description = response['Parameters'][0]['Description']
           
           response = client.put_parameter(
             Name=event['parameterName'],
             Value=event['parameterValue'],
             Description=description,
             Type='String',
             Overwrite=True
           )
       
       #otherwise just update Value
       else:
           response = client.put_parameter(
             Name=event['parameterName'],
             Value=event['parameterValue'],
             Type='String',
             Overwrite=True
           )
           
       responseString = 'Updated parameter %s with value %s.' % (event['parameterName'], event['parameterValue'])
           
       return responseString
   ```

1. Klicken Sie auf **Datei, Speichern**.

1. Um die Lambda-Funktion zu testen, wählen Sie im Menü **Test** die Option **Testereignis konfigurieren** aus.

1. Geben Sie für **Event name (Ereignisname)** einen Namen für das Testereignis ein, z. B. **MyTestEvent**.

1. Ersetzen Sie den vorhandenen Text durch folgendes JSON-Objekt. *AMI ID*Ersetzen Sie es durch Ihre eigenen Informationen, um Ihren `latestAmi` Parameterwert festzulegen.

   ```
   {
      "parameterName":"latestAmi",
      "parameterValue":"AMI ID"
   }
   ```

1. Wählen Sie **Speichern**.

1. Wählen Sie **Test** aus, um die Funktion zu testen. Auf der Registerkarte **Ausführungsergebnis** sollte der Status als **Erfolgreich** gemeldet werden, zusammen mit anderen Details zur Aktualisierung.

## Aufgabe 4: Erstellen eines Runbooks und Patchen des AMI
<a name="create-custom-ami-update-runbook"></a>

Verwenden Sie die folgende Vorgehensweise zum Erstellen und Ausführen eines Runbooks, das das von Ihnen angegebene AMI für den **latestAmi**-Parameter patcht. Nach dem Abschluss der Automatisierung wird der Wert **latestAmi** mit der ID des neu gepatchten AMI aktualisiert. Bei nachfolgenden Automatisierungen verwenden Sie das AMI, das in der vorherigen Ausführung erstellt wurde.

**Erstellen und Ausführen des Runbooks**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie für **Dokument erstellen** die Option **Automatisierung** aus.

1. Geben Sie unter **Name** **UpdateMyLatestWindowsAmi** ein.

1. Wählen Sie die Registerkarte **Editor** und wählen Sie **Edit (Bearbeiten)** aus.

1. Wählen Sie bei Aufforderung **OK** aus.

1. Ersetzen Sie im Feld **Dokument-Editor** den Standardinhalt durch den folgenden Inhalt des YAML-Beispiel-Runbooks.

   ```
   ---
   description: Systems Manager Automation Demo - Patch AMI and Update ASG
   schemaVersion: '0.3'
   assumeRole: '{{ AutomationAssumeRole }}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Required) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to execute this document.'
       default: ''
     SourceAMI:
       type: String
       description: The ID of the AMI you want to patch.
       default: '{{ ssm:latestAmi }}'
     SubnetId:
       type: String
       description: The ID of the subnet where the instance from the SourceAMI parameter is launched.
     SecurityGroupIds:
       type: StringList
       description: The IDs of the security groups to associate with the instance that's launched from the SourceAMI parameter.
     NewAMI:
       type: String
       description: The name of of newly patched AMI.
       default: 'patchedAMI-{{global:DATE_TIME}}'
     InstanceProfile:
       type: String
       description: The name of the IAM instance profile you want the source instance to use.
     SnapshotId:
       type: String
       description: (Optional) The snapshot ID to use to retrieve a patch baseline snapshot.
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: (Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.
       allowedValues:
         - Install
         - Scan
       default: Install
   mainSteps:
     - name: startInstances
       action: 'aws:runInstances'
       timeoutSeconds: 1200
       maxAttempts: 1
       onFailure: Abort
       inputs:
         ImageId: '{{ SourceAMI }}'
         InstanceType: m5.large
         MinInstanceCount: 1
         MaxInstanceCount: 1
         IamInstanceProfileName: '{{ InstanceProfile }}'
         SubnetId: '{{ SubnetId }}'
         SecurityGroupIds: '{{ SecurityGroupIds }}'
     - name: verifyInstanceManaged
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 600
       inputs:
         Service: ssm
         Api: DescribeInstanceInformation
         InstanceInformationFilterList:
           - key: InstanceIds
             valueSet:
               - '{{ startInstances.InstanceIds }}'
         PropertySelector: '$.InstanceInformationList[0].PingStatus'
         DesiredValues:
           - Online
       onFailure: 'step:terminateInstance'
     - name: installPatches
       action: 'aws:runCommand'
       timeoutSeconds: 7200
       onFailure: Abort
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
     - name: stopInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: stopped
     - name: createImage
       action: 'aws:createImage'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceId: '{{ startInstances.InstanceIds }}'
         ImageName: '{{ NewAMI }}'
         NoReboot: false
         ImageDescription: Patched AMI created by Automation
     - name: terminateInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: terminated
     - name: updateSsmParam
       action: aws:invokeLambdaFunction
       timeoutSeconds: 1200
       maxAttempts: 1
       onFailure: Abort
       inputs:
           FunctionName: Automation-UpdateSsmParam
           Payload: '{"parameterName":"latestAmi", "parameterValue":"{{createImage.ImageId}}"}'
   outputs:
   - createImage.ImageId
   ```

1. Wählen Sie **Create automation (Automation erstellen)**.

1. Wählen Sie im Navigationsbereich **Automatisierung** und **Automatisierung ausführen** aus.

1. Wählen Sie auf der Seite **Choose document** (Dokument wählen), die Registerkarte **Owned by me** (In meinem Besitz).

1. Suchen Sie nach dem **UpdateMyLatestWindowsAmi**Runbook und wählen Sie die Schaltfläche auf der **UpdateMyLatestWindowsAmi**Karte aus.

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

1. Wählen Sie **Simple execution (Einfache Ausführung)** aus.

1. Geben Sie Werte für die Eingabeparameter an.

1. Wählen Sie **Ausführen**.

1. Wählen Sie nach dem Abschluss der Automatisierung **Parameter Store** im Navigationsbereich und bestätigen Sie, dass der neue Wert für `latestAmi`-Treffer, die von der Automatisierung zurückgegeben werden. Sie können auch überprüfen, ob die neue AMI ID mit der Automation-Ausgabe im **AMIs**Bereich der Amazon EC2 EC2-Konsole übereinstimmt.

# Aktualisierung von AMIs mithilfe von Automation und Jenkins
<a name="automation-tutorial-update-patch-ami-jenkins-integration"></a>

Wenn Ihr Unternehmen Jenkins Software in einer CI/CD Pipeline verwendet, können Sie Automatisierung als Post-Build-Schritt hinzufügen, um Anwendungsversionen in Amazon Machine Images () vorzuinstallieren. AMIs Automation ist ein Tool in AWS Systems Manager. Sie können auch die Jenkins-Funktion zum Planen verwenden, um Automation aufzurufen, und Ihr eigenes Patchingintervall für das Betriebssystem erstellen.

Im folgenden Beispiel wird gezeigt, wie Sie Automation über einen Jenkins-Server aufrufen, der entweder On-Premises oder in Amazon Elastic Compute Cloud (Amazon EC2) ausgeführt wird. Für die Authentifizierung verwendet der Jenkins Server AWS Anmeldeinformationen, die auf einer IAM-Richtlinie basieren, die Sie im Beispiel erstellen und an Ihr Instanzprofil anhängen.

**Anmerkung**  
Befolgen Sie beim Konfigurieren Ihrer Instance die bewährten Methoden von Jenkins für die Sicherheit.

**Bevor Sie beginnen**  
Schließen Sie die folgenden Aufgaben ab, bevor Sie Automation mit Jenkins konfigurieren:
+ Schließen Sie das [Aktualisieren Sie ein Golden AMI mithilfe von Automation, AWS Lambda, und Parameter Store](automation-tutorial-update-patch-golden-ami.md)-Beispiel ab. Im folgenden Beispiel wird das in diesem Beispiel erstellte **UpdateMyLatestWindowsAmi**Runbook verwendet.
+ Konfigurieren Sie IAM-Rollen für Automation. Systems Manager benötigt eine Instance-Profilrolle und einen Servicerollen-ARN zur Verarbeitung von Automatisierungen. Weitere Informationen finden Sie unter [Einrichten der Automatisierung](automation-setup.md).

**So erstellen Sie eine IAM-Richtlinie für den Jenkins-Server**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Wählen Sie im Navigationsbereich **Richtlinien** und dann **Richtlinie erstellen**.

1. Wählen Sie den Tab **JSON**.

1. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "ssm:StartAutomationExecution",
               "Resource": [
                   "arn:aws:ssm:us-east-1:111122223333:document/UpdateMyLatestWindowsAmi",
                   "arn:aws:ssm:us-east-1:111122223333:automation-execution/*"
               ]
           }
       ]
   }
   ```

------

1. Wählen Sie **Richtlinie prüfen**.

1. Geben Sie auf der Seite **Richtlinie prüfen** im Feld **Name** einen Namen für die Inline-Richtlinie ein, z. B. **JenkinsPolicy**.

1. Wählen Sie **Richtlinie erstellen** aus.

1. Wählen Sie im Navigationsbereich **Rollen**.

1. Wählen Sie das Instance-Profil aus, das Ihrem Jenkins-Server angefügt ist.

1. Wählen Sie auf der Registerkarte **Berechtigungen** die Option **Berechtigungen hinzufügen**, **Richtlinien anfügen**.

1. Geben Sie im Abschnitt **Andere Berechtigungsrichtlinien** den Namen der Richtlinie ein, die Sie in den vorherigen Schritten erstellt haben. Beispiel, **JenkinsPolicy**.

1. Aktivieren Sie das Kontrollkästchen neben Ihrer Richtlinie, und wählen Sie **Richtlinien anfügen** aus.

Gehen Sie wie folgt vor, um das AWS CLI auf Ihrem Jenkins Server zu konfigurieren.

**So konfigurieren Sie den Jenkins-Server für Automation**

1. Verbinden Sie sich mit Ihrem Jenkins-Server auf Port 8080 über Ihren bevorzugten Browser, um auf die Verwaltungsschnittstelle zuzugreifen.

1. Geben Sie das Passwort ein, welches Sie unter `/var/lib/jenkins/secrets/initialAdminPassword` finden. Um Ihr Kennwort anzuzeigen, führen Sie den folgenden Befehl aus.

   ```
   sudo cat /var/lib/jenkins/secrets/initialAdminPassword
   ```

1. Das Jenkins-Installationsskript leitet Sie zur Seite **Anpassen von Jenkins** weiter. Wählen Sie **Installieren von empfohlenen Plugins**.

1. Nach abgeschlossener Installation wählen Sie **Administrator-Zugangsdaten**, wählen Sie dann **Zugansdaten speichern** und klicken Sie dann auf **Verwendung von Jenkins beginnen** aus.

1. Wählen Sie im linken Navigationsbereich **Jenkins verwalten** und dann **Plugins verwalten**.

1. Wählen Sie die Registerkarte **Available** (Verfügbar) und geben Sie dann **Amazon EC2 plugin** ein.

1. Aktivieren Sie das Kontrollkästchen für **Amazon EC2 plugin** und klicken Sie dann auf **Installation ohne Neustart**.

1. Nach abgeschlossener Installation wählen Sie **Zurück zur oberen Seite**.

1. Wählen Sie **Jenkins verwalten** und anschließend **Knoten und Clouds verwalten** aus.

1. Wählen Sie im Abschnitt **Clouds konfigurieren** die Option **Neue Cloud hinzufügen** und dann **Amazon EC2** aus.

1. Geben Sie Ihre Daten in die verbleibenden Felder ein. Stellen Sie sicher, dass Sie die Option **EC2-Instance-Profil zum Abrufen von Anmeldeinformationen verwenden**, ausgewählt haben.

Führen Sie die folgenden Schritte zum Konfigurieren Ihres Jenkins-Projekts aus, um Automation zu konfigurieren.

**So konfigurieren Sie Ihren Jenkins-Server zum Aufrufen von Automation**

1. Öffnen Sie die Jenkins-Konsole in einem Webbrowser.

1. Wählen Sie das Projekt, das Sie mit Automation konfigurieren möchten, und wählen Sie dann **Configure** (Konfigurieren).

1. Wählen Sie auf der Registerkarte **Build** **Add Build Step** (Build-Schritt hinzufügen) aus.

1. Wählen Sie je nach Betriebssystem **Execute shell** (Shell ausführen) oder **Execute Windows batch command** (Windows-Batchbefehl ausführen).

1. Führen **Sie im Feld Befehl** einen AWS CLI Befehl wie den folgenden aus. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

   ```
   aws ssm start-automation-execution \
           --document-name runbook name \
           --region AWS-Region of your source AMI \
           --parameters runbook parameters
   ```

   Der folgende Beispielbefehl verwendet das **UpdateMyLatestWindowsAmi**Runbook und den Systems Manager Manager-Parameter, die in `latestAmi` [Aktualisieren Sie ein Golden AMI mithilfe von Automation, AWS Lambda, und Parameter Store](automation-tutorial-update-patch-golden-ami.md) erstellt wurden.

   ```
   aws ssm start-automation-execution \
           --document-name UpdateMyLatestWindowsAmi \
           --parameters \
               "sourceAMIid='{{ssm:latestAmi}}'"
           --region region
   ```

   In Jenkins sieht der Befehl wie im Beispiel im folgenden Screenshot aus.  
![\[Ein Beispielbefehl in Jenkins Software.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/sysman-ami-jenkins2.png)

1. Wählen Sie im Jenkins-Projekt **Build Now** aus. Jenkins gibt etwa die folgende Ausgabe zurück.  
![\[Beispiel für eine Befehlsausgabe in Jenkins-Software.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/sysman-ami-jenkins.png)

# Aktualisieren von AMIs für Auto-Scaling-Gruppen
<a name="automation-tutorial-update-patch-windows-ami-autoscaling"></a>

Im folgenden Beispiel wird eine Auto-Scaling-Gruppe mit einem neu gepatchten AMI aktualisiert. Dieser Ansatz gewährleistet, dass neue Images automatisch den verschiedenen Computing-Umgebungen zur Verfügung gestellt werden, die Auto–Scaling-Gruppen verwenden.

Der letzte Schritt der Automatisierung in diesem Beispiel verwendet eine Python-Funktion, um eine neue Startvorlage zu erstellen, die das neu gepatchte AMI verwendet. Anschließend wird die Auto-Scaling-Gruppe aktualisiert, um die neue Startvorlage zu verwenden. In diesem Auto–Scaling-Szenariotyp können Benutzer vorhandene Instances in der Auto–Scaling-Gruppe beenden, um den Start einer neuen Instance zu erzwingen, die das neue Image verwendet. Andernfalls konnten Benutzer warten und das Skalieren der Ereignisse nach oben oder unten zulassen, um auf natürliche Weise neuere Instances zu starten.

**Bevor Sie beginnen**  
Bevor Sie mit diesem Beispiel beginnen, führen Sie die folgenden Aufgaben aus.
+ Konfigurieren Sie IAM-Rollen für Automation, ein Tool in AWS Systems Manager. Systems Manager benötigt eine Instance-Profilrolle und einen Servicerollen-ARN zur Verarbeitung von Automatisierungen. Weitere Informationen finden Sie unter [Einrichten der Automatisierung](automation-setup.md).

## Erstellen Sie das **Patch AMIAnd UpdateASG-Runbook**
<a name="create-autoscaling-update-runbook"></a>

**Gehen Sie wie folgt vor, um das **Patch AMIAnd UpdateAsg-Runbook zu erstellen, das die Patches** durchführt, die AMI Sie für den SourceAMI-Parameter angeben.** Das Runbook aktualisiert auch eine Auto-Scaling-Gruppe, um das neueste, gepatchte AMI zu verwenden.

**Erstellen und Ausführen des Runbooks**

1. Öffnen Sie die Konsole unter. AWS Systems Manager [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie **Automation** im Dropdown-Menü **Erstellen eines Dokuments**.

1. Geben Sie im Feld **Name** **PatchAMIAndUpdateASG** ein.

1. Wählen Sie die Registerkarte **Editor** und wählen Sie **Edit** (Bearbeiten) aus.

1. Wählen Sie **OK** aus, wenn Sie dazu aufgefordert werden, und löschen Sie den Inhalt im Feld **Document editor** (Dokumenteditor).

1. Fügen Sie im Feld **Document editor** (Dokumenteditor) den folgenden Inhalt des YAML-Beispiel-Runbooks ein.

   ```
   ---
   description: Systems Manager Automation Demo - Patch AMI and Update ASG
   schemaVersion: '0.3'
   assumeRole: '{{ AutomationAssumeRole }}'
   parameters:
     AutomationAssumeRole:
       type: String
       description: '(Required) The ARN of the role that allows Automation to perform the actions on your behalf. If no role is specified, Systems Manager Automation uses your IAM permissions to execute this document.'
       default: ''
     SourceAMI:
       type: String
       description: '(Required) The ID of the AMI you want to patch.'
     SubnetId:
       type: String
       description: '(Required) The ID of the subnet where the instance from the SourceAMI parameter is launched.'
     SecurityGroupIds:
       type: StringList
       description: '(Required) The IDs of the security groups to associate with the instance launched from the SourceAMI parameter.'
     NewAMI:
       type: String
       description: '(Optional) The name of of newly patched AMI.'
       default: 'patchedAMI-{{global:DATE_TIME}}'
     TargetASG:
       type: String
       description: '(Required) The name of the Auto Scaling group you want to update.'
     InstanceProfile:
       type: String
       description: '(Required) The name of the IAM instance profile you want the source instance to use.'
     SnapshotId:
       type: String
       description: (Optional) The snapshot ID to use to retrieve a patch baseline snapshot.
       default: ''
     RebootOption:
       type: String
       description: '(Optional) Reboot behavior after a patch Install operation. If you choose NoReboot and patches are installed, the instance is marked as non-compliant until a subsequent reboot and scan.'
       allowedValues:
         - NoReboot
         - RebootIfNeeded
       default: RebootIfNeeded
     Operation:
       type: String
       description: (Optional) The update or configuration to perform on the instance. The system checks if patches specified in the patch baseline are installed on the instance. The install operation installs patches missing from the baseline.
       allowedValues:
         - Install
         - Scan
       default: Install
   mainSteps:
     - name: startInstances
       action: 'aws:runInstances'
       timeoutSeconds: 1200
       maxAttempts: 1
       onFailure: Abort
       inputs:
         ImageId: '{{ SourceAMI }}'
         InstanceType: m5.large
         MinInstanceCount: 1
         MaxInstanceCount: 1
         IamInstanceProfileName: '{{ InstanceProfile }}'
         SubnetId: '{{ SubnetId }}'
         SecurityGroupIds: '{{ SecurityGroupIds }}'
     - name: verifyInstanceManaged
       action: 'aws:waitForAwsResourceProperty'
       timeoutSeconds: 600
       inputs:
         Service: ssm
         Api: DescribeInstanceInformation
         InstanceInformationFilterList:
           - key: InstanceIds
             valueSet:
               - '{{ startInstances.InstanceIds }}'
         PropertySelector: '$.InstanceInformationList[0].PingStatus'
         DesiredValues:
           - Online
       onFailure: 'step:terminateInstance'
     - name: installPatches
       action: 'aws:runCommand'
       timeoutSeconds: 7200
       onFailure: Abort
       inputs:
         DocumentName: AWS-RunPatchBaseline
         Parameters:
           SnapshotId: '{{SnapshotId}}'
           RebootOption: '{{RebootOption}}'
           Operation: '{{Operation}}'
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
     - name: stopInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: stopped
     - name: createImage
       action: 'aws:createImage'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceId: '{{ startInstances.InstanceIds }}'
         ImageName: '{{ NewAMI }}'
         NoReboot: false
         ImageDescription: Patched AMI created by Automation
     - name: terminateInstance
       action: 'aws:changeInstanceState'
       maxAttempts: 1
       onFailure: Continue
       inputs:
         InstanceIds:
           - '{{ startInstances.InstanceIds }}'
         DesiredState: terminated
     - name: updateASG
       action: 'aws:executeScript'
       timeoutSeconds: 300
       maxAttempts: 1
       onFailure: Abort
       inputs:
         Runtime: python3.11
         Handler: update_asg
         InputPayload:
           TargetASG: '{{TargetASG}}'
           NewAMI: '{{createImage.ImageId}}'
         Script: |-
           from __future__ import print_function
           import datetime
           import json
           import time
           import boto3
   
           # create auto scaling and ec2 client
           asg = boto3.client('autoscaling')
           ec2 = boto3.client('ec2')
   
           def update_asg(event, context):
               print("Received event: " + json.dumps(event, indent=2))
   
               target_asg = event['TargetASG']
               new_ami = event['NewAMI']
   
               # get object for the ASG we're going to update, filter by name of target ASG
               asg_query = asg.describe_auto_scaling_groups(AutoScalingGroupNames=[target_asg])
               if 'AutoScalingGroups' not in asg_query or not asg_query['AutoScalingGroups']:
                   return 'No ASG found matching the value you specified.'
   
               # gets details of an instance from the ASG that we'll use to model the new launch template after
               source_instance_id = asg_query.get('AutoScalingGroups')[0]['Instances'][0]['InstanceId']
               instance_properties = ec2.describe_instances(
                   InstanceIds=[source_instance_id]
               )
               source_instance = instance_properties['Reservations'][0]['Instances'][0]
   
               # create list of security group IDs
               security_groups = []
               for group in source_instance['SecurityGroups']:
                   security_groups.append(group['GroupId'])
   
               # create a list of dictionary objects for block device mappings
               mappings = []
               for block in source_instance['BlockDeviceMappings']:
                   volume_query = ec2.describe_volumes(
                       VolumeIds=[block['Ebs']['VolumeId']]
                   )
                   volume_details = volume_query['Volumes']
                   device_name = block['DeviceName']
                   volume_size = volume_details[0]['Size']
                   volume_type = volume_details[0]['VolumeType']
                   device = {'DeviceName': device_name, 'Ebs': {'VolumeSize': volume_size, 'VolumeType': volume_type}}
                   mappings.append(device)
   
               # create new launch template using details returned from instance in the ASG and specify the newly patched AMI
               time_stamp = time.time()
               time_stamp_string = datetime.datetime.fromtimestamp(time_stamp).strftime('%m-%d-%Y_%H-%M-%S')
               new_template_name = f'{new_ami}_{time_stamp_string}'
               try:
                   ec2.create_launch_template(
                       LaunchTemplateName=new_template_name,
                       LaunchTemplateData={
                           'BlockDeviceMappings': mappings,
                           'ImageId': new_ami,
                           'InstanceType': source_instance['InstanceType'],
                           'IamInstanceProfile': {
                               'Arn': source_instance['IamInstanceProfile']['Arn']
                           },
                           'KeyName': source_instance['KeyName'],
                           'SecurityGroupIds': security_groups
                       }
                   )
               except Exception as e:
                   return f'Exception caught: {str(e)}'
               else:
                   # update ASG to use new launch template
                   asg.update_auto_scaling_group(
                       AutoScalingGroupName=target_asg,
                       LaunchTemplate={
                           'LaunchTemplateName': new_template_name
                       }
                   )
                   return f'Updated ASG {target_asg} with new launch template {new_template_name} which uses AMI {new_ami}.'
   outputs:
   - createImage.ImageId
   ```

1. Wählen Sie **Create automation (Automation erstellen)**.

1. Wählen Sie im Navigationsbereich **Automatisierung** und **Automatisierung ausführen** aus.

1. Wählen Sie auf der Seite **Choose document** (Dokument wählen), die Registerkarte **Owned by me** (In meinem Besitz).

1. Suchen Sie nach dem Runbook **Patch AMIAnd UpdateAsg** und wählen Sie die Schaltfläche auf der Karte **Patch AMIAnd** UpdateAsg aus.

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

1. Wählen Sie **Simple execution (Einfache Ausführung)** aus.

1. Geben Sie Werte für die Eingabeparameter an. Stellen Sie sicher, dass die von Ihnen angegebenen `SubnetId` und `SecurityGroupIds` den Zugriff auf die öffentlichen Systems-Manager-Endpunkte oder Ihre Schnittstellenendpunkte für Systems Manager zulassen.

1. Wählen Sie **Ausführen**.

1. Wählen Sie nach Abschluss der Automatisierung in der Amazon-EC2-Konsole **Auto Scaling** und dann **Launch Templates** (Startvorlagen) aus. Stellen Sie sicher, dass die neue Startvorlage angezeigt wird und dass sie das neue AMI verwendet.

1. Klicken Sie auf **Auto Scaling** und wählen Sie dann **Auto-Scaling-Gruppen**. Stellen Sie sicher, dass die Auto-Scaling-Gruppe die neue Startkonfiguration verwendet.

1. Beenden Sie mindestens eine Instance in Ihrer Auto–Scaling-Gruppe. Ersatz-Instances werden unter Verwendung der neuen AMI gestartet.

# AWS Support Self-Service-Runbooks verwenden
<a name="automation-tutorial-support-runbooks"></a>

In diesem Abschnitt wird beschrieben, wie Sie einige der vom Team erstellten Self-Service-Automatisierungen verwenden können. AWS Support Diese Automatisierungen helfen Ihnen bei der Verwaltung Ihrer Ressourcen. AWS 

**Support Automation Workflows**  
Support Automation Workflows (SAW) sind Automatisierungs-Runbooks, die vom AWS Support Team geschrieben und verwaltet werden. Diese Runbooks helfen Ihnen dabei, häufig auftretende Probleme mit Ihren AWS Ressourcen zu beheben, Netzwerkprobleme proaktiv zu überwachen und zu identifizieren, Protokolle zu sammeln und zu analysieren und vieles mehr.

SAW-Runbooks verwenden das **`AWSSupport`**-Präfix. Beispiel, [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awssupport-activatewindowswithamazonlicense.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awssupport-activatewindowswithamazonlicense.html).

Darüber hinaus haben Kunden mit Business Support\$1 und höheren AWS Support-Plänen auch Zugriff auf Runbooks, die das Präfix verwenden. **`AWSPremiumSupport`** Beispiel, [https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awspremiumsupport-troubleshootEC2diskusage.html](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awspremiumsupport-troubleshootEC2diskusage.html).

Weitere Informationen dazu finden Sie AWS Support unter [Erste Schritte mit](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html). AWS Support

**Topics**
+ [Führen Sie das EC2 Rescue-Tool auf nicht erreichbaren Instanzen aus](automation-ec2rescue.md)
+ [Zurücksetzen von Passwörtern und SSH-Schlüsseln auf EC2-Instances](automation-ec2reset.md)

# Führen Sie das EC2 Rescue-Tool auf nicht erreichbaren Instanzen aus
<a name="automation-ec2rescue"></a>

EC2Rescue kann Ihnen bei der Diagnose und Behebung von Problemen auf Amazon Elastic Compute Cloud (Amazon EC2)-Instances für Linux und Windows Server helfen. Sie können das Tool manuell ausführen, wie [unter EC2 Rescue für Linux Server verwenden](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Linux-Server-EC2Rescue.html) und [ EC2Rescue für Windows Server verwenden](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/Windows-Server-EC2Rescue.html) beschrieben. Sie können das Tool auch automatisch mit der Systems Manager Automation und dem **`AWSSupport-ExecuteEC2Rescue`**-Runbook ausführen. Automation ist ein Tool in AWS Systems Manager. Das **`AWSSupport-ExecuteEC2Rescue`**Runbook ist für die Ausführung einer Kombination von Systems Manager Manager-Aktionen, CloudFormation Aktionen und Lambda-Funktionen konzipiert, mit denen die Schritte automatisiert werden, die normalerweise für die Verwendung EC2 von Rescue erforderlich sind. 

Sie können das **`AWSSupport-ExecuteEC2Rescue`**-Runbook verwenden, um verschiedene Arten von Problemen bei Betriebssystemen (OS) zu behandeln und möglicherweise zu lösen. Instances mit verschlüsselten Root-Volumes werden nicht unterstützt. Eine vollständige Liste finden Sie in den folgenden Themen:

**Windows**: Weitere Informationen finden *Sie* [unter EC2 Rescue für Windows Server über die Befehlszeile verwenden](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2rw-cli.html#ec2rw-rescue).

**Linux** und **macOS**: Einige Module von EC2 Rescue for Linux erkennen Probleme und versuchen, sie zu beheben. Weitere Informationen finden Sie in der [https://github.com/awslabs/aws-ec2rescue-linux/tree/master/docs](https://github.com/awslabs/aws-ec2rescue-linux/tree/master/docs)-Dokumentation für jedes Modul auf GitHub.

## Funktionsweise
<a name="automation-ec2rescue-how"></a>

Die Fehlerbehebung bei einer Instance mit Automation und dem **`AWSSupport-ExecuteEC2Rescue`**-Runbook funktioniert folgendermaßen:
+ Sie geben die ID der nicht erreichbaren Instance an und starten das Runbook.
+ Das System erstellt eine temporäre VPC und führt dann eine Reihe von Lambda-Funktionen aus, um die VPC zu konfigurieren.
+ Das System identifiziert ein Subnetz für Ihre temporäre VPC in derselben Availability Zone wie die ursprüngliche Instance.
+ Das System startet eine temporäre, SSM-fähige Helferobjekt-Instance.
+ Das System stoppt Ihre ursprüngliche Instance und erstellt einen Backup. Anschließend fügt es das ursprüngliche Stamm-Volume an die Helferobjekt-Instance an.
+ Das System verwendetRun Command, um EC2 Rescue auf der Helper-Instanz auszuführen. EC2Rescue identifiziert Probleme auf dem angehängten, ursprünglichen Root-Volume und versucht, diese zu beheben. Wenn der Vorgang abgeschlossen ist, fügt EC2 Rescue das Root-Volume wieder der ursprünglichen Instanz hinzu.
+ Das System startet die ursprüngliche Instance neu und beendet die temporäre Instance. Das System beendet ebenso die temporäre VPC und die Lambda-Funktionen, die zu Beginn der Automatisierung erstellt wurden.

## Bevor Sie beginnen
<a name="automation-ec2rescue-begin"></a>

Bevor Sie die folgende Automation ausführen, führen Sie die folgenden Schritte aus:
+ Kopieren Sie die Instance-ID der nicht erreichbaren Instance. Sie legen diese ID im Verfahren fest.
+ Erfassen Sie optional die ID eines Subnetzes in derselben Availability Zone wie Ihre unerreichbare Instance. Die EC2 Rescue-Instanz wird in diesem Subnetz erstellt. Wenn Sie kein Subnetz angeben, erstellt Automation eine neue temporäre VPC in Ihrem. AWS-Konto Stellen Sie sicher, AWS-Konto dass mindestens eine VPC verfügbar ist. Standardmäßig können Sie fünf VPCs in einer Region erstellen. Wenn Sie VPCs in der Region bereits fünf erstellt haben, schlägt die Automatisierung fehl, ohne dass Änderungen an Ihrer Instanz vorgenommen werden. Weitere Informationen zu Amazon VPC-Kontingenten finden Sie unter [VPC und Subnetze](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-vpcs-subnets) im *Amazon VPC-Benutzerhandbuch*.
+ Optional können Sie eine AWS Identity and Access Management (IAM-) Rolle für die Automatisierung erstellen und angeben. Falls Sie diese Rolle nicht festlegen, wird die Automatisierung im Kontext des Benutzers ausgeführt, der die Automatisierung ausgeführt hat.

### Gewähren von `AWSSupport-EC2Rescue`-Berechtigungen zum Durchführen von Aktionen auf Ihren Instances
<a name="automation-ec2rescue-access"></a>

EC2Rescue benötigt die Erlaubnis, während der Automatisierung eine Reihe von Aktionen auf Ihren Instances durchzuführen. Diese Aktionen rufen die AWS Lambda Dienste IAM und Amazon EC2 auf, um sicher und geschützt zu versuchen, Probleme mit Ihren Instances zu beheben. Wenn Sie in Ihrer AWS-Konto und/oder Ihrer VPC über Administratorberechtigungen verfügen, können Sie die Automatisierung möglicherweise ausführen, ohne Berechtigungen zu konfigurieren, wie in diesem Abschnitt beschrieben. Falls Sie keine Administratorberechtigungen besitzen, müssen Sie oder ein Administrator Berechtigungen anhand einer der folgenden Optionen konfigurieren.
+ [Erteilen von Berechtigungen mithilfe von IAM-Richtlinien](#automation-ec2rescue-access-iam)
+ [Erteilen von Berechtigungen mithilfe einer CloudFormation Vorlage](#automation-ec2rescue-access-cfn)

#### Erteilen von Berechtigungen mithilfe von IAM-Richtlinien
<a name="automation-ec2rescue-access-iam"></a>

Sie können entweder die folgende IAM-Richtlinie als eingebundene Richtlinie an Ihren Benutzer, Ihre Gruppe oder Ihre Rolle anfügen. Sie können aber auch eine neue verwaltete IAM-Richtlinie erstellen und diese an Ihren Benutzer, Ihre Gruppe oder Ihre Rolle anfügen. Weitere Informationen zum Hinzufügen einer eingebundenen Richtlinie zu Ihrem Benutzerkonto, Ihrer Gruppe oder Ihrer Rolle finden Sie unter [Verwenden von eingebundenen Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html). Weitere Informationen zum Erstellen einer neuen verwalteten Richtlinien finden Sie unter [Verwenden von eingebundenen Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html).

**Anmerkung**  
Wenn Sie eine neue IAM-verwaltete Richtlinie erstellen, müssen Sie ihr auch die verwaltete **Amazon SSMAutomation Role** Policy hinzufügen, damit Ihre Instances mit der Systems Manager Manager-API kommunizieren können.

**IAM-Richtlinie für 2Rescue AWSSupport-EC**

Ersetzen Sie es *account ID* durch Ihre eigenen Informationen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-EC2Rescue-*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::awssupport-ssm.*/*.template",
                "arn:aws:s3:::awssupport-ssm.*/*.zip"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreateInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:PutRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:PassRole",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSSupport-EC2Rescue-*",
                "arn:aws:iam::111122223333:instance-profile/AWSSupport-EC2Rescue-*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "lambda:CreateFunction",
                "ec2:CreateVpc",
                "ec2:ModifyVpcAttribute",
                "ec2:DeleteVpc",
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:DetachInternetGateway",
                "ec2:DeleteInternetGateway",
                "ec2:CreateSubnet",
                "ec2:DeleteSubnet",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:CreateRouteTable",
                "ec2:AssociateRouteTable",
                "ec2:DisassociateRouteTable",
                "ec2:DeleteRouteTable",
                "ec2:CreateVpcEndpoint",
                "ec2:DeleteVpcEndpoints",
                "ec2:ModifyVpcEndpoint",
                "ec2:Describe*",
                "autoscaling:DescribeAutoScalingInstances"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

#### Erteilen von Berechtigungen mithilfe einer CloudFormation Vorlage
<a name="automation-ec2rescue-access-cfn"></a>

CloudFormation automatisiert den Prozess der Erstellung von IAM-Rollen und -Richtlinien mithilfe einer vorkonfigurierten Vorlage. Gehen Sie wie folgt vor, um die erforderlichen IAM-Rollen und -Richtlinien für EC2 Rescue Automation zu erstellen, indem Sie CloudFormation

**So erstellen Sie die erforderlichen IAM-Rollen und -Richtlinien für Rescue EC2**

1. Laden Sie [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip) herunter und extrahieren Sie die `AWSSupport-EC2RescueRole.json`-Datei in ein Verzeichnis auf Ihrem lokalen Computer.

1. Wenn Sie AWS-Konto sich in einer speziellen Partition befinden, bearbeiten Sie die Vorlage, um die ARN-Werte in die für Ihre Partition zu ändern.

   Ändern Sie beispielsweise für `arn:aws` alle Fälle von in `arn:aws-cn`.

1. Melden Sie sich bei [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) an AWS-Managementkonsole und öffnen Sie die CloudFormation Konsole.

1. Klicken Sie auf **Create stack (Stack erstellen)**, **With new resources (standard) (Mit neuen Ressourcen (Standard))**.

1. Wählen Sie auf der Seite **Create stack (Stack erstellen)** unter **Prerequisite - Prepare template (Voraussetzung – Vorlage vorbereiten)** die Option **Template is ready (Vorlage ist bereit)** aus.

1. Wählen Sie unter **Vorlage angeben** die Option **Vorlagendatei hochladen** aus.

1. Wählen Sie **Choose file** (Datei auswählen) aus, navigieren Sie dann zu der `AWSSupport-EC2RescueRole.json`-Datei aus dem Verzeichnis, in dem Sie sie extrahiert haben, und wählen Sie sie aus.

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

1. Geben Sie auf der Seite **Specify stack details (Stack-Details angeben)** für das Feld **Stack name (Stack-Name)** einen Namen ein, um diesen Stack zu identifizieren. Wählen Sie dann **Next (Weiter)** aus.

1. (Optional) Wenden Sie im Bereich „**Tags**“ ein oder mehrere name/value Tag-Schlüsselpaare auf den Stack an.

   Tags sind optionale Metadaten, die Sie einer Ressource zuweisen. Mithilfe von Tags können Sie eine Ressource unterschiedlich kategorisieren, beispielsweise nach Zweck, Besitzer oder Umgebung. Beispielsweise können Sie einen Stack kennzeichnen, um den Typ der ausgeführten Aufgaben, die Typen von Zielen oder anderen Ressourcen und die Umgebung zu identifizieren, in der er ausgeführt wird.

1. Wählen Sie **Next** (Weiter)

1. Überprüfen Sie auf der Seite **Überprüfen** die Stack-Details, scrollen Sie dann nach unten und wählen Sie die Option **Ich bestätige, dass CloudFormation möglicherweise IAM-Ressourcen erstellt** werden.

1. Wählen Sie **Stack erstellen** aus.

   CloudFormation zeigt für einige Minuten den Status **CREATE\$1IN\$1PROGRESS** an. Nach dem Erstellen des Stacks ändert sich der Status in **CREATE\$1COMPLETE**. Sie können auch auf das Aktualisierungssymbol klicken, um den Status des Erstellungsprozesses zu überprüfen.

1. Wählen Sie in der **Stacks**-Liste die Option neben den Stack, den Sie gerade erstellt haben, und wählen Sie dann die Registerkarte **Outputs** (Ausgaben).

1. Notieren Sie sich den **Wert**. Das ist der ARN von AssumeRole. Sie geben diesen ARN an, wenn Sie die Automatisierung in der nächsten Prozedur ausführen, [Ausführen der Automation](#automation-ec2rescue-executing). 

## Ausführen der Automation
<a name="automation-ec2rescue-executing"></a>

**Wichtig**  
Der folgende Automatisierung hält die nicht erreichbare Instance an. Das Anhalten der Instance kann zu Datenverlusten auf den angehängten Instance-Speicher-Volumes (sofern vorhanden) führen. Das Anhalten der Instance kann auch dazu führen, dass die öffentliche IP-Adresse geändert wird, wenn keine elastische IP-Adresse zugeordnet ist.

**Führen Sie die `AWSSupport-ExecuteEC2Rescue`-Automation aus.**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie **Automatisierung ausführen**.

1. Wählen Sie im Abschnitt **Automation document (Automatisierungsdokument)** die Option **Owned by Amazon (Im Besitz von Amazon)** aus der Liste aus.

1. Wählen Sie in der Runbooks-Liste die Schaltfläche auf der Karte für `AWSSupport-ExecuteEC2Rescue` und wählen Sie danach **Weiter**.

1. Klicken Sie auf der Seite **Execute automation document (Automation-Dokument ausführen)** auf **Simple execution (Einfache Ausführung)**.

1. Überprüfen Sie im Abschnitt **Document details (Dokumentdetails)**, ob **Document version (Dokumentversion)** auf die höchste Standardversion gesetzt ist. Beispiel: **\$1DEFAULT** oder **3 (default) (3 (Standard))**.

1. Geben Sie im Abschnitt **Input Parameters** die folgenden Parameter an. 

   1. Geben Sie für **UnreachableInstanceId**die ID der nicht erreichbaren Instanz an. 

   1. (Optional) Geben Sie für **EC2RescueInstanceType**einen Instanztyp für die EC2 Rescue-Instanz an. Der Standard-Instance-Typ lautet `t2.medium`.

   1. Denn **AutomationAssumeRole**wenn Sie Rollen für diese Automatisierung mithilfe des weiter oben in diesem Thema beschriebenen CloudFormation Verfahrens erstellt haben, wählen Sie den ARN aus AssumeRole , den Sie in der CloudFormation Konsole erstellt haben.

   1. (Optional) Geben Sie für einen S3-Bucket an **LogDestination**, wenn Sie bei der Fehlerbehebung für Ihre Instance Protokolle auf Betriebssystemebene sammeln möchten. Protokolle werden automatisch in den angegebenen Bucket hochgeladen.

   1. Geben Sie für **SubnetId**ein Subnetz in einer vorhandenen VPC in derselben Availability Zone wie die nicht erreichbare Instance an. Standardmäßig erstellt Systems Manager eine neue VPC, aber Sie können ein Subnetz in einer vorhandenen VPC angeben, wenn Sie möchten.
**Anmerkung**  
Wenn Sie die Option zum Erstellen eines Buckets oder einer Subnetz-ID nicht sehen, überprüfen Sie, ob Sie die neueste **Default**-Version des Runbooks verwenden.

1. (Optional) Wenden Sie im Bereich „**Tags**“ ein oder mehrere name/value Tag-Schlüsselpaare an, um beispielsweise die Automatisierung leichter zu identifizieren. `Key=Purpose,Value=EC2Rescue`

1. Wählen Sie **Ausführen**.

Das Runbook erstellt ein Backup AMI als Teil der Automatisierung. Alle anderen von der Automatisierung erstellten Ressourcen werden automatisch gelöscht, aber dieses AMI verbleibt in Ihrem Konto. Der AMI-Name wird unter Verwendung der folgenden Konvention generiert:

Backup-AMI: AWSSupport-EC 2Rescue: *UnreachableInstanceId*

Sie finden dieses AMI in der Amazon EC2-Konsole, indem Sie nach der Automation-Ausführungs-ID suchen.

# Zurücksetzen von Passwörtern und SSH-Schlüsseln auf EC2-Instances
<a name="automation-ec2reset"></a>

Sie können das `AWSSupport-ResetAccess`-Runbook verwenden, um die Generierung des lokalen Administratorkennworts auf Amazon Elastic Compute Cloud (Amazon EC2)-Instances für Windows Server automatisch wieder zu aktivieren und einen neuen SSH-Schlüssel auf EC2-Instances für Linux zu generieren. Das `AWSSupport-ResetAccess` Runbook ist so konzipiert, dass es eine Kombination von AWS Systems Manager Aktionen, AWS CloudFormation Aktionen und AWS Lambda Funktionen ausführt, die die Schritte automatisieren, die normalerweise zum Zurücksetzen des lokalen Administratorkennworts erforderlich sind.

Mithilfe von Automation, einem im `AWSSupport-ResetAccess` Runbook enthaltenen Tool AWS Systems Manager, können Sie die folgenden Probleme lösen:

**Windows**

*Sie haben das EC2-Schlüsselpaar verloren*: Um dieses Problem zu lösen, können Sie das **AWSSupport-ResetAccess**Runbook verwenden, um eine kennwortfähige Instance AMI aus Ihrer aktuellen Instance zu erstellen, eine neue Instance über das AMI zu starten und ein key pair auszuwählen, das Ihnen gehört.

*Sie haben das lokale Administratorpasswort verloren*: Um dieses Problem zu beheben, können Sie das `AWSSupport-ResetAccess`-Runbook verwenden, um ein neues Passwort zu generieren, das Sie mit dem aktuellen EC2-Schlüsselpaar entschlüsseln können.

**Linux**

*Sie haben Ihr EC2-Schlüsselpaar verloren oder Sie haben den SSH-Zugriff auf die Instance mit einem Schlüssel konfiguriert, den Sie verloren haben*: Um dieses Problem zu beheben, können Sie das `AWSSupport-ResetAccess`-Runbook verwenden, um einen neuen SSH-Schlüssel für Ihre aktuelle Instance zu erstellen, mit dem Sie erneut eine Verbindung mit der Instance herstellen können.

**Anmerkung**  
Wenn Ihre EC2-Instance für für Systems Manager konfiguriert Windows Server ist, können Sie auch Ihr lokales Administratorkennwort mithilfe von EC2 Rescue und AWS Systems Manager Run Command zurücksetzen. Weitere Informationen finden Sie unter [Using EC2 Rescue for Windows Server with Systems Manager Run Command](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2rw-ssm.html) im *Amazon EC2 EC2-Benutzerhandbuch*.

**Ähnliche Informationen**  
[Herstellen einer Verbindung zu Ihrer Linux-Instance von Windows mithilfe von PuTTY](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html) im *Amazon-EC2-Benutzerhandbuch*

## Funktionsweise
<a name="automation-ec2reset-how"></a>

Die Fehlerbehebung bei einer Instance mit Automation und dem `AWSSupport-ResetAccess`-Runbook funktioniert folgendermaßen:
+ Sie geben die ID der Instance an und führen das Runbook aus.
+ Das System erstellt eine temporäre VPC und führt dann eine Reihe von Lambda-Funktionen aus, um die VPC zu konfigurieren.
+ Das System identifiziert ein Subnetz für Ihre temporäre VPC in derselben Availability Zone wie die ursprüngliche Instance.
+ Das System startet eine temporäre, SSM-fähige Helferobjekt-Instance.
+ Das System stoppt Ihre ursprüngliche Instance und erstellt einen Backup. Anschließend fügt es das ursprüngliche Stamm-Volume an die Helferobjekt-Instance an.
+ Das System verwendetRun Command, um EC2 Rescue auf der Helper-Instance auszuführen. Unter Windows ermöglicht EC2 Rescue die Passwortgenerierung für den lokalen Administrator mithilfe von EC2 Config oder EC2 Launch auf dem angehängten, ursprünglichen Root-Volume. Unter Linux generiert EC2 Rescue einen neuen SSH-Schlüssel, fügt ihn ein und speichert den privaten Schlüssel verschlüsselt unter. Parameter Store Wenn der Vorgang abgeschlossen ist, fügt EC2 Rescue das Root-Volume wieder der ursprünglichen Instanz hinzu.
+ Das System erstellt eine neue Amazon Machine Image (AMI) Ihrer Instance, nachdem die Kennwortgenerierung aktiviert wurde. Mit diesem AMI können Sie gegebenenfalls eine neue EC2-Instance erstellen und ein neues Schlüsselpaar zuordnen.
+ Das System startet die ursprüngliche Instance neu und beendet die temporäre Instance. Das System beendet ebenso die temporäre VPC und die Lambda-Funktionen, die zu Beginn der Automatisierung erstellt wurden.
+ **Windows**: Ihre Instance generiert ein neues Kennwort, das Sie unter Verwendung des aktuellen Schlüsselpaars, das der Instance zugewiesen ist, über die Amazon EC2-Konsole decodieren können.

  **Linux**: Sie können eine SSH-Verbindung zur Instance herstellen, indem Sie den SSH-Schlüssel verwenden, der im Systems Manager Parameter Store als **/ec2rl/openssh/ *instance ID* /key** gespeichert ist.

## Bevor Sie beginnen
<a name="automation-ec2reset-begin"></a>

Bevor Sie die folgende Automation ausführen, führen Sie die folgenden Schritte aus:
+ Kopieren Sie die Instance-ID der Instance, auf der Sie das Administratorpasswort zurücksetzen möchten. Sie legen diese ID im Verfahren fest.
+ Erfassen Sie optional die ID eines Subnetzes in derselben Availability Zone wie Ihre unerreichbare Instance. Die Rescue-Instanz wird in diesem Subnetz erstellt. EC2 Wenn Sie kein Subnetz angeben, erstellt Automation eine neue temporäre VPC in Ihrem. AWS-Konto Stellen Sie sicher, AWS-Konto dass mindestens eine VPC verfügbar ist. Standardmäßig können Sie fünf VPCs in einer Region erstellen. Wenn Sie VPCs in der Region bereits fünf erstellt haben, schlägt die Automatisierung fehl, ohne dass Änderungen an Ihrer Instanz vorgenommen werden. Weitere Informationen zu Amazon VPC-Kontingenten finden Sie unter [VPC und Subnetze](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-vpcs-subnets) im *Amazon VPC-Benutzerhandbuch*.
+ Optional können Sie eine AWS Identity and Access Management (IAM-) Rolle für die Automatisierung erstellen und angeben. Falls Sie diese Rolle nicht festlegen, wird die Automatisierung im Kontext des Benutzers ausgeführt, der die Automatisierung ausgeführt hat.

### Erteilen Sie AWSSupport-EC 2Rescue-Berechtigungen zur Durchführung von Aktionen auf Ihren Instances
<a name="automation-ec2reset-access"></a>

EC2Rescue benötigt die Erlaubnis, während der Automatisierung eine Reihe von Aktionen auf Ihren Instances durchzuführen. Diese Aktionen rufen die AWS Lambda Dienste IAM und Amazon EC2 auf, um sicher und geschützt zu versuchen, Probleme mit Ihren Instances zu beheben. Wenn Sie in Ihrer AWS-Konto und/oder Ihrer VPC über Administratorberechtigungen verfügen, können Sie die Automatisierung möglicherweise ausführen, ohne Berechtigungen zu konfigurieren, wie in diesem Abschnitt beschrieben. Falls Sie keine Administratorberechtigungen besitzen, müssen Sie oder ein Administrator Berechtigungen anhand einer der folgenden Optionen konfigurieren.
+ [Erteilen von Berechtigungen mithilfe von IAM-Richtlinien](#automation-ec2reset-access-iam)
+ [Erteilen von Berechtigungen mithilfe einer CloudFormation Vorlage](#automation-ec2reset-access-cfn)

#### Erteilen von Berechtigungen mithilfe von IAM-Richtlinien
<a name="automation-ec2reset-access-iam"></a>

Sie können entweder die folgende IAM-Richtlinie als eingebundene Richtlinie an Ihren Benutzer, Ihre Gruppe oder Ihre Rolle anfügen. Sie können aber auch eine neue verwaltete IAM-Richtlinie erstellen und diese an Ihren Benutzer, Ihre Gruppe oder Ihre Rolle anfügen. Weitere Informationen zum Hinzufügen einer eingebundenen Richtlinie zu Ihrem Benutzerkonto, Ihrer Gruppe oder Ihrer Rolle finden Sie unter [Verwenden von eingebundenen Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_inline-using.html). Weitere Informationen zum Erstellen einer neuen verwalteten Richtlinien finden Sie unter [Verwenden von eingebundenen Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html).

**Anmerkung**  
Wenn Sie eine neue IAM-verwaltete Richtlinie erstellen, müssen Sie ihr auch die verwaltete **Amazon SSMAutomation Role** Policy hinzufügen, damit Ihre Instances mit der Systems Manager Manager-API kommunizieren können.

**IAM-Richtlinie für `AWSSupport-ResetAccess`**

Ersetzen Sie es *account ID* durch Ihre eigenen Informationen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "lambda:InvokeFunction",
                "lambda:DeleteFunction",
                "lambda:GetFunction"
            ],
            "Resource": "arn:aws:lambda:*:111122223333:function:AWSSupport-EC2Rescue-*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "s3:GetObject",
                "s3:GetObjectVersion"
            ],
            "Resource": [
                "arn:aws:s3:::awssupport-ssm.*/*.template",
                "arn:aws:s3:::awssupport-ssm.*/*.zip"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreateInstanceProfile",
                "iam:GetRole",
                "iam:GetInstanceProfile",
                "iam:PutRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:PassRole",
                "iam:AddRoleToInstanceProfile",
                "iam:RemoveRoleFromInstanceProfile",
                "iam:DeleteRole",
                "iam:DeleteRolePolicy",
                "iam:DeleteInstanceProfile"
            ],
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSSupport-EC2Rescue-*",
                "arn:aws:iam::111122223333:instance-profile/AWSSupport-EC2Rescue-*"
            ],
            "Effect": "Allow"
        },
        {
            "Action": [
                "lambda:CreateFunction",
                "ec2:CreateVpc",
                "ec2:ModifyVpcAttribute",
                "ec2:DeleteVpc",
                "ec2:CreateInternetGateway",
                "ec2:AttachInternetGateway",
                "ec2:DetachInternetGateway",
                "ec2:DeleteInternetGateway",
                "ec2:CreateSubnet",
                "ec2:DeleteSubnet",
                "ec2:CreateRoute",
                "ec2:DeleteRoute",
                "ec2:CreateRouteTable",
                "ec2:AssociateRouteTable",
                "ec2:DisassociateRouteTable",
                "ec2:DeleteRouteTable",
                "ec2:CreateVpcEndpoint",
                "ec2:DeleteVpcEndpoints",
                "ec2:ModifyVpcEndpoint",
                "ec2:Describe*"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}
```

------

#### Erteilen von Berechtigungen mithilfe einer CloudFormation Vorlage
<a name="automation-ec2reset-access-cfn"></a>

CloudFormation automatisiert den Prozess der Erstellung von IAM-Rollen und -Richtlinien mithilfe einer vorkonfigurierten Vorlage. Gehen Sie wie folgt vor, um die erforderlichen IAM-Rollen und -Richtlinien für EC2 Rescue Automation zu erstellen, indem Sie CloudFormation

**So erstellen Sie die erforderlichen IAM-Rollen und -Richtlinien für Rescue EC2**

1. Laden Sie [https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip](https://docs.aws.amazon.com/systems-manager/latest/userguide/samples/AWSSupport-EC2RescueRole.zip) herunter und extrahieren Sie die `AWSSupport-EC2RescueRole.json`-Datei in ein Verzeichnis auf Ihrem lokalen Computer.

1. Wenn Sie AWS-Konto sich in einer speziellen Partition befinden, bearbeiten Sie die Vorlage, um die ARN-Werte in die für Ihre Partition zu ändern.

   Ändern Sie beispielsweise für `arn:aws` alle Fälle von in `arn:aws-cn`.

1. Melden Sie sich bei [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/) an AWS-Managementkonsole und öffnen Sie die CloudFormation Konsole.

1. Klicken Sie auf **Create stack (Stack erstellen)**, **With new resources (standard) (Mit neuen Ressourcen (Standard))**.

1. Wählen Sie auf der Seite **Create stack (Stack erstellen)** unter **Prerequisite - Prepare template (Voraussetzung – Vorlage vorbereiten)** die Option **Template is ready (Vorlage ist bereit)** aus.

1. Wählen Sie unter **Vorlage angeben** die Option **Vorlagendatei hochladen** aus.

1. Wählen Sie **Choose file** (Datei auswählen) aus, navigieren Sie dann zu der `AWSSupport-EC2RescueRole.json`-Datei aus dem Verzeichnis, in dem Sie sie extrahiert haben, und wählen Sie sie aus.

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

1. Geben Sie auf der Seite **Specify stack details (Stack-Details angeben)** für das Feld **Stack name (Stack-Name)** einen Namen ein, um diesen Stack zu identifizieren. Wählen Sie dann **Next (Weiter)** aus.

1. (Optional) Wenden Sie im Bereich „**Tags**“ ein oder mehrere name/value Tag-Schlüsselpaare auf den Stack an.

   Tags sind optionale Metadaten, die Sie einer Ressource zuweisen. Mithilfe von Tags können Sie eine Ressource unterschiedlich kategorisieren, beispielsweise nach Zweck, Besitzer oder Umgebung. Beispielsweise können Sie einen Stack kennzeichnen, um den Typ der ausgeführten Aufgaben, die Typen von Zielen oder anderen Ressourcen und die Umgebung zu identifizieren, in der er ausgeführt wird.

1. Wählen Sie **Next** (Weiter)

1. Überprüfen Sie auf der Seite **Überprüfen** die Stack-Details, scrollen Sie dann nach unten und wählen Sie die Option **Ich bestätige, dass CloudFormation möglicherweise IAM-Ressourcen erstellt** werden.

1. CloudFormation zeigt für einige Minuten den Status **CREATE\$1IN\$1PROGRESS** an. Nach dem Erstellen des Stacks ändert sich der Status in **CREATE\$1COMPLETE**. Sie können auch auf das Aktualisierungssymbol klicken, um den Status des Erstellungsprozesses zu überprüfen.

1. Wählen Sie in der Stackliste die Option neben dem Stack, den Sie gerade erstellt haben, und wählen Sie dann die Registerkarte **Outputs** (Ausgaben) aus.

1. Kopieren Sie den **Value** (Wert). Das ist der ARN von AssumeRole. Sie geben diesen ARN bei der Ausführung der Automation an. 

## Ausführen der Automation
<a name="automation-ec2reset-executing"></a>

Im folgenden Verfahren wird beschrieben, wie Sie mithilfe der AWS Systems Manager -Konsole das `AWSSupport-ResetAccess`-Runbook ausführen.

**Wichtig**  
Die folgende Automatisierung hält die Instance an. Das Anhalten der Instance kann zu Datenverlusten auf den angehängten Instance-Speicher-Volumes (sofern vorhanden) führen. Das Anhalten der Instance kann auch dazu führen, dass die öffentliche IP-Adresse geändert wird, wenn keine elastische IP-Adresse zugeordnet ist. Um diese Konfigurationsänderungen zu vermeiden, verwenden Sie Run Command, um den Zugriff zurückzusetzen. Weitere Informationen finden Sie unter [Using EC2 Rescue for Windows Server with Systems Manager Run Command](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2rw-ssm.html) im *Amazon EC2 EC2-Benutzerhandbuch*.

**So führen Sie die Automatisierung aus AWSSupport-ResetAccess**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Klicken Sie im Navigationsbereich auf **Automation**.

1. Wählen Sie **Automatisierung ausführen**.

1. Wählen Sie im Abschnitt **Automation document (Automatisierungsdokument)** die Option **Owned by Amazon (Im Besitz von Amazon)** aus der Liste aus.

1. Wählen Sie in der Runbooks-Liste die Schaltfläche auf der Karte für **AWSSupport-ResetAccess** und wählen Sie danach **Weiter**.

1. Klicken Sie auf der Seite **Execute automation document (Automation-Dokument ausführen)** auf **Simple execution (Einfache Ausführung)**.

1. Überprüfen Sie im Abschnitt **Document details (Dokumentdetails)**, ob **Document version (Dokumentversion)** auf die höchste Standardversion gesetzt ist. Beispiel: **\$1DEFAULT** oder **3 (default) (3 (Standard))**.

1. Geben Sie im Abschnitt **Input Parameters** die folgenden Parameter an. 

   1. Geben Sie für **InstanceID** die ID der nicht erreichbaren Instance an. 

   1. Geben Sie für **SubnetId**ein Subnetz in einer vorhandenen VPC in derselben Availability Zone wie die angegebene Instance an. Standardmäßig erstellt Systems Manager eine neue VPC, aber Sie können ein Subnetz in einer vorhandenen VPC angeben, wenn Sie möchten.
**Anmerkung**  
Wenn Sie die Option zur Angabe einer Subnetz-ID nicht sehen, überprüfen Sie, ob Sie die neueste **Default**-Version des Runbooks verwenden.

   1. Geben Sie für **EC2RescueInstanceType**einen Instanztyp für die EC2 Rescue-Instanz an. Der Standard-Instance-Typ lautet `t2.medium`.

   1. Denn **AssumeRole**wenn Sie Rollen für diese Automatisierung mithilfe des weiter oben in diesem Thema beschriebenen CloudFormation Verfahrens erstellt haben, geben Sie den AssumeRole ARN an, den Sie in der CloudFormation Konsole notiert haben.

1. (Optional) Wenden Sie im Bereich „**Tags**“ ein oder mehrere name/value Tag-Schlüsselpaare an, um beispielsweise die Automatisierung leichter zu identifizieren`Key=Purpose,Value=ResetAccess`.

1. Wählen Sie **Ausführen**.

1. Zur Überwachung des Fortschritts der Automatisierung wählen Sie die laufende Automatisierung und dann die Registerkarte **Steps** (Schritte). Wenn die Automatisierung abgeschlossen ist, wählen Sie die Registerkarte **Descriptions** (Beschreibungen) und dann **View output** (Ausgabe anzeigen), um die Ergebnisse anzuzeigen. Zum Anzeigen der Ausgabe der einzelnen Schritte wählen Sie die Registerkarte **Steps (Schritte)** und dann neben einem Schritt **View Outputs (Ausgabe anzeigen)** aus.

Das Runbook erstellt ein Backup AMI und ein kennwortaktiviertes AMI als Teil der Automatisierung. Alle anderen von der Automatisierung erstellten Ressourcen werden automatisch gelöscht, aber diese AMIs verbleiben in Ihrem Konto. Die AMIs-Namen werden unter Verwendung der folgenden Konvention generiert:
+ Backup AMI: `AWSSupport-EC2Rescue:InstanceID`
+ Passwort-fähiges AMI: AWSSupport-EC 2Rescue: Passwort-fähiges AMI von *Instance ID*

Sie finden diese AMIs, indem Sie nach der Automation-Ausführungs-ID suchen.

Für Linux wird der neue private SSH-Schlüssel für Ihre Instance verschlüsselt in Parameter Store gespeichert. **Der Parametername ist /ec2rl/openssh/ /key. *instance ID***

# Übergabe von Daten an Automation mithilfe von Eingangstransformatoren
<a name="automation-tutorial-eventbridge-input-transformers"></a>

Dieses AWS Systems Manager Automation-Tutorial zeigt, wie Sie die Input-Transformer-Funktion von Amazon verwenden EventBridge , um die Daten einer Amazon Elastic Compute Cloud (Amazon EC2) -Instance aus einem Ereignis zur Änderung `instance-id` des Instance-Status zu extrahieren. Automation ist ein Tool in AWS Systems Manager. Wir verwenden den Eingangstransformator, um diese Daten als `InstanceId`-Eingabeparameter an das `AWS-CreateImage`-Runbook zu übergeben. Die Regel wird ausgelöst, wenn eine beliebige Instance in den Status „`stopped`“ übergeht.

Weitere Informationen zur Arbeit mit Eingangstransformatoren finden Sie unter [Tutorial: Use Input Transformer to Customize What to the Event Target](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-input-transformer-tutorial.html) im * EventBridge Amazon-Benutzerhandbuch*.

**Bevor Sie beginnen**  
Stellen Sie sicher, dass Sie Ihrer Systems Manager Automation-Servicerolle EventBridge die erforderlichen Berechtigungen und Vertrauensrichtlinien für hinzugefügt haben. Weitere Informationen finden Sie unter [Überblick über die Verwaltung von Zugriffsberechtigungen für Ihre EventBridge Ressourcen](https://docs.aws.amazon.com/eventbridge/latest/userguide/iam-access-control-identity-based-eventbridge.html) im * EventBridge Amazon-Benutzerhandbuch*.

**So verwenden Sie Eingangstransformatoren mit Automatisierung**

1. Öffnen Sie die EventBridge Amazon-Konsole unter [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Wählen Sie im Navigationsbereich **Regeln** aus.

1. Wählen Sie **Regel erstellen** aus.

1. Geben Sie einen Namen und eine Beschreibung für die Regel ein.

   Eine Regel darf nicht denselben Namen wie eine andere Regel in derselben Region und auf demselben Event Bus haben.

1. Wählen Sie für **Event Bus** den Event Bus aus, den Sie dieser Regel zuordnen möchten. Wenn Sie möchten, dass diese Regel auf entsprechende Ereignisse reagiert, die von Ihnen selbst stammen AWS-Konto, wählen Sie **Standard** aus. Wenn ein AWS-Service in Ihrem Konto ein Ereignis ausgibt, wird es immer an den Standard-Event-Bus Ihres Kontos weitergeleitet.

1. Bei **Regeltyp** wählen Sie **Regel mit einem Ereignismuster** aus.

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

1. Wählen Sie als **Eventquelle AWS ** **Events oder EventBridge Partnerevents** aus.

1. Wählen Sie im Abschnitt **Ereignismuster** die Option **Musterformular verwenden** aus.

1. Als **Event source** (Ereignisquelle) wählen Sie **AWS -Services** aus.

1. Wählen Sie für **AWS -Service** **EC2** aus.

1. Wählen Sie in **Event Type (Ereignistyp)** **EC2 Instance State-change Notification (Benachrichtigung über die Statusänderung der EC2-Instance)** aus

1. Wählen Sie für **Ereignistyp-Spezifikation 1** die Option **Spezifische Zustände** und anschließend **Beendet** aus.

1. Wählen Sie für **Ereignistyp-Spezifikation 2** die Option **Beliebige Instanz** oder wählen Sie **Spezifische Instanz-ID (s)** IDs aus und geben Sie die zu überwachenden Instanzen ein.

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

1. Bei **Zieltypen** wählen Sie **AWS -Service** aus.

1. Für **Select target** (Ziel auswählen), wählen Sie **Systems Manager Automation**.

1. Wählen Sie für **Dokument** die Option **AWS- CreateImage**.

1. Wählen Sie im Abschnitt **Configure automation parameter(s)** (Automatisierungsparameter konfigurieren) **Input Transformer** (Eingangstransformator) aus.

1. Geben Sie für **Input path** (Eingabepfad) den Wert **\$1"instance":"\$1.detail.instance-id"\$1** ein.

1. Geben Sie für **Template** (Vorlage) den Wert **\$1"InstanceId":[<instance>]\$1** ein.

1. Wählen Sie für **Execution role** (Ausführungsrolle) die Option **Use existing role** (Vorhandene Rolle) verwenden und wählen Sie Ihre Automation-Servicerolle.

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

1. (Optional) Geben Sie ein oder mehrere Tags für die Regel ein. Weitere Informationen finden Sie unter [Tagging Your Amazon EventBridge Resources](https://docs.aws.amazon.com/eventbridge/latest/userguide/eventbridge-tagging.html) im * EventBridge Amazon-Benutzerhandbuch*.

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

1. Überprüfen Sie die Details der Regel und wählen Sie dann **Regel erstellen** aus.

# Erfahren Sie mehr über die von Systems Manager Automation zurückgegebenen Status
<a name="automation-statuses"></a>

AWS Systems Manager Die Automatisierung meldet detaillierte Statusinformationen über die verschiedenen Status, die eine Automatisierungsaktion oder ein Automatisierungsschritt beim Ausführen einer Automatisierung durchläuft, und für die gesamte Automatisierung. Automation ist ein Tool in AWS Systems Manager. Sie können Automatisierungsstatus mithilfe der folgenden Methoden überwachen:
+ Überwachen Sie den **Ausführungsstatus** in der Systems Manager Automation-Konsole.
+ Verwenden Sie Ihre bevorzugten Befehlszeilen-Tools. Für AWS Command Line Interface (AWS CLI) können Sie [describe-automation-step-executions](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-automation-step-executions.html)oder [get-automation-execution](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-automation-execution.html)verwenden. Für die AWS Tools for Windows PowerShell können Sie [Get- SSMAutomation StepExecution oder Get- SSMAutomation](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-SSMAutomationStepExecution.html) [Execution](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-SSMAutomationExecution.html) verwenden.
+ Konfigurieren Sie Amazon so EventBridge , dass es auf Änderungen des Aktions- oder Automatisierungsstatus reagiert.

Weitere Informationen zur Handhabung von Timeouts in einer Automatisierung finden Sie unter [Behandeln von Timeouts in Runbooks](automation-handling-timeouts.md).

## Informationen zu Automatisierungsstatus
<a name="automation-statuses-about"></a>

Automation meldet Statusdetails für einzelne Automatisierungsaktionen zusätzlich zur Gesamtautomatisierung.

Der Gesamtautomatisierungsstatus kann von dem Status, der von einer einzelnen Aktion oder einem Schritt gemeldet wird, wie in den folgenden Tabellen angegeben, abweichen.


**Detaillierter Status für Aktionen**  

| Status | Details | 
| --- | --- | 
| Ausstehend | Der Schritt wurde noch nicht ausgeführt. Wenn Ihre Automatisierung bedingte Aktionen verwendet, bleiben die Schritte in diesem Zustand, nachdem eine Automatisierung abgeschlossen wurde, wenn die Bedingung für die Ausführung des Schritts nicht erfüllt wurde. Schritte bleiben auch in diesem Zustand, wenn die Automatisierung abgebrochen wird, bevor der Schritt ausgeführt wird. | 
| InProgress | Der Schritt läuft. | 
| Ein Moment | Der Schritt wartet auf Eingabe. | 
| Herzlichen Glückwunsch | Der Schritt wurde erfolgreich ausgeführt. Diese ist ein Terminalstatus. | 
| TimedOut | Ein Schritt oder eine Genehmigung wurde nicht vor dem angegebenen Zeitüberschreitungszeitraum abgeschlossen. Diese ist ein Terminalstatus. | 
| Abbrechen | Der Schritt wird gerade angehalten, nachdem er von einem Anforderer abgebrochen wurde. | 
| Abgebrochen | Der Schritt wurde von einem Anforderer angehalten, bevor er abgeschlossen wurde. Diese ist ein Terminalstatus. | 
| Fehlgeschlagen |  Der Schritt wurde nicht erfolgreich abgeschlossen. Diese ist ein Terminalstatus.  | 
| Exited |  Nur durch die `aws:loop`-Aktion zurückgekehrt. Die Schleife wurde nicht vollständig abgeschlossen. Ein Schritt innerhalb der Schleife wurde mithilfe der Eigenschaften `nextStep`, `onCancel` oder `onFailure` zu einem Schritt außerhalb der Schleife verschoben.  | 


**Detaillierter Status für eine Automatisierung**  

| Status | Details | 
| --- | --- | 
| Ausstehend | Die Automatisierung hat noch nicht begonnen. | 
| InProgress | Die Automatisierung läuft. | 
| Ein Moment | Die Automatisierung wartet auf Eingabe. | 
| Herzlichen Glückwunsch | Die Automatisierung wurde erfolgreich abgeschlossen. Diese ist ein Terminalstatus. | 
| TimedOut | Ein Schritt oder eine Genehmigung wurde nicht vor dem angegebenen Zeitüberschreitungszeitraum abgeschlossen. Diese ist ein Terminalstatus. | 
| Abbrechen | Die Automatisierung wird gerade angehalten, nachdem sie von einem Anforderer abgebrochen wurde. | 
| Abgebrochen | Die Automatisierung wurde von einem Anforderer angehalten, bevor diese abgeschlossen wurde. Diese ist ein Terminalstatus. | 
| Fehlgeschlagen |  Die Automatisierung wurde nicht erfolgreich abgeschlossen. Diese ist ein Terminalstatus.  | 

# Fehlerbehebung für Systems Manager Automation.
<a name="automation-troubleshooting"></a>

Im Folgenden finden Sie Informationen zur Behandlung von Problemen mit AWS Systems Manager Automation, einem Tool in AWS Systems Manager. Dieses Thema enthält spezifische Aufgaben zum Beheben von Problemen basierend auf Automation-Fehlermeldungen.

**Topics**
+ [Häufige Automation-Fehler](#automation-trbl-common)
+ [Fehler beim Start der Automation-Ausführung](#automation-trbl-access)
+ [Ausführung gestartet, aber Status ist fehlgeschlagen](#automation-trbl-exstrt)
+ [Ausführung gestartet, aber mit Zeitüberschreitung](#automation-trbl-to)

## Häufige Automation-Fehler
<a name="automation-trbl-common"></a>

Dieser Abschnitt enthält Informationen zu gängigen Automation-Fehlern.

### VPC nicht definiert 400
<a name="automation-trbl-common-vpc"></a>

Standardmäßig erstellt das System eine temporäre Instance in der Standard-VPC (172.30.0.0/16), wenn Automation das Runbook `AWS-UpdateLinuxAmi` oder das Runbook `AWS-UpdateWindowsAmi` ausführt. Wenn Sie die Standard-VPC gelöscht haben, erhalten Sie den folgenden Fehler:

`VPC not defined 400`

Um dieses Problem zu lösen, müssen Sie einen Wert für den `SubnetId`-Eingabeparameter angeben.

## Fehler beim Start der Automation-Ausführung
<a name="automation-trbl-access"></a>

Eine Automatisierung kann mit einem Fehler „Zugriff verweigert“ oder einem ungültigen „Rolle übernehmen“ -Fehler fehlschlagen, wenn Sie Rollen und Richtlinien für die Automatisierung nicht ordnungsgemäß konfiguriert haben AWS Identity and Access Management (IAM).

### Zugriff verweigert
<a name="automation-trbl-access-denied"></a>

Die folgenden Beispiele beschreiben Situationen, in denen eine Automatisierung nicht gestartet werden konnte, weil der Zugriff verweigert wurde.

**Zugriff auf die Systems Manager API verweigert**  
**Fehlermeldung**: `User: user arn isn't authorized to perform: ssm:StartAutomationExecution on resource: document arn (Service: AWSSimpleSystemsManagement; Status Code: 400; Error Code: AccessDeniedException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)`
+ Mögliche Ursache 1: Der Benutzer, der versucht, die Automatisierung zu starten, verfügt nicht über die Berechtigung zum Aufrufen der `StartAutomationExecution`-API. Um dieses Problem zu beheben, fügen Sie die erforderliche IAM-Richtlinie dem Benutzer an, der zum Starten der Automatisierung verwendet wurde. 
+ Mögliche Ursache 2: Der Benutzer, der versucht, die Automatisierung zu starten, verfügt über die Berechtigung zum Aufrufen der `StartAutomationExecution`-API, jedoch nicht über die Berechtigung zum Aufrufen der API mithilfe des spezifischen Runbooks. Um dieses Problem zu beheben, fügen Sie die erforderliche IAM-Richtlinie dem Benutzer an, der zum Starten der Automatisierung verwendet wurde. 

**Der Zugriff wurde aufgrund fehlender PassRole Berechtigungen verweigert**  
**Fehlermeldung**: `User: user arn isn't authorized to perform: iam:PassRole on resource: automation assume role arn (Service: AWSSimpleSystemsManagement; Status Code: 400; Error Code: AccessDeniedException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)`

Der Benutzer, der versucht, die Automatisierung zu starten, hat keine PassRole Berechtigung für die Übernahme der Rolle. Um dieses Problem zu beheben, fügen Sie die iam: PassRole -Richtlinie der Rolle des Benutzers hinzu, der versucht, die Automatisierung zu starten. Weitere Informationen finden Sie unter [Aufgabe 2: Hängen Sie die iam: PassRole -Richtlinie an Ihre Automation-Rolle an](automation-setup-iam.md#attach-passrole-policy).

### Ungültige Übernahmerolle
<a name="automation-trbl-ar"></a>

Beim Ausführen einer Automatisierung wird eine Übernahmerolle entweder im Runbook bereitgestellt oder als Parameterwert für das Runbook weitergeleitet. Unterschiedliche Arten von Fehlern können auftreten, wenn die Übernahmerolle nicht angegeben oder nicht ordnungsgemäß konfiguriert ist.

**Falsch formatierte Übernahmerolle**  
**Fehlermeldung**: `The format of the supplied assume role ARN isn't valid.` Die Übernahmerolle ist falsch formatiert. Um dieses Problem zu lösen, stellen Sie sicher, dass beim Starten der Automatisierung eine gültige Übernahmerolle in Ihrem Runbook oder als Laufzeitparameter angegeben ist.

**Die Übernahmerolle kann nicht übernommen werden**  
**Fehlermeldung**: `The defined assume role is unable to be assumed. (Service: AWSSimpleSystemsManagement; Status Code: 400; Error Code: InvalidAutomationExecutionParametersException; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)`
+ Mögliche Ursache 1: Die Übernahmerolle ist nicht vorhanden. Sie lösen dieses Problem, indem Sie die Rolle erstellen. Weitere Informationen finden Sie unter [Einrichten der Automatisierung](automation-setup.md). Spezifische Details zum Erstellen dieser Rolle sind im folgenden Thema beschrieben: [Aufgabe 1: Erstellen einer Servicerolle für Automation](automation-setup-iam.md#create-service-role).
+ Mögliche Ursache 2: Die Rollenübernahme hat keine Vertrauensbeziehung zum Systems Manager-Service. Um dieses Problem zu lösen, erstellen Sie die Vertrauensbeziehung. Weitere Informationen finden Sie unter [Ich kann keine Rolle übernehmen](https://docs.aws.amazon.com/IAM/latest/UserGuide/troubleshoot_roles.html#troubleshoot_roles_cant-assume-role) im *IAM-Benutzerhandbuch*. 

## Ausführung gestartet, aber Status ist fehlgeschlagen
<a name="automation-trbl-exstrt"></a>

### Aktionsspezifische Fehler
<a name="automation-trbl-actspec"></a>

Runbooks enthalten Schritte und die Schritte werden der Reihe nach ausgeführt. Jeder Schritt ruft eine oder mehrere auf. AWS-Service APIs APIs Sie bestimmen die Eingaben, das Verhalten und die Ausgaben des Schritts. Es gibt mehrere Stellen, an denen ein Fehler kann dazu führen, dass ein Schritt fehlschlägt. Fehlermeldungen geben an, wann und wo ein Fehler aufgetreten ist.

Wenn Sie eine Fehlermeldung in der Amazon Elastic Compute Cloud (Amazon EC2)-Konsole sehen, wählen Sie den Link **View Outputs** (Ausgaben anzeigen) für den fehlgeschlagenen Link. Um eine Fehlermeldung von der zu sehen AWS CLI, rufen Sie auf `get-automation-execution` und suchen Sie nach dem `FailureMessage` Attribut in einem Fehler`StepExecution`.

In den folgenden Beispielen ist ein Schritt im Zusammenhang mit der `aws:runInstance`-Aktion fehlgeschlagen. Jedes Beispiel untersucht einen anderen Fehlertyp.

**Fehlendes Image**  
**Fehlermeldung**: `Automation Step Execution fails when it's launching the instance(s). Get Exception from RunInstances API of ec2 Service. Exception Message from RunInstances API: [The image id '[ami id]' doesn't exist (Service: AmazonEC2; Status Code: 400; Error Code: InvalidAMIID.NotFound; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)]. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.`

Die `aws:runInstances`-Aktion erhält eine Eingabe für eine nicht vorhandene `ImageId`. Um dieses Problem zu beheben, aktualisieren Sie das Runbook oder Parameterwerte mit der richtigen AMI-ID.

**Annahme, dass die Rollenrichtlinie über keine ausreichenden Berechtigungen verfügt**  
**Fehlermeldung**: `Automation Step Execution fails when it's launching the instance(s). Get Exception from RunInstances API of ec2 Service. Exception Message from RunInstances API: [You aren't authorized to perform this operation. Encoded authorization failure message: xxxxxxx (Service: AmazonEC2; Status Code: 403; Error Code: UnauthorizedOperation; Request ID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)]. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.`

Die Übernahmerolle verfügt nicht über ausreichende Berechtigungen zum Aufrufen der `RunInstances`-API auf EC2-Instances. Um dieses Problem zu beheben, fügen Sie der Übernahmerolle eine IAM-Richtlinie hinzu, die über die Berechtigung zum Aufrufen der `RunInstances`-API verfügt. Weitere Informationen hierzu finden Sie unter [Erstellen Sie die Servicerollen für Automation mithilfe der Konsole](automation-setup-iam.md).

**Unerwarteter Status**  
**Fehlermeldung**: `Step fails when it's verifying launched instance(s) are ready to be used. Instance i-xxxxxxxxx entered unexpected state: shutting-down. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.`
+ Mögliche Ursache 1: Es liegt ein Problem mit der Instance oder dem Amazon EC2-Service vor. Um dieses Problem zu beheben, melden Sie sich bei der Instance an oder überprüfen Sie das Instance-Systemprotokoll, um zu verstehen, warum die Instance mit dem Herunterfahren begonnen hat.
+ Mögliche Ursache 2: Das angegebene Benutzerdatenskript für die `aws:runInstances`-Aktion weist ein Problem oder eine falsche Syntax auf. Überprüfen Sie die Syntax des Benutzerdatenskripts. Stellen Sie außerdem sicher, dass die Benutzerdatenskripts die Instance nicht herunterfahren oder andere Skripts aufrufen, die die Instance herunterfahren.

**Aktionsspezifische Fehlerverweise**  
Sollte ein Schritt fehlschlagen, gibt die Fehlermeldung an, welcher Service aufgerufen wurde, als der Fehler aufgetreten ist. In der folgenden Tabelle sind die von der jeweiligen Aktion aufgerufenen Services aufgelistet. Die Tabelle enthält außerdem Links zu Informationen über jeden Service.


****  

| Action | AWS-Services durch diese Aktion aufgerufen | Weitere Informationen zu diesem Service | Inhalt der Fehlerbehebung | 
| --- | --- | --- | --- | 
|  `aws:runInstances`  |  Amazon EC2  |  [Amazon-EC2-Benutzerhandbuch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/)  |  [Fehlerbehebung bei EC2-Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-troubleshoot.html)  | 
|  `aws:changeInstanceState`  |  Amazon EC2  |  [Amazon-EC2-Benutzerhandbuch](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/)  |  [Fehlerbehebung bei EC2-Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-troubleshoot.html)  | 
|  `aws:runCommand`  |  Systems Manager  |   [AWS Systems Manager Run Command](run-command.md)  |   [Fehlerbehebung von Systems Manager Run Command](troubleshooting-remote-commands.md)  | 
|  `aws:createImage`  |  Amazon EC2  |  [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)  |  | 
|  `aws:createStack`  |  CloudFormation  |  [AWS CloudFormation Benutzerhandbuch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)  |  [Fehlersuche CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html)  | 
|  `aws:deleteStack`  |  CloudFormation  |  [AWS CloudFormation Benutzerhandbuch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)  |  [Fehlersuche CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html)  | 
|  `aws:deleteImage`  |  Amazon EC2  |  [Amazon Machine Images](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)  |  | 
|  `aws:copyImage`  |  Amazon EC2  |  [https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html)  |  | 
|  `aws:createTag`  |  Amazon EC2, Systems Manager  |  [EC2-Ressourcen und -Tags](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_Resources.html)  |  | 
|  `aws:invokeLambdaFunction`  |  AWS Lambda  |  [AWS Lambda Entwicklerhandbuch](https://docs.aws.amazon.com/lambda/latest/dg/)  |  [Problembehebung bei Lambda](https://docs.aws.amazon.com/lambda/latest/dg/monitoring-functions.html)  | 

### Interner Fehler bei Automation-Service
<a name="automation-trbl-err"></a>

**Fehlermeldung**: `Internal Server Error. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.`

Ein Problem mit dem Automation-Service verhindert, dass das angegebene Runbook korrekt ausgeführt wird. Um dieses Problem zu lösen, wenden Sie sich an AWS Support. Geben Sie die Ausführungs-ID und Kunden-ID an, wenn verfügbar.

## Ausführung gestartet, aber mit Zeitüberschreitung
<a name="automation-trbl-to"></a>

**Fehlermeldung**: `Step timed out while step is verifying launched instance(s) are ready to be used. Please refer to Automation Service Troubleshooting Guide for more diagnosis details.`

Für einen Schritt in der `aws:runInstances`-Aktion ist eine Zeitüberschreitung aufgetreten. Dies kann der Fall sein, wenn die Schrittaktion länger dauert als der angegebene Wert für `timeoutSeconds` im Schritt. Um dieses Problem zu lösen, geben Sie einen längeren Wert für den `timeoutSeconds`-Parameter in der `aws:runInstances`-Aktion an. Wenn das Problem dadurch nicht behoben werden kann, untersuchen Sie, warum der Schritt länger dauert als erwartet

# AWS Systems Manager Change Calendar
<a name="systems-manager-change-calendar"></a>

Change Calendar, ein Tool in AWS Systems Manager, ermöglicht es Ihnen, Datums- und Zeitbereiche einzurichten, in denen von Ihnen angegebene Aktionen (z. B. in [Systems Manager Automation-Runbooks](systems-manager-automation.md)) in Ihrem AWS-Konto ausgeführt werden können oder nicht. In Change Calendar werden diese Bereiche *Ereignisse* genannt. Wenn Sie einen Change Calendar-Eintrag erstellen, erstellen Sie ein [Systems Manager-Dokument](documents.md) vom Typ `ChangeCalendar`. In Change Calendar wird das Dokument als [iCalendar 2.0](https://icalendar.org/)-Daten im Klartextformat gespeichert. Ereignisse, die Sie dem Change Calendar-Eintrag hinzufügen, werden Teil des Dokuments. Um mit Change Calendar zu beginnen, öffnen Sie die [Systems-Manager-Konsole](https://console.aws.amazon.com//systems-manager/change-calendar). Wählen Sie im Navigationsbereich **Change Calendar** aus.

Sie können einen Kalender und seine Ereignisse in der Systems Manager Konsole erstellen. Sie können auch eine iCalendar (`.ics`)-Datei importieren, die Sie von einem unterstützten Drittanbieter-Kalenderanbieter exportiert haben, um dessen Ereignisse Ihrem Kalender hinzuzufügen. Zu den unterstützten Anbietern zählen Google Kalender, Microsoft Outlook und iCloud-Kalender.

Ein Change Calendar-Eintrag kann zwei Typen haben:

**`DEFAULT_OPEN`** oder "Standardmäßig geöffnet"  
Alle Aktionen können standardmäßig ausgeführt werden, außer während Kalenderereignissen. Während der Ereignisse lautet der Status eines `DEFAULT_OPEN`-Kalenders `CLOSED`. Die Ausführung von Ereignissen wird dann blockiert.

**`DEFAULT_CLOSED`** oder "Standardmäßig geschlossen"  
Alle Aktionen werden standardmäßig blockiert, außer während Kalenderereignissen. Während der Ereignisse lautet der Status eines `DEFAULT_CLOSED`-Kalenders `OPEN`. Aktionen dürfen ausgeführt werden.

Sie können festlegen, dass alle geplanten Automatisierungsworkflows, Wartungsfenster und State Manager-Zuordnungen automatisch zu einem Kalender hinzugefügt werden. Sie können außerdem jeden dieser einzelnen Typen aus der Kalenderanzeige entfernen. 

## An wen richtet sich Change Calendar?
<a name="systems-manager-change-calendar-who"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 
+ AWS Kunden, die die folgenden Aktionstypen ausführen:
  + Erstellen Sie Automatisierungs-Runbooks oder führen Sie sie aus.
  + Erstellen Sie Änderungsanforderungen in Change Manager.
  + Führen Sie die Wartungsfenster.
  + Erstellen Sie Assoziationen in State Manager.

  Automatisierung, Change ManagerMaintenance Windows, und State Manager sind alles Tools AWS Systems Manager. Durch die Integration dieser Tools in Change Calendar, können Sie diese Aktionstypen je nach dem aktuellen Status des Änderungskalenders, den Sie mit jedem einzelnen verknüpfen, zulassen oder blockieren.
+ Administratoren, die dafür verantwortlich sind, die Konfigurationen von verwalteten Systems-Manager-Knoten konsistent, stabil und funktionsfähig zu halten.

## Vorteile von Change Calendar
<a name="systems-manager-change-calendar-benefits"></a>

Im Folgenden sind einige Vorteile von Change Calendar aufgeführt.
+ **Änderungen überprüfen, bevor sie angewendet werden**

  Ein Change Calendar-Eintrag kann dazu beitragen, dass potenziell destruktive Änderungen in Ihrer Umgebung überprüft werden, bevor sie angewendet werden.
+ **Änderungen nur zu angemessenen Zeiten anwenden**

  Change Calendar-Einträge helfen, Ihre Umgebung während der Ereigniszeiten stabil zu halten. Beispielsweise können Sie einen Change Calendar-Eintrag erstellen, um Änderungen zu blockieren, wenn Sie eine hohe Nachfrage nach Ihren Ressourcen erwarten wird (z. B. während einer Konferenz oder einer öffentlichen Marketingaktion). Ein Kalendereintrag kann auch Änderungen blockieren, wenn Sie eine eingeschränkte Administratorunterstützung erwarten, z. B. während eines Urlaubs oder einer Urlaubszeit. Sie können einen Kalendereintrag verwenden, um Änderungen außer zu bestimmten Tages- oder Wochenzeiten zuzulassen, zu denen nur begrenzter Administratorsupport zur Fehlerbehebung bei fehlgeschlagenen Aktionen oder Bereitstellungen zur Verfügung steht.
+ **Aktuellen oder bevorstehenden Status des Kalenders abrufen**

  Sie können die Systems Manager `GetCalendarState`-API-Operation ausführen, um Ihnen den aktuellen Status des Kalenders, den Status zu einer bestimmten Zeit oder den nächsten geplanten Wechsel des Kalenderstatus anzuzeigen.
**Anmerkung**  
Die `GetCalendarState`-API hat ein Kontingent von 10 Anforderungen pro Sekunde. Informationen zu Systems-Manager-Kontingenten finden Sie unter [Systems Manager Service Quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) in der *Allgemeine Amazon Web Services-Referenz*.
+ 

**EventBridge Unterstützung**  
Dieses Systems Manager Manager-Tool wird in den EventBridge Amazon-Regeln als *Ereignistyp* unterstützt. Weitere Informationen finden Sie unter [Überwachung von Systems Manager Manager-Ereignissen mit Amazon EventBridge](monitoring-eventbridge-events.md) und [Referenz: EventBridge Amazon-Ereignistypen und -muster für Systems Manager](reference-eventbridge-events.md).

**Topics**
+ [An wen richtet sich Change Calendar?](#systems-manager-change-calendar-who)
+ [Vorteile von Change Calendar](#systems-manager-change-calendar-benefits)
+ [Einrichten von Change Calendar](systems-manager-change-calendar-prereqs.md)
+ [Arbeiten mit Change Calendar](systems-manager-change-calendar-working.md)
+ [Hinzufügen von Change Calendar-Abhängigkeiten zu Automation-Runbooks](systems-manager-change-calendar-automations.md)
+ [Fehlerbehebung für Change Calendar](change-calendar-troubleshooting.md)

# Einrichten von Change Calendar
<a name="systems-manager-change-calendar-prereqs"></a>

Führen Sie die folgenden Schritte ausChange Calendar, bevor Sie ein Tool in verwenden AWS Systems Manager.

## Installieren der neuesten Befehlszeilen-Tools
<a name="change-calendar-prereqs-tools"></a>

Installieren Sie die neuesten Befehlszeilen-Tools, um Statusinformationen über Kalender zu erhalten.


| Anforderung | Description | 
| --- | --- | 
|  AWS CLI  |  (Optional) Um mit AWS Command Line Interface (AWS CLI) Statusinformationen zu Kalendern abzurufen, installieren Sie die neueste Version von AWS CLI auf Ihrem lokalen Computer. Weitere Informationen zum Installieren oder Upgraden der CLI finden Sie unter [Installieren, Aktualisieren und Deinstallieren der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) im *AWS Command Line Interface -Benutzerhandbuch*.  | 
|  AWS -Tools für PowerShell  |  (Optional) Um die Tools für zum Abrufen von Statusinformationen PowerShell zu Kalendern zu verwenden, installieren Sie die neueste Version von Tools für PowerShell auf Ihrem lokalen Computer. Weitere Informationen zur Installation oder Aktualisierung der Tools für PowerShell finden Sie unter [Installieren von AWS -Tools für PowerShell im AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html) *Benutzerhandbuch*.  | 

## Berechtigungen einrichten
<a name="change-calendar-prereqs-permissions"></a>

Wenn Ihrem Benutzer, Ihrer Gruppe oder Rolle Administratorrechte zugewiesen sind, haben Sie vollen Zugriff auf Change Calendar. Wenn Sie nicht über Administratorrechte verfügen, muss Ihnen ein Administrator die Berechtigung erteilen, indem er entweder die von `AmazonSSMFullAccess` verwaltete Richtlinie zuweist oder eine Richtlinie, die Ihrem Benutzer, Ihrer Gruppe oder Ihrer Rolle die erforderlichen Berechtigungen erteilt, zuweist.

Die folgenden Berechtigungen sind erforderlich, um mit Change Calendar zu arbeiten.

**Change Calendar-Einträge**  
Um einen Change Calendar-Eintrag zu erstellen, zu aktualisieren oder zu löschen, einschließlich des Hinzufügens und Entfernens von Ereignissen aus dem Eintrag, muss eine Richtlinie, die Ihrem Benutzer, Ihrer Gruppe oder Ihrer Rolle zugeordnet ist, die folgenden Aktionen erlauben:  
+ `ssm:CreateDocument`
+ `ssm:DeleteDocument`
+ `ssm:DescribeDocument`
+ `ssm:DescribeDocumentPermission`
+ `ssm:GetCalendar`
+ `ssm:ListDocuments`
+ `ssm:ModifyDocumentPermission`
+ `ssm:PutCalendar`
+ `ssm:UpdateDocument`
+ `ssm:UpdateDocumentDefaultVersion`

**Kalenderstatus**  
Um Informationen über den aktuellen oder bevorstehenden Status des Kalenders zu erhalten, muss eine Richtlinie, die Ihrem Benutzer, Ihrer Gruppe oder Ihrer Rolle zugeordnet ist, die folgende Aktion erlauben:  
+ `ssm:GetCalendarState`

**Betriebliche Ereignisse**  
Um betriebliche Ereignisse wie Wartungsfenster, Zuordnungen und geplante Automatisierungen anzuzeigen, muss die Richtlinie, die Ihrem Benutzer, Ihrer Gruppe oder Ihrer Rolle zugeordnet ist, die folgenden Aktionen zulassen:  
+ `ssm:DescribeMaintenanceWindows`
+ `ssm:DescribeMaintenanceWindowExecution`
+ `ssm:DescribeAutomationExecutions`
+ `ssm:ListAssociations`

**Anmerkung**  
Change Calendar-Einträge, die anderen Konten als Ihrem gehören (d. h. von anderen erstellt wurden), sind schreibgeschützt, auch wenn sie mit Ihrem Konto geteilt werden. Wartungsfenster, State Manager-Verknüpfungen und Automatisierungen werden nicht gemeinsam genutzt.

# Arbeiten mit Change Calendar
<a name="systems-manager-change-calendar-working"></a>

Mit der AWS Systems Manager-Konsole können Sie Einträge in Change Calendar, einem Tool in AWS Systems Manager, hinzufügen, verwalten oder löschen. Sie können Ereignisse auch von unterstützten Drittanbieter-Kalenderanbietern importieren, indem Sie eine iCalendar (`.ics`) -Datei importieren, die Sie aus dem Quellkalender exportiert haben. Und Sie können die `GetCalendarState`-API-Operation oder den `get-calendar-state` AWS Command Line Interface (AWS CLI)-Befehl verwenden, um Informationen über den Status von Change Calendar zu einem bestimmten Zeitpunkt zu erhalten.

**Topics**
+ [Erstellen eines Änderungskalenders](change-calendar-create.md)
+ [Erstellen und Verwalten von Ereignissen in Change Calendar](change-calendar-events.md)
+ [Importieren und Verwalten von Ereignissen aus Drittanbieter-Kalendern](third-party-events.md)
+ [Aktualisieren eines Änderungskalenders](change-calendar-update.md)
+ [Freigeben eines Änderungskalenders](change-calendar-share.md)
+ [Einen Änderungskalender löschen](change-calendar-delete.md)
+ [Abrufen des Status eines Änderungskalenders](change-calendar-getstate.md)

# Erstellen eines Änderungskalenders
<a name="change-calendar-create"></a>

Wenn Sie einen Eintrag in Change Calendar erstellen, einem Tool in AWS Systems Manager, erstellen Sie ein Systems-Manager-Dokument (SSM-Dokument), das das `text`-Format verwendet.

**So erstellen Sie einen Änderungskalender**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Calendar** aus.

1. Wählen Sie **Create calendar (Kalender erstellen)**.

   –oder–

   Wenn die Homepage von **Change Calendar** zuerst geöffnet wird, wählen Sie **Create change calendar** (Änderungskalender erstellen) aus.

1. Geben Sie auf der Seite **Create calendar (Kalender erstellen)** unter **Calendar details (Kalenderdetails)** einen Namen für Ihren Kalendereintrag ein. Namen von Kalendereinträgen können Buchstaben, Zahlen, Punkte, Striche und Unterstriche enthalten. Der Name sollte spezifisch genug sein, um den Zweck des Kalendereintrags auf einen Blick zu erkennen. Ein Beispiel ist **support-off-hours**. Sie können diesen Namen nicht mehr aktualisieren, nachdem Sie den Kalendereintrag erstellt haben.

1. (Optional) Geben Sie unter **Description** (Beschreibung) eine Beschreibung für Ihren Kalendereintrag ein.

1. (Optional) Klicken Sie im Bereich **Importieren eines Kalanders** auf **Datei auswählen**, um eine iCalendar (`.ics`)-Datei auszuwählen, die Sie von einem Drittanbieter-Kalenderanbieter exportiert haben. Beim Importieren der Datei werden die Ereignisse zu Ihrem Kalender hinzugefügt.

   Zu den unterstützten Anbietern zählen Google Kalender, Microsoft Outlook und iCloud-Kalender.

   Weitere Informationen finden Sie unter [Importieren von Ereignissen von Drittanbietern-Kalenderanbietern](change-calendar-import.md).

1. Wählen Sie in **Calendar type (Kalendertyp)** eine der folgenden Optionen.
   + **Open by default (Standardmäßig geöffnet)** - der Kalender ist geöffnet (Automatisierungsaktionen können bis zum Start eines Ereignisses ausgeführt werden) und dann für die Dauer eines zugehörigen Ereignisses geschlossen.
   + **Closed by default (Standardmäßig geschlossen)** - der Kalender ist geschlossen (Automatisierungsaktionen können erst ab dem Beginn eines Ereignisses ausgeführt werden), aber für die Dauer eines zugehörigen Ereignisses geöffnet.

1. (Optional) Wählen Sie unter **Änderungsverwaltungsereignisse** die Option **Hinzufügen von Änderungsverwaltungsereignissen zum Kalender** aus. Mit dieser Auswahl werden alle geplanten Wartungsfenster, State Manager-Verknüpfungen, Automatisierungsworkflows und Change Manager-Änderungsanforderungen in Ihrer monatlichen Kalenderanzeige angezeigt.
**Tipp**  
Wenn Sie diese Ereignistypen später dauerhaft aus der Kalenderanzeige entfernen möchten, bearbeiten Sie den Kalender, deaktivieren Sie dieses Kontrollkästchen und wählen Sie dann **Speichern**.

1. Wählen Sie **Create calendar (Kalender erstellen)**.

   Nachdem der Kalendereintrag erstellt wurde, zeigt Systems Manager Ihren Kalendereintrag in der Liste **Change Calendar** an. Die Spalten zeigen die Kalenderversion und die AWS-Konto-Kontonummer des Kalenderbesitzers an. Ihr Kalendereintrag kann keine Aktionen verhindern oder zulassen, bis Sie mindestens ein Ereignis erstellt oder importiert haben. Informationen zum Erstellen eines Ereignisses finden Sie unter [Erstellen eines Change Calendar-Ereignisses](change-calendar-create-event.md). Weitere Informationen zum Importieren von Ereignissen finden Sie unter [Importieren von Ereignissen von Drittanbietern-Kalenderanbietern](change-calendar-import.md).

# Erstellen und Verwalten von Ereignissen in Change Calendar
<a name="change-calendar-events"></a>

Nachdem Sie einen Kalender in erstellt haben AWS Systems Manager Change Calendar, können Sie Ereignisse erstellen, aktualisieren und löschen, die in Ihrem geöffneten oder geschlossenen Kalender enthalten sind. Change Calendarist ein Tool in AWS Systems Manager.

**Tipp**  
Alternativ zum Erstellen von Ereignissen direkt in der Systems Manager-Konsole können Sie eine iCalendar (`.ics`)-Datei aus einer unterstützten Kalenderanwendung eines Drittanbieters importieren. Weitere Informationen finden Sie unter [Importieren und Verwalten von Ereignissen aus Drittanbieter-Kalendern](third-party-events.md).

**Topics**
+ [Erstellen eines Change Calendar-Ereignisses](change-calendar-create-event.md)
+ [Aktualisieren eines Change Calendar-Ereignisses](change-calendar-update-event.md)
+ [Löschen eines Change Calendar-Ereignisses](change-calendar-delete-event.md)

# Erstellen eines Change Calendar-Ereignisses
<a name="change-calendar-create-event"></a>

Wenn Sie einem Eintrag in Change Calendar, einem Tool in AWS Systems Manager, ein Ereignis hinzufügen, geben Sie einen Zeitraum an, in dem die Standardaktion des Kalendereintrags ausgesetzt wird. Wenn der Kalendereintragstyp beispielsweise standardmäßig geschlossen ist, ist der Kalender für Änderungen während der Ereignisse geöffnet. (Alternativ können Sie ein empfohlenes Ereignis erstellen, das im Kalender nur der Information dient.)

Derzeit können Sie ein Change Calendar-Ereignis nur über die Konsole erstellen. Ereignisse werden zum Change Calendar-Dokument hinzugefügt, das Sie beim Erstellen eines Change Calendar-Eintrags erstellen.

**Erstellen eines Change Calendar-Ereignisses**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Calendar** aus.

1. Wählen Sie in der Liste der Kalender den Namen des Kalendereintrags aus, dem Sie ein Ereignis hinzufügen möchten.

1. Wählen Sie auf der Detailseite des Kalendereintrags **Create event (Ereignis erstellen)**.

1. Geben Sie auf der Seite **Create scheduled event (Geplantes Ereignis erstellen)** unter **Event details (Ereignisdetails)** einen Anzeigenamen für Ihr Ereignis ein. Ereignisnamen können Buchstaben, Zahlen, Punkte, Bindestriche und Unterstriche enthalten. Der Name sollte spezifisch genug sein, um den Zweck des Ereignisses zu identifizieren. Ein Beispiel ist **nighttime-hours**.

1. Geben Sie unter **Description** (Beschreibung) eine Beschreibung für Ihr Ereignis ein. Beispiel, **The support team isn't available during these hours**.

1. (Optional) Wenn dieses Ereignis nur als visuelle Benachrichtigung oder Erinnerung dienen soll, aktivieren Sie das Kontrollkästchen **Advisory** (Empfehlung). Empfohlene Ereignisse haben im Kalender keine konkrete Funktion. Sie dienen nur zu Information für diejenigen, die den Kalender anzeigen.

1. Geben Sie unter **Event start date** (Startdatum des Ereignisses) einen Tag im Format `MM/DD/YYYY` ein oder wählen Sie einen Tag aus, an dem das Ereignis gestartet werden soll. Geben Sie außerdem eine Uhrzeit an dem angegebenen Tag im Format `hh:mm:ss` (Stunden, Minuten und Sekunden) ein, zu der das Ereignis starten soll.

1. Geben Sie unter **Event end date** (Enddatum des Ereignisses) einen Tag im Format `MM/DD/YYYY` ein oder wählen Sie einen Tag aus, an dem das Ereignis enden soll. Geben Sie außerdem eine Uhrzeit an dem angegebenen Tag im Format `hh:mm:ss` (Stunden, Minuten und Sekunden) ein, zu der das Ereignis enden soll.

1. Wählen Sie unter **Schedule time zone** (Zeitzone des Zeitplans) eine Zeitzone, die für die Start- und Endzeit des Ereignisses gilt. Sie können einen Teil des Stadtnamens oder den Zeitzonenunterschied zu Greenwich Mean Time (GMT) eingeben, um eine Zeitzone schneller zu finden. Die Standardeinstellung ist Coordinated Universal Time (UTC).

1. (Optional) Um ein täglich, wöchentlich oder monatlich wiederkehrendes Ereignis zu erstellen, aktivieren Sie **Recurrence** (Wiederholung). Geben Sie dann die Häufigkeit und das optionale Enddatum der Wiederholung an.

1. Wählen Sie **Create scheduled event (Zeitgesteuertes Ereignis erstellen)**. Das neue Ereignis wird zu Ihrem Kalendereintrag hinzugefügt und auf der Registerkarte **Events (Ereignisse)** der Detailseite des Kalendereintrags angezeigt.

# Aktualisieren eines Change Calendar-Ereignisses
<a name="change-calendar-update-event"></a>

Gehen Sie wie folgt vor, um ein Change Calendar-Ereignis in der AWS Systems Manager-Konsole zu aktualisieren. Change Calendar ist ein Tool in AWS Systems Manager.

**Aktualisieren eines Change Calendar-Ereignisses**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Calendar** aus.

1. Wählen Sie in der Liste der Kalender den Namen des Kalendereintrags, für den Sie ein Ereignis bearbeiten möchten.

1. Wählen Sie auf der Detailseite des Kalendereintrags **Events (Ereignisse)**.

1. Wählen Sie auf der Kalenderseite das Ereignis, das Sie bearbeiten möchten.
**Tipp**  
Verwenden Sie die Schaltflächen oben links, um ein Jahr oder einen Monat zurück oder vorwärts zu gehen. Ändern Sie bei Bedarf die Zeitzone, indem Sie die richtige Zeitzone in der Liste oben rechts auswählen.

1. Wählen Sie unter **Event details** (Ereignisdetails) die Option **Edit** (Bearbeiten) aus.

   Um den Namen und die Beschreibung des Ereignisses zu ändern, ergänzen oder ersetzen Sie den aktuellen Text.

1. Um den Wert **Event start date** (Startdatum des Ereignisses) zu ändern, wählen Sie das aktuelle Startdatum und dann ein neues Datum im Kalender aus. Um die Startzeit zu ändern, wählen Sie die aktuelle Startzeit und dann eine neue Uhrzeit in der Liste aus.

1. Um den Wert **Event end date** (Enddatum des Ereignisses) zu ändern, wählen Sie das aktuelle Enddatum und dann ein neues Datum im Kalender aus. Um die Endzeit zu ändern, wählen Sie die aktuelle Endzeit und dann eine neue Uhrzeit in der Liste aus.

1. Um den Wert **Schedule time zone** (Zeitzone des Zeitplans) zu ändern, wählen Sie eine Zeitzone aus, die für die Start- und Endzeit des Ereignisses gelten soll. Sie können einen Teil des Stadtnamens oder den Zeitzonenunterschied zu Greenwich Mean Time (GMT) eingeben, um eine Zeitzone schneller zu finden. Die Standardeinstellung ist Coordinated Universal Time (UTC).

1. (Optional) Wenn dieses Ereignis nur als visuelle Benachrichtigung oder Erinnerung dienen soll, aktivieren Sie das Kontrollkästchen **Advisory** (Empfehlung). Empfohlene Ereignisse haben im Kalender keine konkrete Funktion. Sie dienen nur zu Information für diejenigen, die den Kalender anzeigen.

1. Wählen Sie **Speichern**. Ihre Änderungen werden auf der Registerkarte **Events (Ereignisse)** der Detailseite des Kalendereintrags angezeigt. Wählen Sie das Ereignis, das Sie aktualisiert haben, um Ihre Änderungen anzuzeigen.

# Löschen eines Change Calendar-Ereignisses
<a name="change-calendar-delete-event"></a>

Sie können jeweils ein Ereignis mithilfe der AWS-Managementkonsole in Change Calendar löschen, einem Tool in AWS Systems Manager. 

**Tipp**  
Wenn Sie bei der Erstellung des Kalenders die Option **Hinzufügen von Änderungsverwaltungsereignissen zum Kalender** gewählt haben, können Sie Folgendes tun:  
Um einen Typ eines Änderungsverwaltungsereignisses *vorübergehend* aus der Kalenderanzeige auszublenden, wählen Sie für den Typ das **X** oben in der Monatsvorschau.
Um diese Typen *dauerhaft* aus der Kalenderanzeige zu entfernen, bearbeiten Sie den Kalender, deaktivieren Sie das Kontrollkästchen **Hinzufügen von Änderungsverwaltungsereignissen zum Kalender** und wählen Sie dann **Speichern**. Wenn Sie Typen aus der Kalenderanzeige entfernen, werden sie nicht aus Ihrem Konto gelöscht.

**Löschen eines Change Calendar-Ereignisses**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Calendar** aus.

1. Wählen Sie in der Liste der Kalender den Namen des Kalendereintrags aus, aus dem Sie ein Ereignis löschen möchten.

1. Wählen Sie auf der Detailseite des Kalendereintrags **Events (Ereignisse)**.

1. Wählen Sie auf der Kalenderseite das Ereignis, das Sie löschen möchten.
**Tipp**  
Verwenden Sie die Schaltflächen oben links, um den Kalender um ein Jahr oder einen Monat zurück oder vorwärts zu verschieben. Ändern Sie bei Bedarf die Zeitzone, indem Sie die richtige Zeitzone in der Liste oben rechts auswählen.

1. Wählen Sie auf der Seite **Event details (Ereignisdetails(** die Option **Delete (Löschen)**. Wenn Sie aufgefordert werden, das Löschen des Ereignisses zu bestätigen, wählen Sie **Confirm** (Bestätigen) aus.

# Importieren und Verwalten von Ereignissen aus Drittanbieter-Kalendern
<a name="third-party-events"></a>

Als Alternative zum Erstellen von Ereignissen direkt in der AWS Systems Manager Konsole können Sie eine iCalendar (`.ics`) -Datei aus einer unterstützten Kalenderanwendung eines Drittanbieters importieren. Der Kalender kann sowohl importierte Ereignisse als auch Ereignisse enthalten, die Sie in Change Calendar erstellen (ein Tool von AWS Systems Manager).

**Bevor Sie beginnen**  
Bevor Sie versuchen, eine Kalenderdatei zu importieren, überprüfen Sie die folgenden Anforderungen und Einschränkungen:

Kalenderdateiformat  
Nur gültige iCalendar-Dateien (`.ics`) werden unterstützt.

Unterstützte Kalenderanbieter  
Nur `.ics`-Dateien, die von den folgenden Drittanbieter-Kalenderanbietern exportiert wurden, werden unterstützt:  
+ Google Calendar ([Exportanweisungen](https://support.google.com/calendar/answer/37111))
+ Microsoft Outlook ([Exportanweisungen](https://support.microsoft.com/en-us/office/export-an-outlook-calendar-to-google-calendar-662fa3bb-0794-4b18-add8-9968b665f4e6))
+ iCloud Calendar ([Exportanweisungen](https://support.apple.com/guide/calendar/import-or-export-calendars-icl1023/mac))

Dateigröße  
Sie können eine beliebige Anzahl gültiger `.ics`-Dateien importieren. Die Gesamtgröße aller importierten Dateien für jeden Kalender darf jedoch 64 KB nicht überschreiten.  
Zum Minimieren der Größe der `.ics`-Datei, stellen Sie sicher, dass Sie nur grundlegende Details zu Ihren Kalendereinträgen exportieren. Verringern Sie bei Bedarf die Länge des Zeitraums, den Sie exportieren.

Zeitzone  
Neben einem Kalendernamen, einem Kalenderanbieter und mindestens einem Ereignis sollte Ihre exportierte `.ics`-Datei außerdem die Zeitzone für den Kalender angeben. Wenn dies nicht der Fall ist oder ein Problem bei der Identifizierung der Zeitzone auftritt, werden Sie nach dem Importieren der Datei aufgefordert, eine anzugeben.

Wiederkehrende Ereigniseinschränkung  
Ihre exportierte `.ics`-Datei kann wiederkehrende Ereignisse enthalten. Wenn jedoch ein oder mehrere Vorkommen eines wiederkehrenden Ereignisses im Quellkalender gelöscht wurden, schlägt der Import fehl.

**Topics**
+ [Importieren von Ereignissen von Drittanbietern-Kalenderanbietern](change-calendar-import.md)
+ [Aktualisieren aller Ereignisse von einem Drittanbieter-Kalenderanbieter](change-calendar-import-add-remove.md)
+ [Löschen aller Ereignisse, die aus einem Kalender eines Drittanbieters importiert wurden](change-calendar-delete-ics.md)

# Importieren von Ereignissen von Drittanbietern-Kalenderanbietern
<a name="change-calendar-import"></a>

Gehen Sie wie folgt vor, um eine iCalendar (`.ics`)-Datei aus einer unterstützten Kalenderanwendung eines Drittanbieters zu importieren. Die in der Datei enthaltenen Ereignisse werden in die Regeln für Ihren offenen oder geschlossenen Kalender integriert. Sie können eine Datei in einen neuen Kalender importieren, den Sie mit Change Calendar erstellen (ein Tool in AWS Systems Manager), oder in einen vorhandenen Kalender.

Nach dem Importieren der `.ics`-Datei, können Sie einzelne Ereignisse aus dieser mit der Change Calendar-Schnittstelle entfernen. Weitere Informationen finden Sie unter [Löschen eines Change Calendar-Ereignisses](change-calendar-delete-event.md). Sie können auch alle Ereignisse aus dem Quellkalender löschen, indem Sie die `.ics`-Datei löschen. Weitere Informationen finden Sie unter [Löschen aller Ereignisse, die aus einem Kalender eines Drittanbieters importiert wurden](change-calendar-delete-ics.md).

**So importieren Sie Ereignisse von Drittanbietern-Kalenderanbietern**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Calendar** aus.

1. Um mit einem neuen Kalender zu beginnen, wählen Sie **Kalender erstellen**. Wählen Sie im Bereich **Kalender Importieren** **Datei auswählen**. Informationen zu anderen Schritten zum Erstellen eines neuen Kalenders finden Sie unter [Erstellen eines Änderungskalenders](change-calendar-create.md).

   –oder–

   Um Ereignisse von Drittanbietern in einen vorhandenen Kalender zu importieren, wählen Sie den Namen eines vorhandenen Kalenders aus, um diesen zu öffnen.

1. Wählen Sie **Actions, Edit** (Aktionen, Bearbeiten) und dann im Bereich **Import calendar** (Kalender importieren) die Option **Choose file** (Datei auswählen) aus.

1. Navigieren Sie zu der exportierten `.ics`-Datei auf Ihrem lokalen Computer und wählen Sie sie aus.

1. Wenn Sie dazu aufgefordert werden, wählen Sie **Select a time zone (Zeitzone auswählen)**, um zu bestimmen, welche Zeitzone für den Kalender gelten soll.

1. Wählen Sie **Speichern**.

# Aktualisieren aller Ereignisse von einem Drittanbieter-Kalenderanbieter
<a name="change-calendar-import-add-remove"></a>

Wenn mehrere Ereignisse zu Ihrem Quellkalender hinzugefügt oder aus diesem entfernt werden, nachdem Sie dessen iCalendar `.ics`-Datei importiert haben, können Sie diese Änderungen in Change Calendar widerspiegeln. Exportieren Sie zunächst den Quellkalender neu und importieren Sie die neue Datei in Change Calendar, ein Tool in AWS Systems Manager. Ereignisse in Ihrem Änderungskalender werden aktualisiert, um den Inhalt der neueren Datei wiederzugeben.

**So aktualisieren Sie alle Ereignisse eines Drittanbieter-Kalenderanbieters**

1. Fügen Sie in Ihrem Kalender eines Drittanbieters Ereignisse hinzu oder entfernen Sie sie, wenn Sie möchten, dass sie in Change Calendar wiedergegeben werden, und exportieren Sie den Kalender dann erneut in eine neue `.ics`-Datei.

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Calendar** aus.

1. Wählen Sie aus der Liste der Kalender den Kalendernamen aus der Liste aus.

1. Wählen Sie **Datei auswählen**, navigieren Sie zu der `.ics`-Ersatzdatei und wählen Sie diese aus.

1. Als Reaktion auf die Benachrichtigung über das Überschreiben der vorhandenen Datei wählen Sie **Confirm (Bestätigen)**.

# Löschen aller Ereignisse, die aus einem Kalender eines Drittanbieters importiert wurden
<a name="change-calendar-delete-ics"></a>

Wenn Sie nicht mehr möchten, dass eines der Ereignisse, das Sie von einem Drittanbieter importiert haben, in Ihren Kalender aufgenommen wird, können Sie die importierte iCalendar `.ics`-Datei löschen.

**So löschen Sie alle Ereignisse, die aus einem Kalender eines Drittanbieters importiert wurden**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Calendar** aus.

1. Wählen Sie aus der Liste der Kalender den Kalendernamen aus der Liste aus.

1. Suchen Sie den Namen des importierten Kalenders im Bereich **Kalender importieren**, unter **Meine importierten Kalender** und wählen Sie die Schaltfläche **X** in seiner Registerkarte.

1. Wählen Sie **Speichern**.

# Aktualisieren eines Änderungskalenders
<a name="change-calendar-update"></a>

Sie können die Beschreibung eines Änderungskalenders aktualisieren, aber nicht seinen Namen. Obwohl Sie den Standardstatus eines Kalenders ändern können, beachten Sie, dass dies das Verhalten von Änderungsaktionen bei Ereignissen, die mit dem Kalender verbunden sind, umkehrt. Wenn Sie z. B. den Status eines Kalenders von **Standardmäßig geöffnet** auf **Standardmäßig geschlossen** ändern, können unerwünschte Änderungen während der Ereigniszeiträume vorgenommen werden, wenn die Benutzer, die die verknüpften Ereignisse erstellt haben, keine Änderungen erwarten.

Wenn Sie einen Änderungskalender aktualisieren, bearbeiten Sie das Change Calendar-Dokument, das Sie beim Erstellen des Eintrags erstellt haben. Change Calendar ist ein Tool in AWS Systems Manager.

**So aktualisieren Sie einen Änderungskalender**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Calendar** aus.

1. Wählen Sie in der Liste der Kalender den Namen des Kalenders aus, den Sie aktualisieren möchten.

1. Wählen Sie auf der Detailseite des Kalenders **Actions, Edit** (Aktionen, Bearbeiten) aus.

1. In **Description (Beschreibung)** können Sie den Beschreibungstext ändern. Sie können den Namen eines Änderungskalenders nicht bearbeiten.

1. Um den Kalenderstatus zu ändern, wählen Sie in **Calendar type (Kalendertyp)** einen anderen Wert. Beachten Sie, dass dies das Verhalten von Änderungsaktionen bei Ereignissen, die mit dem Kalender verbunden sind, umkehrt. Bevor Sie den Kalendertyp ändern, sollten Sie sich bei anderen Change Calendar-Benutzern vergewissern, dass die Änderung des Kalendertyps keine unerwünschten Änderungen während der von ihnen erstellten Ereignisse zulässt.
   + **Open by default (Standardmäßig geöffnet)** - Der Kalender ist geöffnet (Automatisierungsaktionen können bis zum Start eines Ereignisses ausgeführt werden) und dann für die Dauer eines zugehörigen Ereignisses geschlossen.
   + **Closed by default (Standardmäßig geschlossen)** - Der Kalender ist geschlossen (Automatisierungsaktionen können erst ab dem Beginn eines Ereignisses ausgeführt werden), aber für die Dauer eines zugehörigen Ereignisses geöffnet.

1. Wählen Sie **Speichern**.

   Ihr Kalender kann keine Aktionen verhindern oder zulassen, bis Sie mindestens ein Ereignis hinzufügen. Weitere Informationen zum Hinzufügen eines Ereignisses finden Sie unter [Erstellen eines Change Calendar-Ereignisses](change-calendar-create-event.md).

# Freigeben eines Änderungskalenders
<a name="change-calendar-share"></a>

Sie können einen Kalender in Change Calendar, ein Tool in AWS Systems Manager, über die AWS Systems Manager-Konsole für andere AWS-Konten freigeben. Wenn Sie einen Kalender freigeben, ist der Kalender für Benutzer im freigegebenen Konto schreibgeschützt. Wartungsfenster, State Manager-Verknüpfungen und Automatisierungen werden nicht gemeinsam genutzt.

**So geben Sie einen Änderungskalender frei**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Calendar** aus.

1. Wählen Sie in der Liste der Kalender den Namen des Kalenders aus, den Sie freigeben möchten.

1. Wählen Sie auf der Detailseite des Kalenders die Registerkarte **Sharing** (Freigabe) aus.

1. Wählen Sie **Actions, Share** (Aktionen, Freigeben) aus.

1. Geben Sie in **Share calendar (Kalender freigeben)** für **Account ID (Kontonummer)** die ID-Nummer eines gültigen AWS-Konto ein und wählen Sie dann **Share (Freigeben)**.

   Benutzer des freigegebenen genutzten Kontos können den Änderungskalender lesen, aber keine Änderungen vornehmen.

# Einen Änderungskalender löschen
<a name="change-calendar-delete"></a>

Sie können einen Kalender in Change Calendar löschen, einem Tool in AWS Systems Manager, indem Sie entweder die Systems-Manager-Konsole oder die AWS Command Line Interface (AWS CLI) verwenden. Durch das Löschen eines Änderungskalenders werden alle zugehörigen Ereignisse gelöscht.

**So löschen Sie einen Änderungskalender**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Calendar** aus.

1. Wählen Sie in der Liste der Kalender den Namen des Kalenders aus, den Sie löschen möchten.

1. Wählen Sie auf der Detailseite des Kalenders **Actions, Delete** (Aktionen, Löschen) aus. Wenn Sie aufgefordert werden, zu bestätigen, dass Sie den Kalender löschen möchten, wählen Sie **Delete (Löschen)**.

# Abrufen des Status eines Änderungskalenders
<a name="change-calendar-getstate"></a>

Sie können den Gesamtzustand eines Kalenders oder den Zustand eines Kalenders zu einem bestimmten Zeitpunkt in Change Calendar abrufen, einem Tool in AWS Systems Manager. Sie können auch den nächsten Zeitpunkt anzeigen, an dem der Kalenderzustand von `OPEN` auf `CLOSED` oder umgekehrt wechselt.

**Anmerkung**  
Informationen zur Integration Change Calendar mit Amazon EventBridge zur automatisierten Überwachung von Änderungen des Kalenderstatus finden Sie unter[Change CalendarIntegration mit Amazon EventBridge](monitoring-systems-manager-event-examples.md#change-calendar-eventbridge-integration). EventBridge Die Integration bietet ereignisgesteuerte Benachrichtigungen, wenn sich der Kalenderstatus ändert, und ergänzt so den abfragebasierten Ansatz der API-Aktion. `GetCalendarState`

Diese Aufgabe können Sie nur mit der `GetCalendarState`-API-Operation ausführen. Das Verfahren in diesem Abschnitt verwendet das (). AWS Command Line Interface AWS CLI

**So rufen Sie den Status eines Änderungskalenders ab**
+ Führen Sie den folgenden Befehl aus, um den Status eines oder mehrerer Kalender zu einer bestimmten Zeit anzuzeigen. Der Parameter `--calendar-names` ist erforderlich, `--at-time` ist jedoch optional. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

  ```
  aws ssm get-calendar-state \
      --calendar-names "Calendar_name_or_document_ARN_1" "Calendar_name_or_document_ARN_2" \
      --at-time "ISO_8601_time_format"
  ```

  Im Folgenden wird ein -Beispiel gezeigt.

  ```
  aws ssm get-calendar-state \
      --calendar-names "arn:aws:ssm:us-east-2:123456789012:document/MyChangeCalendarDocument" "arn:aws:ssm:us-east-2:123456789012:document/SupportOffHours" \
      --at-time "2020-07-30T11:05:14-0700"
  ```

------
#### [ Windows ]

  ```
  aws ssm get-calendar-state ^
      --calendar-names "Calendar_name_or_document_ARN_1" "Calendar_name_or_document_ARN_2" ^
      --at-time "ISO_8601_time_format"
  ```

  Im Folgenden wird ein -Beispiel gezeigt.

  ```
  aws ssm get-calendar-state ^
      --calendar-names "arn:aws:ssm:us-east-2:123456789012:document/MyChangeCalendarDocument" "arn:aws:ssm:us-east-2:123456789012:document/SupportOffHours" ^
      --at-time "2020-07-30T11:05:14-0700"
  ```

------

  Der Befehl gibt Informationen wie die folgenden zurück.

  ```
  {
      "State": "OPEN",
      "AtTime": "2020-07-30T16:18:18Z",
      "NextTransitionTime": "2020-07-31T00:00:00Z"
  }
  ```

  Die Ergebnisse zeigen den Status des Kalenders (unabhängig davon, ob der Kalender vom Typ `DEFAULT_OPEN` oder `DEFAULT_CLOSED` ist) für die angegebenen Kalendereinträge, die Ihrem Konto gehören oder für dieses freigegeben sind, zu dem Zeitpunkt an, der als Wert von `--at-time` angegeben ist, sowie den Zeitpunkt des nächsten Übergangs. Wenn Sie den Parameter `--at-time` nicht hinzufügen, wird die aktuelle Zeit verwendet.
**Anmerkung**  
Wenn Sie mehr als einen Kalender in einer Anforderung angeben, gibt der Befehl den Status von `OPEN` nur, wenn alle Kalender in der Anforderung geöffnet sind. Wenn ein oder mehrere Kalender in der Anforderung geschlossen sind, lautet der zurückgegebene Status `CLOSED`.

# Hinzufügen von Change Calendar-Abhängigkeiten zu Automation-Runbooks
<a name="systems-manager-change-calendar-automations"></a>

Damit Automatisierungsaktionen eingehalten werden Change Calendar AWS Systems Manager, fügen Sie einem Tool in einem Automatisierungs-Runbook einen Schritt hinzu, der die [`aws:assertAwsResourceProperty`](automation-action-assertAwsResourceProperty.md)Aktion verwendet. Konfigurieren Sie die Aktion zur Ausführung von `GetCalendarState`, um zu überprüfen, ob sich ein bestimmter Kalendereintrag in dem gewünschten Zustand befindet (`OPEN` oder `CLOSED`). Das Automation-Runbook darf nur dann mit dem nächsten Schritt fortfahren, wenn der Kalenderstatus `OPEN` ist. Im Folgenden wird ein YAML-basierter Beispielausschnitt eines Automation-Runbooks gezeigt, das nicht zum nächsten Schritt `LaunchInstance` weitergehen kann, es sei denn, der Kalenderstatus entspricht `OPEN` (dem in `DesiredValues` festgelegten Status).

Im Folgenden wird ein -Beispiel gezeigt.

```
mainSteps:
  - name: MyCheckCalendarStateStep
    action: 'aws:assertAwsResourceProperty'
    inputs:
      Service: ssm
      Api: GetCalendarState
      CalendarNames: ["arn:aws:ssm:us-east-2:123456789012:document/SaleDays"]
      PropertySelector: '$.State'
      DesiredValues:
      - OPEN
    description: "Use GetCalendarState to determine whether a calendar is open or closed."
    nextStep: LaunchInstance
  - name: LaunchInstance
    action: 'aws:executeScript'
    inputs:
      Runtime: python3.11 
...
```

# Fehlerbehebung für Change Calendar
<a name="change-calendar-troubleshooting"></a>

Im Folgenden finden Sie Informationen zur Behandlung von Problemen mit Change Calendar, einem Tool in AWS Systems Manager.

**Topics**
+ [Fehler ‚Calendar import failed‘ (Importieren des Kalenders fehlgeschlagen)](#change-manager-troubleshooting-1)

## Fehler ‚Calendar import failed‘ (Importieren des Kalenders fehlgeschlagen)
<a name="change-manager-troubleshooting-1"></a>

**Problem**: Beim Importieren einer iCalendar (`.ics`)-Datei meldet das System, dass der Kalenderimport fehlgeschlagen ist.
+ **Lösung 1**— Stellen Sie sicher, dass Sie eine Datei importieren, die von einem unterstützten Drittanbieter-Kalenderanbieter exportiert wurde. Unterstütze Anbieter sind:
  + Google Calendar ([Exportanweisungen](https://support.google.com/calendar/answer/37111))
  + Microsoft Outlook ([Exportanweisungen](https://support.microsoft.com/en-us/office/export-an-outlook-calendar-to-google-calendar-662fa3bb-0794-4b18-add8-9968b665f4e6))
  + iCloud Calendar ([Exportanweisungen](https://support.apple.com/guide/calendar/import-or-export-calendars-icl1023/mac))
+ **Lösung 2**— Wenn der Quellkalender wiederkehrende Ereignisse enthält, stellen Sie sicher, dass keine einzelnen Ereignisse des Ereignisses abgebrochen oder gelöscht wurden. Derzeit unterstützt Change Calendar das Importieren von wiederkehrenden Ereignissen mit individuellen Stornierungen nicht. Um das Problem zu beheben, entfernen Sie das wiederkehrende Ereignis aus dem Quellkalender, exportieren Sie den Kalender erneut und importieren Sie ihn erneut in Change Calendar und fügen Sie dann das wiederkehrende Ereignis mithilfe der Change Calendar-Schnittstelle hinzu. Weitere Informationen finden Sie unter [Erstellen eines Change Calendar-Ereignisses](change-calendar-create-event.md).
+ **Lösung 3** – Stellen Sie sicher, dass der Quellkalender mindestens ein Ereignis enthält. Uploads von `.ics`-Dateien, die keine Ereignisse enthalten, werden fehlschlagen.
+ **Lösungs 4** – Wenn das System meldet, dass der Import fehlgeschlagen ist, weil die `.ics`-Datei zu groß ist, stellen Sie sicher, dass Sie nur grundlegende Details zu Ihren Kalendereinträgen exportieren. Verringern Sie bei Bedarf die Länge des Zeitraums, den Sie exportieren.
+ **Lösung 5** – Wenn Change Calendar die Zeitzone des exportierten Kalenders nicht ermitteln kann, wenn Sie versuchen, ihn aus der Registerkarte **Ereignisse** zu importieren, wird möglicherweise die folgende Meldung angezeigt: „Der Import des Kalenders ist fehlgeschlagen“ (Calendar import failed). Change Calendar konnte keine gültige Zeitzone finden. Sie können den Kalender aus dem Menü Bearbeiten importieren.“ Wählen Sie in diesem Fall die Option **Actions, Edit (Aktionen, bearbeiten)** und versuchen Sie dann, die Datei von der Seite **Edit calendar (Kalender bearbeiten) ** zu importieren.
+ **Lösungs 6** – Bearbeiten Sie die `.ics`-Datei nicht vor dem Import. Der Versuch, den Inhalt der Datei zu ändern, kann die Kalenderdaten beschädigen. Wenn Sie die Datei vor dem Import verändert haben, exportieren Sie den Kalender erneut aus dem Quellkalender, und führen Sie einen erneuten Upload durch.

# AWS Systems Manager Change Manager
<a name="change-manager"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Change Manager, ein Tool in AWS Systems Manager, ist ein Change-Management-Framework für Unternehmen, mit dem betriebliche Änderungen an Ihrer Anwendungskonfiguration und -infrastruktur angefordert, genehmigt, implementiert und gemeldet werden können. Wenn Sie ein einziges *delegiertes Administratorkonto* verwenden AWS Organizations, können Sie Änderungen an mehreren Stellen AWS-Konten und übergreifend verwalten. AWS-Regionen Alternativ können Sie mit einem *lokalen Konto* Änderungen für einen einzigen AWS-Konto verwalten. Wird Change Manager für die Verwaltung von Änderungen sowohl an AWS Ressourcen als auch an lokalen Ressourcen verwendet. Um mit Change Manager zu beginnen, öffnen Sie die [Systems-Manager-Konsole](https://console.aws.amazon.com//systems-manager/change-manager). Wählen Sie im Navigationsbereich **Change Manager** aus.

Mit Change Manager können Sie vorab genehmigte *Änderungsvorlagen* verwenden, um Änderungsprozesse für Ihre Ressourcen zu automatisieren und unbeabsichtigte Ergebnisse bei betrieblichen Änderungen zu vermeiden. Jede Änderungsvorlage gibt Folgendes an:
+ Eine oder mehrere Automation-Runbooks, aus denen ein Benutzer beim Erstellen einer Änderungsanforderung auswählen kann. Die Änderungen an Ihren Ressourcen werden in Automation-Runbooks definiert. Sie können benutzerdefinierte Runbooks oder [AWS -verwaltete Runbooks](automation-documents-reference.md) in die von Ihnen erstellten Änderungsvorlagen aufnehmen. Wenn ein Benutzer einen Änderungsantrag erstellt, kann er auswählen, welches der verfügbaren Runbooks in die Anforderung aufgenommen werden soll. Darüber hinaus können Sie Änderungsvorlagen erstellen, mit denen der Benutzer, der die Anforderung stellt, jedes beliebige Runbook in der Änderungsanforderung angeben kann.
+ Die Benutzer im Konto, die Änderungsanforderungen überprüfen müssen, die mit dieser Änderungsvorlage vorgenommen wurden.
+ Das Amazon Simple Notification Service (Amazon SNS)-Thema, das verwendet wird, um zugewiesene Genehmiger darüber zu informieren, dass ein Änderungsantrag zur Überprüfung bereit ist.
+ Der CloudWatch Amazon-Alarm, der zur Überwachung des Runbook-Workflows verwendet wird.
+ Das Amazon SNS-Thema, das verwendet wird, um Benachrichtigungen über Statusänderungen für Änderungsanforderungen zu senden, die mit der Änderungsvorlage erstellt werden.
+ Die Tags, die auf die Änderungsvorlage angewendet werden sollen, um die Änderungsvorlagen zu kategorisieren und zu filtern.
+ Ob aus der Änderungsvorlage erstellte Änderungsanträge ohne Genehmigungsschritt ausgeführt werden können (automatisch genehmigte Anforderungen).

Durch die Integration mitChange Calendar, einem weiteren Tool in Systems Manager, können Sie Änderungen Change Manager auch sicher implementieren und gleichzeitig Zeitplankonflikte bei wichtigen Geschäftsereignissen vermeiden. Change ManagerIntegration mit AWS Organizations und Unterstützung AWS IAM Identity Center bei der Verwaltung von Änderungen in Ihrem gesamten Unternehmen von einem einzigen Konto aus unter Verwendung Ihres vorhandenen Identitätsmanagementsystems. Sie können den Änderungsfortschritt von Change Manager überwachen und betriebliche Änderungen in Ihrer gesamten Organisation prüfen und für bessere Transparenz und Rechenschaftspflicht sorgen.

Change Managerergänzt die Sicherheitskontrollen Ihrer Verfahren [zur kontinuierlichen Integration](https://aws.amazon.com/devops/continuous-integration) (CI) und der Methodik zur [kontinuierlichen Bereitstellung](https://aws.amazon.com/devops/continuous-delivery) (CD). Change Managerist nicht für Änderungen vorgesehen, die im Rahmen eines automatisierten Release-Prozesses, wie z. B. einer CI/CD Pipeline, vorgenommen werden, es sei denn, es ist eine Ausnahme oder eine Genehmigung erforderlich.

## Funktionsweise von Change Manager
<a name="how-change-manager-works"></a>

Wenn eine Standard- oder Notfalländerung benötigt wird, erstellt jemand in der Organisation einen Änderungsantrag, der auf einer der Änderungsvorlagen basiert, die für die Verwendung in Ihrer Organisation oder Ihrem Konto erstellt wurden.

Wenn die angeforderte Änderung manuelle Genehmigungen erfordert, benachrichtigt Change Manager die angegebenen Genehmiger durch eine Amazon SNS Benachrichtigung, dass ein Änderungsantrag zur Überprüfung bereit ist. Sie können Genehmiger für Änderungsanforderungen in der Änderungsvorlage benennen oder Benutzer Genehmiger in der Änderungsanforderung selbst benennen lassen. Sie können verschiedenen Vorlagen verschiedene Prüfer zuweisen. Ordnen Sie beispielsweise einen Benutzer, eine Benutzergruppe oder eine AWS Identity and Access Management (IAM)-Rolle zu, die Anforderungen für Änderungen an verwalteten Knoten genehmigen muss, und eine andere Benutzer-, Gruppen- oder IAM-Rolle für Datenbankänderungen. Wenn die Änderungsvorlage automatische Genehmigungen zulässt und die Benutzerrichtlinie eines Anforderers dies nicht verbietet, kann der Benutzer das Automation-Runbook für seine Anfrage auch ohne Überprüfungsschritt ausführen (mit Ausnahme von Ereignissen zum Einfrieren von Änderungen).

Für jede Änderungsvorlage können Sie bis zu fünf Genehmigerebenen hinzufügen. Sie können beispielsweise verlangen, dass technische Prüfer eine Änderungsanforderung, die aus einer Änderungsvorlage erstellt wurde, zuerst genehmigen und dann eine zweite Genehmigungsebene von einem oder mehreren Managern anfordern.

Change Manager ist in [AWS Systems Manager Change Calendar](systems-manager-change-calendar.md) integriert. Wenn eine angeforderte Änderung genehmigt wird, ermittelt das System zunächst, ob die Anforderung mit anderen geplanten Geschäftsvorgängen in Konflikt steht. Wenn ein Konflikt erkannt wird, kann Change Manager die Änderung blockieren oder zusätzliche Genehmigungen erfordern, bevor Sie den Runbook-Workflow starten. Beispielsweise können Sie Änderungen nur während der Geschäftszeiten erlauben, um sicherzustellen, dass Teams zur Verfügung stehen, um unerwartete Probleme zu verwalten. Für alle Änderungen, die außerhalb dieser Zeiten ausgeführt werden sollen, können Sie eine Genehmigung für die Verwaltung auf höherer Ebene in Form von*Change–Freeze-Genehmigern* fordern. Bei Notfalländerungen kann Change Manager den Schritt der Überprüfung von Change Calendar für Konflikte oder Blockieren von Ereignissen überspringen, nachdem eine Änderungsanforderung genehmigt wurde.

Wenn es an der Zeit ist, eine genehmigte Änderung zu implementieren Change Manager führt das Automation-Runbook aus, das in der zugeordneten Änderungsanforderung angegeben ist. Nur die Vorgänge, die in genehmigten Änderungsanforderungen definiert sind, sind zulässig, wenn Runbook-Workflows ausgeführt werden. Dieser Ansatz hilft Ihnen, unbeabsichtigte Ergebnisse zu vermeiden, während Änderungen implementiert werden.

Zusätzlich zum Einschränken der Änderungen, die bei der Ausführung eines Runbook-Workflows vorgenommen werden können, hilft Ihnen Change Manager außerdem beim Steuern der Gleichzeitigkeit und der Fehlerschwellenwerte. Sie legen fest, wie viele Ressourcen ein Runbook-Workflow gleichzeitig ausführen kann, auf wie vielen Konten die Änderung gleichzeitig ausgeführt werden kann und wie viele Fehler vor dem Beenden des Prozesses zugelassen werden und (wenn das Runbook ein Rollback-Skript enthält) zurückgesetzt werden sollen. Sie können den Fortschritt der vorgenommenen Änderungen auch mithilfe von CloudWatch Alarmen überwachen.

Nachdem ein Runbook-Workflow abgeschlossen wurde, können Sie Details zu den vorgenommenen Änderungen überprüfen. Diese Details beinhalten den Grund für einen Änderungsantrag, welche Änderungsvorlage verwendet wurde, wer die Änderungen angefordert und genehmigt hat und wie die Änderungen implementiert wurden.

**Weitere Informationen**  
[Einführung von AWS Systems ManagerChange Manager](https://aws.amazon.com/blogs/aws/introducing-systems-manager-change-manager/) auf dem *AWS -News Blog*

## Welche Vorteile bietet Change Manager meinen Vorgängen?
<a name="change-manager-benefits"></a>

Change Manager bietet folgende Vorteile:
+ **Reduzieren Sie das Risiko von Service-Unterbrechungen und Ausfallzeiten**

  Change Manager kann Betriebsänderungen sicherer machen, indem sichergestellt wird, dass nur genehmigte Änderungen implementiert werden, wenn ein Runbook-Workflow ausgeführt wird. Sie können ungeplante und nicht überprüfte Änderungen blockieren. Change Manager hilft Ihnen, die Arten von unbeabsichtigten Ergebnissen zu vermeiden, die durch menschliche Fehler verursacht werden, die kostspielige Zeit an Forschung und Rückverfolgung erfordern.
+ **Detailliertes Prüfung und Berichterstattung zu Änderungshistorien**

  Change Manager bietet Rechenschaftspflicht mit einer konsistenten Möglichkeit, Änderungen, die in Ihrem Unternehmen vorgenommen wurden, zu melden und zu prüfen, die Absicht der Änderungen und Details darüber, wer sie genehmigt und implementiert hat.
+ **Vermeiden Sie Konflikte oder Verstöße**

  Change Manager kann Zeitplankonflikte wie Feiertagsereignisse oder neue Produktstarts basierend auf dem aktiven Änderungskalender für Ihre Organisation erkennen. Sie können die Ausführung von Runbook-Workflows nur während der Geschäftszeiten oder nur mit zusätzlichen Genehmigungen erlauben.
+ **Anpassung der Änderungsanforderungen an Ihr sich änderndes Geschäft**

  In verschiedenen Geschäftsperioden können Sie unterschiedliche Anforderungen an das Änderungsmanagement stellen. Beispielsweise können Sie während der end-of-month Berichterstattung, in der Steuersaison oder in anderen kritischen Geschäftsperioden Änderungen blockieren oder für Änderungen, die unnötige betriebliche Risiken mit sich bringen könnten, die Genehmigung der Geschäftsleitung einholen.
+ **Zentrale Verwaltung von Änderungen über Konten hinweg**

  Durch die Integration mit Organizations können Sie Änderungen in all Ihren Organisationseinheiten (OUs) von einem einzigen delegierten Administratorkonto aus verwalten. Change Manager Sie können es Change Manager für die Verwendung mit Ihrer gesamten Organisation oder nur für einige Ihrer OUs Mitarbeiter aktivieren.

## An wen richtet sich Change Manager?
<a name="change-manager-who"></a>

Change Managerist für die folgenden AWS Kunden und Organisationen geeignet:
+ Jeder AWS Kunde, der die Sicherheit und Steuerung betrieblicher Änderungen an seinen Cloud- oder lokalen Umgebungen verbessern möchte.
+ Organisationen, die die Zusammenarbeit und Transparenz über alle Teams hinweg verbessern, die Anwendungsverfügbarkeit durch Vermeidung von Ausfallzeiten verbessern und das mit manuellen und sich wiederholenden Aufgaben verbundene Risiko verringern möchten.
+ Organisationen, die bewährte Methoden für das Änderungsmanagement einhalten müssen. 
+ Kunden, die eine vollständig überprüfbare Historie der Änderungen an ihrer Anwendungskonfiguration oder -infrastruktur benötigen.

## Was sind die Hauptfeatures von Change Manager?
<a name="change-manager-features"></a>

Zu den wichtigsten Features von Change Manager gehört Folgendes:
+ **Integrierte Unterstützung für bewährte Methoden für das Änderungsmanagement**

  Mit Change Manager können Sie ausgewählte bewährte Methoden für das Änderungsmanagement auf Ihre Vorgänge anwenden. Sie können folgende Optionen aktivieren:
  + Überprüfen Sie Change Calendar, um zu sehen, ob Ereignisse derzeit eingeschränkt sind, sodass Änderungen nur während der offenen Kalenderperioden vorgenommen werden.
  + Zulassen von Änderungen bei eingeschränkten Ereignissen mit zusätzlichen Genehmigungen von Change-Freeze-Genehmigungsberechtigten.
  + Erfordern, dass CloudWatch Alarme für alle Änderungsvorlagen angegeben werden.
  + Verlangen Sie, dass alle in Ihrem Konto erstellten Änderungsvorlagen geprüft und genehmigt werden müssen, bevor sie zur Erstellung von Änderungsaufträgen verwendet werden können.
+ **Verschiede Genehmigungspfade für geschlossene Kalenderperioden und Notänderungsanträge**

  Sie können eine Option zulassen, um Change Calendar auf eingeschränkte Ereignisse zu prüfen und genehmigte Änderungsanforderungen zu blockieren, bis das Ereignis abgeschlossen ist. Sie können jedoch auch eine zweite Gruppe von Genehmigern bestimmen, die Change-Freeze-Genehmiger, die eine Änderung auch dann zulassen können, wenn der Kalender geschlossen ist. Sie können auch Notfalländerungsvorlagen erstellen. Änderungsaufträge, die aus einer Notfalländerungsvorlage erstellt wurden, erfordern weiterhin regelmäßige Genehmigungen, unterliegen jedoch keinen Kalenderbeschränkungen und erfordern keine Change-Freeze-Freigaben.
+ **Steuern Sie, wie und wann Runbook-Workflows gestartet werden**

  Runbook-Workflows können nach einem Zeitplan oder nach Abschluss der Genehmigungen gestartet werden (vorbehaltlich der Kalendereinschränkungsregeln).
+ **Integrierte Unterstützung für Benachrichtigungen**

  Geben Sie an, wer in Ihrer Organisation Änderungsvorlagen und Änderungsanforderungen prüfen und genehmigen soll. Weisen Sie einer Änderungsvorlage ein Amazon SNS-Thema zu, um Benachrichtigungen an die Abonnenten des Themas über Statusänderungen für Änderungsanträge zu senden, die mit dieser Änderungsvorlage erstellt wurden.
+ **Integration mit AWS Systems Manager Change Calendar**

  Change Manager ermöglicht es Administratoren, Zeitplanänderungen während bestimmter Zeiträume einzuschränken. Sie können beispielsweise eine Richtlinie erstellen, die Änderungen nur während der Geschäftszeiten zulässt, um sicherzustellen, dass das Team für Probleme verfügbar ist. Sie können Änderungen auch bei wichtigen Geschäftsereignissen einschränken. Beispielsweise können Einzelhandelsunternehmen Änderungen bei großen Verkaufsereignissen einschränken. Sie können auch während eingeschränkter Zeiträume zusätzliche Genehmigungen verlangen. 
+ **Integration mit AWS IAM Identity Center und Active Directory-Unterstützung**

  Mit der IAM-Identity-Center-Integration können Mitglieder Ihrer Organisation auf AWS-Konten zugreifen und ihre Ressourcen mithilfe von Systems Manager basierend auf einer gemeinsamen Benutzeridentität verwalten. Mit IAM Identity Center können Sie Ihren Benutzern Zugriff auf Konten über AWS hinweg gewähren.

  Durch die Integration mit Active Directory können Benutzer in Ihrem Active Directory-Konto als Genehmiger für Änderungsvorlagen zugewiesen werden, die für Ihre Change Manager-Vorgänge erstellt wurden.
+ **Integration mit CloudWatch Amazon-Alarmen**

  Change Managerist in CloudWatch Alarme integriert. Change Managerlauscht während des Runbook-Workflows auf CloudWatch Alarme und ergreift alle Aktionen, einschließlich des Sendens von Benachrichtigungen, die für den Alarm definiert sind.
+ **Integration mit Lake AWS CloudTrail **

  Durch die Einrichtung eines Ereignisdatenspeichers in AWS CloudTrail Lake können Sie überprüfbare Informationen zu den Änderungen einsehen, die durch Änderungsanforderungen vorgenommen wurden, die in Ihrem Konto oder Ihrer Organisation ausgeführt werden. Die gespeicherten Ereignisinformationen enthalten u. a. folgende Details:
  + Die API-Aktionen, die ausgeführt wurden
  + Die für diese Aktionen enthaltenen Anforderungsparameter
  + Der Benutzer, der die Aktion ausgeführt hat
  + Die Ressourcen, die während des Vorgangs aktualisiert wurden
+ **Integration mit AWS Organizations**

  Mithilfe der von Organizations bereitgestellten kontenübergreifenden Funktionen können Sie ein delegiertes Administratorkonto für die Verwaltung von Change Manager Vorgängen OUs in Ihrer Organisation verwenden. In Ihrem Organizations-Verwaltungskonto können Sie angeben, welches Konto das delegierte Administratorkonto sein soll. Sie können auch steuern, welche von Ihnen verwendet werden OUs Change Manager können.

## Entstehen Kosten für die Verwendung von Change Manager?
<a name="change-manager-cost"></a>

Ja. Change Managerwird auf einer bestimmten pay-per-use Basis berechnet. Sie zahlen nur das, was Sie nutzen. Weitere Informationen finden Sie unter [AWS Systems Manager  – Preise](https://aws.amazon.com/systems-manager/pricing/).

## Was sind die primären Komponenten von Change Manager?
<a name="change-manager-primary-components"></a>

Change Manager-Komponenten, die Sie zum Verwalten des Änderungsprozesses in Ihrer Organisation oder Ihrem Konto verwenden, umfassen Folgendes:

### Delegiertes Administratorkonto
<a name="change-manager-what-is-delegated-account"></a>

Wenn Sie den Change Manager in einer Organisation verwenden, verwenden Sie ein delegiertes Administratorkonto. Dies ist der AWS-Konto , der als Konto für die Verwaltung von Betriebsaktivitäten in Systems Manager festgelegt ist, einschließlich Change Manager. Das delegierte Administratorkonto verwaltet Änderungsaktivitäten in Ihrer gesamten Organisation. Wenn Sie Ihre Organisation für die Verwendung mit dem Change Manager einrichten, geben Sie an, welche Ihrer Konten in dieser Rolle verwendet werden. Das delegierte Administratorkonto muss das einzige Mitglied der Organisationseinheit (OU) sein, der es zugewiesen ist. Das delegierte Administratorkonto ist nicht erforderlich, wenn Sie es AWS-Konto nur Change Manager mit einem Konto verwenden.

**Wichtig**  
Wenn Sie den Change Manager in einer Organisation verwenden, empfehlen wir, Änderungen immer über das delegierte Administratorkonto vorzunehmen. Obwohl Sie Änderungen von anderen Konten in der Organisation vornehmen, werden diese Änderungen nicht im delegierten Administratorkonto gemeldet oder können nicht angezeigt werden.

### Änderungsvorlage
<a name="change-manager-what-is-change-template"></a>

Eine Änderungsvorlage ist eine Sammlung von Konfigurationseinstellungen in Change Manager, die beispielsweise erforderliche Genehmigungen, verfügbare Runbooks und Benachrichtigungsoptionen für Änderungsanforderungen definiert.

Sie können verlangen, dass die von Benutzern in Ihrer Organisation oder Ihrem Konto erstellten Änderungsvorlagen einen Genehmigungsprozess durchlaufen, bevor sie verwendet werden können.

Change Manager unterstützt zwei Arten von Änderungsvorlagen. Bei einer genehmigten Änderungsanforderung, die auf einer *Notfalländerungsvorlage* basiert, kann die angeforderte Änderung auch dann vorgenommen werden, wenn Sperrereignisse in Change Calendar vorliegen. Bei einer genehmigten Änderungsanforderung, die auf einer *standardmäßigen Änderungsvorlage basiert*, kann die angeforderte Änderung nicht vorgenommen werden, wenn Blockierungsereignisse in Change Calendar vorhanden sind, es sei denn, es werden zusätzliche Genehmigungen von bestimmten Genehmigern für *Change-Freeze-Ereignisse* erhalten.

### Änderungsanforderung
<a name="change-manager-what-is-change-request"></a>

Eine Änderungsanforderung ist eine Anforderung Change Manager zur Ausführung eines Automatisierungs-Runbooks, das eine oder mehrere Ressourcen in Ihren AWS oder lokalen Umgebungen aktualisiert. Ein Änderungsantrag wird mit einer Änderungsvorlage erstellt.

Wenn Sie eine Änderungsanforderung erstellen, müssen ein oder mehrere Genehmiger in Ihrer Organisation oder Ihrem Konto die Anforderung überprüfen und genehmigen. Ohne die erforderlichen Genehmigungen kann der Runbook-Workflow, der die angeforderten Änderungen anwendet, nicht ausgeführt werden.

Im System sind Änderungsanforderungen eine Art von OpsItem Eingabe. AWS Systems Manager OpsCenter Jedoch werden OpsItems des Typs `/aws/changerequest` nicht in OpsCenter angezeigt. Als OpsItems unterliegen Änderungsanforderungen den gleichen erzwungenen Kontingenten wie andere OpsItems-Typen. 

Um eine Änderungsanforderung programmgesteuert zu erstellen, rufen Sie außerdem nicht die `CreateOpsItem`-API-Operation auf. Verwenden Sie anstelle die `[https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html)`-API-Operation. Anstatt sofort ausgeführt zu werden, muss die Änderungsanforderung genehmigt werden, und es dürfen keine blockierenden Ereignisse in Change Calendar vorliegen, um zu verhindern, dass der Workflow ausgeführt wird. Wenn Genehmigungen empfangen wurden und der Kalender nicht gesperrt ist (oder die Berechtigung erteilt wurde, blockierende Kalenderereignisse zu umgehen), kann die `StartChangeRequestExecution`-Aktion abgeschlossen werden.

### Runbook-Workflow
<a name="change-manager-what-is-runbook-workflow"></a>

Ein Runbook-Workflow ist der Prozess der angeforderten Änderungen, die an den Zielressourcen in Ihrer Cloud oder On-Premises-Umgebung vorgenommen werden. Jede Änderungsanforderung bestimmt ein einziges Automation-Runbook, das zur Durchführung der angeforderten Änderung verwendet werden soll. Der Runbook-Workflow tritt auf, nachdem alle erforderlichen Genehmigungen erteilt wurden und keine Sperrereignisse in Change Calendar vorliegen. Wenn die Änderung für ein bestimmtes Datum und eine bestimmte Uhrzeit geplant wurde, beginnt der Runbook-Workflow erst nach der Planung, selbst wenn alle Genehmigungen eingegangen sind und der Kalender nicht blockiert ist.

**Topics**
+ [Funktionsweise von Change Manager](#how-change-manager-works)
+ [Welche Vorteile bietet Change Manager meinen Vorgängen?](#change-manager-benefits)
+ [An wen richtet sich Change Manager?](#change-manager-who)
+ [Was sind die Hauptfeatures von Change Manager?](#change-manager-features)
+ [Entstehen Kosten für die Verwendung von Change Manager?](#change-manager-cost)
+ [Was sind die primären Komponenten von Change Manager?](#change-manager-primary-components)
+ [Einrichten von Change Manager](change-manager-setting-up.md)
+ [Arbeiten mit Change Manager](working-with-change-manager.md)
+ [Prüfen und Protokollieren von Change Manager-Aktivitäten](change-manager-auditing.md)
+ [Fehlerbehebung für Change Manager](change-manager-troubleshooting.md)

# Einrichten von Change Manager
<a name="change-manager-setting-up"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Sie können ein Tool in verwenden Change Manager AWS Systems Manager, um Änderungen für eine gesamte Organisation, wie in konfiguriert AWS Organizations, oder für eine einzelne Organisation zu verwalten AWS-Konto.

Wenn Sie Change Manager mit einer Organisation verwenden, beginnen Sie mit dem Thema [Einrichten von Change Manager für eine Organisation (Management-Konto)](change-manager-organization-setup.md)und fahren Sie dann mit [Konfigurieren von Change Manager-Optionen und bewährten Methoden](change-manager-account-setup.md) fort.

Wenn Sie Change Manager mit einem einzelnen Konto verwenden, fahren Sie direkt mit [Konfigurieren von Change Manager-Optionen und bewährten Methoden](change-manager-account-setup.md) fort.

**Anmerkung**  
Wenn Sie mit Nutzung von Change Manager mit einem einzigen Konto beginnen, dieses Konto aber später zu einer Organisationseinheit hinzugefügt wird, für die Change Manager genehmigt ist, werden Ihre individuellen Kontoeinstellungen nicht berücksichtigt.

**Topics**
+ [Einrichten von Change Manager für eine Organisation (Management-Konto)](change-manager-organization-setup.md)
+ [Konfigurieren von Change Manager-Optionen und bewährten Methoden](change-manager-account-setup.md)
+ [Konfigurieren von Rollen und Berechtigungen für Change Manager](change-manager-permissions.md)
+ [Steuern des Zugriffs auf Runbook-Workflows für automatische Genehmigung](change-manager-auto-approval-access.md)

# Einrichten von Change Manager für eine Organisation (Management-Konto)
<a name="change-manager-organization-setup"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Die Aufgaben in diesem Thema geltenChange Manager, wenn Sie ein Tool in oder AWS Systems Manager mit einer Organisation verwenden, die in eingerichtet ist AWS Organizations. Wenn Sie es Change Manager nur mit einem einzigen verwenden möchten AWS-Konto, fahren Sie mit dem Thema fort[Konfigurieren von Change Manager-Optionen und bewährten Methoden](change-manager-account-setup.md).

Führen Sie die Aufgaben in diesem Abschnitt in einem aus AWS-Konto , der als *Verwaltungskonto* in Organizations dient. Weitere Informationen zum Verwaltungskonto und zu anderen Organizations-Konzepten finden Sie unter [AWS Organizations -Terminologie und Konzepte](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html).

Wenn Sie Organizations aktivieren und Ihr Konto als Verwaltungskonto angeben müssen, bevor Sie fortfahren, siehe [Creating and managing an organization (Erstellen und Verwalten einer Organisation)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org.html) im *AWS Organizations -Benutzerhandbuch*. 

**Anmerkung**  
Dieser Einrichtungsvorgang kann in den folgenden Fällen nicht ausgeführt werden AWS-Regionen:  
Europa (Mailand) (eu-south-1)
Naher Osten (Bahrain) (me-south-1)
Afrika (Kapstadt) (af-south-1)
Asien-Pazifik (Hongkong) (ap-east-1)
Stellen Sie sicher, dass Sie für dieses Verfahren in einer anderen Region in Ihrem Verwaltungskonto arbeiten.

Während des Setupvorgangs führen Sie die folgenden Hauptaufgaben in Quick Setup aus, einem Tool in AWS Systems Manager.
+ **Aufgabe 1: Registrieren eines delegierten Administrators für Ihre Organisation**

  Die änderungsbezogenen Aufgaben, die mit Change Manager ausgeführt werden, werden in einem Ihrer Mitgliedskonten verwaltet, das Sie als *delegiertes Administratorkonto* angeben. Das delegierte Administratorkonto, das Sie für Change Manager registrieren wird zum delegierten Administratorkonto für alle Systems Manager-Vorgänge. (Möglicherweise haben Sie Administratorkonten für andere delegiert AWS-Services). Ihr delegiertes Administratorkonto für Change Manager, das nicht mit Ihrem Verwaltungskonto identisch ist, verwaltet Änderungsaktivitäten in Ihrer gesamten Organisation, einschließlich Änderungsvorlagen, Änderungsanforderungen und Genehmigungen für jede. Im delegierten Administratorkonto geben Sie auch andere Konfigurationsoptionen für Ihre Change Manager-Operationen an. 
**Wichtig**  
Das delegierte Administratorkonto muss das einzige Mitglied der Organisationseinheit (OU) sein, der es in Organizations zugewiesen ist.
+ **Aufgabe 2: Definieren und Angeben von Runbook-Zugriffsrichtlinien für Änderungsanfordererrollen oder benutzerdefinierte Auftragsfunktionen, die Sie für Ihre Change Manager-Operationen** verwenden möchten.

  Um Änderungsanforderungen in erstellen zu könnenChange Manager, müssen Benutzern in Ihren Mitgliedskonten AWS Identity and Access Management (IAM) -Berechtigungen erteilt werden, sodass sie nur auf die Automatisierungs-Runbooks und Änderungsvorlagen zugreifen können, die Sie ihnen zur Verfügung stellen. 
**Anmerkung**  
Wenn ein Benutzer einen Änderungsantrag erstellt, wählt er zunächst eine Änderungsvorlage aus. Diese Änderungsvorlage stellt möglicherweise mehrere Runbooks zur Verfügung, der Benutzer kann jedoch nur ein Runbook für den jeweiligen Änderungsantrag auswählen. Änderungsvorlagen können auch so konfiguriert werden, dass Benutzer jedes verfügbare Runbook in ihre Anforderungen aufnehmen können.

  Um die erforderlichen Berechtigungen zu erteilen, verwendet Change Manager das Konzept von *job functions (Auftragsfunktionen)*, die auch von IAM verwendet wird. Im Gegensatz zu den [AWS -verwalteten Richtlinien für Auftragsfunktionen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) in IAM geben Sie sowohl die Namen Ihrer Change Manager-Auftragsfunktionen und die IAM-Berechtigungen für diese Auftragsfunktionen an. 

  Wenn Sie eine Auftragsfunktion konfigurieren, empfiehlt es sich, eine benutzerdefinierte Richtlinie zu erstellen und nur die Berechtigungen bereitzustellen, die zum Ausführen von Änderungsverwaltungsaufgaben erforderlich sind. Sie können beispielsweise Berechtigungen angeben, die Benutzer basierend auf den von Ihnen definierten *Auftragsfunktionen* auf diesen bestimmten Satz von Runbooks beschränken. 

  Sie können beispielsweise eine Auftragsfunktion mit dem Namen `DBAdmin` erstellen. Für diese Auftragsfunktion können Sie nur Berechtigungen erteilen, die für Runbooks erforderlich sind, die sich auf Amazon DynamoDB-Datenbanken beziehen, z. B. `AWS-CreateDynamoDbBackup` und `AWSConfigRemediation-DeleteDynamoDbTable`. 

  Als weiteres Beispiel möchten Sie einigen Benutzern möglicherweise nur die Berechtigungen erteilen, die zum Arbeiten mit Runbooks im Zusammenhang mit Amazon Simple Storage Service (Amazon S3)-Buckets erforderlich sind, z. B. `AWS-ConfigureS3BucketLogging`und `AWSConfigRemediation-ConfigureS3BucketPublicAccessBlock`. 

  Der Konfigurationsprozess in Quick Setup für Change Manager stellt außerdem eine Reihe vollständiger Administratorberechtigungen für Systems Manager zur Verfügung, die Sie auf eine von Ihnen erstellte Administratorrolle anwenden können. 

  Jede Change Manager Quick Setup-Konfiguration, die Sie bereitstellen, erstellt eine Auftragsfunktion in Ihrem delegierten Administratorkonto mit Berechtigungen zum Ausführen von Change Manager-Vorlagen und Automation-Runbooks in den von Ihnen ausgewählten Organisationseinheiten. Sie können bis zu 15 Quick Setup-Konfigurationen für Change Manager erstellen. 
+ **Aufgabe 3: Wählen Sie aus, welche Mitgliedskonten in Ihrer Organisation mit Change Manager verwendet werden sollen**

  Sie können Change Manager mit allen Mitgliedskonten in allen Organisationseinheiten verwenden, die in Organizations eingerichtet sind, und in allen AWS-Regionen in denen sie arbeiten. Wenn Sie möchten, können Sie stattdessen Change Manager mit nur einigen Ihrer Organisationseinheiten verwenden.

**Wichtig**  
Bevor Sie mit diesem Verfahren beginnen, empfehlen wir dringend, die Schritte zu lesen, um die von Ihnen vorgenommenen Konfigurationsoptionen und die Berechtigungen zu verstehen, die Sie erteilen. Planen Sie insbesondere die benutzerdefinierten Auftragsfunktionen, die Sie erstellen, und die Berechtigungen, die Sie jeder Auftragsfunktion zuweisen. Dadurch wird sichergestellt, dass, wenn Sie später die von Ihnen erstellten Auftragsfunktionsrichtlinien an einzelne Benutzer, Benutzergruppen oder IAM-Rollen anhängen, ihnen nur die Berechtigungen erteilt werden, die Sie für diese beabsichtigen.  
Es hat sich bewährt, zunächst das delegierte Administratorkonto mit dem Anmeldenamen eines Administrators einzurichten. AWS-Konto Konfigurieren Sie dann Auftragsfunktionen und deren Berechtigungen, nachdem Sie Änderungsvorlagen erstellt und die Runbooks identifiziert haben, die jedes einzelne verwendet.

Um Change Manager für die Verwendung mit einer Organisation einzurichten, führen Sie die folgende Aufgabe im Quick Setup-Bereich der Systems Manager Konsole aus.

Sie wiederholen diese Aufgabe für jede Auftragsfunktion, die Sie für Ihre Organisation erstellen möchten. Jede Auftragsfunktion, die Sie erstellen, kann Berechtigungen für einen anderen Satz von Organisationseinheiten haben.

**So richten Sie eine Organisation für Change Manager im Organizations-Verwaltungskonto ein**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

1. Wählen Sie auf der **Change Manager**-Registerkarte **Create** (Erstellen) aus.

1. Geben Sie für **Delegiertes Administratorkonto** die ID des AWS-Konto ein, das Sie zum Verwalten von Änderungsvorlagen, Änderungsanforderungen und Runbook-Workflows in Change Manager verwenden möchten. 

   Wenn Sie zuvor ein delegiertes Administratorkonto für Systems Manager angegeben haben, wird seine ID bereits in diesem Feld gemeldet. 
**Wichtig**  
Das delegierte Administratorkonto muss das einzige Mitglied der Organisationseinheit (OU) sein, der es in Organizations zugewiesen ist.  
Wenn das delegierte Administratorkonto, das Sie registrieren, später von dieser Rolle abgemeldet wird, entfernt das System seine Berechtigungen für die gleichzeitige Verwaltung von Systems Manager-Vorgängen. Denken Sie daran, dass es notwendig sein wird, dass Sie zum Quick Setup zurückkehren, ein anderes delegiertes Administratorkonto festlegen, und alle Auftragsfunktionen und -Berechtigungen erneut angeben.  
Wenn Sie den Change Manager in einer Organisation verwenden, empfehlen wir, Änderungen immer über das delegierte Administratorkonto vorzunehmen. Obwohl Sie Änderungen von anderen Konten in der Organisation vornehmen, werden diese Änderungen nicht im delegierten Administratorkonto gemeldet oder können nicht angezeigt werden.

1. Im Bereich **Berechtigungen zum Anfordern und Vornehmen von Änderungen** gehen Sie wie folgt vor.
**Anmerkung**  
Jede von Ihnen erstellte Bereitstellungskonfiguration stellt die Berechtigungsrichtlinie für nur eine Auftragsfunktion bereit. Sie können zum Quick Setup zurückkehren, um weitere Auftragsfunktionen zu erstellen, wenn Sie Änderungsvorlagen zur Verwendung in Ihren Vorgängen erstellt haben.

   **So erstellen Sie eine Administratorrolle** - Für eine Administratorauftragsfunktion, die IAM-Berechtigungen für alle AWS -Aktionen hat, gehen Sie wie folgt vor.
**Wichtig**  
Das Erteilen von vollständigen Administratorberechtigungen sollte sparsam und nur dann erfolgen, wenn für die Rollen der vollständige Zugriff auf Systems Manager erforderlich ist. Wichtige Informationen zu Sicherheitsüberlegungen für den Zugriff auf Systems Manager finden Sie unter [Identity and Access Management für AWS Systems Manager](security-iam.md) und [Bewährte Methoden für die Sicherheit für Systems Manager](security-best-practices.md).

   1. Für **Auftragsfunktion** geben Sie einen Namen zur Identifizierung dieser Rolle und ihrer Berechtigungen ein, z. B. **My AWS Admin**.

   1. Für die Option **Rolle und Berechtigungen** wählen Sie **Administratorberechtigungen**.

   **So erstellen Sie andere Auftragsfunktionen** - Gehen Sie wie folgt vor, um eine nicht-administrative Rolle zu erstellen:

   1. Geben Sie für **Auftragsfunktion** einen Namen ein, um diese Rolle zu identifizieren und ihre Berechtigungen vorzuschlagen. Der von Ihnen gewählte Name sollte den Bereich der Runbooks repräsentieren, für die Sie Berechtigungen erteilen werden, z. B. `DBAdmin` oder `S3Admin`. 

   1. Für die Option **Rolle und Berechtigungen** wählen Sie **Benutzerdefinierte Berechtigungen**.

   1. Geben Sie im Editor **Berechtigungsrichtlinie** die IAM-Berechtigungen im JSON-Format ein, die dieser Auftragsfunktion gewährt werden sollen.
**Tipp**  
Es wird empfohlen, dass Sie den IAM-Richtlinien-Editor verwenden, um Ihre Richtlinie zu erstellen und dann den Richtlinien-JSON-Code in das Feld **Berechtigungsrichtlinie** kopieren.

**Beispielrichtlinie: DynamoDB-Datenbankverwaltung**  
Sie könnten zum Beispiel mit Richtlinieninhalten beginnen, die Berechtigungen für die Arbeit mit den Systems Manager-Dokumenten (SSM-Dokumenten) vorsehen, auf die die Auftragsfunktion Zugriff benötigt. Hier ist ein Beispiel für einen Richtlinieninhalt, der Zugriff auf alle AWS verwalteten Automation-Runbooks gewährt, die sich auf DynamoDB-Datenbanken beziehen, sowie auf zwei Änderungsvorlagen AWS-Konto `123456789012`, die im Beispiel in der Region USA Ost (Ohio) erstellt wurden (). `us-east-2` 

   Die Richtlinie enthält auch die Berechtigung für die [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html) Operation, die für die Erstellung eines Änderungsantrags in Change Calendar erforderlich ist. 
**Anmerkung**  
Dieses Beispiel ist nicht umfassend. Für die Arbeit mit anderen AWS Ressourcen wie Datenbanken und Knoten sind möglicherweise zusätzliche Berechtigungen erforderlich.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:CreateDocument",
                   "ssm:DescribeDocument",
                   "ssm:DescribeDocumentParameters",
                   "ssm:DescribeDocumentPermission",
                   "ssm:GetDocument",
                   "ssm:ListDocumentVersions",
                   "ssm:ModifyDocumentPermission",
                   "ssm:UpdateDocument",
                   "ssm:UpdateDocumentDefaultVersion"
               ],
               "Resource": [
                   "arn:aws:ssm:us-east-1:*:document/AWS-CreateDynamoDbBackup",
                   "arn:aws:ssm:us-east-1:*:document/AWS-AWS-DeleteDynamoDbBackup",
                   "arn:aws:ssm:us-east-1:*:document/AWS-DeleteDynamoDbTableBackups",
                   "arn:aws:ssm:us-east-1:*:document/AWSConfigRemediation-DeleteDynamoDbTable",
                   "arn:aws:ssm:us-east-1:*:document/AWSConfigRemediation-EnableEncryptionOnDynamoDbTable",
                   "arn:aws:ssm:us-east-1:*:document/AWSConfigRemediation-EnablePITRForDynamoDbTable",
                   "arn:aws:ssm:us-east-1:111122223333:document/MyFirstDBChangeTemplate",
                   "arn:aws:ssm:us-east-1:111122223333:document/MySecondDBChangeTemplate"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "ssm:ListDocuments",
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": "ssm:StartChangeRequestExecution",
               "Resource": [
                   "arn:aws:ssm:us-east-1:111122223333:document/*",
                   "arn:aws:ssm:us-east-1:111122223333:automation-execution/*"
               ]
           }
       ]
   }
   ```

------

   Weitere Informationen zu IAM-Richtlinien finden Sie unter [Zugriffsverwaltung für AWS -Ressourcen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access.html) und [Erstellen von IAM-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) im *IAM-Benutzerhandbuch*

1. Im Bereich **Targets** wählen Sie aus, ob Sie der gesamten Organisation oder nur einigen Organisationseinheiten Berechtigungen für die Auftragsfunktion gewähren möchten, die Sie erstellen.

   Fahren Sie mit Schritt 9 fort, wenn Sie **Ganze Organisation** wählen.

   Fahren Sie mit Schritt 8 fort, wenn Sie **Benutzerdefiniert** wählen.

1. Aktivieren Sie im OUs Abschnitt **Ziel** die Kontrollkästchen der Organisationseinheiten, mit denen Sie die Option verwenden möchtenChange Manager.

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

Nachdem das System die Einrichtung von Change Manager für Ihre Organisation abgeschlossen hat, wird eine Zusammenfassung Ihrer Bereitstellungen angezeigt. Diese zusammenfassenden Informationen enthalten den Namen der Rolle, die für die von Ihnen konfigurierte Jobfunktion erstellt wurde. Beispiel, `AWS-QuickSetup-SSMChangeMgr-DBAdminInvocationRole`.

**Anmerkung**  
Quick Setupverwendet AWS CloudFormation StackSets , um Ihre Konfigurationen bereitzustellen. Sie können auch Informationen zu einer abgeschlossenen Bereitstellungskonfiguration in der CloudFormation -Konsole einsehen. Weitere Informationen zu StackSets finden Sie unter [Arbeiten mit AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html) im *AWS CloudFormation Benutzerhandbuch*.

Im nächsten Schritt konfigurieren Sie zusätzliche Change Manager-Optionen. Sie können diese Aufgabe entweder in Ihrem delegierten Administratorkonto oder in einem beliebigen Konto in einer Organisationseinheit ausführen, das Sie für die Verwendung mit Change Manager zugelassen haben. Sie konfigurieren Optionen, wie z. B. die Auswahl einer Option für die Verwaltung der Benutzeridentität, die Festlegung, welche Benutzer Änderungsvorlagen und -Anfragen prüfen und genehmigen oder ablehnen können, und die Auswahl der Optionen zu bewährten Methoden, die für Ihr Unternehmen zulässig sein sollen. Weitere Informationen finden Sie unter [Konfigurieren von Change Manager-Optionen und bewährten Methoden](change-manager-account-setup.md).

# Konfigurieren von Change Manager-Optionen und bewährten Methoden
<a name="change-manager-account-setup"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Die Aufgaben in diesem Abschnitt müssen unabhängig davon ausgeführt werdenChange Manager, ob Sie ein Tool innerhalb AWS Systems Manager, innerhalb einer Organisation oder in einem einzelnen Tool verwenden AWS-Konto.

Wenn Sie Change Manager für eine Organisation verwenden, können Sie die folgenden Aufgaben entweder in Ihrem delegierten Administratorkonto oder in einem beliebigen Konto in einer Organisationseinheit durchführen, das Sie für die Verwendung mit Change Manager zugelassen haben.

**Topics**
+ [Aufgabe 1: Konfigurieren von Change Manager-Benutzeridentitätsverwaltung und Vorlagenprüfern](#cm-configure-account-task-1)
+ [Aufgabe 2: Konfigurieren von Change Manager Change-Freeze-Ereignisgenehmigern und bewährten Methoden](#cm-configure-account-task-2)
+ [Konfigurieren von Amazon SNS-Themen für Change Manager-Benachrichtigungen](change-manager-sns-setup.md)

## Aufgabe 1: Konfigurieren von Change Manager-Benutzeridentitätsverwaltung und Vorlagenprüfern
<a name="cm-configure-account-task-1"></a>

Führen Sie die Aufgabe in diesem Verfahren beim ersten Zugriff auf Change Manager aus. Sie können diese Konfigurationseinstellungen später aktualisieren, indem Sie zu Change Manager zurückkehren und **Bearbeiten** in der Registerkarte **Einstellungen** auswählen.

**Konfigurieren von Change Manager-Benutzeridentitätsverwaltung und Vorlagenprüfern**

1. Melden Sie sich bei der an AWS-Managementkonsole.

   Wenn Sie Change Manager für eine Organisation verwenden, melden Sie sich mit Ihren Anmeldeinformationen für Ihr delegiertes Administratorkonto an. Das Benutzerkonto, das Sie verwenden, muss über die erforderlichen AWS Identity and Access Management (IAM)-Berechtigungen zum Vornehmen von Aktualisierungen an Ihren Change Manager-Einstellungen verfügen.

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Manager** aus.

1. Führen Sie auf der Startseite des Dienstes je nach den verfügbaren Optionen einen der folgenden Schritte aus:
   + Wenn Sie Change Manager mit verwenden AWS Organizations , wählen Sie **Delegiertes Konto einrichten**.
   + Wenn Sie Change Manager mit einem einzigen verwenden AWS-Konto, wählen Sie **Einrichten Change Manager**.

     –oder–

     Klicken Sie auf **Beispieländerungsanforderung erstellen**, **Überspringen** und wählen Sie dann die Registerkarte **Einstellungen**.

1. Wählen Sie für **Verwaltung der Benutzeridentität** eine der folgenden Optionen.
   + **AWS Identity and Access Management (IAM)** — Identifizieren Sie die Benutzer, die Anfragen stellen und genehmigen und andere Aktionen ausführen, Change Manager indem Sie Ihre vorhandenen Benutzer, Gruppen und Rollen verwenden.
   + **AWS IAM Identity Center (IAM Identity Center)** — Erlauben Sie [IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/), Identitäten zu erstellen und zu verwalten, oder stellen Sie eine Verbindung zu Ihrer vorhandenen Identitätsquelle her, um die Benutzer zu identifizieren, die Aktionen in ausführen. Change Manager

1. Geben Sie im Abschnitt **Template reviewer notification** (Benachrichtigung für Vorlagenprüfer) die Amazon Simple Notification Service (Amazon SNS)-Themen an, die verwendet werden sollen, um Vorlagenprüfer darüber zu informieren, dass eine neue Änderungsvorlage oder Änderungsvorlagenversion zur Überprüfung bereit ist. Stellen Sie sicher, dass das von Ihnen ausgewählte Amazon SNS-Thema so konfiguriert ist, dass Benachrichtigungen an Ihre Vorlagenprüfer gesendet werden. 

   Informationen zum Erstellen und Konfigurieren von Amazon SNS-Themen für Änderungsvorlagenprüferbenachrichtigungen finden Sie unter [Konfigurieren von Amazon SNS-Themen für Change Manager-Benachrichtigungen](change-manager-sns-setup.md).

   1. Wählen Sie eine der folgenden Optionen aus, um das Amazon SNS-Thema für die Benachrichtigung der Vorlagenprüfer anzugeben:
      + **Geben Sie einen SNS-Amazon-Ressourcenname (ARN) ein** - Geben Sie für **Thema-ARN** einen ARN eines vorhandenen Amazon SNS Themas ein. Dieses Thema kann sich in jedem Konto Ihrer Organisation befinden.
      + **Wählen Sie ein vorhandenes SNS-Thema** - Wählen Sie für **Target notification topic** den ARN eines vorhandenen Amazon SNS-Themas in Ihrem aktuellen AWS-Konto. (Diese Option ist nicht verfügbar, wenn Sie in Ihrem aktuellen AWS-Konto und noch keine Amazon SNS SNS-Themen erstellt haben AWS-Region.)
**Anmerkung**  
Das von Ihnen ausgewählte Amazon SNS-Thema muss so konfiguriert werden, dass die gesendeten Benachrichtigungen und die Abonnenten, an die sie gesendet werden, festgelegt werden. Seine Zugriffsrichtlinie muss auch Systems Manager Berechtigungen gewähren, damit Change Manager Benachrichtigungen senden kann. Weitere Informationen finden Sie unter [Konfigurieren von Amazon SNS-Themen für Change Manager-Benachrichtigungen](change-manager-sns-setup.md). 

   1. Wählen Sie **Add notification (Benachrichtigung hinzufügen)** aus.

1. Wählen Sie im Abschnitt **Änderungsvorlagenprüfer** die Benutzer in Ihrer Organisation oder Ihrem Konto aus, um neue Änderungsvorlagen zu überprüfen oder Vorlagenversionen zu ändern, bevor sie in Ihren Vorgängen verwendet werden können. 

   Änderungsvorlagenprüfer sind dafür verantwortlich, die Eignung und Sicherheit von Vorlagen zu überprüfen, die andere Benutzer zur Verwendung in Change Manager-Runbook-Workflows eingereicht haben.

   Wählen Sie die Änderungsvorlagenprüfer folgendermaßen aus:

   1. Wählen Sie **Hinzufügen** aus.

   1. Aktivieren Sie das Kontrollkästchen neben dem Namen aller Benutzer, Gruppen oder IAM-Rollen, die Sie als Änderungsvorlagenprüfer zuweisen möchten.

   1. Wählen Sie **Add approvers (Hinzufügen von Genehmigern)**.

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

 Nachdem Sie diese erste Einrichtung abgeschlossen haben, konfigurieren Sie zusätzliche Change Manager-Einstellungen und bewährte Methoden, indem Sie die Schritte unter[Aufgabe 2: Konfigurieren von Change Manager Change-Freeze-Ereignisgenehmigern und bewährten Methoden](#cm-configure-account-task-2) befolgen.

## Aufgabe 2: Konfigurieren von Change Manager Change-Freeze-Ereignisgenehmigern und bewährten Methoden
<a name="cm-configure-account-task-2"></a>

Nachdem Sie die Schritte unter [Aufgabe 1: Konfigurieren von Change Manager-Benutzeridentitätsverwaltung und Vorlagenprüfern](#cm-configure-account-task-1) abgeschlossen haben, können Sie zusätzliche Änderungsanforderungsprüfer während *Change–Freeze-Ereignissen* bestimmen und angeben, welche verfügbaren bewährten Methoden Sie für Ihre Change Manager-Vorgänge zulassen wollen.

Ein Ereignis zum Einfrieren von Änderungen bedeutet, dass Einschränkungen im aktuellen Änderungskalender gelten (der Kalenderstatus AWS Systems Manager Change Calendar ist`CLOSED`). In diesen Fällen müssen zusätzlich zu den regulären Genehmigern für Änderungsanforderungen oder wenn die Änderungsanforderung mit einer Vorlage erstellt wurde, die automatische Genehmigungen zulässt, die Genehmiger des Änderungsstopps die Genehmigung für die Ausführung dieser Änderungsanforderung erteilen. Wenn dies nicht der Fall ist, wird die Änderung erst verarbeitet, wenn der Kalenderstatus wieder `OPEN` ist.

**Konfigurieren von Change Manager Change-Freeze-Ereignisgenehmigern und bewährten Methoden**

1. Wählen Sie im Navigationsbereich **Change Manager** aus.

1. Wählen Sie die Registerkarte **Einstellungen** und anschließend **Bearbeiten**.

1. Wählen Sie im Abschnitt **Genehmiger für Change-Freeze-Ereignisse** die Benutzer in Ihrer Organisation oder Ihrem Konto aus, die Änderungen genehmigen können, die ausgeführt werden, selbst wenn der verwendete Kalender in Change Calendar derzeit GESCHLOSSEN ist.
**Anmerkung**  
Um Change-Freeze-Überprüfungen zu erlauben, müssen Sie das Kontrollkästchen für die Option **Änderungskalender auf eingeschränkte Änderungsereignisse prüfen** in **Bewährte Methoden** aktivieren.

   Wählen Sie Genehmiger für Change–Freeze-Ereignisse aus, indem Sie die folgenden Schritte ausführen:

   1. Wählen Sie **Hinzufügen** aus.

   1. Aktivieren Sie das Kontrollkästchen neben dem Namen aller Benutzer, Gruppen oder IAM-Rollen, die Sie als Genehmiger für Change-Freeze-Ereignisse zuweisen möchten.

   1. Wählen Sie **Add approvers (Hinzufügen von Genehmigern)**.

1. Aktivieren Sie im Abschnitt **Bewährte Methoden** unten auf der Seite die bewährten Methoden, die Sie für jede der folgenden Optionen erzwingen möchten.
   +  Option:**Änderungskalender auf eingeschränkte Änderungsereignisse prüfen**

     Um anzugeben, dass Change Manager einen Kalender in Change Calendar überprüft, um sicherzustellen, dass Änderungen nicht durch geplante Ereignisse blockiert werden, wählen Sie zunächst das Kontrollkästchen **Enabled** und wählen Sie dann den Kalender aus, um auf eingeschränkte Ereignisse der **Änderungskalender**-Liste zu prüfen.

     Mehr über Change Calendar erfahren Sie unter [AWS Systems Manager Change Calendar](systems-manager-change-calendar.md).
   + Option: **SNS-Thema für Genehmiger für geschlossene Ereignisse**

     1. Wählen Sie eine der folgenden Optionen aus, um das Amazon Simple Notification Service (Amazon SNS)-Thema in Ihrem Konto anzugeben, das für das Senden von Benachrichtigungen an Genehmiger während der Change-Freeze-Ereignisse verwendet werden soll. (Beachten Sie, dass Sie Genehmiger auch im Abschnitt **Genehmiger für Change-Freeze-Ereignisse** über **Bewährte Methoden** angeben müssen.)
        + **Geben Sie einen SNS-Amazon-Ressourcenname (ARN) ein** - Geben Sie für **Thema-ARN** einen ARN eines vorhandenen Amazon SNS Themas ein. Dieses Thema kann sich in jedem Konto Ihrer Organisation befinden.
        + **Wählen Sie ein vorhandenes SNS-Thema** - Wählen Sie für **Target notification topic** den ARN eines vorhandenen Amazon SNS-Themas in Ihrem aktuellen AWS-Konto. (Diese Option ist nicht verfügbar, wenn Sie in Ihrem aktuellen AWS-Konto und noch keine Amazon SNS SNS-Themen erstellt haben AWS-Region.)
**Anmerkung**  
Das von Ihnen ausgewählte Amazon SNS-Thema muss so konfiguriert werden, dass die gesendeten Benachrichtigungen und die Abonnenten, an die sie gesendet werden, festgelegt werden. Seine Zugriffsrichtlinie muss auch Systems Manager Berechtigungen gewähren, damit Change Manager Benachrichtigungen senden kann. Weitere Informationen finden Sie unter [Konfigurieren von Amazon SNS-Themen für Change Manager-Benachrichtigungen](change-manager-sns-setup.md). 

     1. Wählen Sie **Add notification (Benachrichtigung hinzufügen)** aus.
   + Option: **Überwachungen für alle Vorlagen erforderlich**

     Wenn Sie sicherstellen möchten, dass alle Vorlagen für Ihre Organisation oder Ihr Konto einen CloudWatch Amazon-Alarm zur Überwachung Ihres Änderungsvorgangs angeben, aktivieren Sie das Kontrollkästchen **Aktiviert**.
   + Option: **Überprüfung und Genehmigung der Vorlage vor der Verwendung erforderlich**

     Um sicherzustellen, dass keine Änderungsanforderungen erstellt und keine Runbook-Workflows ausgeführt werden, ohne auf einer Vorlage basieren zu müssen, die überprüft und genehmigt wurde, aktivieren Sie das Kontrollkästchen **Enabled**.

1. Wählen Sie **Speichern**.

# Konfigurieren von Amazon SNS-Themen für Change Manager-Benachrichtigungen
<a name="change-manager-sns-setup"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Sie können ein Tool in konfigurieren Change Manager AWS Systems Manager, um Benachrichtigungen an ein Amazon Simple Notification Service (Amazon SNS) -Thema für Ereignisse im Zusammenhang mit Änderungsanforderungen und Änderungsvorlagen zu senden. Führen Sie die folgenden Aufgaben aus, um Benachrichtigungen für die Change Manager-Ereignisse zu erhalten, denen Sie ein Thema hinzufügen.

**Topics**
+ [Aufgabe 1: Erstellen und Abonnieren eines Amazon SNS-Themas](#change-manager-sns-setup-create-topic)
+ [Aufgabe 2: Aktualisieren der Amazon SNS-Zugriffsrichtlinie](#change-manager-sns-setup-encryption-policy)
+ [Aufgabe 3: (Optional) Aktualisieren Sie die Zugriffsrichtlinie AWS Key Management Service](#change-manager-sns-setup-KMS-policy)

## Aufgabe 1: Erstellen und Abonnieren eines Amazon SNS-Themas
<a name="change-manager-sns-setup-create-topic"></a>

Zunächst müssen Sie ein Amazon SNS-Thema erstellen und abonnieren. Weitere Informationen finden Sie unter [Erstellen eines Amazon-SNS-Themas](https://docs.aws.amazon.com/sns/latest/dg/sns-create-topic.html) und [Abonnieren eines Amazon-SNS-Themas](https://docs.aws.amazon.com/sns/latest/dg/sns-tutorial-create-subscribe-endpoint-to-topic.html) im *Entwicklerhandbuch zu Amazon Simple Notification Service*.

**Anmerkung**  
Um Benachrichtigungen zu erhalten, müssen Sie den Amazon-Ressourcennamen (ARN) eines Amazon SNS-Themas angeben, das sich im selben AWS-Region und AWS-Konto wie das delegierte Administratorkonto befindet. 

## Aufgabe 2: Aktualisieren der Amazon SNS-Zugriffsrichtlinie
<a name="change-manager-sns-setup-encryption-policy"></a>

Gehen Sie wie folgt vor, um die Amazon SNS-Zugriffsrichtlinie zu aktualisieren, damit Systems Manager Change Manager-Benachrichtigungen für das Amazon SNS-Thema veröffentlichen kann, das Sie in Aufgabe 1 erstellt haben. Ohne Fertigstellung dieser Aufgabe hat Change Manager keine Berechtigung zum Senden von Benachrichtigungen für die Ereignisse, für die Sie das Thema hinzufügen.

1. Melden Sie sich bei [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) an AWS-Managementkonsole und öffnen Sie die Amazon SNS SNS-Konsole.

1. Wählen Sie im Navigationsbereich **Themen** aus.

1. Wählen Sie das Thema aus, das Sie in Aufgabe 1 erstellt haben und klicken Sie dann auf **Edit** (Bearbeiten).

1. Erweitern Sie die Option **Zugriffsrichtlinie**.

1. Fügen Sie den folgenden `Sid` Block zur bestehenden Richtlinie hinzu, aktualisieren Sie ihn und ersetzen Sie jeden Block durch Ihre *user input placeholder* eigenen Informationen.

   ```
   {
       "Sid": "Allow Change Manager to publish to this topic",
       "Effect": "Allow",
       "Principal": {
           "Service": "ssm.amazonaws.com"
       },
       "Action": "sns:Publish",
       "Resource": "arn:aws:sns:region:account-id:topic-name",
       "Condition": {
           "StringEquals": {
               "aws:SourceAccount": [
                   "account-id"
               ]
           }
       }
   }
   ```

   Geben Sie diesen Block nach dem vorhandenen `Sid` Block ein und ersetzen Sie*region*,*account-id*, und *topic-name* durch die entsprechenden Werte für das von Ihnen erstellte Thema.

1. Wählen Sie **Änderungen speichern ** aus.

Das System sendet jetzt Benachrichtigungen an das Amazon SNS-Thema, wenn der Ereignistyp auftritt, den Sie dem Thema hinzufügen.

**Wichtig**  
Wenn Sie das Amazon SNS SNS-Thema mit einem serverseitigen Verschlüsselungsschlüssel AWS Key Management Service (AWS KMS) konfiguriert haben, müssen Sie Aufgabe 3 abschließen.

## Aufgabe 3: (Optional) Aktualisieren Sie die Zugriffsrichtlinie AWS Key Management Service
<a name="change-manager-sns-setup-KMS-policy"></a>

Wenn Sie die serverseitige Verschlüsselung AWS Key Management Service (AWS KMS) für Ihr Amazon SNS SNS-Thema aktiviert haben, müssen Sie auch die Zugriffsrichtlinie des Themas aktualisieren, das AWS KMS key Sie bei der Konfiguration des Themas ausgewählt haben. Gehen Sie wie folgt vor, um die Zugriffsrichtlinie zu aktualisieren, damit Systems Manager Change Manager-Genehmigungsbenachrichtigungen für das Amazon SNS-Thema veröffentlichen kann, das Sie in Aufgabe 1 erstellt haben.

1. [Öffnen Sie die AWS KMS Konsole unter /kms. https://console.aws.amazon.com](https://console.aws.amazon.com/kms)

1. Klicken Sie im Navigationsbereich auf **Kundenverwaltete Schlüssel**.

1. Wählen Sie die ID des Kundenmasterschlüssels aus, den Sie bei der Erstellung des Themas ausgewählt haben.

1. Wählen Sie im Abschnitt **Key policy (Schlüsselrichtlinie)** die Option **Switch to policy view (Zur Richtlinienansicht wechseln)** aus.

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

1. Geben Sie den folgenden `Sid`-Block nach einem der vorhandenen `Sid`-Blöcke in die vorhandene Richtlinie ein. Ersetzen Sie jeden *user input placeholder* durch Ihre Informationen.

   ```
   {
       "Sid": "Allow Change Manager to decrypt the key",
       "Effect": "Allow",
       "Principal": {
           "Service": "ssm.amazonaws.com"
       },
       "Action": [
           "kms:Decrypt",
           "kms:GenerateDataKey*"
       ],
       "Resource": "arn:aws:kms:region:account-id:key/key-id",
       "Condition": {
           "StringEquals": {
               "aws:SourceAccount": [
                   "account-id"
               ]
           }
       }
   }
   ```

1. Geben Sie nun den folgenden `Sid`-Block nach einem der vorhandenen `Sid`-Blöcke in die Ressourcenrichtlinie ein, um zu verhindern, dass das [Problem des dienstübergreifenden verwirrten Stellvertreters](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html) auftritt. 

   Dieser Block verwendet die globalen Bedingungskontextschlüssel [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) und [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount), um die Berechtigungen einzuschränken, die Systems Manager der Ressource einem anderen Dienst erteilt.

   Ersetzen Sie jeden *user input placeholder* durch Ihre Informationen.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Configure confused deputy protection for AWS KMS keys used in Amazon SNS topic when called from Systems Manager",
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": [
                   "sns:Publish"
               ],
               "Resource": "arn:aws:sns:us-east-1:111122223333:topic-name",
               "Condition": {
                   "ArnLike": {
                       "aws:SourceArn": "arn:aws:ssm:us-east-1:111122223333:*"
                   },
                   "StringEquals": {
                       "aws:SourceAccount": "111122223333"
                   }
               }
           }
       ]
   }
   ```

------

1. Wählen Sie **Änderungen speichern ** aus.

# Konfigurieren von Rollen und Berechtigungen für Change Manager
<a name="change-manager-permissions"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Standardmäßig hat Change Manager keine Berechtigung zur Ausführung von Aktionen auf Ihre Ressourcen. Sie müssen den Zugriff mithilfe einer AWS Identity and Access Management (IAM-) Servicerolle gewähren oder eine *Rolle übernehmen*. Diese Rolle ermöglicht es Change Manager, die in einer genehmigten Änderungsanforderung angegebenen Runbook-Workflows in Ihrem Namen sicher auszuführen. Die Rolle gewährt AWS -Security-Token-Service (AWS STS) [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html)Vertrauen fürChange Manager.

Durch die Bereitstellung dieser Berechtigungen für eine Rolle, um im Namen von Benutzern in einer Organisation zu handeln, muss Benutzern dieses Array von Berechtigungen nicht selbst gewährt werden. Die durch die Berechtigungen zulässigen Aktionen sind nur auf genehmigte Vorgänge beschränkt.

Wenn Benutzer in Ihrem Konto oder Ihrer Organisation eine Änderungsanforderung erstellen, können sie diese Übernahmerolle auswählen, um die Änderungsvorgänge auszuführen.

Sie können eine neue Übernahmerolle für Change Manager erstellen oder eine vorhandene Rolle mit den erforderlichen Berechtigungen aktualisieren.

Wenn Sie eine Servicerolle für Change Manager erstellen müssen, führen Sie die folgenden Schritte aus. 

**Topics**
+ [Aufgabe 1: Erstellen einer Übernahmerollenrichtlinie für Change Manager](#change-manager-role-policy)
+ [Aufgabe 2: Erstellen einer Übernahmerolle für Change Manager](#change-manager-role)
+ [Aufgabe 3: Anfügen der `iam:PassRole`-Richtlinie an andere Rollen](#change-manager-passpolicy)
+ [Aufgabe 4: Hinzufügen von Inline-Richtlinien zu einer Rolle übernehmen, um andere aufzurufen AWS-Services](#change-manager-role-add-inline-policy)
+ [Aufgabe 5: Konfigurieren des Benutzerzugriffs auf Change Manager](#change-manager-passrole)

## Aufgabe 1: Erstellen einer Übernahmerollenrichtlinie für Change Manager
<a name="change-manager-role-policy"></a>

Verwenden Sie das folgende Verfahren, um die Richtlinie zu erstellen, die Sie an Ihre Change Manager-Übernahmerolle anfügen.

**Erstellen einer Übernahmerollenrichtlinie für Change Manager**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Richtlinien** und dann **Richtlinie erstellen**.

1. Wählen Sie auf der Seite **Create policy** (Richtlinie erstellen) die Registerkarte **JSON** aus und ersetzen Sie den Standardinhalt durch folgenden, den Sie in den folgenden Schritten für Ihre eigenen Change Manager-Vorgänge ändern.
**Anmerkung**  
Wenn Sie eine Richtlinie für ein einzelnes AWS-Konto Konto und nicht für eine Organisation mit mehreren Konten erstellen AWS-Regionen, können Sie den ersten Anweisungsblock weglassen. Die `iam:PassRole`-Berechtigung ist nicht erforderlich, wenn ein einziges Konto Change Manager verwendet.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/AWS-SystemsManager-job-functionAdministrationRole",
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": "ssm.amazonaws.com"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:DescribeDocument",
                   "ssm:GetDocument",
                   "ssm:StartChangeRequestExecution"
               ],
               "Resource": [
                   "arn:aws:ssm:us-east-1::document/template-name",
                   "arn:aws:ssm:us-east-1:111122223333:automation-execution/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:ListOpsItemEvents",
                   "ssm:GetOpsItem",
                   "ssm:ListDocuments",
                   "ssm:DescribeOpsItems"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Aktualisieren Sie für die `iam:PassRole` Aktion den `Resource` Wert so, dass er alle für Ihre Organisation definierten Jobfunktionen enthält, denen Sie Berechtigungen zum Initiieren von Runbook-Workflows gewähren möchten. ARNs 

1. Ersetzen Sie die *job-function* Platzhalter *region* *account-id**template-name*,*delegated-admin-account-id*,, und durch Werte für Ihre Change Manager Operationen.

1. Ändern Sie für die zweite `Resource`-Anweisung die Liste so, dass sie alle Änderungsvorlagen enthält, für die Sie Berechtigungen erteilen möchten. Alternativ können Sie `"Resource": "*"` angeben, um Berechtigungen für alle Änderungsvorlagen in Ihrer Organisation zu erteilen.

1. Wählen Sie **Weiter: Tags** aus.

1. (Optional) Fügen Sie ein oder mehrere Tag-Schlüssel-Wert-Paare hinzu, um den Zugriff für diese Richtlinie zu organisieren, zu verfolgen oder zu steuern. 

1. Wählen Sie **Weiter: Prüfen** aus.

1. Geben Sie auf der Seite **Review policy** (Richtlinie überprüfen) im Feld **Name** einen Namen ein, wie z. B **MyChangeManagerAssumeRole**, und geben Sie anschließend eine optionale Beschreibung ein.

1. Klicken Sie auf **Create policy** (Richtlinie erstellen) und fahren Sie mit [Aufgabe 2: Erstellen einer Übernahmerolle für Change Manager](#change-manager-role) fort.

## Aufgabe 2: Erstellen einer Übernahmerolle für Change Manager
<a name="change-manager-role"></a>

Führen Sie die folgenden Schritte zum Erstellen einer Change Manager-Übernahmerolle, ein Art von Servicerolle, für Change Manager aus.

**Erstellen einer Übernahmerolle für Change Manager**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Rollen** und dann **Rolle erstellen**.

1. Wählen Sie für **Select trusted entity** (Vertrauenswürdige Entität auswählen) die folgenden Optionen:

   1. Wählen Sie unter **Trusted entity type** (Typ der vertrauenswürdigen Entität) die Option **AWS -Service**

   1. Für **Anwendungsfälle für andere AWS-Services** wählen Sie **Systems Manager**

   1. Wählen Sie **Systems Manager**, wie im folgenden Image gezeigt.  
![\[Screenshot, der die als Anwendungsfall ausgewählte Option des Systems Manager veranschaulicht.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/iam_use_cases_for_MWs.png)

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

1. Suchen Sie auf der Seite **Attached permissions policy** (Richtlinie für angehängte Berechtigungen) nach der Übernahmerollenrichtlinie, die Sie in [Aufgabe 1: Erstellen einer Übernahmerollenrichtlinie für Change Manager](#change-manager-role-policy) erstellt haben, wie beispielsweise **MyChangeManagerAssumeRole**. 

1. Aktivieren Sie das Kontrollkästchen neben dem Namen der Übernahmerollenrichtlinie und wählen Sie anschließend **Next: Tags** (Weiter: Tags) aus.

1. Geben Sie unter **Role name (Rollenname)** einen Namen für Ihr neues Instance-Profil ein, wie z. B. **MyChangeManagerAssumeRole**.

1. (Optional) Aktualisieren Sie für **Description** (Beschreibung) die Beschreibung für diese Instance-Rolle.

1. (Optional) Fügen Sie ein oder mehrere Tag-Schlüssel-Wert-Paare hinzu, um den Zugriff für diese Rolle zu organisieren, zu verfolgen oder zu steuern. 

1. Wählen Sie **Weiter: Prüfen** aus.

1. (Optional) Fügen Sie für **Tags** ein oder mehrere Tag-Schlüssel-Wert-Paare hinzu, um den Zugriff für diese Rolle zu organisieren, nachzuverfolgen oder zu steuern, und wählen Sie dann **Rolle erstellen** aus. Das System leitet Sie zur Seite **Rollen** zurück.

1. Wählen Sie **Create role (Rolle erstellen)** aus. Das System leitet Sie zur Seite **Rollen** zurück.

1. Wählen Sie auf der Seite **Roles (Rollen)** die gerade erstellte Rolle aus, um die Seite **Summary (Übersicht)** zu öffnen. 

## Aufgabe 3: Anfügen der `iam:PassRole`-Richtlinie an andere Rollen
<a name="change-manager-passpolicy"></a>

Gehen Sie wie nachfolgend beschrieben vor, um die `iam:PassRole`-Richtlinie an ein IAM-Instance-Profil oder eine IAM-Servicerolle anzuhängen. (Der Systems-Manager-Dienst verwendet IAM-Instance-Profile für die Kommunikation mit EC2-Instances. Für Nicht-EC2-verwaltete Knoten in einer [Hybrid- und Multi-Cloud-Umgebung](operating-systems-and-machine-types.md#supported-machine-types) wird stattdessen eine IAM-Servicerolle verwendet.)

Durch Anfügen der `iam:PassRole`-Richtlinie, kann der Change Manager-Service Übernahmerollenberechtigungen anderen Services oder Systems-Manager-Tools übergeben, wenn Runbook-Workflows ausgeführt werden.

**Fügen Sie die `iam:PassRole`-Richtlinie an ein IAM-Instance-Profil oder eine Servicerolle wie folgt an**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Rollen**.

1. Suchen Sie nach der Change Manager-Übernahmerolle, die Sie erstellt haben, wie z. B **MyChangeManagerAssumeRole**, und wählen Sie seinen Namen aus.

1. Wählen Sie auf der Seite **Summary** (Zusammenfassung) für die gerade erstellte Rolle die Registerkarte **Permissions** (Berechtigungen) aus.

1. Wählen Sie **Berechtigungen hinzufügen, eingebundene Richtlinie erstellen**.

1. Wählen Sie auf der Seite **Richtlinie erstellen** die Registerkarte **Visueller Editor** aus.

1. Wählen Sie **Service (Service)** und anschließend die Option **IAM** aus.

1. Geben Sie im Textfeld **Aktionen filtern** die **PassRole**Option ein**PassRole**, und wählen Sie sie aus.

1. Erweitern Sie **Resources** (Ressourcen). Stellen Sie sicher, dass **Specific** ausgewählt ist und wählen Sie dann **Add ARN** aus.

1. Geben Sie im Feld **Specify ARN for role** (ARN für Rolle angeben) den ARN der IAM-Instance-Profilrolle oder der IAM-Servicerolle ein, an die Sie Übernahmerollenberechtigungen übergeben möchten. Das System füllt die Felder **Account (Konto)** und **Role name with path (Rollenname mit Pfad)** automatisch aus. 

1. Wählen Sie **Hinzufügen** aus.

1. Wählen Sie **Richtlinie prüfen**.

1. Geben Sie für **Name** einen Namen ein, um diese Richtlinie zu identifizieren und wählen Sie dann **Create poliy** (Richtlinie erstellen) aus.

**Weitere Informationen**  
+ [Erforderliche Instance-Berechtigungen für Systems Manager konfigurieren](setup-instance-permissions.md)
+ [Die für Systems Manager in Hybrid- und Multi-Cloud-Umgebungen erforderliche IAM-Servicerolle erstellen](hybrid-multicloud-service-role.md)

## Aufgabe 4: Hinzufügen von Inline-Richtlinien zu einer Rolle übernehmen, um andere aufzurufen AWS-Services
<a name="change-manager-role-add-inline-policy"></a>

Wenn eine Änderungsanforderung andere AWS-Services mithilfe der Rolle „Change ManagerÜbernehmen“ aufruft, muss die Rolle „Übernehmen“ so konfiguriert werden, dass sie berechtigt ist, diese Dienste aufzurufen. Diese Anforderung gilt für alle AWS Automations-Runbooks (AWS-\$1-Runbooks), die möglicherweise in einer Änderungsanforderung verwendet werden, wie z. B. die Runbooks`AWS-ConfigureS3BucketLogging`, und`AWS-CreateDynamoDBBackup`. `AWS-RestartEC2Instance` Diese Anforderung gilt auch für alle von Ihnen erstellten benutzerdefinierten Runbooks, die andere mithilfe AWS-Services von Aktionen aufrufen, die andere Dienste aufrufen. Wenn Sie unter anderem `aws:executeAwsApi`-, `aws:CreateStack`- oder `aws:copyImage`-Aktionen verwenden, dann müssen Sie die Servicerolle mit der Berechtigung zum Aufrufen solcher Services konfigurieren. Sie können Berechtigungen für andere AWS-Services aktivieren, indem Sie der IAM-Rolle eine eingebundene Richtlinie hinzufügen. 

**So fügen Sie einer Rolle „Übernahme“ eine Inline-Richtlinie hinzu, um andere Funktionen aufzurufen AWS-Services (IAM-Konsole)**

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die IAM-Konsole unter. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)

1. Wählen Sie im Navigationsbereich **Rollen**.

1. Wählen Sie in der Liste den Namen der Übernahmerolle aus, die Sie aktualisieren möchten, z. B `MyChangeManagerAssumeRole`.

1. Wählen Sie die Registerkarte **Berechtigungen**.

1. Wählen Sie **Add permissions, Create inline policy** (Berechtigungen hinzufügen, eingebundene Richtlinie erstellen).

1. Wählen Sie den Tab **JSON**.

1. Geben Sie ein JSON-Richtliniendokument für das ein AWS-Services , das Sie aufrufen möchten. Nachfolgend sind zwei Beispiele für JSON-Richtliniendokumente aufgeführt.

   **Amazon-S3-`PutObject` und `GetObject`-Beispiel**

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject"
               ],
               "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*"
           }
       ]
   }
   ```

------

   **Amazon EC2-`CreateSnapshot` und `DescribeSnapShots`-Beispiel**

------
#### [ JSON ]

****  

   ```
   {
      "Version":"2012-10-17",		 	 	 
      "Statement":[
         {
            "Effect":"Allow",
            "Action":"ec2:CreateSnapshot",
            "Resource":"*"
         },
         {
            "Effect":"Allow",
            "Action":"ec2:DescribeSnapshots",
            "Resource":"*"
         }
      ]
   }
   ```

------

    Details zur IAM-Richtliniensprache und finden Sie in der [IAM JSON Policy Reference](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) im *IAM-Benutzerhandbuch*.

1. Wählen Sie, wenn Sie fertig sind, **Review policy (Richtlinie überprüfen)** aus. Die [Richtlinienvalidierung](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html) meldet mögliche Syntaxfehler.

1. Für **Name** geben Sie einen Namen zur Identifizierung der Richtlinie ein, die Sie erstellen. Überprüfen Sie unter **Summary** die Richtlinienzusammenfassung, um die Berechtigungen einzusehen, die von Ihrer Richtlinie gewährt werden. Wählen Sie dann **Create policy** aus, um Ihre Eingaben zu speichern.

1. Nachdem Sie eine Inline-Richtlinie erstellt haben, wird sie automatisch in Ihre Rolle eingebettet.

## Aufgabe 5: Konfigurieren des Benutzerzugriffs auf Change Manager
<a name="change-manager-passrole"></a>

Wenn Ihrem Benutzer, Ihrer Gruppe oder Rolle Administratorrechte zugewiesen sind, haben Sie Zugriff auf Change Manager. Wenn Sie nicht über Administratorberechtigungen verfügen, muss ein Administrator die von `AmazonSSMFullAccess` verwaltete Richtlinie oder eine Richtlinie, die vergleichbare Berechtigungen bereitstellt, Ihrem Benutzer, Ihrer Gruppe oder Ihrer Rolle zuweisen.

Konfigurieren Sie mit den folgenden Schritten einen Benutzer zur Verwendung von Change Manager. Der ausgewählte Benutzer verfügt über die Berechtigung zum Konfigurieren und Ausführen von Change Manager. 

Abhängig von der Identitätsanwendung, die Sie in Ihrer Organisation verwenden, können Sie eine der drei verfügbaren Optionen zum Konfigurieren des Benutzerzugriffs auswählen. Weisen Sie beim Konfigurieren des Benutzerzugriffs Folgendes zu oder fügen Sie Folgendes hinzu: 

1. Weisen Sie die `AmazonSSMFullAccess`-Richtlinie oder eine vergleichbare Richtlinie zu, die Zugriff auf Systems Manager gewährt.

1. Weisen Sie die `iam:PassRole`-Richtlinie zu.

1. Fügen Sie den ARN für die von Change Manager übernommene Rolle hinzu, die Sie am Ende von [Aufgabe 2: Erstellen einer Übernahmerolle für Change Manager](#change-manager-role) kopiert haben.

Um Zugriff zu gewähren, fügen Sie Ihren Benutzern, Gruppen oder Rollen Berechtigungen hinzu:
+ Benutzer und Gruppen in AWS IAM Identity Center:

  Erstellen Sie einen Berechtigungssatz. Befolgen Sie die Anweisungen unter [Erstellen eines Berechtigungssatzes](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) im *AWS IAM Identity Center -Benutzerhandbuch*.
+ Benutzer, die in IAM über einen Identitätsanbieter verwaltet werden:

  Erstellen Sie eine Rolle für den Identitätsverbund. Befolgen Sie die Anleitung unter [Eine Rolle für einen externen Identitätsanbieter (Verbund) erstellen](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) im *IAM-Benutzerhandbuch*.
+ IAM-Benutzer:
  + Erstellen Sie eine Rolle, die Ihr Benutzer annehmen kann. Befolgen Sie die Anleitung unter [Eine Rolle für einen IAM-Benutzer erstellen](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) im *IAM-Benutzerhandbuch*.
  + (Nicht empfohlen) Weisen Sie einem Benutzer eine Richtlinie direkt zu oder fügen Sie einen Benutzer zu einer Benutzergruppe hinzu. Befolgen Sie die Anweisungen unter [Hinzufügen von Berechtigungen zu einem Benutzer (Konsole)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) im *IAM-Benutzerhandbuch*.

Sie haben die Konfiguration der erforderlichen Rollen für Change Manager abgeschlossen. Sie können jetzt die Change Manager-Übernahmerolle-ARN in Ihren Change Manager-Vorgängen verwenden.

# Steuern des Zugriffs auf Runbook-Workflows für automatische Genehmigung
<a name="change-manager-auto-approval-access"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

In jeder Änderungsvorlage, die für Ihre Organisation oder Ihr Konto erstellt wurde, können Sie angeben, ob Änderungsanforderungen, die mit dieser Vorlage erstellt wurden, als automatisch genehmigte Änderungsanforderungen ausgeführt werden können. Dies bedeutet, dass sie automatisch ohne Überprüfungsschritt ausgeführt werden (mit Ausnahme von Change–Freeze-Ereignissen).

Möglicherweise möchten Sie jedoch verhindern, dass bestimmte Benutzer, Gruppen oder AWS Identity and Access Management (IAM-) Rollen automatisch genehmigte Änderungsanforderungen ausführen, auch wenn eine Änderungsvorlage dies zulässt. Sie können dies durch die Verwendung des `ssm:AutoApprove`-Bedingungsschlüssel für den `StartChangeRequestExecution`-Vorgang in einer IAM-Richtlinie tun, die der Benutzer-, Gruppen- oder IAM-Rolle zugewiesen ist. 

Sie können die folgende Richtlinie als Inline-Richtlinie hinzufügen, wobei die Bedingung als `false` angegeben wird, um zu verhindern, dass Benutzer automatisch genehmigungsfähige Änderungsanforderungen ausführen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
            {
            "Effect": "Allow",
            "Action": "ssm:StartChangeRequestExecution",
            "Resource": "*",
            "Condition": {
                "BoolIfExists": {
                    "ssm:AutoApprove": "false"
                }
            }
        }
    ]
}
```

------

Informationen zum Festlegen von Inline-Richtlinien finden Sie unter [Inline-Richtlinien](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) und [Hinzufügen und Entfernen von IAM-Identitätsberechtigungen](https://docs.aws.amazon.com//IAM/latest/UserGuide/access_policies_manage-attach-detach.html) im *IAM-Benutzerhandbuch*.

Weitere Informationen über Bedingungsschlüssel für Systems Manager finden Sie unter [Condition keys for Systems Manager](security_iam_service-with-iam.md#policy-conditions) (Bedingungsschlüssel für Systems Manager).

# Arbeiten mit Change Manager
<a name="working-with-change-manager"></a>

**Change ManagerVerfügbarkeit ändern**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Mit Change Manager einem Tool in AWS-Konto können Benutzer in AWS Systems Manager Ihrer gesamten Organisation oder in einem einzigen Tool Aufgaben im Zusammenhang mit Änderungen ausführen, für die ihnen die erforderlichen Berechtigungen erteilt wurden. Change ManagerZu den Aufgaben gehören die folgenden:
+ Änderungsvorlagen erstellen, prüfen und genehmigen oder ablehnen. 

  Eine Änderungsvorlage ist eine Sammlung von Konfigurationseinstellungen in Change Manager, die beispielsweise erforderliche Genehmigungen, verfügbare Runbooks und Benachrichtigungsoptionen für Änderungsanforderungen definiert.
+ Änderungsanforderungen erstellen, prüfen und genehmigen oder ablehnen.

  Eine Änderungsanforderung ist eine Anforderung Change Manager zur Ausführung eines Automatisierungs-Runbooks, das eine oder mehrere Ressourcen in Ihren AWS oder lokalen Umgebungen aktualisiert. Ein Änderungsantrag wird mit einer Änderungsvorlage erstellt.
+ Geben Sie an, welche Benutzer in Ihrer Organisation oder Ihrem Konto zu Prüfern für Änderungsvorlagen und Änderungsanforderungen gemacht werden können.
+ Bearbeiten Sie Konfigurationseinstellungen, z. B. die Verwaltung von Benutzeridentitäten in Change Manager und welche der verfügbaren *bewährten Methoden*-Optionen in Ihrem Change Manager erzwungen werden. Weitere Informationen zum Konfigurieren dieser Einstellungen finden Sie unter [Konfigurieren von Change Manager-Optionen und bewährten Methoden](change-manager-account-setup.md).

**Topics**
+ [Arbeiten mit Änderungsvorlagen](change-templates.md)
+ [Verwenden von Änderungsanforderungen](change-requests.md)
+ [Überprüfen von Details, Aufgaben und Zeitplänen für Änderungsanforderungen (Konsole)](reviewing-changes.md)
+ [Aggregierte Anzahl von Änderungsaufträgen anzeigen (Befehlszeile)](change-requests-review-aggregate-command-line.md)

# Arbeiten mit Änderungsvorlagen
<a name="change-templates"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Eine Änderungsvorlage ist eine Sammlung von Konfigurationseinstellungen in Change Manager, die beispielsweise erforderliche Genehmigungen, verfügbare Runbooks und Benachrichtigungsoptionen für Änderungsanforderungen definiert.

**Anmerkung**  
AWS bietet ein Beispiel für eine [Hello World-Änderungsvorlage](change-templates-aws-managed.md), die Sie zum Ausprobieren verwenden könnenChange Manager, ein Tool in AWS Systems Manager. Sie erstellen jedoch Ihre eigenen Änderungsvorlagen, um die Änderungen zu definieren, die Sie an den Ressourcen in Ihrer Organisation oder Ihrem Konto zulassen möchten. 

Die Änderungen, die bei der Ausführung eines Runbook-Workflows vorgenommen werden, basieren auf dem Inhalt eines Automation-Runbooks. In jede von Ihnen erstellte Änderungsvorlage können Sie ein oder mehrere Automation-Runbooks aufnehmen, aus denen der Benutzer, der eine Änderungsanforderung stellt, auswählen kann, um sie während der Aktualisierung auszuführen. Sie können auch Änderungsvorlagen erstellen, mit denen Anforderer ein beliebiges Automation-Runbook für den Änderungsantrag auswählen können.

Um eine Änderungsvorlage zu erstellen, können Sie die **Builder**-Option in der Konsolenseite **Vorlage erstellen** verwenden, um eine Änderungsvorlage zu erstellen. Alternativ können Sie mit der **Editor-Option** JSON- oder YAML-Inhalte mit der gewünschten Konfiguration für Ihren Runbook-Workflow manuell erstellen. Sie können auch ein Befehlszeilentool verwenden, um eine Änderungsvorlage zu erstellen, wobei JSON-Inhalt für die Änderungsvorlage in einer externen Datei gespeichert ist.

**Topics**
+ [Testen Sie die Vorlage für AWS verwaltete `Hello World` Änderungen](change-templates-aws-managed.md)
+ [Erstellen von Änderungsvorlagen](change-templates-create.md)
+ [Überprüfen und Genehmigen oder Ablehnen von Änderungsvorlagen](change-templates-review.md)
+ [Löschen von Änderungsvorlagen](change-templates-delete.md)

# Testen Sie die Vorlage für AWS verwaltete `Hello World` Änderungen
<a name="change-templates-aws-managed"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Sie können die Beispieländerungsvorlage `AWS-HelloWorldChangeTemplate` verwenden, die das Beispiel-Automation-Runbook `AWS-HelloWorld` verwendet, um den Prüf- und Genehmigungsprozess zu testen, nachdem Sie die Einrichtung von Change Manager abgeschlossen haben, einem Tool in AWS Systems Manager. Diese Vorlage dient zum Testen oder Überprüfen der konfigurierten Berechtigungen, Genehmigungszuweisungen und des Genehmigungsprozesses. Die Genehmigung zur Verwendung dieser Änderungsvorlage in Ihrer Organisation oder Ihrem Konto wurde bereits von AWS bereitgestellt. Jeder Änderungsantrag, der auf dieser Änderungsvorlage basiert, muss jedoch weiterhin von Prüfern in Ihrer Organisation oder Ihrem Konto genehmigt werden.

Anstatt Änderungen an einer Ressource vorzunehmen, besteht das Ergebnis des mit dieser Vorlage verknüpften Runbook-Workflows darin, eine Meldung in der Ausgabe eines Automatisierungsschritts zu drucken.

**Bevor Sie beginnen**  
Überprüfen Sie zu Beginn, ob Sie die folgenden Aufgaben ausgeführt haben:
+ Wenn Sie Änderungen in einer Organisation verwalten AWS Organizations möchten, führen Sie die unter beschriebenen Aufgaben zur Einrichtung der Organisation durch[Einrichten von Change Manager für eine Organisation (Management-Konto)](change-manager-organization-setup.md).
+ Konfigurieren Sie Change Manager für Ihr delegiertes Administratorkonto oder ein einzelnes Konto, wie unter [Konfigurieren von Change Manager-Optionen und bewährten Methoden](change-manager-account-setup.md) beschrieben. 
**Anmerkung**  
Wenn Sie in Ihren Change Manager-Einstellungen die Bewährte–Methoden-Option **Überwachen für alle Vorlagen erforderlich** aktiviert haben, schalten Sie sie vorübergehend aus, während Sie die Änderungsvorlage Hello World testen.

**Um die AWS verwaltete Hello World-Änderungsvorlage auszuprobieren**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Manager** aus.

1. Wählen Sie **Create request (Erstellen einer Anfrage)**.

1. Wählen Sie die Änderungsvorlage mit dem Namen `AWS-HelloWorldChangeTemplate` und wählen Sie danach **Weiter**.

1. Geben Sie für **Name** einen Namen für die Änderungsanforderung ein, mit der ihre Funktion leicht zu erkennen ist, z. B. **MyChangeRequestTest**.

1. Weitere Informationen zu den weiteren Schritten zum Erstellen der Änderungsanforderung finden Sie unter [Erstellen von ÄnderungsanforderungenErstellen von Änderungsanforderungen (Konsole)](change-requests-create.md).

**Nächste Schritte**  
Weitere Informationen zum Genehmigen von Änderungsanforderungen finden Sie unter [Überprüfen und Genehmigen oder Ablehnen von Änderungsanforderungen](change-requests-review.md).

Um den Status und die Ergebnisse Ihres Änderungsantrags anzuzeigen, wählen Sie den Namen Ihres Änderungsantrags auf der Registerkarte **Anforderungen** in Change Manager. 

# Erstellen von Änderungsvorlagen
<a name="change-templates-create"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Eine Änderungsvorlage ist eine Sammlung von Konfigurationseinstellungen in Change Manager, die beispielsweise erforderliche Genehmigungen, verfügbare Runbooks und Benachrichtigungsoptionen für Änderungsanforderungen definiert.

Sie können Änderungsvorlagen für Ihre Vorgänge in Change Manager, einem Tool in AWS Systems Manager, über die Konsole erstellen, die Builder- und Editor-Optionen enthält, oder mit Befehlszeilentools.

**Topics**
+ [Über Genehmigungen in Ihren Änderungsvorlagen](cm-approvals-templates.md)
+ [Erstellen von Änderungsvorlagen mit Builder](change-templates-custom-builder.md)
+ [Erstellen von Änderungsvorlagen mit dem Editor](change-templates-custom-editor.md)
+ [Erstellen von Änderungsvorlagen mit Befehlszeilenwerkzeugen](change-templates-tools.md)

# Über Genehmigungen in Ihren Änderungsvorlagen
<a name="cm-approvals-templates"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Für jede von Ihnen erstellte Änderungsvorlage können Sie bis zu fünf *Genehmigungsebenen* für daraus erstellte Änderungsanfragen angeben. Für jede dieser Ebenen können Sie bis zu fünf potenzielle *Genehmiger* benennen. Ein Genehmiger ist nicht auf einen einzelnen Benutzer beschränkt. Sie können auch eine IAM-Gruppe oder IAM-Rolle als einzelne Genehmiger angeben. Für IAM-Gruppen und IAM-Rollen können ein oder mehrere Benutzer, die zu der Gruppe oder Rolle gehören, Genehmigungen für den Erhalt der Gesamtzahl der Genehmigungen erteilen, die für eine Änderungsanforderung erforderlich sind. Sie können auch mehr Genehmiger angeben, als Ihre Änderungsvorlage erfordert.

Change Manager unterstützt zwei Hauptansätze für Genehmigungen: *Genehmigungen pro Ebene* und *Genehmigungen pro Zeile*. In manchen Situationen ist auch eine Kombination der beiden Typen möglich. Wir empfehlen, in Ihren Change Manager-Operationen nur Genehmigungen pro Ebene zu verwenden.

------
#### [ Per-level approvals ]

*Empfohlen*. Ab dem 23. Januar 2023 unterstützt Change Manager Genehmigungen pro Ebene. In diesem Modell geben Sie zunächst für jede Genehmigungsebene in Ihrer Änderungsvorlage an, wie viele Genehmigungen für diese Ebene erforderlich sind. Anschließend legen Sie mindestens so viele Genehmiger für die Ebene fest und können weitere Genehmiger angeben. Allerdings muss nur die von Ihnen festgelegte Anzahl von Genehmigern pro Ebene die Änderungsanfrage genehmigen. Sie können zum Beispiel fünf Genehmiger angeben, aber nur drei Genehmigungen verlangen.

Beispiele für diesen Genehmigungstyp in Konsolenansicht und JSON finden Sie unter [Beispiel für eine Genehmigungskonfiguration pro Ebene](approval-type-samples.md#per-level-approvals).

------
#### [ Per-line approvals ]

*Unterstützt aus Gründen der Abwärtskompatibilität*. Die ursprüngliche Version von Change Manager hat nur Genehmigungen pro Zeile unterstützt. In diesem Modell wird jeder für eine Genehmigungsebene angegebene Genehmiger als Genehmigungszeile dargestellt. Jeder Genehmiger musste eine Änderungsanfrage genehmigen, damit es auf dieser Ebene genehmigt werden konnte. Vor dem 23. Januar 2023 war dies das einzige unterstützte Modell für Genehmigungen. Änderungsvorlagen, die vor diesem Datum erstellt wurden, unterstützen weiterhin Genehmigungen pro Zeile, aber wir empfehlen, stattdessen Genehmigungen pro Ebene zu verwenden.

Beispiele für diesen Genehmigungstyp in Konsolenansicht und JSON finden Sie unter [Beispiel für eine Genehmigungskonfiguration pro Zeile](approval-type-samples.md#per-line-approvals).

------
#### [ Combined per-line and per-level approvals ]

*Nicht empfohlen*. In der Konsole unterstützt die Registerkarte **Builder** nicht mehr das Hinzufügen von Genehmigungen pro Zeile. In einigen Fällen kann es jedoch vorkommen, dass Sie in einer Änderungsvorlage sowohl Genehmigungen pro Zeile als auch pro Ebene erhalten. Dies kann vorkommen, wenn Sie eine Änderungsvorlage aktualisieren, die vor dem 23. Januar 2023 erstellt wurde, oder wenn Sie eine Änderungsvorlage erstellen oder aktualisieren, indem Sie ihren YAML-Inhalt manuell bearbeiten,

Beispiele für diesen Genehmigungstyp in Konsolenansicht und JSON finden Sie unter [Beispiel für eine kombinierte Genehmigungskonfiguration pro Ebene und pro Zeile](approval-type-samples.md#combined-approval-levels).

------

**Wichtig**  
Es ist zwar möglich, eine Änderungsvorlage zu erstellen, die Genehmigungen pro Zeile und pro Ebene kombiniert, diese Konfiguration ist jedoch nicht empfohlen oder erforderlich. Die Genehmigungsart, die mehr Genehmigungen erfordert (Genehmigungen pro Zeile oder pro Ebene), hat Vorrang. Beispiel:  
Wenn eine Änderungsvorlage drei Genehmigungen pro Ebene, aber fünf Genehmigungen pro Zeile angibt, sind fünf Genehmigungen erforderlich.
Wenn eine Änderungsvorlage vier Genehmigungen pro Ebene, aber zwei Genehmigungen pro Zeile vorsieht, sind vier Genehmigungen erforderlich.

Sie können eine Ebene erstellen, die sowohl Genehmigungen pro Zeile als auch pro Ebene enthält, indem Sie den YAML- oder JSON-Inhalt manuell bearbeiten. Anschließend werden auf der Registerkarte **Builder** Steuerelemente zum Festlegen der erforderlichen Anzahl von Genehmigungen sowohl für die Ebene als auch für einzelne Zeilen angezeigt. Neue Ebenen, die Sie mithilfe der Konsole hinzufügen, unterstützen jedoch weiterhin nur Genehmigungskonfigurationen pro Ebene.

## Benachrichtigungen und Ablehnungen von Änderungsanfragen
<a name="notifications-and-rejections"></a>

Amazon-SNS-Benachrichtigungen  
Wenn eine Änderungsanfrage mit Ihrer Änderungsvorlage erstellt wird, werden Benachrichtigungen an Abonnenten des Amazon Simple Notification Service (Amazon SNS)-Themas gesendet, das für Genehmigungsbenachrichtigungen auf dieser Ebene vorgesehen ist. Sie können das Benachrichtigungsthema in der Änderungsvorlage angeben oder dem Benutzer, der die Änderungsanfrage erstellt, erlauben, eines anzugeben.  
Nachdem die Mindestanzahl erforderlicher Genehmigungen auf einer Ebene empfangen wurde, werden Benachrichtigungen an Genehmiger gesendet, die das Amazon-SNS-Thema für die nächste Ebene abonniert haben, und so weiter.  
Stellen Sie sicher, dass die von Ihnen gemeinsam benannten IAM-Rollen, -Gruppen und -Benutzer über ausreichend Genehmigungen verfügen, um die von Ihnen angegebene Anzahl von Genehmigungen zu erfüllen. Wenn Sie beispielsweise nur eine einzelne IAM-Gruppe mit drei Benutzern als Genehmiger festlegen, können Sie nicht festlegen, dass auf dieser Ebene fünf Genehmigungen obligatorisch sind, sondern nur drei oder weniger.

Ablehnungen von Änderungsanfragen  
Unabhängig davon, wie viele Genehmigungsebenen und Genehmiger Sie angeben, ist nur eine Ablehnung einer Änderungsanfrage erforderlich, um zu verhindern, dass der Runbook-Workflow für diese Anfrage ausgeführt wird.

# Beispiele für Change Manager-Genehmigungsarten
<a name="approval-type-samples"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Die folgenden Beispiele veranschaulichen die Konsolenansicht und den JSON-Inhalt für die drei Arten von Genehmigungstypen in Change Manager.

**Topics**
+ [Beispiel für eine Genehmigungskonfiguration pro Ebene](#per-level-approvals)
+ [Beispiel für eine Genehmigungskonfiguration pro Zeile](#per-line-approvals)
+ [Beispiel für eine kombinierte Genehmigungskonfiguration pro Ebene und pro Zeile](#combined-approval-levels)

## Beispiel für eine Genehmigungskonfiguration pro Ebene
<a name="per-level-approvals"></a>

Bei der im folgenden Image gezeigten Einrichtung der Genehmigungsebene pro Ebene sind drei Genehmigungen erforderlich. Diese Genehmigungen können aus einer beliebigen Kombination von IAM-Benutzern, Gruppen und Rollen stammen, die als Genehmiger angegeben sind. Zu den angegebenen Genehmigern gehören zwei IAM-Benutzer (John Stiles und Ana Carolina Silva), eine Benutzergruppe mit drei Mitgliedern (`GroupOfThree`) und eine Benutzerrolle, die zehn Benutzer repräsentiert (`RoleOfTen`). 

Wenn alle drei Benutzer in der `GroupOfThree`-Gruppe die Änderungsanfrage genehmigen, wird sie für diese Ebene genehmigt. Es ist nicht erforderlich, eine Genehmigung von jedem Benutzer, Gruppe oder Rolle zu erhalten. Die Mindestanzahl an Genehmigungen kann von einer beliebigen Kombination festgelegter Genehmiger stammen. Wir empfehlen, für Ihre Change Manager-Operationen nur Genehmigungen pro Ebene zu verwenden.

![\[Genehmigungsebene, bei der drei Genehmigungen erforderlich sind und vier Genehmiger angegeben sind.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/Add-approval-2.png)


Das folgende Beispiel veranschaulicht einen Teil des YAML-Codes für diese Konfiguration. 

**Anmerkung**  
Diese Version des YAML-Codes enthält eine zusätzliche Eingabe, `MinRequiredApprovals` (mit einem großen Anfangsbuchstaben `M`). Der Wert für diese Eingabe gibt an, wie viele Genehmigungen von allen verfügbaren Prüfern erforderlich sind. Beachten Sie auch, dass der Wert `minRequiredApprovals` (in Kleinbuchstaben `m`) für jeden Genehmiger in der `Approvers`-Liste `0` (Null) ist. Dies zeigt an, dass der Genehmiger zu den Gesamtgenehmigungen beitragen kann, aber nicht dazu verpflichtet ist.

```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
  - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 604800
    inputs:
      Message: Please approve this change request
      MinRequiredApprovals: 3
      EnhancedApprovals:
        Approvers:
          - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 0
          - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 0
          - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 0
          - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 0
templateInformation: >
  #### What is the purpose of this change?
    //truncated
```

## Beispiel für eine Genehmigungskonfiguration pro Zeile
<a name="per-line-approvals"></a>

In der Konfiguration der Genehmigungsebene, die im folgenden Image dargestellt ist, werden vier Genehmiger angegeben. Dazu gehören zwei IAM-Benutzer (John Stiles und Ana Carolina Silva), eine Benutzergruppe mit drei Mitgliedern (`GroupOfThree`) und eine Benutzerrolle, die zehn Benutzer repräsentiert (`RoleOfTen`). Aus Gründen der Abwärtskompatibilität werden Genehmigungen pro Zeile unterstützt, jedoch nicht empfohlen.

![\[Genehmigungsebene mit vier erforderlichen Genehmigern pro Zeile.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/Add-approval-1.png)


Damit die Änderungsanfrage in dieser Genehmigungskonfiguration pro Zeile genehmigt werden kann, muss sie von allen genehmigenden Zeilen genehmigt werden:: John Stiles, Ana Carolina Silva, einem Mitglied der `GroupOfThree`-Gruppe und einem Mitglied der `RoleOfTen`-Rolle.

Das folgende Beispiel veranschaulicht einen Teil des YAML-Codes für diese Konfiguration.

**Anmerkung**  
Beachten Sie, dass der Wert für jeden `minRequiredApprovals`-Genehmiger `1` beträgt. Dies bedeutet, dass von jedem Genehmiger eine Genehmigung erforderlich ist.

```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
  - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 10000
    inputs:
      Message: Please approve this change request
      EnhancedApprovals:
        Approvers:
          - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 1
          - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 1
          - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 1
          - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 1
executableRunBooks:
  - name: AWS-HelloWorld
    version: $DEFAULT
templateInformation: >
  #### What is the purpose of this change?
    //truncated
```

## Beispiel für eine kombinierte Genehmigungskonfiguration pro Ebene und pro Zeile
<a name="combined-approval-levels"></a>

Im folgenden Image werden bei der kombinierten Genehmigungskonfiguration pro Ebene und pro Zeile drei Genehmigungen für die Ebene angegeben, aber vier Genehmigungen für die Genehmigungen der einzelnen Positionen. Welcher Genehmigungstyp mehr Genehmigungen erfordert, hat Vorrang vor dem anderen, sodass für diese Konfiguration vier Genehmigungen erforderlich sind. Eine kombinierte Genehmigung pro Ebene und pro Linie wird nicht empfohlen.

![\[Genehmigungsebene mit drei Genehmigungen, die für die Ebene erforderlich sind, aber vier, die auf Linienebene erforderlich sind.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/Add-approval-3.png)


```
schemaVersion: "0.3"
emergencyChange: false
autoApprovable: false
mainSteps:
  - name: ApproveAction1
    action: aws:approve
    timeoutSeconds: 604800
    inputs:
      Message: Please approve this change request
      MinRequiredApprovals: 3
      EnhancedApprovals:
        Approvers:
          - approver: John Stiles
            type: IamUser
            minRequiredApprovals: 1
          - approver: Ana Carolina Silva
            type: IamUser
            minRequiredApprovals: 1
          - approver: GroupOfThree
            type: IamGroup
            minRequiredApprovals: 1
          - approver: RoleOfTen
            type: IamRole
            minRequiredApprovals: 1
templateInformation: >
  #### What is the purpose of this change?
    //truncated
```

**Topics**
+ [Über Genehmigungen in Ihren Änderungsvorlagen](cm-approvals-templates.md)
+ [Erstellen von Änderungsvorlagen mit Builder](change-templates-custom-builder.md)
+ [Erstellen von Änderungsvorlagen mit dem Editor](change-templates-custom-editor.md)
+ [Erstellen von Änderungsvorlagen mit Befehlszeilenwerkzeugen](change-templates-tools.md)

# Erstellen von Änderungsvorlagen mit Builder
<a name="change-templates-custom-builder"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Mit dem Builder für Änderungsvorlagen in Change Manager, einem Tool in AWS Systems Manager, können Sie den in Ihrer Änderungsvorlage definierten Runbook-Workflow konfigurieren, ohne JSON- oder YAML-Syntax verwenden zu müssen. Nachdem Sie Ihre Optionen festgelegt haben, konvertiert das System Ihre Eingabe in das YAML-Format, das Systems Manager zum Ausführen von Runbook-Workflows verwenden kann.

**So erstellen Sie eine Änderungsvorlage mit Builder**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Manager** aus.

1. Wählen Sie **Create template (Vorlage erstellen)** aus.

1. Geben Sie für **Name** einen Namen für die Vorlage ein, mit der ihre Funktion leicht zu erkennen ist, z. B. **UpdateEC2LinuxAMI**.

1. Gehen Sie im Abschnitt **Details zur Änderungsvorlage** wie folgt vor:
   + Geben Sie für **Beschreibung** eine kurze Erklärung ein, wie und wann die von Ihnen erstellte Änderungsvorlage verwendet werden soll. 

     Mit dieser Beschreibung können Benutzer, die Änderungsanforderungen erstellen, feststellen, ob sie die richtige Änderungsvorlage verwenden. Es hilft denjenigen, die Änderungsanforderungen überprüfen, zu verstehen, ob die Anforderung genehmigt werden soll.
   + Geben Sie für **Änderungsvorlagentyp** an, ob Sie eine Standard- oder eine Notfalländerungsvorlage erstellen.

     Eine Vorlage für Notfalländerungen wird für Situationen verwendet, in denen eine Änderung auch dann vorgenommen werden muss, wenn die Änderungen ansonsten durch ein Ereignis im verwendeten Kalender blockiert werden AWS Systems Manager Change Calendar. Änderungsanforderungen, die aus einer Notfalländerungsvorlage erstellt wurden, müssen immer noch von den dafür vorgesehenen Genehmigern genehmigt werden, aber die angeforderten Änderungen können auch dann ausgeführt werden, wenn der Kalender gesperrt ist.
   + Geben Sie für **Runbook-Optionen** die Runbooks an, aus denen Benutzer beim Erstellen einer Änderungsanforderung auswählen können. Sie können ein einzelnes Runbook oder mehrere Runbooks hinzufügen. Alternativ können Sie Anforderern erlauben, anzugeben, welches Runbook verwendet werden soll. In jedem dieser Fälle kann nur ein Runbook in der Änderungsanforderung aufgenommen werden.
   + Wählen Sie für **Runbook** die Namen der Runbooks und die Versionen dieser Runbooks aus, aus denen Benutzer für ihre Änderungsanforderungen auswählen können. Unabhängig davon, wie viele Runbooks Sie der Änderungsvorlage hinzufügen, kann pro Änderungsanforderung nur eines ausgewählt werden.

     Sie geben kein Runbook an, wenn Sie **Jedes Runbook kann verwendet werden** vorher bereits gewählt haben.
**Tipp**  
Wählen Sie ein Runbook und eine Runbook-Version aus und wählen Sie dann **View** (Anzeigen), um den Inhalt des Runbooks in der Oberfläche von Systems Manager Documents zu prüfen.

1. Geben Sie im Abschnitt **Vorlageninformationen** mit Markdown Informationen für Benutzer ein, die Änderungsanforderungen von dieser Änderungsvorlage erstellen. Wir haben eine Reihe von Fragen bereitgestellt, die Sie für Benutzer, die Änderungsanforderungen erstellen, einfügen können, oder Sie können stattdessen andere Informationen und Fragen hinzufügen. 
**Anmerkung**  
Markdown ist eine Markup-Sprache, die es Ihnen ermöglicht, Dokumente und einzelne Schritte innerhalb des Dokuments mit Beschreibungen im Wiki-Stil zu versehen. Weitere Informationen zur Verwendung von Markdown finden Sie unter [Verwenden von Markdown in AWS](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html).

   Wir empfehlen, Benutzern Fragen zur Beantwortung ihrer Änderungsanforderungen zur Verfügung zu stellen, damit Genehmiger entscheiden können, ob sie jede Änderungsanforderung erteilen möchten oder nicht, z. B. das Auflisten aller manuellen Schritte, die für die Ausführung als Teil der Änderung erforderlich sind, und ein Rollback-Plan. 
**Tipp**  
Wechseln Sie zwischen **Vorschau ausblenden** und **Vorschau anzeigen**, um zu sehen, wie der Inhalt während der Erstellung aussieht.

1. Im Abschnitt **Change request approvals (Genehmigungen für Änderungsanträge)** gehen Sie wie folgt vor:
   + (Optional) Wenn Sie zulassen möchten, dass Änderungsanforderungen, die aus dieser Änderungsvorlage erstellt wurden, automatisch ausgeführt werden, ohne von Genehmigern geprüft zu werden (mit Ausnahme von Change–Freeze-Ereignissen), wählen Sie **Aktivieren der automatischen Genehmigung (Enable auto-approval)**.
**Anmerkung**  
Durch Aktivieren von automatischen Genehmigungen in einer Änderungsvorlage erhalten Benutzer die *Option* zur Umgehung von Überprüfern. Sie können weiterhin auswählen, ob Prüfer beim Erstellen einer Änderungsanforderung angegeben werden sollen. Daher müssen Sie in der Änderungsvorlage weiterhin Prüferoptionen angeben.
**Wichtig**  
Wenn Sie die automatische Genehmigung für eine Änderungsvorlage aktivieren, können Benutzer Änderungsanforderungen mithilfe dieser Vorlage übermitteln, die vor der Ausführung nicht von Prüfern überprüft werden müssen (mit Ausnahme von Change-Freeze-Genehmigern). Wenn Sie einen bestimmten Benutzer, eine Gruppe oder IAM-Rolle daran hindern möchten, automatische Genehmigungsanforderungen zu senden, können Sie eine Bedingung in einer IAM-Richtlinie zu diesem Zweck verwenden. Weitere Informationen finden Sie unter [Steuern des Zugriffs auf Runbook-Workflows für automatische Genehmigung](change-manager-auto-approval-access.md).
   + Wählen Sie für **Anzahl der auf dieser Ebene erforderlichen Genehmigungen** die Anzahl der Genehmigungen aus, die aus dieser Änderungsvorlage erstellte Änderungsanfragen für diese Ebene erhalten müssen.
   + Um obligatorische Genehmiger der ersten Ebene hinzuzufügen, wählen Sie **Genehmiger hinzufügen** und wählen Sie eine der folgenden Optionen:
     + **In der Vorlage angegebene Genehmiger** - Wählen Sie einen oder mehrere Benutzer, Gruppen oder AWS Identity and Access Management -(IAM)-Rollen Ihres Kontos aus, um Änderungsanforderungen zu genehmigen, die mit dieser Änderungsvorlage erstellt wurden. Alle Änderungsanforderungen, die mit dieser Vorlage erstellt werden, müssen von jedem von Ihnen angegebenen Genehmiger geprüft und genehmigt werden.
     + **Request specified approvers** (Angegebene Genehmiger anfordern) – Der Benutzer, der die Änderungsanforderung stellt, gibt Prüfer zum Zeitpunkt der Anforderung an und kann aus einer Liste von Benutzern in Ihrem Konto wählen. 

       Die Nummer, die Sie im Feld **Erforderlich** eingeben, legt fest, wie viele Prüfer von einer Änderungsanforderung angegeben werden müssen, die diese Änderungsvorlage verwendet. 
**Wichtig**  
Vor dem 23. Januar 2023 konnten auf der Registerkarte **Builder** nur Genehmigungen pro Zeile angegeben werden. Neue Änderungsvorlagen und neue Ebenen, die Sie mithilfe der Registerkarte **Builder** zu vorhandenen Änderungsvorlagen hinzufügen, unterstützen nur Genehmigungen pro Ebene. Wir empfehlen, in Ihren Change Manager-Operationen nur Genehmigungen pro Ebene zu verwenden.  
Weitere Informationen finden Sie unter [Über Genehmigungen in Ihren Änderungsvorlagen](cm-approvals-templates.md).
   + Gehen Sie für **SNS-Thema zur Benachrichtigung von Genehmiger** wie folgt vor:

     1. Wählen Sie eine der folgenden Optionen, um das Amazon Simple Notification Service (Amazon SNS)-Thema in Ihrem Konto anzugeben, das für das Senden von Benachrichtigungen an die Genehmiger verwendet werden soll, wenn eine Änderungsanforderung zur Überprüfung bereit ist:
        + **Geben Sie einen SNS-Amazon-Ressourcenname (ARN) ein** - Geben Sie für **Thema-ARN** einen ARN eines vorhandenen Amazon SNS Themas ein. Dieses Thema kann sich in jedem Konto Ihrer Organisation befinden.
        + **Wählen Sie ein vorhandenes SNS-Thema** - Wählen Sie für **Target notification topic** den ARN eines vorhandenen Amazon SNS-Themas in Ihrem aktuellen AWS-Konto. (Diese Option ist nicht verfügbar, wenn Sie in Ihrem aktuellen AWS-Konto und noch keine Amazon SNS SNS-Themen erstellt haben AWS-Region.)
        + **SNS-Thema angeben, wenn die Änderungsanforderung erstellt wird** - Der Benutzer, der eine Änderungsanforderung erstellt, kann das Amazon SNS-Thema angeben, das für Benachrichtigungen verwendet werden soll.
**Anmerkung**  
Das von Ihnen ausgewählte Amazon SNS-Thema muss so konfiguriert werden, dass die gesendeten Benachrichtigungen und die Abonnenten, an die sie gesendet werden, festgelegt werden. Seine Zugriffsrichtlinie muss auch Systems Manager Berechtigungen gewähren, damit Change Manager Benachrichtigungen senden kann. Weitere Informationen finden Sie unter [Konfigurieren von Amazon SNS-Themen für Change Manager-Benachrichtigungen](change-manager-sns-setup.md). 

     1. Wählen Sie **Add notification (Benachrichtigung hinzufügen)** aus.

1. (Optional) Um eine zusätzliche Ebene von Genehmigern hinzuzufügen, wählen Sie **Add approval level** (Genehmigungsebene hinzufügen) und wählen Sie zwischen vorlagenspezifischen Genehmigern und angeforderten Genehmigern für diese Ebene. Wählen Sie dann ein SNS-Thema aus, um diese Genehmiger zu benachrichtigen.

   Nachdem alle Genehmigungen von Genehmiger der ersten Ebene eingegangen sind, werden Genehmiger der zweiten Ebene benachrichtigt usw.

   Sie können maximal fünf Genehmigungsebenen in jeder Vorlage hinzufügen. So könnten Sie beispielsweise für die erste Stufe die Genehmigung von Benutzern in technischen Rollen und für die zweite Stufe die Genehmigung des Managers verlangen.

1. Geben Sie im Abschnitt **Überwachung** für den **zu überwachenden CloudWatch Alarm** den Namen eines CloudWatch Amazon-Alarms im aktuellen Konto ein, um den Fortschritt der Runbook-Workflows zu überwachen, die auf dieser Vorlage basieren. 
**Tipp**  
Um einen neuen Alarm zu erstellen oder die Einstellungen eines Alarms, den Sie angeben möchten, zu überprüfen, wählen Sie **Die CloudWatch Amazon-Konsole öffnen**. Informationen zum Arbeiten mit CloudWatch Alarmen finden Sie unter [Verwenden von CloudWatch Alarmen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) im * CloudWatch Amazon-Benutzerhandbuch*.

1. Führen Sie im Abschnitt **Notifications** (Benachrichtigungen) folgende Schritte aus:

   1. Wählen Sie eine der folgenden Optionen aus, um das Amazon SNS-Thema in Ihrem Konto anzugeben, das zum Senden von Benachrichtigungen über Änderungsanforderungen verwendet werden soll, die mit dieser Änderungsvorlage erstellt werden: 
      + **Geben Sie einen SNS-Amazon-Ressourcenname (ARN) ein** - Geben Sie für **Thema-ARN** einen ARN eines vorhandenen Amazon SNS Themas ein. Dieses Thema kann sich in jedem Konto Ihrer Organisation befinden.
      + **Wählen Sie ein vorhandenes SNS-Thema** - Wählen Sie für **Target notification topic** den ARN eines vorhandenen Amazon SNS-Themas in Ihrem aktuellen AWS-Konto. (Diese Option ist nicht verfügbar, wenn Sie in Ihrem aktuellen AWS-Konto und noch keine Amazon SNS SNS-Themen erstellt haben AWS-Region.)
**Anmerkung**  
Das von Ihnen ausgewählte Amazon SNS-Thema muss so konfiguriert werden, dass die gesendeten Benachrichtigungen und die Abonnenten, an die sie gesendet werden, festgelegt werden. Seine Zugriffsrichtlinie muss auch Systems Manager Berechtigungen gewähren, damit Change Manager Benachrichtigungen senden kann. Weitere Informationen finden Sie unter [Konfigurieren von Amazon SNS-Themen für Change Manager-Benachrichtigungen](change-manager-sns-setup.md). 

   1. Wählen Sie **Add notification (Benachrichtigung hinzufügen)** aus.

1. (Optional) Wenden Sie im Abschnitt „**Tags**“ ein oder mehrere name/value Tag-Schlüsselpaare auf die Änderungsvorlage an.

   Tags sind optionale Metadaten, die Sie einer Ressource zuweisen. Mithilfe von Tags können Sie eine Ressource unterschiedlich kategorisieren, beispielsweise nach Zweck, Besitzer oder Umgebung. Sie können beispielsweise eine Änderungsvorlage mit Tags versehen, um den Änderungstyp und die Umgebung, in der sie ausgeführt wird, zu identifizieren. In diesem Fall könnten Sie die folgenden name/value Schlüsselpaare angeben:
   + `Key=TaskType,Value=InstanceRepair`
   + `Key=Environment,Value=Production`

1. Klicken Sie auf **Save and preview (speichern und Vorschau ansehen)**.

1. Überprüfen Sie die Details der Änderungsvorlage, die Sie gerade erstellen.

   Wenn Sie die Änderungsvorlage ändern möchten, bevor Sie sie zur Überprüfung einreichen, wählen Sie **Actions (Aktionen)**.

   Wenn Sie mit dem Inhalt der Änderungsvorlage zufrieden sind, klicken Sie auf **Submit for review (Zur Überprüfung einreichen)**. Die Benutzer in Ihrer Organisation oder Ihrem Konto, die als Vorlagenprüfer in der Registerkarte **Einstellungen** in Change Manager angegeben sind, werden benachrichtigt, dass eine neue Änderungsvorlage zur Überprüfung aussteht. 

   Wenn ein Amazon SNS-Thema für Änderungsvorlagen angegeben wurde, werden Benachrichtigungen gesendet, wenn die Änderungsvorlage abgelehnt oder genehmigt wird. Wenn Sie keine Benachrichtigungen zu dieser Änderungsvorlage erhalten, können Sie zu Change Manager später zurückkehren, um ihren Status zu überprüfen.

# Erstellen von Änderungsvorlagen mit dem Editor
<a name="change-templates-custom-editor"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Verwenden Sie die Schritte in diesem Thema, um eine Änderungsvorlage in Change Manager, einem Tool in AWS Systems Manager, zu konfigurieren, indem Sie JSON oder YAML eingeben, anstatt die Konsolensteuerung zu verwenden.

**Erstellen einer Änderungsvorlage mit dem Editor**

1. Wählen Sie im Navigationsbereich **Change Manager** aus.

1. Wählen Sie **Create template (Vorlage erstellen)** aus.

1. Geben Sie für **Name** einen Namen für die Vorlage ein, mit der ihre Funktion leicht zu erkennen ist, z. B. **RestartEC2LinuxInstance**.

1. Wählen Sie über **Change template details (Vorlagendetails ändern)** **Editor**.

1. Wählen Sie im Abschnitt **Document Editor (Dokumenteneditor)** die Option **Edit (Bearbeiten)** und geben Sie dann den JSON- oder YAML-Inhalt für Ihre Änderungsvorlage ein. 

   Im Folgenden wird ein -Beispiel gezeigt.
**Anmerkung**  
Der Parameter `minRequiredApprovals` wird verwendet, um anzugeben, wie viele Prüfer auf einer bestimmten Ebene eine Änderungsanforderung genehmigen müssen, die mit dieser Vorlage erstellt wird.  
Dieses Beispiel zeigt zwei Genehmigungsebenen. Sie können bis zu fünf Genehmigungsebenen angeben, aber nur eine Ebene ist erforderlich.   
In der ersten Ebene muss der spezifische Benutzer „John-Doe“ jeden Änderungsantrag genehmigen. Danach müssen drei beliebige Mitglieder der IAM-Rolle `Admin` die Änderungsanforderung genehmigen.  
Weitere Informationen zum Genehmigen von Änderungsvorlagen finden Sie unter [Über Genehmigungen in Ihren Änderungsvorlagen](cm-approvals-templates.md).

------
#### [ YAML ]

   ```
   description: >-
     This change template demonstrates the feature set available for creating
     change templates for Change Manager. This template starts a Runbook workflow
     for the Automation runbook called AWS-HelloWorld.
   templateInformation: >
     ### Document Name: HelloWorldChangeTemplate
   
     ## What does this document do?
   
     This change template demonstrates the feature set available for creating
     change templates for Change Manager. This template starts a Runbook workflow
     for the Automation runbook called AWS-HelloWorld.
   
     ## Input Parameters
   
     * ApproverSnsTopicArn: (Required) Amazon Simple Notification Service ARN for
     approvers.
   
     * Approver: (Required) The name of the approver to send this request to.
   
     * ApproverType: (Required) The type of reviewer.
       * Allowed Values: IamUser, IamGroup, IamRole, SSOGroup, SSOUser
   
     ## Output Parameters
   
     This document has no outputs
   schemaVersion: '0.3'
   parameters:
     ApproverSnsTopicArn:
       type: String
       description: Amazon Simple Notification Service ARN for approvers.
     Approver:
       type: String
       description: IAM approver
     ApproverType:
       type: String
       description: >-
         Approver types for the request. Allowed values include IamUser, IamGroup,
         IamRole, SSOGroup, and SSOUser.
   executableRunBooks:
     - name: AWS-HelloWorld
       version: '1'
   emergencyChange: false
   autoApprovable: false
   mainSteps:
     - name: ApproveAction1
       action: 'aws:approve'
       timeoutSeconds: 3600
       inputs:
         Message: >-
           A sample change request has been submitted for your review in Change
           Manager. You can approve or reject this request.
         EnhancedApprovals:
           NotificationArn: '{{ ApproverSnsTopicArn }}'
           Approvers:
             - approver: John-Doe
               type: IamUser
               minRequiredApprovals: 1
     - name: ApproveAction2
       action: 'aws:approve'
       timeoutSeconds: 3600
       inputs:
         Message: >-
           A sample change request has been submitted for your review in Change
           Manager. You can approve or reject this request.
         EnhancedApprovals:
           NotificationArn: '{{ ApproverSnsTopicArn }}'
           Approvers:
             - approver: Admin
               type: IamRole
               minRequiredApprovals: 3
   ```

------
#### [ JSON ]

   ```
   {
      "description": "This change template demonstrates the feature set available for creating
     change templates for Change Manager. This template starts a Runbook workflow
     for the Automation runbook called AWS-HelloWorld",
      "templateInformation": "### Document Name: HelloWorldChangeTemplate\n\n
       ## What does this document do?\n
       This change template demonstrates the feature set available for creating change templates for Change Manager. 
       This template starts a Runbook workflow for the Automation runbook called AWS-HelloWorld.\n\n
       ## Input Parameters\n* ApproverSnsTopicArn: (Required) Amazon Simple Notification Service ARN for approvers.\n
       * Approver: (Required) The name of the approver to send this request to.\n
       * ApproverType: (Required) The type of reviewer.  * Allowed Values: IamUser, IamGroup, IamRole, SSOGroup, SSOUser\n\n
       ## Output Parameters\nThis document has no outputs\n",
      "schemaVersion": "0.3",
      "parameters": {
         "ApproverSnsTopicArn": {
            "type": "String",
            "description": "Amazon Simple Notification Service ARN for approvers."
         },
         "Approver": {
            "type": "String",
            "description": "IAM approver"
         },
         "ApproverType": {
            "type": "String",
            "description": "Approver types for the request. Allowed values include IamUser, IamGroup, IamRole, SSOGroup, and SSOUser."
         }
      },
      "executableRunBooks": [
         {
            "name": "AWS-HelloWorld",
            "version": "1"
         }
      ],
      "emergencyChange": false,
      "autoApprovable": false,
      "mainSteps": [
         {
            "name": "ApproveAction1",
            "action": "aws:approve",
            "timeoutSeconds": 3600,
            "inputs": {
               "Message": "A sample change request has been submitted for your review in Change Manager. You can approve or reject this request.",
               "EnhancedApprovals": {
                  "NotificationArn": "{{ ApproverSnsTopicArn }}",
                  "Approvers": [
                     {
                        "approver": "John-Doe",
                        "type": "IamUser",
                        "minRequiredApprovals": 1
                     }
                  ]
               }
            }
         },
           {
            "name": "ApproveAction2",
            "action": "aws:approve",
            "timeoutSeconds": 3600,
            "inputs": {
               "Message": "A sample change request has been submitted for your review in Change Manager. You can approve or reject this request.",
               "EnhancedApprovals": {
                  "NotificationArn": "{{ ApproverSnsTopicArn }}",
                  "Approvers": [
                     {
                        "approver": "Admin",
                        "type": "IamRole",
                        "minRequiredApprovals": 3                  
                     }
                  ]
               }
            }
         }
      ]
   }
   ```

------

1. Klicken Sie auf **Save and preview (speichern und Vorschau ansehen)**.

1. Überprüfen Sie die Details der Änderungsvorlage, die Sie gerade erstellen.

   Wenn Sie die Änderungsvorlage ändern möchten, bevor Sie sie zur Überprüfung einreichen, wählen Sie **Actions (Aktionen)**.

   Wenn Sie mit dem Inhalt der Änderungsvorlage zufrieden sind, klicken Sie auf **Submit for review (Zur Überprüfung einreichen)**. Die Benutzer in Ihrer Organisation oder Ihrem Konto, die als Vorlagenprüfer in der Registerkarte **Einstellungen** in Change Manager angegeben sind, werden benachrichtigt, dass eine neue Änderungsvorlage zur Überprüfung aussteht. 

   Wenn ein Amazon Simple Notification Service (Amazon SNS)-Thema für Änderungsvorlagen angegeben wurde, werden Benachrichtigungen gesendet, wenn die Änderungsvorlage abgelehnt oder genehmigt wird. Wenn Sie keine Benachrichtigungen zu dieser Änderungsvorlage erhalten, können Sie zu Change Manager später zurückkehren, um ihren Status zu überprüfen.

# Erstellen von Änderungsvorlagen mit Befehlszeilenwerkzeugen
<a name="change-templates-tools"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Die folgenden Verfahren beschreiben, wie Sie das AWS Command Line Interface (AWS CLI) (unter LinuxmacOS, oderWindows Server) verwenden oder AWS Tools for Windows PowerShell eine Änderungsanforderung in Change Manager einem Tool in erstellen AWS Systems Manager. 

**Erstellen einer Änderungsvorlage:**

1. Installieren und konfigurieren Sie das AWS CLI oder das AWS -Tools für PowerShell, falls Sie das noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Erstellen Sie eine JSON-Datei auf Ihrem lokalen Computer und geben Sie Ihr beispielsweise einen Namen wie `MyChangeTemplate.json`. Kopieren Sie anschließend den folgenden Inhalt in die Datei:
**Anmerkung**  
Änderungsvorlagen verwenden eine Version von Schema 0.3, die nicht die gleiche Unterstützung wie für Automation-Runbooks enthält.

   Im Folgenden wird ein -Beispiel gezeigt.
**Anmerkung**  
Der Parameter `minRequiredApprovals` wird verwendet, um anzugeben, wie viele Prüfer auf einer bestimmten Ebene eine Änderungsanforderung genehmigen müssen, die mit dieser Vorlage erstellt wird.  
Dieses Beispiel zeigt zwei Genehmigungsebenen. Sie können bis zu fünf Genehmigungsebenen angeben, aber nur eine Ebene ist erforderlich.   
In der ersten Ebene muss der spezifische Benutzer „John-Doe“ jeden Änderungsantrag genehmigen. Danach müssen drei beliebige Mitglieder der IAM-Rolle `Admin` die Änderungsanforderung genehmigen.  
Weitere Informationen zum Genehmigen von Änderungsvorlagen finden Sie unter [Über Genehmigungen in Ihren Änderungsvorlagen](cm-approvals-templates.md).

   ```
   {
      "description": "This change template demonstrates the feature set available for creating
     change templates for Change Manager. This template starts a Runbook workflow
     for the Automation runbook called AWS-HelloWorld",
      "templateInformation": "### Document Name: HelloWorldChangeTemplate\n\n
       ## What does this document do?\n
       This change template demonstrates the feature set available for creating change templates for Change Manager. 
       This template starts a Runbook workflow for the Automation runbook called AWS-HelloWorld.\n\n
       ## Input Parameters\n* ApproverSnsTopicArn: (Required) Amazon Simple Notification Service ARN for approvers.\n
       * Approver: (Required) The name of the approver to send this request to.\n
       * ApproverType: (Required) The type of reviewer.  * Allowed Values: IamUser, IamGroup, IamRole, SSOGroup, SSOUser\n\n
       ## Output Parameters\nThis document has no outputs\n",
      "schemaVersion": "0.3",
      "parameters": {
         "ApproverSnsTopicArn": {
            "type": "String",
            "description": "Amazon Simple Notification Service ARN for approvers."
         },
         "Approver": {
            "type": "String",
            "description": "IAM approver"
         },
         "ApproverType": {
            "type": "String",
            "description": "Approver types for the request. Allowed values include IamUser, IamGroup, IamRole, SSOGroup, and SSOUser."
         }
      },
      "executableRunBooks": [
         {
            "name": "AWS-HelloWorld",
            "version": "1"
         }
      ],
      "emergencyChange": false,
      "autoApprovable": false,
      "mainSteps": [
         {
            "name": "ApproveAction1",
            "action": "aws:approve",
            "timeoutSeconds": 3600,
            "inputs": {
               "Message": "A sample change request has been submitted for your review in Change Manager. You can approve or reject this request.",
               "EnhancedApprovals": {
                  "NotificationArn": "{{ ApproverSnsTopicArn }}",
                  "Approvers": [
                     {
                        "approver": "John-Doe",
                        "type": "IamUser",
                        "minRequiredApprovals": 1
                     }
                  ]
               }
            }
         },
           {
            "name": "ApproveAction2",
            "action": "aws:approve",
            "timeoutSeconds": 3600,
            "inputs": {
               "Message": "A sample change request has been submitted for your review in Change Manager. You can approve or reject this request.",
               "EnhancedApprovals": {
                  "NotificationArn": "{{ ApproverSnsTopicArn }}",
                  "Approvers": [
                     {
                        "approver": "Admin",
                        "type": "IamRole",
                        "minRequiredApprovals": 3                  
                     }
                  ]
               }
            }
         }
      ]
   }
   ```

1. Führen Sie den folgenden Befehl aus, um die Änderungsvorlage zu erstellen. 

------
#### [ Linux & macOS ]

   ```
   aws ssm create-document \
       --name MyChangeTemplate \
       --document-format JSON \
       --document-type Automation.ChangeTemplate \
       --content file://MyChangeTemplate.json \
       --tags Key=tag-key,Value=tag-value
   ```

------
#### [ Windows ]

   ```
   aws ssm create-document ^
       --name MyChangeTemplate ^
       --document-format JSON ^
       --document-type Automation.ChangeTemplate ^
       --content file://MyChangeTemplate.json ^
       --tags Key=tag-key,Value=tag-value
   ```

------
#### [ PowerShell ]

   ```
   $json = Get-Content -Path "C:\path\to\file\MyChangeTemplate.json" | Out-String
   New-SSMDocument `
       -Content $json `
       -Name "MyChangeTemplate" `
       -DocumentType "Automation.ChangeTemplate" `
       -Tags "Key=tag-key,Value=tag-value"
   ```

------

   Weitere Informationen zu anderen Optionen, die Sie angeben können, finden Sie unter [https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html).

   Das System gibt unter anderem folgende Informationen zurück

   ```
   {
      "DocumentDescription":{
         "CreatedDate":1.585061751738E9,
         "DefaultVersion":"1",
         "Description":"Use this template to update an EC2 Linux AMI. Requires one
         approver specified in the template and an approver specified in the request.",
         "DocumentFormat":"JSON",
         "DocumentType":"Automation",
         "DocumentVersion":"1",
         "Hash":"0d3d879b3ca072e03c12638d0255ebd004d2c65bd318f8354fcde820dEXAMPLE",
         "HashType":"Sha256",
         "LatestVersion":"1",
         "Name":"MyChangeTemplate",
         "Owner":"123456789012",
         "Parameters":[
            {
               "DefaultValue":"",
               "Description":"Level one approvers",
               "Name":"LevelOneApprovers",
               "Type":"String"
            },
            {
               "DefaultValue":"",
               "Description":"Level one approver type",
               "Name":"LevelOneApproverType",
               "Type":"String"
            },
      "cloudWatchMonitors": {
         "monitors": [
            "my-cloudwatch-alarm"
         ]
      }
         ],
         "PlatformTypes":[
            "Windows",
            "Linux"
         ],
         "SchemaVersion":"0.3",
         "Status":"Creating",
         "Tags":[
   
         ]
      }
   }
   ```

Die Benutzer in Ihrer Organisation oder Ihrem Konto, die als Vorlagenprüfer in der Registerkarte **Einstellungen** in Change Manager angegeben sind, werden benachrichtigt, dass eine neue Änderungsvorlage zur Überprüfung aussteht. 

Wenn ein Amazon Simple Notification Service (Amazon SNS)-Thema für Änderungsvorlagen angegeben wurde, werden Benachrichtigungen gesendet, wenn die Änderungsvorlage abgelehnt oder genehmigt wird. Wenn Sie keine Benachrichtigungen zu dieser Änderungsvorlage erhalten, können Sie zu Change Manager später zurückkehren, um ihren Status zu überprüfen.

# Überprüfen und Genehmigen oder Ablehnen von Änderungsvorlagen
<a name="change-templates-review"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Wenn Sie als Überprüfer für Änderungsvorlagen in Change Manager, einem Tool in AWS Systems Manager, angegeben sind, werden Sie benachrichtigt, wenn eine neue Änderungsvorlage oder eine neue Version einer Änderungsvorlage auf Ihre Überprüfung wartet. Ein Amazon Simple Notification Service (Amazon SNS)-Thema sendet die Benachrichtigungen.

**Anmerkung**  
Diese Funktionalität hängt davon ab, ob Ihr Konto so konfiguriert wurde, dass ein Amazon SNS-Thema verwendet wird, um Benachrichtigungen zur Überprüfung von Änderungsvorlagen zu senden. Informationen zum Festlegen eines Themas für die Benachrichtigung eines Vorlagenprüfers finden Sie unter [Aufgabe 1: Konfigurieren von Change Manager-Benutzeridentitätsverwaltung und Vorlagenprüfern](change-manager-account-setup.md#cm-configure-account-task-1).

Um die Änderungsvorlage zu überprüfen, folgen Sie dem Link in Ihrer Benachrichtigung, melden Sie sich bei der AWS-Managementkonsole an und folgen Sie den Schritten in diesem Verfahren.

**Überprüfen und Genehmigen oder Ablehnen einer Änderungsvorlage**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Manager** aus.

1. Wählen Sie im Abschnitt **Change templates (Änderungsvorlagen)** unten auf der Registerkarte **Overview (Übersicht)** die Nummer in **Pending review (ausstehende Prüfung)**.

1. Suchen Sie in der Liste **Change templates (Änderungsvorlagen)** den Namen der zu überprüfenden Änderungsvorlage und wählen Sie ihn aus.

1. Überprüfen Sie auf der Übersichtsseite den vorgeschlagenen Inhalt der Änderungsvorlage und führen Sie einen der folgenden Schritte aus:
   + Um die Änderungsvorlage zu genehmigen, wodurch sie in Änderungsanforderungen verwendet werden kann, wählen Sie **Approve** (Genehmigen).
   + Um die Änderungsvorlage abzulehnen, wodurch ihre Verwendung in Änderungsanforderungen verhindert wird, wählen Sie **Reject** (Ablehnen).

# Löschen von Änderungsvorlagen
<a name="change-templates-delete"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

In diesem Thema wird beschrieben, wie Sie Vorlagen löschen, die Sie in Change Manager, einem Tool in Systems Manager, erstellt haben. Wenn Sie Change Manager für eine Organisation verwenden, wird dieses Verfahren in Ihrem delegierten Administratorkonto durchgeführt.

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Manager** aus.

1. Wählen Sie die Registerkarte **Templates (Vorlagen)** aus.

1. Wählen Sie den Namen der zu löschenden Vorlage aus.

1. Wählen Sie **Actions, Delete template** (Aktionen, Vorlage löschen).

1. Geben Sie in das Bestätigungsfeld das Wort **DELETE** ein und wählen Sie dann **Delete** (Löschen).

# Verwenden von Änderungsanforderungen
<a name="change-requests"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestehende Kunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Eine Änderungsanforderung ist eine Anforderung Change Manager zur Ausführung eines Automatisierungs-Runbooks, das eine oder mehrere Ressourcen in Ihren AWS oder lokalen Umgebungen aktualisiert. Ein Änderungsantrag wird mit einer Änderungsvorlage erstellt.

Wenn Sie eine Änderungsanforderung in Change Manager erstellen, einem Tool in AWS Systems Manager, muss mindestens ein Genehmiger in Ihrer Organisation oder Ihrem Konto die Anforderung überprüfen und genehmigen. Ohne die erforderlichen Genehmigungen kann der Runbook-Workflow, der die angeforderten Änderungen vornimmt, nicht ausgeführt werden.

**Topics**
+ [Erstellen von Änderungsanforderungen](change-requests-create.md)
+ [Überprüfen und Genehmigen oder Ablehnen von Änderungsanforderungen](change-requests-review.md)

# Erstellen von Änderungsanforderungen
<a name="change-requests-create"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Wenn Sie eine Änderungsanforderung in Change Manager erstellen, einem Tool in AWS Systems Manager, führt die von Ihnen ausgewählte Änderungsvorlage in der Regel folgende Aktionen aus:
+ Bestimmt Genehmiger für die Änderungsanforderung oder gibt an, wie viele Genehmigungen erforderlich sind
+ Gibt das Amazon Simple Notification Service (Amazon SNS)-Thema an, das verwendet werden soll, um Genehmiger über Ihre Änderungsanforderung zu benachrichtigen
+ Spezifiziert einen CloudWatch Amazon-Alarm zur Überwachung des Runbook-Workflows für die Änderungsanforderung
+ Identifiziert, aus welchen Automation-Runbooks Sie wählen können, um die angeforderte Änderung vorzunehmen

In einigen Fällen kann eine Änderungsvorlage konfiguriert werden, sodass Sie Ihr eigenes Automation-Runbook angeben und angeben, wer die Anforderung überprüfen und genehmigen soll.

**Wichtig**  
Wenn Sie den Change Manager in einer Organisation verwenden, empfehlen wir, Änderungen immer über das delegierte Administratorkonto vorzunehmen. Obwohl Sie Änderungen von anderen Konten in der Organisation vornehmen, werden diese Änderungen nicht im delegierten Administratorkonto gemeldet oder können nicht angezeigt werden.

**Topics**
+ [Über die Genehmigung von Änderungsanfragen](#cm-approvals-requests)
+ [Erstellen von Änderungsanforderungen (Konsole)](#change-requests-create-console)
+ [Erstellen von Änderungsanforderungen (AWS CLI)](#change-requests-create-cli)

## Über die Genehmigung von Änderungsanfragen
<a name="cm-approvals-requests"></a>

Abhängig von den in einer Änderungsvorlage festgelegten Anforderungen können Änderungsanfragen, die Sie auf dieser Grundlage erstellen, Genehmigungen von bis zu fünf *Ebenen* erfordern, bevor der Runbook-Workflow für die Anfrage ausgeführt werden kann. Für jede dieser Ebenen kann der Ersteller der Vorlage bis zu fünf potenzielle *Genehmiger* angeben. Ein Genehmiger ist nicht auf einen einzelnen Benutzer beschränkt. Ein Genehmiger in diesem Sinne kann auch eine IAM-Gruppe oder IAM-Rolle sein. Für IAM-Gruppen und IAM-Rollen können ein oder mehrere Benutzer, die zu der Gruppe oder Rolle gehören, Genehmigungen für den Erhalt der Gesamtzahl der Genehmigungen erteilen, die für eine Änderungsanforderung erforderlich sind. Ersteller von Vorlagen können auch mehr Genehmiger angeben, als die Änderungsvorlage erfordert.

**Ursprüngliche Genehmigungsworkflows und aktualisierte and/or Genehmigungen**  
Bei Verwendung von Änderungsvorlagen, die vor dem 23. Januar 2023 erstellt wurden, muss eine Genehmigung von jedem angegebenen Genehmiger eingeholt werden, damit die Änderungsanfrage auf dieser Ebene genehmigt werden kann. Beispielsweise sind in der Einrichtung der Genehmigungsebene, die im folgenden Image angezeigt werden, vier Genehmiger angegeben. Zu den angegebenen Genehmigern gehören zwei Benutzer (John Stiles und Ana Carolina Silva), eine Benutzergruppe mit drei Mitgliedern (GroupOfThree) und eine Benutzerrolle, die zehn Benutzern () entspricht. RoleOfTen

![\[Genehmigungsebene mit vier erforderlichen Genehmigern pro Zeile.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/Add-approval-1.png)


Damit die Änderungsanfrage auf dieser Ebene genehmigt werden kann, muss sie von John Stiles, Ana Carolina Silva, einem Mitglied der `GroupOfThree`-Gruppe und einem Mitglied der `RoleOfTen`-Rolle genehmigt werden.

Unter Verwendung von Änderungsvorlagen, die am oder nach dem 23. Januar 2023 erstellt wurden, können Vorlagenersteller für jede Genehmigungsebene eine Gesamtzahl der erforderlichen Genehmigungen angeben. Diese Genehmigungen können aus einer beliebigen Kombination von Benutzern, Gruppen und Rollen stammen, die als Genehmiger angegeben sind. Eine Änderungsvorlage könnte nur eine Genehmigung für eine Ebene erfordern, aber beispielsweise zwei einzelne Benutzer, zwei Gruppen und eine Rolle als potenzielle Genehmiger angeben.

Beispielsweise sind in der Einrichtung der Genehmigungsebene, die im folgenden Image angezeigt werden, pro Ebene drei Genehmigungen erforderlich. Zu den angegebenen Genehmigern gehören zwei Benutzer (John Stiles und Ana Carolina Silva), eine Benutzergruppe mit drei Mitgliedern (`GroupOfThree`) und eine Benutzerrolle, die zehn Benutzer repräsentiert (`RoleOfTen`).

![\[Genehmigungsebene, bei der drei Genehmigungen erforderlich sind und vier Genehmiger angegeben sind.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/Add-approval-2.png)


Wenn alle drei Benutzer in der `GroupOfThree`-Gruppe die Änderungsanfrage genehmigen, wird er für diese Ebene genehmigt. Es ist nicht erforderlich, eine Genehmigung von jedem Benutzer, Gruppe oder Rolle zu erhalten. Die Mindestanzahl an Genehmigungen kann von einer beliebigen Kombination potenzieller Genehmiger stammen.

Wenn Ihre Änderungsanfrage erstellt wird, werden Benachrichtigungen an die Abonnenten des Amazon-SNS-Themas gesendet, das für Genehmigungsbenachrichtigungen auf dieser Ebene angegeben wurde. Der Ersteller der Änderungsvorlage hat möglicherweise das zu verwendende Benachrichtigungsthema angegeben oder Ihnen erlaubt, eines anzugeben.

Nachdem die Mindestanzahl erforderlicher Genehmigungen auf einer Ebene eingegangen ist, werden Benachrichtigungen an Genehmiger gesendet, die das Amazon-SNS-Thema für die nächste Ebene abonniert haben, und so weiter.

Unabhängig davon, wie viele Genehmigungsebenen und Genehmiger angegeben sind, ist nur eine Ablehnung einer Änderungsanfrage erforderlich, um zu verhindern, dass der Runbook-Workflow für diese Anforderung ausgeführt wird.

## Erstellen von Änderungsanforderungen (Konsole)
<a name="change-requests-create-console"></a>

Im Folgenden wird beschrieben, wie Sie eine Änderungsanforderung mit Hilfe der Systems Manager-Konsole erstellen.

**So erstellen Sie eine Änderungsanforderung (Konsole)**

1. Öffnen Sie die Konsole unter AWS Systems Manager . [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich **Change Manager** aus.

1. Wählen Sie **Create request (Erstellen einer Anfrage)**.

1. Suchen Sie nach einer Änderungsvorlage, die Sie für diese Änderungsanforderung verwenden möchten, und wählen Sie sie aus.

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

1. Geben Sie für **Name** einen Namen für die Änderungsanforderung ein, mit der ihre Funktion leicht zu erkennen ist, z. B. **UpdateEC2LinuxAMI-us-east-2**.

1. Wählen Sie für **Runbook** das Runbook aus, das Sie für die gewünschte Änderung verwenden möchten.
**Anmerkung**  
Wenn die Option zum Auswählen eines Runbooks nicht verfügbar ist, hat der Autor der Änderungsvorlage angegeben, welches Runbook verwendet werden muss.

1. Verwenden Sie für **Change request information (Informationen zu Änderungsanforderung)** Markdown, um zusätzliche Informationen zur Änderungsanforderung bereitzustellen, damit Prüfer entscheiden können, ob sie die Änderungsanforderung genehmigen oder ablehnen möchten. Der Autor der Vorlage, die Sie verwenden, hat möglicherweise Anweisungen oder Fragen zur Beantwortung bereitgestellt.
**Anmerkung**  
Markdown ist eine Markup-Sprache, die es Ihnen ermöglicht, Dokumente und einzelne Schritte innerhalb des Dokuments mit Beschreibungen im Wiki-Stil zu versehen. Weitere Informationen zur Verwendung von Markdown finden Sie unter [Verwenden von Markdown in AWS](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html).

1. Wählen Sie im Abschnitt **Workflow start time (Workflow-Startzeit)** eine der folgenden Optionen:
   + **Run the operation at a scheduled time (Ausführen des Vorgangs zu einem geplanten Zeitpunkt)** - Geben Sie für **Requested start time (Gewünschte Startzeit)** das Datum und die Uhrzeit ein, die Sie für die Ausführung des Runbook-Workflows für diesen Auftrag vorschlagen. Geben Sie bei **Estimated end time (Geschätzte Endzeit)** das Datum und die Uhrzeit ein, zu der der Runbook-Workflow voraussichtlich abgeschlossen sein wird. (Diese Zeit ist nur eine Schätzung, die Sie Prüfern zur Verfügung stellen.)
**Tipp**  
Wählen Sie **View Change Calendar (Änderungskalender anzeigen)**, um zu prüfen, ob für die von Ihnen angegebene Zeit Sperrungen vorliegen.
   + **Führen Sie den Vorgang so schnell wie möglich nach der Genehmigung aus.** - Wenn die Änderungsanforderung genehmigt wird, wird der Runbook-Workflow ausgeführt, sobald ein Zeitraum nicht eingeschränkt ist, in dem Änderungen vorgenommen werden können.

1. Im Abschnitt **Change request approvals (Genehmigungen für Änderungsanträge)** gehen Sie wie folgt vor:

   1. Wenn **Approval type (Genehmigungstyp)**-Optionen angezeigt werden, wählen Sie eine der folgenden Optionen:
      + **Automatic approval (Automatische Genehmigung)** - Die ausgewählte Änderungsvorlage ist so konfiguriert, dass Änderungsanforderungen automatisch ausgeführt werden können - ohne Prüfung durch Genehmiger. Fahren Sie fort mit Schritt 11.
**Anmerkung**  
Die in den IAM-Richtlinien angegebenen Berechtigungen, die Ihre Verwendung von Systems Manager regeln, dürfen Sie nicht daran hindern, Änderungsanforderungen zur automatischen Genehmigung zu übermitteln, damit sie automatisch ausgeführt werden können.
      + **Specify approvers (Angeben von Genehmigern)** - Sie müssen einen oder mehrere Benutzer, Gruppen oder IAM-Rollen hinzufügen, um diese Änderungsanforderung zu überprüfen und zu genehmigen.
**Anmerkung**  
Sie können Überprüfer auch dann angeben, wenn die in den IAM-Richtlinien, die Ihre Verwendung von Systems Manager regeln, festgelegten Berechtigungen die Ausführung von Änderungsanforderungen mit automatischer Genehmigung erlauben.

   1. Wählen Sie **Genehmiger hinzufügen** und wählen Sie dann einen oder mehrere Benutzer, Gruppen oder AWS Identity and Access Management (IAM-) Rollen aus der Liste der verfügbaren Prüfer aus.
**Anmerkung**  
Möglicherweise sind bereits ein oder mehrere Genehmiger angegeben. Dies bedeutet, dass obligatorische Genehmiger bereits in der von Ihnen ausgewählten Änderungsvorlage angegeben sind. Diese Genehmiger können nicht aus der Anforderung entfernt werden. Wenn die Schaltfläche **Genehmiger hinzufügen** nicht verfügbar ist, lässt die von Ihnen ausgewählte Vorlage nicht zu, dass zusätzliche Prüfer zu Anfragen hinzugefügt werden.

      Weitere Informationen zum Genehmigen von Änderungsanfragen finden Sie unter [Über die Genehmigung von Änderungsanfragen](#cm-approvals-requests).

   1. Wählen Sie unter **SNS topic to notify approvers (SNS-Thema zur Benachrichtigung von Genehmigern)** eine der folgenden Optionen, um das Amazon SNS-Thema in Ihrem Konto anzugeben, das zum Senden von Benachrichtigungen an die Genehmigenden verwendet werden soll, die Sie zu dieser Änderungsanforderung hinzufügen.
**Anmerkung**  
Wenn die Option zum Angeben eines Amazon SNS-Themas nicht verfügbar ist, gibt die von Ihnen ausgewählte Änderungsvorlage bereits das zu verwendende Amazon SNS-Thema an.
      + **Geben Sie einen SNS-Amazon-Ressourcenname (ARN) ein** - Geben Sie für **Thema-ARN** einen ARN eines vorhandenen Amazon SNS Themas ein. Dieses Thema kann sich in jedem Konto Ihrer Organisation befinden.
      + **Wählen Sie ein vorhandenes SNS-Thema** - Wählen Sie für **Target notification topic** den ARN eines vorhandenen Amazon SNS-Themas in Ihrem aktuellen Konto. (Diese Option ist nicht verfügbar, wenn Sie in Ihrem aktuellen AWS-Konto und noch keine Amazon SNS SNS-Themen erstellt haben AWS-Region.)
**Anmerkung**  
Das von Ihnen ausgewählte Amazon SNS-Thema muss so konfiguriert werden, dass die gesendeten Benachrichtigungen und die Abonnenten, an die sie gesendet werden, festgelegt werden. Seine Zugriffsrichtlinie muss auch Systems Manager Berechtigungen gewähren, damit Change Manager Benachrichtigungen senden kann. Weitere Informationen finden Sie unter [Konfigurieren von Amazon SNS-Themen für Change Manager-Benachrichtigungen](change-manager-sns-setup.md). 

   1. Wählen Sie **Add notification (Benachrichtigung hinzufügen)** aus.

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

1. Wählen Sie für **IAM role (IAM-Rolle)** eine IAM-Rolle in *Ihrem aktuellen Konto* aus, die über die erforderlichen Berechtigungen zur Ausführung der Runbooks verfügt, die für diese Änderungsanforderung angegeben sind.

   Diese Rolle wird auch als Dienstrolle bezeichnet oder Übernahmerolle für Automation. Weitere Informationen über diese Rolle finden Sie unter [Einrichten der Automatisierung](automation-setup.md).

1. Wählen Sie im Abschnitt **Deployment location (Standort der Bereitstellung)** eine der folgenden Optionen:
**Anmerkung**  
Wenn Sie AWS-Konto nur Change Manager mit einer einzigen Person und nicht mit einer Organisation AWS Organizations, in der Sie eingerichtet sind, verwenden, müssen Sie keinen Bereitstellungsort angeben.
   + **Apply change to this account (Änderung auf dieses Konto anwenden)**— Der Runbook-Workflow wird nur im aktuellen Konto ausgeführt. Für eine Organisation bedeutet dies das delegierte Administratorkonto.
   + **Änderung auf mehrere Organisationseinheiten anwenden (OUs)** — Gehen Sie wie folgt vor: 

     1. Geben Sie für **Konten und Organisationseinheiten (OUs)** die ID eines Mitgliedskontos in Ihrer Organisation im Format **123456789012** oder die ID einer Organisationseinheit im Format ein**o-o96EXAMPLE**. 

     1. (Optional) Geben Sie für **Execution role name (Name der Ausführungsrolle)** den Namen der IAM-Rolle *im Zielkonto* oder Organisationseinheit ein, die über die erforderlichen Berechtigungen zum Ausführen der Runbooks verfügt, die für diese Änderungsanforderung angegeben sind. Alle Konten in einer von Ihnen angegebenen Organisationseinheit sollten für diese Rolle denselben Namen verwenden.

     1. (Optional) Wählen Sie **Add another target location** (Weiteres Ziel hinzufügen) für jedes zusätzliche Konto oder jede Organisationseinheit, die Sie angeben möchten, und wiederholen Sie die Schritte a und b. 

     1. Wählen Sie für **Target** die Region aus AWS-Region, in der die Änderung vorgenommen werden soll, z. B. `Ohio (us-east-2)` für die Region USA Ost (Ohio).

     1. Erweitern Sie den Reiter **Rate control (Ratenregelung)**. 

        Geben Sie für **Concurrency** (Gleichzeitigkeit) eine Zahl ein, und wählen Sie dann aus der Liste aus, ob dies die Anzahl oder den Prozentsatz der Konten darstellt, in denen der Runbook-Workflow gleichzeitig ausgeführt werden kann. 

        Geben Sie für **Error threshold** (Schwellenwert-Fehler) eine Zahl ein und wählen Sie dann aus der Liste aus, ob dies die Anzahl oder den Prozentsatz der Konten darstellt, bei denen der Runbook-Workflow fehlschlagen kann, bevor der Vorgang beendet wird. 

1. Gehen Sie im Abschnitt **Deployment targets (Bereitstellungsziele)** wie folgt vor:

   1. Wählen Sie eine der folgenden Optionen:
      + **Single resource (Einzelne Ressource)** - Die Änderung soll nur für eine Ressource vorgenommen werden. Zum Beispiel, ein einzelner Knoten oder ein einzelnes Amazon Machine Image (AMI), je nach der in den Runbooks für diesen Änderungsauftrag definierten Operation.
      + **Multiple resources (Mehrere Ressourcen)** - Wählen Sie für **Parameter** die verfügbaren Parameter aus den Runbooks für diesen Änderungsauftrag aus. Diese Auswahl spiegelt den Typ der Ressource wider, die aktualisiert wird.

        Wenn das Runbook für diese Änderungsanforderung beispielsweise `AWS-RetartEC2Instance` ist, können Sie `InstanceId` wählen und dann festlegen, welche Instances aktualisiert werden, indem Sie eine der folgenden Optionen auswählen:
        + **Specify tags (Tags angeben)** - Geben Sie ein Schlüssel-Wert-Paar ein, mit dem alle zu aktualisierenden Ressourcen getaggt werden.
        + **Choose a resource group (Eine Ressourcengruppe auswählen)** - Wählen Sie den Namen der Ressourcengruppe aus, zu der alle zu aktualisierenden Ressourcen gehören.
        + **Specify parameter values (Parameterwerte angeben)** - Identifizieren Sie die zu aktualisierenden Ressourcen im Abschnitt **Runbook parameters (Runbook-Parameter)**.
        + **Target all instances** (Alle Instances anvisieren) – Nehmen Sie die Änderung für alle verwalteten Knoten an den Zielorten vor.

   1. Wenn Sie **Multiple resources (Mehrere Ressourcen)** wählen, erweitern Sie **Rate control (Ratenregelung)**. 

      Geben Sie für **Concurrency** (Gleichzeitigkeit) eine Zahl ein und wählen Sie dann aus der Liste aus, ob dies die Anzahl oder den Prozentsatz der Ziele darstellt, die der Runbook-Workflow gleichzeitig aktualisieren kann. 

      Geben Sie für **Error threshold** (Schwellenwert-Fehler) eine Zahl ein und wählen Sie dann aus der Liste aus, ob dies die Anzahl oder den Prozentsatz der Ziele darstellt, bei denen die Aktualisierung fehlschlagen kann, bevor der Vorgang beendet wird. 

1. Wenn Sie **Specify parameter values (Parameterwerte angeben)** gewählt haben, um mehrere Ressourcen im vorherigen Schritt zu aktualisieren: Geben Sie im Abschnitt **Runbook parameters (Runbook-Parameter** die Werte für die erforderlichen Eingabeparameter an. Die Parameterwerte, die Sie angeben müssen, basieren auf dem Inhalt der Automation-Runbooks, die der ausgewählten Änderungsvorlage zugeordnet sind. 

   Wenn die Änderungsvorlage beispielsweise das `AWS-RetartEC2Instance` Runbook verwendet, müssen Sie eine oder mehrere Instanzen IDs für den **InstanceId**Parameter eingeben. Alternativ können Sie **Show interactive instance picker (Interaktive Instance-Auswahl anzeigen)** wählen und nachher die verfügbaren Instance einzeln auswählen. 

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

1. Überprüfen Sie auf der Seite **Review and submit (Überprüfen und Einreichen)** die Ressourcen und Optionen, die Sie für diesen Änderungsantrag angegeben haben.

   Wählen Sie die Schaltfläche **Bearbeiten** für jeden Abschnitt, an dem Sie Änderungen vornehmen möchten.

   Wenn Sie mit den Details zur Änderungsanforderung zufrieden sind, klicken Sie auf **Submit for approval (Zur Genehmigung einreichen)**.

Wenn in der Änderungsvorlage, die Sie für die Anfrage ausgewählt haben, ein Amazon SNS-Thema angegeben wurde, werden Benachrichtigungen gesendet, wenn die Anfrage abgelehnt oder genehmigt wird. Wenn Sie keine Benachrichtigungen für die Anfrage erhalten, können Sie zu Change Manager zurückkehren, um den Status Ihrer Anfrage zu überprüfen. 

## Erstellen von Änderungsanforderungen (AWS CLI)
<a name="change-requests-create-cli"></a>

Sie können mithilfe von AWS Command Line Interface (AWS CLI) eine Änderungsanforderung erstellen, indem Sie Optionen und Parameter für die Änderungsanforderung in einer JSON-Datei angeben und die `--cli-input-json` Option verwenden, um sie in Ihren Befehl aufzunehmen.

**So erstellen Sie eine Änderungsanforderung (AWS CLI)**

1. Installieren und konfigurieren Sie das AWS CLI oder das AWS -Tools für PowerShell, falls Sie das noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).

1. Erstellen Sie eine JSON-Datei auf Ihrem lokalen Computer und geben Sie Ihr beispielsweise einen Namen wie `MyChangeRequest.json`. Fügen Sie der Datei anschließend den folgenden Inhalt ein:

   *placeholders*Ersetzen Sie sie durch Werte für Ihre Änderungsanforderung.
**Anmerkung**  
Dieser Beispiel-JSON-Code erstellt eine Änderungsanforderung mithilfe der `AWS-HelloWorldChangeTemplate`-Änderungsvorlage und dem `AWS-HelloWorld`-Runbook. Damit Sie dieses Beispiel für Ihre eigenen Änderungsanfragen anpassen können, finden Sie unter [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_StartChangeRequestExecution.html) in der *AWS Systems Manager -API-Referenz* Informationen zu allen verfügbaren Parametern  
Weitere Informationen zum Genehmigen von Änderungsanfragen finden Sie unter [Über die Genehmigung von Änderungsanfragen](#cm-approvals-requests).

   ```
   {
       "ChangeRequestName": "MyChangeRequest",
       "DocumentName": "AWS-HelloWorldChangeTemplate",
       "DocumentVersion": "$DEFAULT",
       "ScheduledTime": "2021-12-30T03:00:00",
       "ScheduledEndTime": "2021-12-30T03:05:00",
       "Tags": [
           {
               "Key": "Purpose",
               "Value": "Testing"
           }
       ],
       "Parameters": {
           "Approver": [
               "JohnDoe"
           ],
           "ApproverType": [
               "IamUser"
           ],
           "ApproverSnsTopicArn": [
               "arn:aws:sns:us-east-2:123456789012:MyNotificationTopic"
           ]
       },
       "Runbooks": [
           {
               "DocumentName": "AWS-HelloWorld",
               "DocumentVersion": "1",
               "MaxConcurrency": "1",
               "MaxErrors": "1",
               "Parameters": {
                   "AutomationAssumeRole": [
                       "arn:aws:iam::123456789012:role/MyChangeManagerAssumeRole"
                   ]
               }
           }
       ],
       "ChangeDetails": "### Document Name: HelloWorldChangeTemplate\n\n## What does this document do?\nThis change template demonstrates the feature set available for creating change templates for Change Manager. This template starts a Runbook workflow for the Automation document called AWS-HelloWorld.\n\n## Input Parameters\n* ApproverSnsTopicArn: (Required) Amazon Simple Notification Service ARN for approvers.\n* Approver: (Required) The name of the approver to send this request to.\n* ApproverType: (Required) The type of reviewer.\n  * Allowed Values: IamUser, IamGroup, IamRole, SSOGroup, SSOUser\n\n## Output Parameters\nThis document has no outputs \n"
   }
   ```

1. Führen Sie in dem Verzeichnis, in dem Sie die JSON-Datei erstellt haben, den folgenden Befehl aus.

   ```
   aws ssm start-change-request-execution --cli-input-json file://MyChangeRequest.json
   ```

   Das System gibt unter anderem folgende Informationen zurück

   ```
   {
       "AutomationExecutionId": "b3c1357a-5756-4839-8617-2d2a4EXAMPLE"
   }
   ```

# Überprüfen und Genehmigen oder Ablehnen von Änderungsanforderungen
<a name="change-requests-review"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Wenn Sie als Prüfer für eine Änderungsanforderung in Change Manager, einem Tool in AWS Systems Manager, angegeben sind, werden Sie über ein Amazon Simple Notification Service (Amazon SNS)-Thema benachrichtigt, wenn eine neue Änderungsanfrage auf Ihre Überprüfung wartet. 

**Anmerkung**  
Diese Funktion hängt davon ab, ob ein Amazon SNS in der Änderungsvorlage für das Senden von Überprüfungsbenachrichtigungen angegeben wurde. Weitere Informationen finden Sie unter [Konfigurieren von Amazon SNS-Themen für Change Manager-Benachrichtigungen](change-manager-sns-setup.md). 

Um die Änderungsanfrage zu überprüfen, können Sie dem Link in Ihrer Benachrichtigung folgen oder sich AWS-Managementkonsole direkt bei der anmelden und die Schritte in diesem Verfahren befolgen.

**Anmerkung**  
Wenn ein Amazon SNS-Thema für Prüfer in einer Änderungsvorlage zugewiesen ist, werden Benachrichtigungen an die Abonnenten des Themas gesendet, wenn sich die Änderungsanforderung ändert.  
Weitere Informationen zum Genehmigen von Änderungsanfragen finden Sie unter [Über die Genehmigung von Änderungsanfragen](change-requests-create.md#cm-approvals-requests).

## Überprüfen und Genehmigen oder Ablehnen von Änderungsanforderungen (Konsole)
<a name="change-requests-review-console"></a>

Die folgenden Verfahren beschreiben, wie Sie die Systems-Manager-Konsole verwenden, um Änderungsanforderungen zu überprüfen und zu genehmigen oder abzulehnen.

**Überprüfen und Genehmigen oder Ablehnen eines einzigen Änderungsantrags**

1. Öffnen Sie den Link in der E-Mail-Benachrichtigung, die Sie erhalten haben, und melden Sie sich bei der an AWS-Managementkonsole, wodurch Sie zur Änderungsanfrage weitergeleitet werden, die Sie überprüfen können.

1. Überprüfen Sie auf der Übersichtsseite den vorgeschlagenen Inhalt der Änderungsanforderung.

   Um die Änderungsanforderung zu genehmigen, wählen Sie **Approve (Genehmigen)**. Geben Sie im Dialogfeld alle Kommentare ein, die Sie für diese Genehmigung hinzufügen möchten, und wählen Sie dann **Approve** (Genehmigen). Der durch diese Anforderung dargestellte Runbook-Workflow beginnt entweder nach der Planung oder sobald Änderungen nicht durch Einschränkungen blockiert sind.

   –oder–

   Um die Änderungsanforderung abzulehnen, wählen Sie **Reject (Ablehnen)**. Geben Sie im Dialogfeld alle Kommentare ein, die Sie für diese Ablehnung hinzufügen möchten, und wählen Sie dann **Reject** (Ablehnen).

**Überprüfen und Genehmigen oder Ablehnen von Änderungsanträgen auf einmal**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Change Manager** aus.

1. Wählen Sie die Registerkarte **Approvals** (Genehmigungen) aus.

1. (Optional) Überprüfen Sie die Details der Anfragen, für die Ihre Genehmigung aussteht, indem Sie den Namen jeder Anfrage auswählen und dann zur Registerkarte **Approvals** (Genehmigungen) zurückkehren.

1. Aktivieren Sie das Kontrollkästchen jeder Änderungsanforderung, die Sie genehmigen möchten.

   –oder–

   Aktivieren Sie das Kontrollkästchen jeder Änderungsanforderung, die Sie ablehnen möchten.

1. Geben Sie im Dialogfeld alle Kommentare ein, die Sie für diese Genehmigung oder Ablehnung hinzufügen möchten.

1. Je nachdem, ob Sie die ausgewählten Änderungsanträge genehmigen oder ablehnen, wählen Sie **Approve** (Genehmigen) oder **Reject** (Ablehnen) aus.

## Überprüfen und Genehmigen oder Ablehnen einer Änderungsanforderung (Befehlszeile)
<a name="change-requests-review-command-line"></a>

Das folgende Verfahren beschreibt, wie Sie die AWS Command Line Interface (AWS CLI) (unter Linux, oderWindows Server) verwendenmacOS, um eine Änderungsanforderung zu überprüfen und zu genehmigen oder abzulehnen.

**Überprüfen und Genehmigen oder Ablehnen eines Änderungsantrags**

1. Installieren und konfigurieren Sie AWS Command Line Interface (AWS CLI), falls Sie dies noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version von AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Erstellen Sie auf Ihrem lokalen Computer eine JSON-Datei, die die Parameter für Ihren AWS CLI Aufruf angibt. 

   ```
   {
     "OpsItemFilters": 
     [
       {
         "Key": "OpsItemType",
         "Values": ["/aws/changerequest"],
         "Operator": "Equal"
       }
     ],
     "MaxResults": number
   }
   ```

   Sie können die Ergebnisse für einen bestimmten Genehmiger filtern, indem Sie den Amazon Resource Name (ARN) des Genehmigers in der JSON-Datei angeben. Ein Beispiel.

   ```
   {
     "OpsItemFilters": 
     [
       {
         "Key": "OpsItemType",
         "Values": ["/aws/changerequest"],
         "Operator": "Equal"
       },
       {
         "Key": "ChangeRequestByApproverArn",
         "Values": ["arn:aws:iam::account-id:user/user-name"],
         "Operator": "Equal"
       }
     ],
     "MaxResults": number
   }
   ```

1. Führen Sie den folgenden Befehl aus, um die maximale Anzahl von Änderungsanforderungen anzuzeigen, die Sie in der JSON-Datei angegeben haben.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-ops-items \
   --cli-input-json file://filename.json
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-ops-items ^
   --cli-input-json file://filename.json
   ```

------

1. Führen Sie den folgenden Befehl aus, um eine Änderungsanforderung zu genehmigen oder abzulehnen.

------
#### [ Linux & macOS ]

   ```
   aws ssm send-automation-signal \
       --automation-execution-id ID \
       --signal-type Approve_or_Reject \
       --payload Comment="message"
   ```

------
#### [ Windows ]

   ```
   aws ssm send-automation-signal ^
   --automation-execution-id ID ^
       --signal-type Approve_or_Reject ^
       --payload Comment="message"
   ```

------

   Wenn in der Änderungsvorlage, die Sie für die Anfrage ausgewählt haben, ein Amazon SNS-Thema angegeben wurde, werden Benachrichtigungen gesendet, wenn die Anfrage abgelehnt oder genehmigt wird. Wenn Sie keine Benachrichtigungen für die Anfrage erhalten, können Sie zu Change Manager zurückkehren, um den Status Ihrer Anfrage zu überprüfen. Informationen zu anderen Optionen bei Verwendung dieses Befehls finden Sie unter [https://docs.aws.amazon.com/cli/latest/reference/ssm/send-automation-signal.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/send-automation-signal.html) im AWS Systems Manager -Abschnitt der *AWS CLI -Befehlsreferenz*.

# Überprüfen von Details, Aufgaben und Zeitplänen für Änderungsanforderungen (Konsole)
<a name="reviewing-changes"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Im Dashboard von Change Manager, ein Tool in AWS Systems Manager, können Sie Informationen zu einem Änderungsauftrag anzeigen, einschließlich der Aufträge, für die bereits Änderungen bearbeitet wurden. Diese Details enthalten einen Link zur Automatisierungs-Operation, mit der die Runbooks ausgeführt werden, die die Änderung vornehmen. Eine Automation-Ausführungs-ID wird generiert, wenn die Anforderung erstellt wird. Der Prozess wird jedoch erst ausgeführt, wenn alle Genehmigungen erteilt wurden und keine Einschränkungen vorhanden sind, um die Änderung zu blockieren.

**Überprüfung von Details, Aufgaben und Zeitplänen für Änderungsanträge**

1. Wählen Sie im Navigationsbereich **Change Manager** aus.

1. Wählen Sie die Registerkarte **Requests (Anforderungen)**.

1. Suchen Sie im Abschnitt **Change requests (Änderungsanforderungen)** nach der Änderungsanforderung, die Sie überprüfen möchten. 

   Sie können die Option **Create date range (Datumsbereich erstellen)** verwenden, um die Ergebnisse auf einen bestimmten Zeitraum zu beschränken.

   Sie können Anforderungen nach folgenden Eigenschaften filtern:
   + `Status`
   + `Request ID`
   + `Approver`
   + `Requester`

   Führen Sie beispielsweise die folgenden Schritte aus, um Details zu allen Änderungsanforderungen anzuzeigen, die in den letzten 24 Stunden erfolgreich abgeschlossen wurden:

   1. Wählen Sie für **Create date range (Datumsbereich erstellen)** **1d**.

   1. Wählen Sie im Suchfeld **Status,** aus CompletedWithSuccess. 

   1. Wählen Sie in den Ergebnissen den Namen der erfolgreich abgeschlossenen Änderungsanforderung aus, für die die Ergebnisse überprüft werden sollen.

1. Zeigen Sie Informationen zur Änderungsanforderung auf den folgenden Registerkarten an:
   + **Request details (Details anfordern)** - Zeigt grundlegende Details zur Änderungsanforderung an, einschließlich des Anforderers, der Änderungsvorlage und der Automation-Runbooks, die für die Änderung ausgewählt wurden. Sie können auch einem Link zu den Details des Automatisierungsvorgangs folgen und Informationen zu allen in der Anfrage angegebenen Runbook-Parametern, den dem Änderungsantrag zugewiesenen CloudWatch Amazon-Alarmen sowie zu den Genehmigungen und Kommentaren, die für die Anfrage bereitgestellt wurden, einsehen.
   + **Task (Aufgabe)** - Zeigt Informationen über die Aufgabe in der Änderung an, einschließlich des Aufgabenstatus für abgeschlossene Änderungsanforderungen, der Zielressourcen, der Schritte in den zugeordneten Automation-Runbooks sowie Details zum Parallelitäts- und Fehlerschwellenwert.
   + **Timeline (Zeitplan)**- Zeigt eine Zusammenfassung aller Ereignisse an, die mit dem Änderungsauftrag verknüpft sind, nach Datum und Uhrzeit. Die Zusammenfassung gibt an, wann die Änderungsanforderung erstellt wurde, welche Aktionen von den zugewiesenen Genehmigern durchgeführt wurden, wann die genehmigten Änderungsanforderungen ausgeführt werden sollen, wie der Workflow des Runbooks aussieht und welche Statusänderungen für den gesamten Änderungsprozess und die einzelnen Schritte im Runbook vorgenommen wurden.
   + **Associated events** (Zugeordnete Ereignisse) – Zeigen Sie überprüfbare Details zu Änderungsanfragen an, die in [AWS CloudTrail Lake](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-lake.html) aufgezeichnet wurden. Zu den Details gehören die ausgeführten API-Aktionen, die für diese Aktionen enthaltenen Anforderungsparameter, das Benutzerkonto, das die Aktion ausgeführt hat, die während des Prozesses aktualisierten Ressourcen und mehr.

     Wenn Sie die CloudTrail Lake-Ereignisverfolgung aktivieren, erstellt CloudTrail Lake einen Ereignisdatenspeicher für Ereignisse im Zusammenhang mit Ihren Änderungsanforderungen. Die Ereignisdetails sind für das Konto oder die Organisation verfügbar, für die die Änderungsanfrage ausgeführt wurde. Sie können die CloudTrail Lake-Ereignisverfolgung von jeder Änderungsanfrage in Ihrem Konto oder Ihrer Organisation aus aktivieren. Informationen zur Aktivierung der CloudTrail Lake-Integration und zum Erstellen eines Ereignisdatenspeichers finden Sie unter[Überwachung der Ereignisse Ihrer Änderungsanfragen](monitoring-change-request-events.md).
**Anmerkung**  
Die Nutzung von **CloudTrail Lake** ist kostenpflichtig. Weitere Details finden Sie unter [AWS CloudTrail -Preise](https://aws.amazon.com/cloudtrail/pricing/).

# Aggregierte Anzahl von Änderungsaufträgen anzeigen (Befehlszeile)
<a name="change-requests-review-aggregate-command-line"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Mithilfe der [GetOpsSummary](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetOpsSummary.html)API-Operation können Sie die aggregierte Anzahl von Änderungsanforderungen in Change Manager einem Tool in AWS Systems Manager anzeigen. Dieser API-Vorgang kann Zählungen für ein einzelnes Konto AWS-Konto in einem einzigen AWS-Region oder für mehrere Konten und mehrere Regionen zurückgeben.

**Anmerkung**  
Wenn Sie die aggregierte Anzahl von Änderungsanträgen für mehrere AWS-Konten und mehrere anzeigen möchten AWS-Regionen, müssen Sie eine Ressourcendatensynchronisierung einrichten und konfigurieren. Weitere Informationen finden Sie unter [Erstellen einer Resource Data Sync für Inventory](inventory-create-resource-data-sync.md).

Das folgende Verfahren beschreibt, wie Sie AWS Command Line Interface (AWS CLI) (unter Linux, oderWindows Server) verwendenmacOS, um die aggregierte Anzahl von Änderungsanforderungen anzuzeigen. 

**Anzeigen der aggregierten Anzahl von Änderungsanforderungen**

1. Installieren und konfigurieren Sie AWS Command Line Interface (AWS CLI), falls Sie dies noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version von AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Führen Sie einen der folgenden Befehle aus. 

   **Single account and Region (Einzelnes Konto und Region)**

   Dieser Befehl gibt die Anzahl aller Änderungsanforderungen für die AWS-Konto und AWS-Region für die Ihre AWS CLI Sitzung konfiguriert ist, zurück.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-ops-summary \
   --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal \
   --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------
#### [ Windows ]

   ```
   aws ssm get-ops-summary ^
   --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal ^
   --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------

   Das Aufruf gibt unter anderem folgende Informationen zurück.

   ```
   {
       "Entities": [
           {
               "Data": {
                   "AWS:OpsItem": {
                       "Content": [
                           {
                               "Count": "38",
                               "Status": "Open"
                           }
                       ]
                   }
               }
           }
       ]
   }
   ```

   **Mehrere Konten, and/or Regionen**

   Dieser Befehl gibt die Anzahl aller Änderungsanforderungen für die AWS-Konten und, die in der Ressourcendatensynchronisierung AWS-Regionen angegeben sind, zurück.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-ops-summary \
       --sync-name resource_data_sync_name \
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal \
       --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------
#### [ Windows ]

   ```
   aws ssm get-ops-summary ^
       --sync-name resource_data_sync_name ^
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal ^
       --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------

   Das Aufruf gibt unter anderem folgende Informationen zurück.

   ```
   {
       "Entities": [
           {
               "Data": {
                   "AWS:OpsItem": {
                       "Content": [
                           {
                               "Count": "43",
                               "Status": "Open"
                           },
                           {
                               "Count": "2",
                               "Status": "Resolved"
                           }
                       ]
                   }
               }
           }
       ]
   }
   ```

   **Multiple accounts and a specific Region (Mehrere Konten und eine spezifische Region**

   Dieser Befehl gibt eine Anzahl aller Änderungsanforderungen für die AWS-Konten aus, die in der Ressourcendatensynchronisation angegeben sind. Er gibt jedoch nur Daten aus der Region aus, die im Befehl angegeben ist.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-ops-summary \
       --sync-name resource_data_sync_name \
       --filters Key=AWS:OpsItem.SourceRegion,Values='Region',Type=Equal Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal \
       --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------
#### [ Windows ]

   ```
   aws ssm get-ops-summary ^
       --sync-name resource_data_sync_name ^
       --filters Key=AWS:OpsItem.SourceRegion,Values='Region',Type=Equal Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal ^
       --aggregators AggregatorType=count,AttributeName=Status,TypeName=AWS:OpsItem
   ```

------

   **Multiple accounts and Regions with output grouped by Region (Mehrere Konten und Regionen mit Ausgabe gruppiert nach Region)**

   Dieser Befehl gibt die Anzahl aller Änderungsanforderungen für AWS-Konten und zurück, die in der Ressourcendatensynchronisierung AWS-Regionen angegeben wurden. Die Ausgabe zeigt die Zählinformationen pro Region an.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-ops-summary \
       --sync-name resource_data_sync_name \
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal \
       --aggregators '[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"Status","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceRegion"}]}]'
   ```

------
#### [ Windows ]

   ```
   aws ssm get-ops-summary ^
       --sync-name resource_data_sync_name ^
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal ^
       --aggregators '[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"Status","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceRegion"}]}]'
   ```

------

   Das Aufruf gibt unter anderem folgende Informationen zurück.

   ```
   {
           "Entities": [
               {
                   "Data": {
                       "AWS:OpsItem": {
                           "Content": [
                               {
                                   "Count": "38",
                                   "SourceRegion": "us-east-1",
                                   "Status": "Open"
                               },
                               {
                                   "Count": "4",
                                   "SourceRegion": "us-east-2",
                                   "Status": "Open"
                               },
                               {
                                   "Count": "1",
                                   "SourceRegion": "us-west-1",
                                   "Status": "Open"
                               },
                               {
                                   "Count": "2",
                                   "SourceRegion": "us-east-2",
                                   "Status": "Resolved"
                               }
                           ]
                       }
                   }
               }
           ]
       }
   ```

   **Multiple accounts and Regions with output grouped by accounts and Regions (Mehrere Konten und Regionen mit Ausgabe gruppiert nach Konten und Regionen)**

   Dieser Befehl gibt die Anzahl aller Änderungsanforderungen für AWS-Konten und zurück, die in der Ressourcendatensynchronisierung AWS-Regionen angegeben wurden. Die Ausgabe gruppiert die Zählinformationen nach Konten und Regionen.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-ops-summary \
       --sync-name resource_data_sync_name \
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal \
       --aggregators '[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"Status","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceAccountId","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceRegion"}]}]}]'
   ```

------
#### [ Windows ]

   ```
   aws ssm get-ops-summary ^
       --sync-name resource_data_sync_name ^
       --filters Key=AWS:OpsItem.OpsItemType,Values="/aws/changerequests",Type=Equal ^
       --aggregators '[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"Status","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceAccountId","Aggregators":[{"AggregatorType":"count","TypeName":"AWS:OpsItem","AttributeName":"SourceRegion"}]}]}]'
   ```

------

   Das Aufruf gibt unter anderem folgende Informationen zurück.

   ```
   {
       "Entities": [
           {
               "Data": {
                   "AWS:OpsItem": {
                       "Content": [
                           {
                               "Count": "38",
                               "SourceAccountId": "123456789012",
                               "SourceRegion": "us-east-1",
                               "Status": "Open"
                           },
                           {
                               "Count": "4",
                               "SourceAccountId": "111122223333",
                               "SourceRegion": "us-east-2",
                               "Status": "Open"
                           },
                           {
                               "Count": "1",
                               "SourceAccountId": "111122223333",
                               "SourceRegion": "us-west-1",
                               "Status": "Open"
                           },
                           {
                               "Count": "2",
                               "SourceAccountId": "444455556666",
                               "SourceRegion": "us-east-2",
                               "Status": "Resolved"
                           },
                           {
                               "Count": "1",
                               "SourceAccountId": "222222222222",
                               "SourceRegion": "us-east-1",
                               "Status": "Open"
                           }
                       ]
                   }
               }
           }
       ]
   }
   ```

# Prüfen und Protokollieren von Change Manager-Aktivitäten
<a name="change-manager-auditing"></a>

**Change ManagerÄnderung der Verfügbarkeit**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Sie können Aktivitäten inChange Manager, einem Tool in, überprüfen AWS Systems Manager, indem Sie Amazon CloudWatch und AWS CloudTrail Alarme verwenden.

Weitere Informationen zu den Prüfungs- und Protokollierungsoptionen für Systems Manager finden Sie unter [Einloggen und Überwachen AWS Systems Manager](monitoring.md).

## Überprüfen Sie Change Manager Aktivitäten mithilfe von CloudWatch Alarmen
<a name="change-manager-logging-auditing-alarms"></a>

Sie können einen CloudWatch Alarm konfigurieren und einer Änderungsvorlage zuweisen. Wenn im Alarm definierte Bedingungen erfüllt sind, werden die für den Alarm angegebenen Aktionen ausgeführt. In der Alarmkonfiguration können Sie ein Amazon Simple Notification Service (Amazon SNS)-Thema angeben, um zu benachrichtigen, wenn eine Alarmbedingung erfüllt ist. 

Weitere Informationen zum Erstellen einer Change Manager-Vorlage finden Sie unter [Arbeiten mit Änderungsvorlagen](change-templates.md).

Informationen zum Erstellen von CloudWatch Alarmen finden Sie [unter Verwenden von CloudWatch Alarmen](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) im * CloudWatch Amazon-Benutzerhandbuch*.

## Überprüfen Sie Change Manager die Aktivität mit CloudTrail
<a name="change-manager-logging-auditing-cloudtrail"></a>

CloudTrail erfasst API-Aufrufe, die in der Systems Manager-Konsole, dem AWS Command Line Interface (AWS CLI) und dem Systems Manager SDK getätigt wurden. Sie können die Informationen in der CloudTrail Konsole oder in einem Amazon Simple Storage Service (Amazon S3) -Bucket anzeigen, wo sie gespeichert sind. Ein Bucket wird für alle CloudTrail Protokolle Ihres Kontos verwendet.

Protokolle von Change Manager-Aktionen zeigen die Erstellung von Änderungsvorlagendokumenten, Genehmigungen und Ablehnungen von Änderungsvorlagen und Änderungsanforderungen, von Automation-Runbooks generierte Aktivitäten und vieles mehr. Weitere Informationen zum Anzeigen und Verwenden von CloudTrail Protokollen der Systems Manager Manager-Aktivitäten finden Sie unter[AWS Systems Manager API-Aufrufe protokollieren mit AWS CloudTrail](monitoring-cloudtrail-logs.md).

# Fehlerbehebung für Change Manager
<a name="change-manager-troubleshooting"></a>

**Change ManagerVerfügbarkeit ändern**  
AWS Systems ManagerChange Managerwird ab dem 7. November 2025 nicht mehr für Neukunden geöffnet sein. Wenn Sie es nutzen möchtenChange Manager, melden Sie sich vor diesem Datum an. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Änderung der AWS Systems ManagerChange Manager Verfügbarkeit](https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html). 

Im Folgenden finden Sie Informationen zur Behandlung von Problemen mit Change Manager, einem Tool in AWS Systems Manager.

**Topics**
+ [Fehler „Gruppe *\$1GUID\$1* nicht gefunden“ bei der Genehmigung von Änderungsanforderungen bei Verwendung von Active Directory (Gruppen)](#change-manager-troubleshooting-sso)

## Fehler „Gruppe *\$1GUID\$1* nicht gefunden“ bei der Genehmigung von Änderungsanforderungen bei Verwendung von Active Directory (Gruppen)
<a name="change-manager-troubleshooting-sso"></a>

**Problem**: Wenn AWS IAM Identity Center (IAM Identity Center) für die Benutzeridentitätsverwaltung verwendet wird, Change Manager erhält ein Mitglied einer Active Directory-Gruppe, dem Genehmigungsberechtigungen erteilt wurden, die Fehlermeldung „Nicht autorisiert“ oder „Gruppe nicht gefunden“.
+ **Lösung**: Wenn Sie Active Directory-Gruppen in IAM Identity Center für den Zugriff auf auswählen AWS-Managementkonsole, plant das System eine regelmäßige Synchronisierung, bei der Informationen aus diesen Active Directory-Gruppen in IAM Identity Center kopiert werden. Dieser Vorgang muss abgeschlossen werden, bevor Benutzer, die über die Active Directory-Gruppenmitgliedschaft autorisiert sind, eine Anforderung erfolgreich genehmigen können. Weitere Informationen finden Sie unter [Mit Ihrem Microsoft-AD-Verzeichnis verbinden](https://docs.aws.amazon.com/singlesignon/latest/userguide/manage-your-identity-source-ad.html) im *AWS IAM Identity Center -Benutzerhandbuch*.

# AWS Systems Manager-Documents
<a name="documents"></a>

Ein AWS Systems Manager Dokument (SSM-Dokument) definiert die Aktionen, die Systems Manager auf Ihren verwalteten Instanzen ausführt. Systems Manager umfasst mehr als 100 vorkonfigurierter Dokumente, die Sie verwenden können, indem Sie zur Laufzeit Parameter angeben. Vorkonfigurierte Dokumente finden Sie in der Systems-Manager-Dokumentenkonsole, indem Sie die Registerkarte **Owned by Amazon** (Eigentum von Amazon) auswählen. Alternativ können Sie beim Aufrufen des API-Vorgangs `Owner` für den Filter `ListDocuments` Amazon angeben. Dokumente verwenden JavaScript Object Notation (JSON) oder YAML und enthalten Schritte und Parameter, die Sie angeben. 

Aus Sicherheitsgründen unterstützen SSM-Dokumente seit dem 14. Juli 2025 die Interpolation von Umgebungsvariablen bei der Verarbeitung von Parametern. Dieses Feature, das in Schemaversion 2.2 und in SSM Agent-Version 3.3.2746.0 oder höher verfügbar ist, trägt dazu bei, Angriffe mit Befehlseinschleusung zu verhindern.

Um mit SSM-Dokumenten zu beginnen, öffnen Sie die [Systems-Manager-Konsole](https://console.aws.amazon.com/systems-manager/documents). Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

**Wichtig**  
In Systems Manager ist ein zu *Amazon gehörendes* SSM-Dokument ein Dokument, das von Amazon Web Services selbst erstellt und verwaltet wird. Dokumente, *die Amazon gehören*, enthalten ein Präfix wie `AWS-*` im Dokumentnamen. Als Eigentümer des Dokuments gilt Amazon und nicht als ein bestimmtes Benutzerkonto innerhalb AWS. Diese Dokumente sind öffentlich zugänglich und können von allen verwendet werden.

## Wie kann meine Organisation vom Documents-Tool profitieren?
<a name="ssm-docs-benefits"></a>

Documents, ein Tool in AWS Systems Manager, bietet folgende Vorteile:
+ **Kategorien von Dokumenten**

  Zur einfacheren Suche nach den benötigten Dokumenten wählen Sie je nach Typ des gesuchten Dokuments eine Kategorie aus. Um die Suche zu erweitern, können Sie mehrere Kategorien desselben Dokumenttyps auswählen. Die Auswahl von Kategorien verschiedener Dokumenttypen wird nicht unterstützt. Kategorien werden nur für Dokumente im Besitz von Amazon unterstützt.
+  **Dokumentversionen** 

  Sie können unterschiedliche Versionen von Dokumenten erstellen und speichern. Anschließend können Sie eine Standardversion für jedes Dokument angeben. Die Standardversion eines Dokuments kann auf eine neuere Version aktualisiert und wieder auf eine ältere Version zurückgesetzt werden. Wenn Sie den Inhalt eines Dokuments ändern, inkrementiert Systems Manager automatisch die Versionsnummer des Dokuments. Sie können jede Version eines Dokuments abrufen oder verwenden, indem Sie die Dokumentversion in der Konsole, AWS Command Line Interface (AWS CLI) -Befehlen oder API-Aufrufen angeben.
+  **Anpassen von Dokumenten an die eigenen Bedürfnisse** 

  Wenn Sie die Schritte und Aktionen in einem Dokument anpassen möchten, können Sie Ihre eigenen Dokumente erstellen. Das System speichert das Dokument zusammen mit Ihrem Namen, AWS-Konto in dem AWS-Region Sie es erstellt haben. Weitere Informationen zum Erstellen eines SSM-Dokuments finden Sie unter [Erstellen von SSM-Dokumentinhalten](documents-creating-content.md).
+  **Markieren von Dokumenten** 

  Sie können Ihre Dokumente markieren, um sie später anhand der zugewiesenen Tags schnell zu identifizieren. Beispielsweise können Sie Dokumente für bestimmte Umgebungen, Abteilungen, Benutzer, Gruppen oder Zeiträume markieren. Sie können den Zugriff auf Dokumente auch einschränken, indem Sie eine AWS Identity and Access Management (IAM-) Richtlinie erstellen, die festlegt, auf welche Tags ein Benutzer oder eine Gruppe zugreifen kann.
+  **Freigeben von Dokumenten** 

  Sie können Ihre Dokumente öffentlich zugänglich machen oder für bestimmte AWS-Konten in derselben AWS-Region freigeben. Das Freigeben von Dokumenten für mehrere Konten kann sinnvoll sein, wenn z. B. alle Amazon Elastic Compute Cloud (Amazon EC2)-Instances, die Sie Kunden oder Mitarbeitenden zur Verfügung stellen, die gleiche Konfiguration aufweisen sollen. Möglicherweise möchten Sie nicht nur Anwendungen oder Patches auf den Instances auf dem neuesten Stand halten, sondern auch bestimmte Aktivitäten von Kunden-Instances beschränken. Oder Sie möchten sicherstellen, dass Instances, die von Mitarbeiterkonten organisationsweit genutzt werden, auf bestimmte interne Ressourcen zugreifen können. Weitere Informationen finden Sie unter [Freigeben von SSM-Dokumenten](documents-ssm-sharing.md).

## Wer sollte Documents verwenden?
<a name="documents-who"></a>
+ Jeder AWS Kunde, der Systems Manager Manager-Tools verwenden möchte, um seine betriebliche Effizienz in großem Umfang zu verbessern, Fehler im Zusammenhang mit manuellen Eingriffen zu reduzieren und die Zeit bis zur Lösung häufiger Probleme zu verkürzen.
+ Infrastrukturexperten, die Bereitstellungs- und Konfigurationsaufgaben automatisieren möchten.
+ Administratoren, die häufig auftretende Probleme zuverlässig lösen, die Effizienz bei der Fehlerbehebung verbessern und die Anzahl sich wiederholender Vorgänge reduzieren möchten.
+ Benutzer, die eine Aufgabe automatisieren möchten, die sie normalerweise manuell ausführen.

## Welche Typen von SSM-Dokumenten gibt es?
<a name="what-are-document-types"></a>

Die folgende Tabelle beschreibt die verschiedenen Arten von SSM-Dokumenten und ihre jeweilige Nutzung.


****  

| Typ | Verwendet mit | Details | 
| --- | --- | --- | 
|  ApplicationConfiguration ApplicationConfigurationSchema  |   [AWS AppConfig](https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html)   |  AWS AppConfig, ein Tool in AWS Systems Manager, ermöglicht es Ihnen, Anwendungskonfigurationen zu erstellen, zu verwalten und schnell bereitzustellen. Sie können Konfigurationsdaten in einem SSM-Dokument speichern, indem Sie ein Dokument erstellen, das den Dokumenttyp `ApplicationConfiguration` verwendet. Weitere Informationen finden Sie unter [Freeform configurations](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile.html#free-form-configurations) (Freiform-Konfigurationen) im *AWS AppConfig Benutzerhandbuch*. Wenn Sie eine Konfiguration in einem SSM-Dokument erstellen, müssen Sie ein entsprechendes JSON-Schema angeben. Das Schema verwendet den `ApplicationConfigurationSchema`-Dokumenttyp und definiert wie ein Regelsatz die zulässigen Eigenschaften für jede Anwendungskonfigurationseinstellung. Weitere Informationen finden Sie unter [About validators](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-configuration-and-profile-validators.html) (Informationen zu Validatoren) im *AWS AppConfig -Benutzerhandbuch*.  | 
|  Automation-Runbook  |   [Automation](systems-manager-automation.md)   [State Manager](systems-manager-state.md)   [Maintenance Windows](maintenance-windows.md)   |  Verwenden Sie Automation-Runbooks, wenn Sie allgemeine Wartungs- und Bereitstellungsaufgaben durchführen, wie z. B. das Erstellen oder Aktualisieren eines Amazon Machine Image (AMI). State Manager verwendet Automation-Runbooks, um eine Konfiguration anzuwenden. Diese Aktionen können während des Lebenszyklus einer Instance jederzeit für ein oder mehrere Ziele ausgeführt werden. Maintenance Windows verwendet Automation-Runbooks, um basierend auf dem angegebenen Zeitplan allgemeine Wartungs- und Bereitstellungsaufgaben durchzuführen. Alle Automation-Runbooks, die für Linux-basierte Betriebssysteme unterstützt werden, werden auch auf EC2-Instances für macOS unterstützt.  | 
|  Kalenderdokument ändern  |   [Change Calendar](systems-manager-change-calendar.md)   |  Change Calendar, ein Tool in AWS Systems Manager, verwendet den `ChangeCalendar` Dokumenttyp. Ein Change Calendar-Dokument speichert einen Kalendereintrag und zugehörige Ereignisse, die es ermöglichen oder verhindern können, dass Automation-Aktionen Ihre Umgebung verändern. In Change Calendar speichert ein Dokument [iCalendar 2.0](https://icalendar.org/)-Daten im Klartextformat. Change Calendar wird auf EC2-Instances für macOS nicht unterstützt.  | 
|  AWS CloudFormation Vorlage  |   [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)   |  AWS CloudFormation Vorlagen beschreiben die Ressourcen, die Sie in Ihren CloudFormation Stacks bereitstellen möchten. Durch das Speichern von CloudFormation Vorlagen als Systems Manager-Dokumente können Sie von den Dokumentfunktionen von Systems Manager profitieren. Dazu gehören das Erstellen und Vergleichen mehrerer Versionen Ihrer Vorlage und das Freigeben Ihrer Vorlage für andere Konten in derselben AWS-Region. Sie können CloudFormation Vorlagen und Stapel mithilfe Application Manager eines Tools in Systems Manager erstellen und bearbeiten. Weitere Informationen finden Sie unter [Arbeiten mit CloudFormation Vorlagen und Stapeln in Application Manager](application-manager-working-stacks.md).  | 
|  Befehlsdokument  |   [Run Command](run-command.md)   [State Manager](systems-manager-state.md)   [Maintenance Windows](maintenance-windows.md)   |  Run Command, ein Tool in AWS Systems Manager, verwendet Befehlsdokumente, um Befehle auszuführen. State Manager, ein Tool in AWS Systems Manager, verwendet Befehlsdokumente, um eine Konfiguration anzuwenden. Diese Aktionen können zu einem beliebigen Zeitpunkt im Lebenszyklus einer Instance auf einem oder mehreren Zielen ausgeführt werden. Maintenance Windows, ein Tool in AWS Systems Manager, verwendet Befehlsdokumente, um eine Konfiguration auf der Grundlage des angegebenen Zeitplans anzuwenden. Die meisten Befehlsdokumente werden unter allen Linux- und Windows Server-Betriebssystemen von Systems Manager unterstützt. Die folgenden Befehlsdokumente werden auf EC2-Instances für macOS unterstützt: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/documents.html)  | 
|  AWS Config Vorlage für ein Konformitätspaket  |   [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html)   |  AWS Config Vorlagen für Konformitätspakete sind Dokumente im YAML-Format, die zur Erstellung von Konformitätspaketen verwendet werden. Sie enthalten die Liste der AWS Config verwalteten oder benutzerdefinierten Regeln und Abhilfemaßnahmen. Weitere Informationen finden Sie unter [Konformitätspakete](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html).  | 
|  Paketdokument  |   [Distributor](distributor.md)   |  In Distributor, einem Tool in AWS Systems Manager, wird ein Paket durch ein SSM-Dokument dargestellt. Ein Paketdokument enthält angefügte ZIP-Archivdateien mit Software oder Ressourcen zur Installation auf verwalteten Instances. Durch die Erstellung eines Pakets in Distributor wird das Paketdokument erstellt. Distributor wird unter Oracle Linux und macOS verwalteten Instances nicht unterstützt.  | 
|  Richtliniendokument  |   [State Manager](systems-manager-state.md)   |  Inventory, ein Tool in AWS Systems Manager, verwendet das `AWS-GatherSoftwareInventory` Richtliniendokument mit einer State Manager Verknüpfung, um Inventardaten von verwalteten Instanzen zu sammeln. Beim Erstellen eigener SSM-Dokumente sind Automation-Runbooks und Command-Dokumente die bevorzugte Methode zum Durchsetzen einer Richtlinie auf einer verwalteten Instance. Systems Manager Inventory und `AWS-GatherSoftwareInventory`-Richtliniendokument werden auf allen Betriebssystemen unterstützt, die von Systems Manager unterstützt werden.  | 
|  Vorlage für die Analyse nach einem Vorfall  |   [Incident Manager-Analyse nach einem Vorfall](https://docs.aws.amazon.com/incident-manager/latest/userguide/analysis.html)   |  Incident Manager verwendet die Vorlage für die Analyse nach einem Vorfall, um eine Analyse zu erstellen, die auf bewährten Methoden für das AWS Betriebsmanagement basiert. Erstellen Sie mithilfe der Vorlage eine Analyse, mit der Ihr Team Verbesserungen für die Reaktion auf Vorfälle ermitteln kann.   | 
|  Sitzungsdokument  |   [Session Manager](session-manager.md)   |  Session Manager, ein Tool in AWS Systems Manager, bestimmt anhand von Sitzungsdokumenten, welcher Sitzungstyp gestartet werden soll, z. B. eine Portweiterleitungssitzung, eine Sitzung zur Ausführung eines interaktiven Befehls oder eine Sitzung zur Erstellung eines SSH-Tunnels. Befehlsdokumente werden unter allen Linux- und Windows Server-Betriebssystemen von Systems Manager unterstützt. Die folgenden Befehlsdokumente werden auf EC2-Instances für macOS unterstützt: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/documents.html)  | 

**SSM-Dokumentkontingente**  
Informationen zu SSM-Dokumentkontingenten finden Sie unter [Systems Manager Service Quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) in der *Allgemeine Amazon Web Services-Referenz*.

**Topics**
+ [Wie kann meine Organisation vom Documents-Tool profitieren?](#ssm-docs-benefits)
+ [Wer sollte Documents verwenden?](#documents-who)
+ [Welche Typen von SSM-Dokumenten gibt es?](#what-are-document-types)
+ [Dokument-Komponenten](documents-components.md)
+ [Erstellen von SSM-Dokumentinhalten](documents-creating-content.md)
+ [Arbeiten mit Dokumenten](documents-using.md)
+ [Beheben von Fehlern mit der Parameterverarbeitung](parameter-troubleshooting.md)

# Dokument-Komponenten
<a name="documents-components"></a>

Dieser Bereich enthält Informationen zu den Komponenten, aus denen sich SSM-Dokumente zusammensetzen.

**Topics**
+ [Schemata, Features und Beispiele](documents-schemas-features.md)
+ [Datenelemente und Parameter](documents-syntax-data-elements-parameters.md)
+ [Referenz für Befehlsdokument-Plugins](documents-command-ssm-plugin-reference.md)

# Schemata, Features und Beispiele
<a name="documents-schemas-features"></a>

AWS Systems Manager (SSM) -Dokumente verwenden die folgenden Schemaversionen.
+ Dokumente des Typs `Command` können die Schema-Versionen 1.2, 2.0 und 2.2 verwenden. Wenn Sie Schema 1.2-Dokumente verwenden, empfehlen wir, dass Sie Dokumente erstellen, die Schema-Version 2.2 verwenden.
+ Dokumente des Typs `Policy` müssen Schema-Version 2.0 oder höher verwenden.
+ Dokumente des Typs `Automation` müssen Schema-Version 0.3 verwenden.
+ Dokumente des Typs `Session` müssen Schema-Version 1.0 verwenden.
+ Sie können Dokumente im JSON- oder YAML-Format erstellen.

Weitere Informationen zu `Session`-Dokumentschemas finden Sie unter [Schema des Sitzungsdokuments](session-manager-schema.md).

Durch die Verwendung der neuesten Schema-Version `Command`- und `Policy`-Dokumente können Sie die folgenden Features nutzen.


**Features für Schema-Version 2.2-Dokumente**  

| Feature | Details | 
| --- | --- | 
|  Dokumentbearbeitung  |  Dokumente können jetzt aktualisiert werden. Bei Version 1.2 mussten aktualisierte Dokument unter einem anderen Namen gespeichert werden.  | 
|  Automatisches Versioning  |  Bei jeder Änderung an einem Dokument wird eine neue Version erstellt. Dies ist kein Schema-Version, sondern eine Version des Dokuments.  | 
|  Standardversion  |  Wenn Sie mehrere Versionen eines Dokuments haben, können Sie festlegen, welche Version das Standarddokument ist.  | 
|  Sequenzierung  |  Plugins oder *Schritte* in einem Dokument werden in der Reihenfolge ausgeführt, die Sie angegeben haben.  | 
|  Unterstützung für plattformübergreifende Anweisungen  |  Die Unterstützung für plattformübergreifende Anweisungen ermöglicht die Angabe unterschiedlicher Betriebssysteme für verschiedene Plugins innerhalb desselben SSM-Dokuments. Plattformübergreifende Anweisungen verwenden in einem Schritt den Parameter `precondition`.   | 
| Parameterinterpolation | Interpolation bedeutet, einen Variablenwert in einer Zeichenfolge einzufügen oder zu ersetzen. Sie füllen sozusagen eine Lücke mit Werten, bevor die Zeichenfolge verwendet wird. Im Zusammenhang mit SSM-Dokumenten ermöglicht die Parameterinterpolation, Zeichenfolgeparameter vor der Befehlsausführung in Umgebungsvariablen zu interpolieren, was mehr Schutz vor Befehlseinschleusungen bietet. Wenn diese Option auf `ENV_VAR` gesetzt ist, erstellt der Agent eine Umgebungsvariable mit dem Namen `SSM_parameter-name`, die den Wert des Parameters enthält. | 

**Anmerkung**  
Sie müssen Ihre Instanzen mit der neuesten Version AWS Systems Manager SSM Agent auf dem neuesten Stand halten, um die neuen Systems Manager Manager-Funktionen und SSM-Dokumentfunktionen nutzen zu können. Weitere Informationen finden Sie unter [Aktualisierung von SSM Agent mithilfe von Run Command](run-command-tutorial-update-software.md#rc-console-agentexample).

In der folgenden Tabelle finden Sie die Unterschiede zwischen de Schema-Hauptversionen.


****  

| Version 1.2 | Version 2.2 (neueste Version) | Details | 
| --- | --- | --- | 
|  runtimeConfig  |  mainSteps  |  In Version 2.2 ersetzt der Abschnitt `mainSteps` `runtimeConfig`. Im Abschnitt `mainSteps` erlaubt Systems Manager das Ausführen von nacheinander folgenden Schritten.  | 
|  Eigenschaften  |  inputs  |  In Version 2.2 ersetzt der Abschnitt `inputs` den Abschnitt `properties`. Der Abschnitt `inputs` nimmt Parameter für Schritte entgegen.  | 
|  commands  |  runCommand  |  In Version 2.2 ersetzt im Abschnitt `inputs` der Parameter `runCommand` den Parameter `commands`.  | 
|  id  |  action  |  In Version 2.2 ersetzt `Action` `ID`. Dies ist lediglich eine Umbenennung.  | 
|  n.v.  |  Name  |  In Version 2.2 ist `name` ein benutzerdefinierter Name für einen Schritt.  | 

**Verwenden des Parameters „precondition“**  
Bei Schema-Version 2.2 oder neuer können Sie mithilfe des Parameters `precondition` das Zielbetriebssystem für jedes Plugin angeben oder um Eingabeparameter zu validieren, die Sie in Ihrem SSM-Dokument definiert haben. Der `precondition`-Parameter unterstützt die Referenzierung der Eingabeparameter Ihres SSM-Dokuments und `platformType` unter Verwendung von Werten von `Linux`, `MacOS` und `Windows`. Nur der `StringEquals`-Operator wird unterstützt.

Wenn bei Dokumenten in Schema-Version 2.2 oder höher `precondition` nicht angegeben ist, werden Plugins entweder ausgeführt oder übersprungen, je nachdem, ob das Plugin mit dem jeweiligen Betriebssystem kompatibel ist. Plugin-Kompatibilität mit dem Betriebssystem wird vor der `precondition` ausgewertet. Bei Dokumenten, die Schema-Version 2.0 oder eine frühere Version verwenden, wird bei nicht kompatiblen Plugins ein Fehler ausgelöst.

Wenn beispielsweise in einem Schema-Version 2.2-Dokument `precondition` nicht angegeben ist und das `aws:runShellScript`-Plugin zur Ausführung aufgelistet ist, wird der Schritt auf Linux-Instances ausgeführt, aber auf Windows Server-Instances übersprungen, da `aws:runShellScript` nicht kompatibel mit Windows Server-Instances ist. Bei Schema-Version 2.0 Dokumenten schlägt jedoch die Ausführung fehl, wenn Sie das `aws:runShellScript`-Plugin angeben und dann das Dokument auf einer Windows Server-Instance ausführen. Weiter hinten in diesem Abschnitt finden Sie ein Beispiel der Vorbedingungsparameter in SSM-Dokumenten.

## Schema der Version 2.2
<a name="documents-schema-twox"></a>

**Top-Level-Elemente**  
Das folgende Beispiel zeigt die Elemente der obersten Ebene eines SSM-Dokuments bei Verwendung von Schema-Version 2.2.

------
#### [ YAML ]

```
---
schemaVersion: "2.2"
description: A description of the document.
parameters:
  parameter 1:
    property 1: "value"
    property 2: "value"
  parameter 2:
    property 1: "value"
    property 2: "value"
mainSteps:
  - action: Plugin name
    name: A name for the step.
    inputs:
      input 1: "value"
      input 2: "value"
      input 3: "{{ parameter 1 }}"
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "A description of the document.",
   "parameters": {
       "parameter 1": {
           "property 1": "value",
           "property 2": "value"
        },
        "parameter 2":{
           "property 1": "value",
           "property 2": "value"
        } 
    },
   "mainSteps": [
      {
         "action": "Plugin name",
         "name": "A name for the step.",
         "inputs": {
            "input 1": "value",
            "input 2": "value",
            "input 3": "{{ parameter 1 }}"
         }
      }
   ]
}
```

------

**Schema-Version 2.2 -Beispiel**  
Im folgenden Beispiel wird das `aws:runPowerShellScript` Plugin verwendet, um einen PowerShell Befehl auf den Zielinstanzen auszuführen.

------
#### [ YAML ]

```
---
schemaVersion: "2.2"
description: "Example document"
parameters:
  Message:
    type: "String"
    description: "Example parameter"
    default: "Hello World"
    allowedValues: 
    - "Hello World"
mainSteps:
  - action: "aws:runPowerShellScript"
    name: "example"
    inputs:
      timeoutSeconds: '60'
      runCommand:
      - "Write-Output {{Message}}"
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "Example document",
   "parameters": {
      "Message": {
         "type": "String",
         "description": "Example parameter",
         "default": "Hello World",
         "allowedValues": ["Hello World"]
      }
   },
   "mainSteps": [
      {
         "action": "aws:runPowerShellScript",
         "name": "example",
         "inputs": {
            "timeoutSeconds": "60",
            "runCommand": [
               "Write-Output {{Message}}"
            ]
         }
      }
   ]
}
```

------

**Schema der Version 2.2 – Vorbedingungsparameterbeispielen**  
Schema-Version 2.2 bietet Unterstützung für plattformübergreifende Aktionen. Dies bedeutet, dass Sie in einem SSM-Dokument unterschiedliche Betriebssysteme für verschiedene Plugins angeben können. Plattformübergreifende Aktionen werden durch den Parameter `precondition` in einem Schritt aufgerufen, wie in dem folgenden Beispiel dargestellt. Sie können auch den `precondition`-Parameter verwenden, um Eingabeparameter zu validieren, die Sie in Ihrem SSM-Dokument definiert haben. Dies sehen Sie im zweiten der folgenden Beispiele.

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: cross-platform sample
mainSteps:
- action: aws:runPowerShellScript
  name: PatchWindows
  precondition:
    StringEquals:
    - platformType
    - Windows
  inputs:
    runCommand:
    - cmds
- action: aws:runShellScript
  name: PatchLinux
  precondition:
    StringEquals:
    - platformType
    - Linux
  inputs:
    runCommand:
    - cmds
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "cross-platform sample",
   "mainSteps": [
      {
         "action": "aws:runPowerShellScript",
         "name": "PatchWindows",
         "precondition": {
            "StringEquals": [
               "platformType",
               "Windows"
            ]
         },
         "inputs": {
            "runCommand": [
               "cmds"
            ]
         }
      },
      {
         "action": "aws:runShellScript",
         "name": "PatchLinux",
         "precondition": {
            "StringEquals": [
               "platformType",
               "Linux"
            ]
         },
         "inputs": {
            "runCommand": [
               "cmds"
            ]
         }
      }
   ]
}
```

------

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
parameters:
  action:
    type: String
    allowedValues:
    - Install
    - Uninstall
  confirmed:
    type: String
    allowedValues:
    - True
    - False
mainSteps:
- action: aws:runShellScript
  name: InstallAwsCLI
  precondition:
    StringEquals:
    - "{{ action }}"
    - "Install"
  inputs:
    runCommand:
    - sudo apt install aws-cli
- action: aws:runShellScript
  name: UninstallAwsCLI
  precondition:
    StringEquals:
    - "{{ action }} {{ confirmed }}"
    - "Uninstall True"
  inputs:
    runCommand:
    - sudo apt remove aws-cli
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "parameters": {
      "action": {
         "type": "String",
         "allowedValues": [
            "Install",
            "Uninstall"
         ]
      },
      "confirmed": {
         "type": "String",
         "allowedValues": [
            true,
            false
         ]
      }
   },
   "mainSteps": [
      {
         "action": "aws:runShellScript",
         "name": "InstallAwsCLI",
         "precondition": {
            "StringEquals": [
               "{{ action }}",
               "Install"
            ]
         },
         "inputs": {
            "runCommand": [
               "sudo apt install aws-cli"
            ]
         }
      },
      {
         "action": "aws:runShellScript",
         "name": "UninstallAwsCLI",
         "precondition": {
            "StringEquals": [
               "{{ action }} {{ confirmed }}",
               "Uninstall True"
            ]
         },
         "inputs": {
            "runCommand": [
               "sudo apt remove aws-cli"
            ]
         }
      }
   ]
}
```

------

**Interpolationsbeispiel für Schemaversion 2.2 mit SSM Agent-Versionen vor 3.3.2746.0**  
In SSM Agent-Versionen vor 3.3.2746.0 ignoriert der Agent den `interpolationType`-Parameter und ersetzt stattdessen einfach die Zeichenfolge. Wenn Sie `SSM_parameter-name` referenzieren, müssen Sie dies explizit festlegen. Im folgenden Beispiel für Linux wird explizit auf die Umgebungsvariable `SSM_Message` verwiesen.

```
{
    "schemaVersion": "2.2",
    "description": "An example document",
    "parameters": {
        "Message": {
            "type": "String",
            "description": "Message to be printed",
            "default": "Hello",
            "interpolationType" : "ENV_VAR",
	     "allowedPattern: "^[^"]*$"

        }
    },
    "mainSteps": [{
        "action": "aws:runShellScript",
        "name": "printMessage",
        "inputs": {
            "runCommand": [
              "if [ -z "${SSM_Message+x}" ]; then",
              "    export SSM_Message=\"{{Message}}\"",
              "fi",
              "",
              "echo $SSM_Message"
            ]
        }
    }
}
```

**Anmerkung**  
`allowedPattern` ist streng genommen nicht erforderlich, wenn ein SSM-Dokument keine doppelten Klammern verwendet: `{{ }}`

**Schema-Version 2.2 State Manager-Beispiel**  
Sie können das folgende SSM-Dokument mit State Manager nutzen, einem Tool in Systems Manager, um die ClamAV-Antivirensoftware herunterzuladen und zu installieren. State Manager erzwingt eine bestimmte Konfiguration, d. h. jedes Mal, wenn die State Manager-Zuordnung ausgeführt wird, prüft das System, ob die ClamAV-Software installiert ist. Ist dies nicht der Fall, führt State Manager dieses Dokument erneut aus.

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: State Manager Bootstrap Example
parameters: {}
mainSteps:
- action: aws:runShellScript
  name: configureServer
  inputs:
    runCommand:
    - sudo yum install -y httpd24
    - sudo yum --enablerepo=epel install -y clamav
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "State Manager Bootstrap Example",
   "parameters": {},
   "mainSteps": [
      {
         "action": "aws:runShellScript",
         "name": "configureServer",
         "inputs": {
            "runCommand": [
               "sudo yum install -y httpd24",
               "sudo yum --enablerepo=epel install -y clamav"
            ]
         }
      }
   ]
}
```

------

**Schema Version 2.2 - Bestandsbeispiel**  
Sie können das folgende SSM-Dokument mit State Manager verwenden, um Bestandsmetadaten zu Ihren Instances zu erfassen.

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: Software Inventory Policy Document.
parameters:
  applications:
    type: String
    default: Enabled
    description: "(Optional) Collect data for installed applications."
    allowedValues:
    - Enabled
    - Disabled
  awsComponents:
    type: String
    default: Enabled
    description: "(Optional) Collect data for AWS Components like amazon-ssm-agent."
    allowedValues:
    - Enabled
    - Disabled
  networkConfig:
    type: String
    default: Enabled
    description: "(Optional) Collect data for Network configurations."
    allowedValues:
    - Enabled
    - Disabled
  windowsUpdates:
    type: String
    default: Enabled
    description: "(Optional) Collect data for all Windows Updates."
    allowedValues:
    - Enabled
    - Disabled
  instanceDetailedInformation:
    type: String
    default: Enabled
    description: "(Optional) Collect additional information about the instance, including
      the CPU model, speed, and the number of cores, to name a few."
    allowedValues:
    - Enabled
    - Disabled
  customInventory:
    type: String
    default: Enabled
    description: "(Optional) Collect data for custom inventory."
    allowedValues:
    - Enabled
    - Disabled
mainSteps:
- action: aws:softwareInventory
  name: collectSoftwareInventoryItems
  inputs:
    applications: "{{ applications }}"
    awsComponents: "{{ awsComponents }}"
    networkConfig: "{{ networkConfig }}"
    windowsUpdates: "{{ windowsUpdates }}"
    instanceDetailedInformation: "{{ instanceDetailedInformation }}"
    customInventory: "{{ customInventory }}"
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "Software Inventory Policy Document.",
   "parameters": {
      "applications": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for installed applications.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "awsComponents": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for AWS Components like amazon-ssm-agent.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "networkConfig": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for Network configurations.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "windowsUpdates": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for all Windows Updates.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "instanceDetailedInformation": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect additional information about the instance, including\nthe CPU model, speed, and the number of cores, to name a few.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      },
      "customInventory": {
         "type": "String",
         "default": "Enabled",
         "description": "(Optional) Collect data for custom inventory.",
         "allowedValues": [
            "Enabled",
            "Disabled"
         ]
      }
   },
   "mainSteps": [
      {
         "action": "aws:softwareInventory",
         "name": "collectSoftwareInventoryItems",
         "inputs": {
            "applications": "{{ applications }}",
            "awsComponents": "{{ awsComponents }}",
            "networkConfig": "{{ networkConfig }}",
            "windowsUpdates": "{{ windowsUpdates }}",
            "instanceDetailedInformation": "{{ instanceDetailedInformation }}",
            "customInventory": "{{ customInventory }}"
         }
      }
   ]
}
```

------

**Schema-Version 2.2 `AWS-ConfigureAWSPackage`-Beispiel**  
Das folgende Beispiel zeigt das `AWS-ConfigureAWSPackage`-Dokument. Der Abschnitt `mainSteps` enthält das `aws:configurePackage`-Plugin im Schritt `action`.

**Anmerkung**  
In Linux-Betriebssystemen werden nur die `AmazonCloudWatchAgent`- und `AWSSupport-EC2Rescue`-Pakete unterstützt.

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: 'Install or uninstall the latest version or specified version of an AWS
package. Available packages include the following: AWSPVDriver, AwsEnaNetworkDriver,
  AwsVssComponents, and AmazonCloudWatchAgent, and AWSSupport-EC2Rescue.'
parameters:
  action:
    description: "(Required) Specify whether or not to install or uninstall the package."
    type: String
    allowedValues:
    - Install
    - Uninstall
  name:
    description: "(Required) The package to install/uninstall."
    type: String
    allowedPattern: "^arn:[a-z0-9][-.a-z0-9]{0,62}:[a-z0-9][-.a-z0-9]{0,62}:([a-z0-9][-.a-z0-9]{0,62})?:([a-z0-9][-.a-z0-9]{0,62})?:package\\/[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$|^[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$"
  version:
    type: String
    description: "(Optional) A specific version of the package to install or uninstall."
mainSteps:
- action: aws:configurePackage
  name: configurePackage
  inputs:
    name: "{{ name }}"
    action: "{{ action }}"
    version: "{{ version }}"
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "Install or uninstall the latest version or specified version of an AWS package. Available packages include the following: AWSPVDriver, AwsEnaNetworkDriver, AwsVssComponents, and AmazonCloudWatchAgent, and AWSSupport-EC2Rescue.",
   "parameters": {
      "action": {
         "description":"(Required) Specify whether or not to install or uninstall the package.",
         "type":"String",
         "allowedValues":[
            "Install",
            "Uninstall"
         ]
      },
      "name": {
         "description": "(Required) The package to install/uninstall.",
         "type": "String",
         "allowedPattern": "^arn:[a-z0-9][-.a-z0-9]{0,62}:[a-z0-9][-.a-z0-9]{0,62}:([a-z0-9][-.a-z0-9]{0,62})?:([a-z0-9][-.a-z0-9]{0,62})?:package\\/[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$|^[a-zA-Z][a-zA-Z0-9\\-_]{0,39}$"
      },
      "version": {
         "type": "String",
         "description": "(Optional) A specific version of the package to install or uninstall."
      }
   },
   "mainSteps":[
      {
         "action": "aws:configurePackage",
         "name": "configurePackage",
         "inputs": {
            "name": "{{ name }}",
            "action": "{{ action }}",
            "version": "{{ version }}"
         }
      }
   ]
}
```

------

## Schema der Version 1.2
<a name="documents-schema-onex"></a>

Das folgende Beispiel zeigt die Elemente der obersten Ebene eines Dokuments in Schema-Version 1.2.

```
{
   "schemaVersion":"1.2",
   "description":"A description of the SSM document.",
   "parameters":{
      "parameter 1":{
         "one or more parameter properties"
      },
      "parameter 2":{
         "one or more parameter properties"
      },
      "parameter 3":{
         "one or more parameter properties"
      }
   },
   "runtimeConfig":{
      "plugin 1":{
         "properties":[
            {
               "one or more plugin properties"
            }
         ]
      }
   }
}
```

**Schema-Version 1.2 `aws:runShellScript`-Beispiel**  
Das folgende Beispiel zeigt das `AWS-RunShellScript` SSM-Dokument. Der Abschnitt **runtimeConfig** bindet das Plugin `aws:runShellScript` ein.

```
{
    "schemaVersion":"1.2",
    "description":"Run a shell script or specify the commands to run.",
    "parameters":{
        "commands":{
            "type":"StringList",
            "description":"(Required) Specify a shell script or a command to run.",
            "minItems":1,
            "displayType":"textarea"
        },
        "workingDirectory":{
            "type":"String",
            "default":"",
            "description":"(Optional) The path to the working directory on your instance.",
            "maxChars":4096
        },
        "executionTimeout":{
            "type":"String",
            "default":"3600",
            "description":"(Optional) The time in seconds for a command to complete before it is considered to have failed. Default is 3600 (1 hour). Maximum is 172800 (48 hours).",
            "allowedPattern":"([1-9][0-9]{0,3})|(1[0-9]{1,4})|(2[0-7][0-9]{1,3})|(28[0-7][0-9]{1,2})|(28800)"
        }
    },
    "runtimeConfig":{
        "aws:runShellScript":{
            "properties":[
                {
                    "id":"0.aws:runShellScript",
                    "runCommand":"{{ commands }}",
                    "workingDirectory":"{{ workingDirectory }}",
                    "timeoutSeconds":"{{ executionTimeout }}"
                }
            ]
        }
    }
}
```

## Schema der Version 0.3
<a name="automation-doc-syntax-examples"></a>

**Top-Level-Elemente**  
Im folgenden Beispiel werden die Elemente der obersten Ebene eines Automation-Runbook der Schema-Version 0.3im JSON-Format gezeigt.

```
{
    "description": "document-description",
    "schemaVersion": "0.3",
    "assumeRole": "{{assumeRole}}",
    "parameters": {
        "parameter1": {
            "type": "String",
            "description": "parameter-1-description",
            "default": ""
        },
        "parameter2": {
            "type": "String",
            "description": "parameter-2-description",
            "default": ""
        }
    },
    "variables": {
        "variable1": {
            "type": "StringMap",
            "description": "variable-1-description",
            "default": {}
        },
        "variable2": {
            "type": "String",
            "description": "variable-2-description",
            "default": "default-value"
        }
    },
    "mainSteps": [
        {
            "name": "myStepName",
            "action": "action-name",
            "maxAttempts": 1,
            "inputs": {
                "Handler": "python-only-handler-name",
                "Runtime": "runtime-name",
                "Attachment": "script-or-zip-name"
            },
            "outputs": {
                "Name": "output-name",
                "Selector": "selector.value",
                "Type": "data-type"
            }
        }
    ],
    "files": {
        "script-or-zip-name": {
            "checksums": {
                "sha256": "checksum"
            },
            "size": 1234
        }
    }
}
```

**Beispiel für YAML-Automation-Runbook**  
Das folgende Beispiel zeigt den Inhalt eines Automation-Runbooks im YAML-Format. In diesem funktionierenden Beispiel der Version 0.3 des Dokumentschemas wird auch die Verwendung von Markdown zur Formatierung von Dokumentbeschreibungen veranschaulicht.

```
description: >-
  ##Title: LaunchInstanceAndCheckState

  -----

  **Purpose**: This Automation runbook first launches an EC2 instance
  using the AMI ID provided in the parameter ```imageId```. The second step of
  this document continuously checks the instance status check value for the
  launched instance until the status ```ok``` is returned.


  ##Parameters:

  -----

  Name | Type | Description | Default Value

  ------------- | ------------- | ------------- | -------------

  assumeRole | String | (Optional) The ARN of the role that allows Automation to
  perform the actions on your behalf. | -

  imageId  | String | (Optional) The AMI ID to use for launching the instance.
  The default value uses the latest Amazon Linux AMI ID available. | {{
  ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64 }}
schemaVersion: '0.3'
assumeRole: 'arn:aws:iam::111122223333::role/AutomationServiceRole'
parameters:
  imageId:
    type: String
    default: '{{ ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64 }}'
    description: >-
      (Optional) The AMI ID to use for launching the instance. The default value
      uses the latest released Amazon Linux AMI ID.
  tagValue:
    type: String
    default: ' LaunchedBySsmAutomation'
    description: >-
      (Optional) The tag value to add to the instance. The default value is
      LaunchedBySsmAutomation.
  instanceType:
    type: String
    default: t2.micro
    description: >-
      (Optional) The instance type to use for the instance. The default value is
      t2.micro.
mainSteps:
  - name: LaunchEc2Instance
    action: 'aws:executeScript'
    outputs:
      - Name: payload
        Selector: $.Payload
        Type: StringMap
    inputs:
      Runtime: python3.11
      Handler: launch_instance
      Script: ''
      InputPayload:
        image_id: '{{ imageId }}'
        tag_value: '{{ tagValue }}'
        instance_type: '{{ instanceType }}'
      Attachment: launch.py
    description: >-
      **About This Step**


      This step first launches an EC2 instance using the ```aws:executeScript```
      action and the provided python script.
  - name: WaitForInstanceStatusOk
    action: 'aws:executeScript'
    inputs:
      Runtime: python3.11
      Handler: poll_instance
      Script: |-
        def poll_instance(events, context):
          import boto3
          import time

          ec2 = boto3.client('ec2')

          instance_id = events['InstanceId']

          print('[INFO] Waiting for instance status check to report ok', instance_id)

          instance_status = "null"

          while True:
            res = ec2.describe_instance_status(InstanceIds=[instance_id])

            if len(res['InstanceStatuses']) == 0:
              print("Instance status information is not available yet")
              time.sleep(5)
              continue

            instance_status = res['InstanceStatuses'][0]['InstanceStatus']['Status']

            print('[INFO] Polling to get status of the instance', instance_status)

            if instance_status == 'ok':
              break

            time.sleep(10)

          return {'Status': instance_status, 'InstanceId': instance_id}
      InputPayload: '{{ LaunchEc2Instance.payload }}'
    description: >-
      **About This Step**


      The python script continuously polls the instance status check value for
      the instance launched in Step 1 until the ```ok``` status is returned.
files:
  launch.py:
    checksums:
      sha256: 18871b1311b295c43d0f...[truncated]...772da97b67e99d84d342ef4aEXAMPLE
```

## Beispiele für die sichere Parameterverarbeitung
<a name="secure-parameter-examples"></a>

In den folgenden Beispielen wird die sichere Verarbeitung von Parametern mithilfe der Umgebungsvariable `interpolationType` gezeigt.

### Grundlegende sichere Befehlsausführung
<a name="basic-secure-command"></a>

Dieses Beispiel zeigt, wie ein Befehlsparameter sicher verarbeitet werden kann:

**Anmerkung**  
`allowedPattern` ist in SSD-Dokumenten streng genommen nicht erforderlich, wenn sie keine doppelten Klammern enthalten: `{{ }}` 

------
#### [ YAML ]

```
---

schemaVersion: '2.2'
description: An example document.
parameters:
  Message:
    type: String
    description: "Message to be printed"
    default: Hello
    interpolationType: ENV_VAR
    allowedPattern: "^[^"]*$"
mainSteps:
  - action: aws:runShellScript
    name: printMessage
    precondition:
      StringEquals:
        - platformType
        - Linux
    inputs:
      runCommand:
        - echo {{Message}}
```

------
#### [ JSON ]

```
{
    "schemaVersion": "2.2",
    "description": "An example document.",
    "parameters": {
        "Message": {
            "type": "String",
            "description": "Message to be printed",
            "default": "Hello",
            "interpolationType": "ENV_VAR",
            "allowedPattern": "^[^"]*$"
        }
    },
    "mainSteps": [{
        "action": "aws:runShellScript",
        "name": "printMessage",
        "precondition": {
           "StringEquals": ["platformType", "Linux"]
        },
        "inputs": {
            "runCommand": [
              "echo {{Message}}"
            ]
        }
    }]
}
```

------

### Verwenden von Parametern in interpretierten Sprachen
<a name="interpreted-language-example"></a>

Dieses Beispiel zeigt die sichere Parameterverarbeitung in Python:

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: 'Secure Python script execution'
parameters:
  inputData:
    type: String
    description: 'Input data for processing'
    interpolationType: 'ENV_VAR'
mainSteps:
  - action: aws:runPowerShellScript
    name: runPython
    inputs:
      runCommand:
        - |
          python3 -c '
          import os
          import json
          
          # Safely access parameter through environment variable
          input_data = os.environ.get("SSM_inputData", "")
          
          # Process the data
          try:
              processed_data = json.loads(input_data)
              print(f"Successfully processed: {processed_data}")
          except json.JSONDecodeError:
              print("Invalid JSON input")
          '
```

------

### Beispiel für die Abwärtskompatibilität
<a name="backwards-compatibility-example"></a>

Dieses Beispiel zeigt, wie Sie Parameter sicher verarbeiten und die Abwärtskompatibilität wahren können:

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: 'Backwards compatible secure parameter handling'
parameters:
  userInput:
    type: String
    description: 'User input to process'
    interpolationType: 'ENV_VAR'
    allowedPattern: '^[^"]*$'

mainSteps:
  - action: aws:runShellScript
    name: processInput
    inputs:
      runCommand:
        - |
          # Handle both modern and legacy agent versions
          if [ -z "${SSM_userInput+x}" ]; then
              # Legacy agent - fall back to direct parameter reference
              export SSM_userInput="{{userInput}}"
          fi
          
          # Process the input securely
          echo "Processing input: $SSM_userInput"
```

------

**Anmerkung**  
`allowedPattern` ist in SSD-Dokumenten streng genommen nicht erforderlich, wenn sie keine doppelten Klammern enthalten: `{{ }}` 

## Bewährte Methoden für die Parametersicherheit
<a name="parameter-security-best-practices"></a>

Folgen Sie diesen bewährten Methoden beim Verarbeiten von Parametern in SSM-Dokumenten:
+ **Interpolation von Umgebungsvariablen nutzen**: Verwenden Sie immer `interpolationType: "ENV_VAR"` für Zeichenfolgeparameter, die in der Befehlsausführung verwendet werden.
+ **Eingabevalidierung implementieren**: Verwenden Sie `allowedPattern`, um Parameterwerte auf sichere Muster zu beschränken.
+ **Legacy-Systeme**: Fügen Sie Fallback-Logik für ältere Versionen von SSM Agent hinzu, die die Interpolation von Umgebungsvariablen nicht unterstützen.
+ **Sonderzeichen maskieren**: Wenn Sie Parameterwerte in Befehlen verwenden, sollten Sie Sonderzeichen korrekt maskieren, um eine Interpretation durch die Shell zu verhindern.
+ **Parameterbereich einschränken**: Verwenden Sie die restriktivsten Parametermuster, die für Ihren Anwendungsfall möglich sind.

# Datenelemente und Parameter
<a name="documents-syntax-data-elements-parameters"></a>

In diesem Thema werden die in SSM-Dokumenten verwendeten Datenelemente beschrieben. Die Schemaversion, die zum Erstellen eines Dokuments verwendet wird, definiert die Syntax und die Datenelemente, die das Dokument akzeptiert. Es wird empfohlen, Schema-Version 2.2 oder höher für Befehlsdokumente zu verwenden. Automation-Runbooks verwenden die Schema-Version 0.3. Automation-Runbooks unterstützen darüber hinaus die Verwendung von Markdown, einer Markup-Sprache, mit der Sie Wiki-Beschreibungen zu Dokumenten und einzelnen Schritten innerhalb des Dokuments hinzufügen können. Weitere Informationen zur Verwendung von Markdown finden Sie unter [Verwenden von Markdown in der Konsole](https://docs.aws.amazon.com/general/latest/gr/aws-markdown.html) im *AWS-Managementkonsole -Handbuch „Erste Schritte“*.

Im folgenden Abschnitt werden die Datenelemente beschrieben, die Sie in ein SSM-Dokument aufnehmen können.

## Top-Level-Datenelemente
<a name="top-level"></a>

**schemaVersion**  
Die zu verwendende Schema-Version.  
Typ: Version  
Erforderlich: Ja

**description**  
Von Ihnen angegebene Informationen, um den Zweck des Dokuments zu beschreiben. Sie können dieses Feld auch verwenden, um anzugeben, ob ein Parameter einen Wert für die Ausführung eines Dokuments benötigt oder ob die Bereitstellung eines Werts für den Parameter optional ist. Erforderliche und optionale Parameter sind in den Beispielen dieses Themas zu sehen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Parameter**  
Eine Struktur, die die Parameter definiert, die das Dokument akzeptiert.   
Um die Sicherheit bei der Verarbeitung von Zeichenfolgeparametern zu erhöhen, können Sie die Interpolation von Umgebungsvariablen verwenden, indem Sie die Eigenschaft `interpolationType` angeben. Wenn dies auf `ENV_VAR` gesetzt ist, wird eine Umgebungsvariable mit dem Namen `SSM_parameter-name` erstellt, die den Parameterwert enthält.  
Das folgende Beispiel enthält einen Parameter mit der Umgebungsvariable `interpolationType`:  

```
{
    "schemaVersion": "2.2",
    "description": "An example document.",
    "parameters": {
        "Message": {
            "type": "String",
            "description": "Message to be printed",
            "default": "Hello",
            "interpolationType" : "ENV_VAR",
            "allowedPattern": "^[^"]*$"

        }
    },
    "mainSteps": [{
        "action": "aws:runShellScript",
        "name": "printMessage",
        "precondition" : {
           "StringEquals" : ["platformType", "Linux"]
        },
        "inputs": {
            "runCommand": [
              "echo {{Message}}"
            ]
        }
    }
}
```
`allowedPattern` ist in SSD-Dokumenten streng genommen nicht erforderlich, wenn sie keine doppelten Klammern enthalten: `{{ }}` 
Wir empfehlen, häufig verwendete Parameter in Parameter Store zu speichern, einem Tool in AWS Systems Manager. Anschließend können Sie Parameter in Ihrem Dokument definieren, die Parameter Store-Parameter als Standardwert referenzieren. Um auf einen Parameter Store-Parameter zu verweisen, verwenden Sie die folgende Syntax.   

```
{{ssm:parameter-name}}
```
Sie können einen Parameter, der auf einen Parameter Store-Parameter verweist, auf die gleiche Weise wie alle anderen Dokumentparameter verwenden. Im folgenden Beispiel ist der Standardwert für den `commands`-Parameter der Parameter Store-Parameter `myShellCommands`. Durch Angabe des `commands`-Parameters als `runCommand`-Zeichenfolge führt das Dokument die im `myShellCommands`-Parameter gespeicherten Befehle aus.  

```
---
schemaVersion: '2.2'
description: runShellScript with command strings stored as Parameter Store parameter
parameters:
  commands:
    type: StringList
    description: "(Required) The commands to run on the instance."
    default: ["{{ ssm:myShellCommands }}"],
            interpolationType : 'ENV_VAR'
            allowedPattern: '^[^"]*$'

mainSteps:
- action: aws:runShellScript
  name: runShellScriptDefaultParams
  inputs:
    runCommand:"{{ commands }}"
```

```
{
    "schemaVersion": "2.2",
    "description": "runShellScript with command strings stored as Parameter Store parameter",
    "parameters": {
      "commands": {
        "type": "StringList",
        "description": "(Required) The commands to run on the instance.",
        "default": ["{{ ssm:myShellCommands }}"],
        "interpolationType" : "ENV_VAR"
      }
    },
    "mainSteps": [
      {
        "action": "aws:runShellScript",
        "name": "runShellScriptDefaultParams",
        "inputs": {
            "runCommand": [
              "{{ commands }}"
          ]
        }
      }
    ]
  }
```
Im `parameters`-Abschnitt Ihres Dokuments können Sie die -Parameter `String` und `StringList` Parameter Store referenzieren. Sie können nicht die Parameter `SecureString` Parameter Store referenzieren.
Mehr über Parameter Store erfahren Sie unter [AWS Systems Manager Parameter Store](systems-manager-parameter-store.md).  
Typ: Struktur  
Die `parameters`-Struktur akzeptiert die folgenden Felder und Werte:  
+ `type`: (Erforderlich) Zulässige Werte umfassen die Folgenden: `String`, `StringList`, `Integer`, `Boolean`, `MapList` und `StringMap`. Beispiele für jeden Typ finden Sie [Beispiele für den Parameter `type` in SSM-Dokumenten](#top-level-properties-type) im nächsten Abschnitt.
**Anmerkung**  
Befehlstyp-Dokumente unterstützen nur die Parametertypen `String` und `StringList`.
+ `description`: (Optional) Eine Beschreibung der Parametergruppe.
+ `default`: (Optional) Der Standardwert des Parameters oder eine Referenz bezüglich eines Parameters in Parameter Store.
+ `allowedValues`: (Optional) Ein Array von Werten, die für den Parameter zulässig sind. Durch das Definieren zulässiger Werte für den Parameter wird die Benutzereingabe überprüft. Wenn ein Benutzer einen Wert eingibt, der nicht zulässig ist, kann die Ausführung nicht gestartet werden.

------
#### [ YAML ]

  ```
  DirectoryType:
    type: String
    description: "(Required) The directory type to launch."
    default: AwsMad
    allowedValues:
    - AdConnector
    - AwsMad
    - SimpleAd
  ```

------
#### [ JSON ]

  ```
  "DirectoryType": {
    "type": "String",
    "description": "(Required) The directory type to launch.",
    "default": "AwsMad",
    "allowedValues": [
      "AdConnector",
      "AwsMad",
      "SimpleAd"
    ]
  }
  ```

------
+ `allowedPattern`: (Optional) Ein regulärer Ausdruck, der überprüft, ob die Benutzereingabe mit dem definierten Muster für den Parameter übereinstimmt. Wenn die Benutzereingabe nicht mit dem zulässigen Muster übereinstimmt, kann die Ausführung nicht gestartet werden.
**Anmerkung**  
Systems Manager führt zwei Validierungen für `allowedPattern` aus. Die erste Validierung erfolgt unter Verwendung der [Java regex library](https://docs.oracle.com/javase/8/docs/api/java/util/regex/package-summary.html) (Java-Regex-Bibliothek) auf API-Ebene, wenn Sie ein Dokument verwenden. Die zweite Validierung wird am SSM Agent ausgeführt, indem Sie die [GO regexp library](https://pkg.go.dev/regexp) (GO-regexp-Bibliothek) verwenden, bevor Sie das Dokument bearbeiten. 

------
#### [ YAML ]

  ```
  InstanceId:
    type: String
    description: "(Required) The instance ID to target."
    allowedPattern: "^i-(?:[a-f0-9]{8}|[a-f0-9]{17})$"
    default: ''
  ```

------
#### [ JSON ]

  ```
  "InstanceId": {
    "type": "String",
    "description": "(Required) The instance ID to target.",
    "allowedPattern": "^i-(?:[a-f0-9]{8}|[a-f0-9]{17})$",
    "default": ""
  }
  ```

------
+ `displayType`: (Optional) Wird verwendet, um entweder a `textfield` oder a `textarea` in der anzuzeigen AWS-Managementkonsole. `textfield`ist ein einzeiliges Textfeld. `textarea`ist ein mehrzeiliger Textbereich.
+ `minItems`: (Optional) Die minimal zulässige Anzahl von Elementen.
+ `maxItems`: (Optional) Die maximal zulässige Anzahl von Elementen.
+ `minChars`: (Optional) Die minimal zulässige Anzahl an Parameterzeichen.
+ `maxChars`: (Optional) Die maximal zulässige Anzahl an Parameterzeichen.
+ `interpolationType`: (Optional) Definiert, wie Parameterwerte vor der Befehlsausführung verarbeitet werden. Wenn dies auf `ENV_VAR` gesetzt ist, wird der Parameterwert als Umgebungsvariable mit dem Namen `SSM_parameter-name` verfügbar gemacht. Dieses Feature trägt dazu bei, die Einschleusung von Befehlen zu verhindern, da Parameterwerte als Literalzeichenfolgen behandelt werden.

  Typ: Zeichenfolge

  Zulässige Werte: `ENV_VAR`
Erforderlich: Nein

**variables**  
(Nur Schemaversion 0.3) Werte, auf die Sie während der einzelnen Schritte in einem Automation-Runbook verweisen oder diese aktualisieren können. Variablen ähneln Parametern, unterscheiden sich jedoch in einem sehr wichtigen Punkt. Parameterwerte sind im Kontext eines Runbooks statisch, aber die Werte von Variablen können im Kontext des Runbooks geändert werden. Beim Aktualisieren des Werts einer Variable muss der Datentyp dem definierten Datentyp entsprechen. Hinweise zum Aktualisieren von Variablenwerten in einer Automatisierung finden Sie unter [`aws:updateVariable` – Aktualisiert einen Wert für eine Runbook-Variable](automation-action-update-variable.md).  
Typ: Boolean \$1 Integer \$1 \$1 Zeichenfolge \$1 MapList \$1 StringList StringMap  
Erforderlich: Nein  

```
variables:
    payload:
        type: StringMap
        default: "{}"
```

```
{
    "variables": [
        "payload": {
            "type": "StringMap",
            "default": "{}"
        }
    ]
}
```

**runtimeConfig**  
(Nur für Schemaversion 1.2) Die Konfiguration für die Instance, wie sie von mindestens einem Systems Manager-Plugin verwendet wird. Es wird nicht garantiert, dass Plugins nacheinander ausgeführt werden.   
Typ: Dictionary<String, > PluginConfiguration  
Erforderlich: Nein

**mainSteps**  
(Nur Schema-Version 0.3, 2.0 und 2.2) Ein Objekt, das mehrere Schritte (Plugins) enthalten kann. Plugins werden innerhalb von Schritten definiert. Die Schritte werden in der Reihenfolge ausgeführt, in der sie im Dokument aufgeführt sind.   
Typ: Dictionary<String, > PluginConfiguration  
Erforderlich: Ja

**outputs**  
(Nur Schema-Version 0.3) Daten, die durch die Ausführung dieses Dokuments generiert werden, die in anderen Prozessen verwendet werden können. Wenn Ihr Dokument beispielsweise ein neues erstelltAMI, können Sie "angeben. CreateImage ImageId"als Ausgabewert und verwenden Sie diese Ausgabe dann, um in einer nachfolgenden Automatisierungsausführung neue Instanzen zu erstellen. Weitere Informationen zu Ausgaben finden Sie unter [Verwenden von Aktionsausgaben als Eingaben](automation-action-outputs-inputs.md).  
Geben Sie ein: Dictionary<String, > OutputConfiguration  
Erforderlich: Nein

**files**  
(Nur Schema-Version 0.3) Die Skriptdateien (und ihre Prüfsummen), die dem Dokument zugeordnet sind und während einer Automatisierungsausführung ausgeführt werden. Gilt nur für Dokumente, die die `aws:executeScript` Aktion enthalten und für die Anfügungen in einem oder mehreren Schritten angegeben wurden.   
Weitere Informationen zu den von Automation-Runbooks unterstützten Laufzeiten finden Sie unter [`aws:executeScript` - Führen Sie ein Skript aus](automation-action-executeScript.md). Weitere Informationen zum Einbinden von Skripten in Automation-Runbooks finden Sie unter [Verwenden von Skripten in Runbooks](automation-document-script-considerations.md) und [Visuelle Designerfahrung für Automation-Runbooks](automation-visual-designer.md).  
Wenn Sie ein Automatisierungs-Runbook mit Anlagen erstellen, müssen Sie auch Anhangsdateien mit der `--attachments` Option (für AWS CLI) oder `Attachments` (für API und SDK) angeben. Sie können den Dateispeicherort für SSM-Dokumente und Dateien angeben, die in Amazon Simple Storage Service (Amazon S3)-Buckets gespeichert sind. Weitere Informationen finden Sie in der AWS Systems Manager API-Referenz unter [Anlagen](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateDocument.html#systemsmanager-CreateDocument-request-Attachments).  

```
---
files:
  launch.py:
    checksums:
      sha256: 18871b1311b295c43d0f...[truncated]...772da97b67e99d84d342ef4aEXAMPLE
```

```
"files": {
    "launch.py": {
        "checksums": {
            "sha256": "18871b1311b295c43d0f...[truncated]...772da97b67e99d84d342ef4aEXAMPLE"
        }
    }
}
```
Geben Sie ein: Dictionary<String, > FilesConfiguration  
Erforderlich: Nein

## Beispiele für den Parameter `type` in SSM-Dokumenten
<a name="top-level-properties-type"></a>

Parametertypen in SSM-Dokumenten sind statisch. Dies bedeutet, dass der Parametertyp nicht geändert werden kann, nachdem er definiert wurde. Bei der Verwendung von Parametern mit SSM-Dokumenten-Plugins kann der Typ eines Parameters innerhalb der Eingabe eines Plugins nicht dynamisch geändert werden. Beispielsweise können Sie nicht auf einen `Integer`-Parameter innerhalb der Eingabe `runCommand` des Plugins `aws:runShellScript` verweisen, da diese Eingabe eine Zeichenfolge oder eine Liste von Zeichenfolgen akzeptiert. Um einen Parameter für eine Plugin-Eingabe verwenden zu können, muss der Parametertyp mit dem akzeptierten Typ übereinstimmen. Sie müssen beispielsweise einen Parameter des Typs `Boolean` für die Eingabe `allowDowngrade` des Plugins `aws:updateSsmAgent` angeben. Wenn der Parametertyp nicht mit dem Eingabetyp für ein Plugin übereinstimmt, kann das SSM-Dokument nicht validiert werden und das System erstellt das Dokument nicht. Dies gilt auch, wenn Parameter nachgeschaltet in Eingaben für andere Plugins oder Automatisierungsaktionen verwendet werden. AWS Systems Manager Sie können beispielsweise keinen `StringList`-Parameter in der `documentParameters`-Eingabe des Plugins `aws:runDocument` referenzieren. Die `documentParameters`-Eingabe akzeptiert eine Zuordnung von Zeichenfolgen, auch wenn der nachgelagerte Parametertyp des SSM-Dokuments ein `StringList`-Parameter ist und dem referenzierten Parameter entspricht.

Wenn Sie Parameter mit -Automation-Aktionen verwenden, werden Parametertypen bei der Erstellung des SSM-Dokuments in den meisten Fällen nicht validiert. Nur wenn Sie die Aktion `aws:runCommand` verwenden, werden Parametertypen bei der Erstellen des SSM-Dokuments validiert. In allen anderen Fällen erfolgt die Parametervalidierung während der Automatisierungsausführung, wenn die Eingabe einer Aktion überprüft wird, bevor die Aktion ausgeführt wird. Wenn der Eingabeparameter beispielsweise ein `String` ist und Sie auf ihn als Wert für die Eingabe `MaxInstanceCount` der Aktion `aws:runInstances` verweisen, wird das SSM-Dokument erstellt. Beim Ausführen des Dokuments schlägt die Automatisierung jedoch fehl, wenn die Aktion `aws:runInstances` validiert wird, da für die Eingabe `MaxInstanceCount` ein `Integer` erforderlich ist.

Im Folgenden finden Sie für jeden Parameter`type` ein Beispiel.

Zeichenfolge  
Eine Abfolge von null oder mehr Unicode-Zeichen in Anführungszeichen. Zum Beispiel „i-1234567890abcdef0“. Verwenden Sie umgekehrte Schrägstriche als Escapezeichen.  
Zeichenfolgeparameter können ein optionales `interpolationType`-Feld mit dem Wert `ENV_VAR` enthalten, um die Interpolation von Umgebungsvariablen zu ermöglichen und so die Sicherheit zu erhöhen.  

```
---
InstanceId:
  type: String
  description: "(Optional) The target EC2 instance ID."
  interpolationType: ENV_VAR
```

```
"InstanceId":{
  "type":"String",
  "description":"(Optional) The target EC2 instance ID.",
  "interpolationType": "ENV_VAR"
}
```

StringList  
Eine Liste von String-Elementen, die durch Kommas getrennt sind. Zum Beispiel ["cd \$1", "pwd"].  

```
---
commands:
  type: StringList
  description: "(Required) Specify a shell script or a command to run."
  default: ""
  minItems: 1
  displayType: textarea
```

```
"commands":{
  "type":"StringList",
  "description":"(Required) Specify a shell script or a command to run.",
  "minItems":1,
  "displayType":"textarea"
}
```

Boolesch  
Akzeptiert nur `true` oder `false`. Akzeptiert nicht „true“ oder 0.  

```
---
canRun:
  type: Boolean
  description: ''
  default: true
```

```
"canRun": {
  "type": "Boolean",
  "description": "",
  "default": true
}
```

Ganzzahl  
Ganze Zahlen. Akzeptiert keine Dezimalzahlen, z. B. 3,14159, oder Zahlen in Anführungszeichen, z. B. „3“.  

```
---
timeout:
  type: Integer
  description: The type of action to perform.
  default: 100
```

```
"timeout": {
  "type": "Integer",
  "description": "The type of action to perform.",
  "default": 100    
}
```

StringMap  
Ein Mapping von Schlüsseln zu Werten. Schlüssel und Werte müssen Zeichenfolgen sein. Zum Beispiel \$1"Env": "Prod"\$1.  

```
---
notificationConfig:
  type: StringMap
  description: The configuration for events to be notified about
  default:
    NotificationType: 'Command'
    NotificationEvents:
    - 'Failed'
    NotificationArn: "$dependency.topicArn"
  maxChars: 150
```

```
"notificationConfig" : {
  "type" : "StringMap",
  "description" : "The configuration for events to be notified about",
  "default" : {
    "NotificationType" : "Command",
    "NotificationEvents" : ["Failed"],
    "NotificationArn" : "$dependency.topicArn"
  },
  "maxChars" : 150
}
```

MapList  
Eine Liste von StringMap Objekten.  

```
blockDeviceMappings:
  type: MapList
  description: The mappings for the create image inputs
  default:
  - DeviceName: "/dev/sda1"
    Ebs:
      VolumeSize: "50"
  - DeviceName: "/dev/sdm"
    Ebs:
      VolumeSize: "100"
  maxItems: 2
```

```
"blockDeviceMappings":{
  "type":"MapList",
  "description":"The mappings for the create image inputs",
  "default":[
    {
      "DeviceName":"/dev/sda1",
      "Ebs":{
        "VolumeSize":"50"
      }
    },
    {
      "DeviceName":"/dev/sdm",
      "Ebs":{
        "VolumeSize":"100"
      }
    }
  ],
  "maxItems":2
}
```

## Inhalte von SSM-Befehlsdokument anzeigen
<a name="viewing-ssm-document-content"></a>

Um eine Vorschau der erforderlichen und optionalen Parameter für ein AWS Systems Manager (SSM-) Befehlsdokument anzuzeigen, können Sie zusätzlich zu den Aktionen, die das Dokument ausführt, den Inhalt des Dokuments in der Systems Manager Manager-Konsole anzeigen.

**Inhalte von SSM-Befehlsdokument anzeigen**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie im Suchfeld **Dokumenttyp** und wählen Sie danach **Befehl**.

1. Wählen Sie den Namen eines Dokuments und dann die Registerkarte **Content (Inhalt)** aus. 

1. Überprüfen Sie im Inhaltsfeld die verfügbaren Parameter und Aktionsschritte für das Dokument.

   Das folgende Image zeigt beispielsweise, dass (1) `version` und (2) `allowDowngrade` optionale Parameter für das `AWS-UpdateSSMAgent`-Dokument sind, und dass die erste Aktion, die vom Dokument ausgeführt wird, (3) `aws:updateSsmAgent` ist.  
![\[Zeigen Sie SSM-Dokumentinhalte in der Systems Manager-Konsole an.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/view-document-content.png)

# Referenz für Befehlsdokument-Plugins
<a name="documents-command-ssm-plugin-reference"></a>

Diese Referenz beschreibt die Plugins, die Sie in einem Dokument vom Typ AWS Systems Manager (SSM) Command angeben können. Diese Plugins können nicht in SSM-Automation-Runbooks verwendet werden, die Automation-Aktionen verwenden. Informationen zu AWS Systems Manager Automatisierungsaktionen finden Sie unter[Systems Manager Automation Aktionen-Referenz](automation-actions.md).

Systems Manager bestimmt die Aktionen, die auf einer verwalteten Instance ausgeführt werden sollen, durch Lesen der Inhalte eines SSM-Dokuments. Jedes Dokument enthält einen Abschnitt zur Ausführung von Code. Abhängig von der Schemaversion des Dokuments umfasst dieser Abschnitt zu Codeausführung ein oder mehrere Plugins oder Schritte. Im Rahmen dieses Hilfethemas werden die Plugins und Schritte als *Plugins* bezeichnet. Dieser Abschnitt enthält Informationen zu allen Systems Manager-Plugins. Weitere Informationen zu Dokumenten, einschließlich Informationen zum Erstellen von Dokumenten und zu den Unterschiede zwischen Schemaversionen finden Sie unter [AWS Systems Manager-Documents](documents.md).

Bei Plugins, die Zeichenfolgeparameter akzeptieren, z. B. `aws:runShellScript` und `aws:runPowerShellScript`, kann der Parameter `interpolationType` verwendet werden, um die Sicherheit zu erhöhen. Dazu werden Parametereingaben als Zeichenfolgeliterale und nicht als potenziell ausführbare Befehle behandelt. Beispiel:

```
{
    "schemaVersion": "2.2",
    "description": "runShellScript with command strings stored as Parameter Store parameter",
    "parameters": {
      "commands": {
        "type": "StringList",
        "description": "(Required) The commands to run on the instance.",
        "default": ["{{ ssm:myShellCommands }}"],
        "interpolationType" : "ENV_VAR"
      }
    },
    //truncated
 }
```

**Anmerkung**  
Manche der hier beschriebenen Plugins funktionieren nur auf Windows Server-Instances oder Linux-Instances. Für alle Plugins werden Plattformabhängigkeiten angegeben.   
Die folgenden Dokumentenplugins werden auf Amazon Elastic Compute Cloud (Amazon EC2)-Instances für macOS unterstützt:  
`aws:refreshAssociation`
`aws:runShellScript`
`aws:runPowerShellScript`
`aws:softwareInventory`
`aws:updateSsmAgent`

**Topics**
+ [Gemeinsame Eingaben](#shared-inputs)
+ [`aws:applications`](#aws-applications)
+ [`aws:cloudWatch`](#aws-cloudWatch)
+ [`aws:configureDocker`](#aws-configuredocker)
+ [`aws:configurePackage`](#aws-configurepackage)
+ [`aws:domainJoin`](#aws-domainJoin)
+ [`aws:downloadContent`](#aws-downloadContent)
+ [`aws:psModule`](#aws-psModule)
+ [`aws:refreshAssociation`](#aws-refreshassociation)
+ [`aws:runDockerAction`](#aws-rundockeraction)
+ [`aws:runDocument`](#aws-rundocument)
+ [`aws:runPowerShellScript`](#aws-runPowerShellScript)
+ [`aws:runShellScript`](#aws-runShellScript)
+ [`aws:softwareInventory`](#aws-softwareinventory)
+ [`aws:updateAgent`](#aws-updateagent)
+ [`aws:updateSsmAgent`](#aws-updatessmagent)

## Gemeinsame Eingaben
<a name="shared-inputs"></a>

Mit SSM Agent Version 3.0.502 und höher, können alle Plugins die folgenden Eingaben verwenden:

**finallyStep**  
Der letzte Schritt, in dem das Dokument ausgeführt werden soll. Wenn diese Eingabe für einen Schritt definiert ist, hat sie Vorrang vor einem `exit`-Wert, der `onFailure`- oder `onSuccess`-Eingängen definiert ist. Damit ein Schritt mit dieser Eingabe erwartungsgemäß ausgeführt wird, muss der Schritt der letzte sein, der in den `mainSteps` Ihres Dokuments ausgeführt wird.  
Typ: Boolescher Wert  
Zulässige Werte: `true` \$1 `false`  
Erforderlich: Nein

**onFailure**  
Wenn Sie diese Eingabe für ein Plugin mit dem Wert `exit` angeben und der Schritt fehlschlägt, spiegelt der Schrittstatus den Fehler wider und das Dokument führt keine weiteren Schritte aus, es sei denn, es wurde ein `finallyStep` definiert. Wenn Sie diese Eingabe für ein Plugin mit dem Wert `successAndExit` angeben und der Schritt fehlschlägt, zeigt der Schrittstatus Erfolg an und das Dokument führt keine weiteren Schritte aus, es sei denn, es wurde ein `finallyStep` definiert.  
Typ: Zeichenfolge  
Zulässige Werte: `exit` \$1 `successAndExit`  
Erforderlich: Nein

**onSuccess**  
Wenn Sie diese Eingabe für ein Plugin angeben und der Schritt erfolgreich ausgeführt wird, führt das Dokument keine weiteren Schritte durch, es sei denn, es wurde ein `finallyStep`definiert.  
Typ: Zeichenfolge  
Zulässige Werte: `exit`  
Erforderlich: Nein

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: Shared inputs example
parameters:
  customDocumentParameter:
    type: String
    description: Example parameter for a custom Command-type document.
mainSteps:
- action: aws:runDocument
  name: runCustomConfiguration
  inputs:
    documentType: SSMDocument
    documentPath: "yourCustomDocument"
    documentParameters: '"documentParameter":{{customDocumentParameter}}'
    onSuccess: exit
- action: aws:runDocument
  name: ifConfigurationFailure
  inputs:
    documentType: SSMDocument
    documentPath: "yourCustomRepairDocument"
    onFailure: exit
- action: aws:runDocument
  name: finalConfiguration
  inputs:
    documentType: SSMDocument
    documentPath: "yourCustomFinalDocument"
    finallyStep: true
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "Shared inputs example",
   "parameters": {
      "customDocumentParameter": {
         "type": "String",
         "description": "Example parameter for a custom Command-type document."
      }
   },
   "mainSteps":[
      {
         "action": "aws:runDocument",
         "name": "runCustomConfiguration",
         "inputs": {
            "documentType": "SSMDocument",
            "documentPath": "yourCustomDocument",
            "documentParameters": "\"documentParameter\":{{customDocumentParameter}}",
            "onSuccess": "exit"
         }
      },
      {
         "action": "aws:runDocument",
         "name": "ifConfigurationFailure",
         "inputs": {
            "documentType": "SSMDocument",
            "documentPath": "yourCustomRepairDocument",
            "onFailure": "exit"
         }
      },
      {
         "action": "aws:runDocument",
         "name":"finalConfiguration",
         "inputs": {
            "documentType": "SSMDocument",
            "documentPath": "yourCustomFinalDocument",
            "finallyStep": true
         }
      }
   ]
}
```

------

## `aws:applications`
<a name="aws-applications"></a>

Installieren, Reparieren oder Deinstallieren von Anwendungen auf einer EC2-Instance. Dieses Plugin läuft nur unter Windows Server-Betriebssystemen.

### Syntax
<a name="applications-syntax"></a>

#### Schema 2.2
<a name="applications-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:applications plugin
parameters:
  source:
    description: "(Required) Source of msi."
    type: String
mainSteps:
- action: aws:applications
  name: example
  inputs:
    action: Install
    source: "{{ source }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion":"2.2",
  "description":"aws:applications",
  "parameters":{
    "source":{
    "description":"(Required) Source of msi.",
    "type":"String"
    }
  },
  "mainSteps":[
    {
      "action":"aws:applications",
      "name":"example",
      "inputs":{
        "action":"Install",
        "source":"{{ source }}"
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="applications-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:applications:
    properties:
    - id: 0.aws:applications
      action: "{{ action }}"
      parameters: "{{ parameters }}"
      source: "{{ source }}"
      sourceHash: "{{ sourceHash }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:applications":{
         "properties":[
            {
               "id":"0.aws:applications",
               "action":"{{ action }}",
               "parameters":"{{ parameters }}",
               "source":"{{ source }}",
               "sourceHash":"{{ sourceHash }}"
            }
         ]
      }
   }
}
```

------

### Eigenschaften
<a name="applications-properties"></a>

**action**  
Die zu ergreifende Maßnahme.  
Type: Zähler  
Zulässige Werte: `Install` \$1 `Repair` \$1 `Uninstall`  
Erforderlich: Ja

**Parameter**  
Die Parameter für das Installationsprogramm.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Quelle**  
Die URL der `.msi`-Datei der Anwendung.  
Typ: Zeichenfolge  
Erforderlich: Ja

**sourceHash**  
Der SHA256 Hash der `.msi` Datei.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:cloudWatch`
<a name="aws-cloudWatch"></a>

Exportieren Sie Daten aus Windows Server Amazon CloudWatch oder Amazon CloudWatch Logs und überwachen Sie die Daten anhand von CloudWatch Metriken. Dieses Plugin läuft nur unter Windows Server-Betriebssystemen. Weitere Informationen zur Konfiguration der CloudWatch Integration mit Amazon Elastic Compute Cloud (Amazon EC2) finden Sie unter [Erfassung von Metriken, Protokollen und Traces mit dem CloudWatch Agenten](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) im * CloudWatch Amazon-Benutzerhandbuch*.

**Wichtig**  
Der Unified CloudWatch Agent wurde SSM Agent als Tool zum Senden von Protokolldaten an Amazon CloudWatch Logs ersetzt. Das SSM Agent-aws:cloudWatch-Plugin wird nicht unterstützt. Wir empfehlen, nur den Unified CloudWatch Agent für Ihre Protokollerfassungsprozesse zu verwenden. Weitere Informationen finden Sie unter den folgenden Themen:  
[Senden von Knotenprotokollen an Unified CloudWatch Logs (CloudWatch Agent)](monitoring-cloudwatch-agent.md)
[Migrieren Sie die Erfassung von Windows Server-Knotenprotokollen auf den CloudWatch Agenten](monitoring-cloudwatch-agent.md#monitoring-cloudwatch-agent-migrate)
[Erfassung von Metriken, Protokollen und Traces mit dem CloudWatch Agenten](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Install-CloudWatch-Agent.html) im * CloudWatch Amazon-Benutzerhandbuch*.

Sie können die folgenden Datentypen exportieren und überwachen:

**ApplicationEventLog**  
Sendet Daten aus dem Anwendungsereignisprotokoll an CloudWatch Logs.

**CustomLogs**  
Sendet jede textbasierte Protokolldatei an Amazon CloudWatch Logs. Das CloudWatch Plugin erstellt einen Fingerabdruck für Protokolldateien. Anschließend verknüpft das System einen Datenversatz mit jedem Fingerabdruck. Das Plugin lädt Dateien hoch, wenn Änderungen vorliegen, erfasst den Versatz und verknüpft ihn mit einem Fingerabdruck. Diese Methode wird verwendet, um zu verhindern, dass ein Benutzer das Plugin aktiviert, den Service mit einem Verzeichnis verknüpft, in dem sich eine große Anzahl von Dateien befindet, und das System alle Dateien hochlädt.  
Hinweis: Falls Ihre Anwendung während der Abfrage Protokolle kürzt oder zu säubern versucht, besteht die Möglichkeit, dass alle Protokolle, die für `LogDirectoryPath` angegeben wurden, Einträge verlieren. Wenn Sie beispielsweise die Größe der Protokolldatei einschränken möchten, erstellen Sie eine neue Protokolldatei, wenn diese Beschränkung erreicht ist, und lassen Sie neue Daten dann in die neue Datei schreiben.

**ETW**  
Sendet ETW-Daten (Event Tracing for Windows) an CloudWatch Logs.

**IIS**  
Sendet IIS-Protokolldaten an CloudWatch Logs.

**PerformanceCounter**  
Sendet Windows-Leistungsindikatoren an CloudWatch. Sie können verschiedene Kategorien für den Upload CloudWatch als Messwerte auswählen. Erstellen Sie für jeden Leistungsindikator, den Sie hochladen möchten, einen **PerformanceCounter**Abschnitt mit einer eindeutigen ID (z. B. "PerformanceCounter2"," PerformanceCounter 3" usw.) und konfigurieren Sie dessen Eigenschaften.  
Wenn das AWS Systems Manager SSM Agent oder das CloudWatch Plugin gestoppt ist, werden die Leistungsindikatordaten nicht protokolliert CloudWatch. Diese Verhaltensweise unterscheidet sich von der von benutzerdefinierten oder von Windows-Event-Protokollen.. In benutzerdefinierten Protokollen und Windows-Ereignisprotokollen werden die SSM Agent Leistungsindikatordaten gespeichert und CloudWatch nach der Verfügbarkeit des CloudWatch Plug-ins hochgeladen.

**SecurityEventLog**  
Sendet Daten aus dem Sicherheitsereignisprotokoll an CloudWatch Logs.

**SystemEventLog**  
Sendet Daten aus dem Systemereignisprotokoll an CloudWatch Logs.

Sie können die folgenden Ziele für die Daten definieren:

**CloudWatch**  
Das Ziel, an das die Leistungsindikatormetrikdaten gesendet werden. Sie können weitere eindeutige Abschnitte hinzufügen IDs (z. B. "CloudWatch2", CloudWatch 3" usw.) und für jede neue ID eine andere Region angeben, um dieselben Daten an verschiedene Speicherorte zu senden.

**CloudWatchLogs**  
Das Ziel, an das die Protokolldaten gesendet werden. Sie können weitere Abschnitte mit eindeutigen IDs Merkmalen hinzufügen (z. B. "CloudWatchLogs2", CloudWatchLogs 3" usw.) und für jede neue ID eine andere Region angeben, um dieselben Daten an verschiedene Standorte zu senden.

### Syntax
<a name="cloudWatch-syntax"></a>

```
"runtimeConfig":{
        "aws:cloudWatch":{
            "settings":{
                "startType":"{{ status }}"
            },
            "properties":"{{ properties }}"
        }
    }
```

### Einstellungen und Eigenschaften
<a name="cloudWatch-properties"></a>

**AccessKey**  
Ihre -Zugriffsschlüssel-ID Diese Eigenschaft ist erforderlich, wenn Sie die Instance mithilfe einer IAM-Rolle gestartet haben. Diese Eigenschaft kann nicht mit SSM verwendet werden.  
Typ: Zeichenfolge  
Erforderlich: Nein

**CategoryName**  
Die Leistungsindikatorkategorie von Performance Monitor.  
Typ: Zeichenfolge  
Erforderlich: Ja

**CounterName**  
Der Name des Leistungsindikators von Performance Monitor.  
Typ: Zeichenfolge  
Erforderlich: Ja

**CultureName**  
Das Gebietsschema, unter dem der Zeitstempel protokolliert wird. Wenn dieses Feld leer **CultureName**ist, wird standardmäßig dasselbe Gebietsschema verwendet, das von Ihrer Windows Server Instanz verwendet wird.  
Typ: Zeichenfolge  
Gültige Werte: Eine Liste der unterstützten Werte finden Sie unter [National Language Support (NLS)](https://msdn.microsoft.com/en-us/library/cc233982.aspx) auf der Microsoft-Website. Die Werte **div**, **div-MV**, **hu** und **hu-HU** werden nicht unterstützt.  
Erforderlich: Nein

**DimensionName**  
Eine Dimension für Ihre CloudWatch Amazon-Metrik. Wenn Sie `DimensionName` angeben, müssen Sie auch `DimensionValue` angeben. Diese Parameter bieten eine andere Ansicht bei der Auflistung von Metriken. Sie können eine Dimension auch für mehrere Metriken verwenden, sodass Sie alle Metriken anzeigen können, die zu einer bestimmten Dimension gehören.  
Typ: Zeichenfolge  
Erforderlich: Nein

**DimensionValue**  
Ein Dimensionswert für Ihre CloudWatch Amazon-Metrik.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Codierung**  
Die zu verwendende Dateikodierung (z. B: UTF-8). Verwenden Sie den Kodierungsnamen, nicht den Anzeigenamen.  
Typ: Zeichenfolge  
Gültige Werte: Eine Liste der unterstützten Werte finden Sie unter [Encoding Class](https://learn.microsoft.com/en-us/dotnet/api/system.text.encoding?view=net-7.0) in der Microsoft Learn Bibliothek.  
Erforderlich: Ja

**Filter**  
Das Präfix des Protokollnamens. Lassen Sie diesen Parameter leer, um alle Dateien zu überwachen.  
Typ: Zeichenfolge  
Gültige Werte: Eine Liste der unterstützten Werte finden Sie unter „[FileSystemWatcherFilter Eigenschaft](http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter.aspx)“ in der MSDN-Bibliothek.  
Erforderlich: Nein

**Flüsse**  
Jeder Datentyp, der hochgeladen werden soll, zusammen mit dem Ziel für die Daten (CloudWatch oder CloudWatch Protokolle). Um beispielsweise einen unter definierten Leistungsindikator an das unter definierte CloudWatch Ziel `"Id": "PerformanceCounter"` zu senden`"Id": "CloudWatch"`, geben Sie **"PerformanceCounter,CloudWatch"** ein. Geben Sie auf ähnliche Weise **„(ETW)," ein, um das benutzerdefinierte Protokoll`"Id": "ETW"`, das ETW-Protokoll** und das Systemprotokoll an das unter definierte CloudWatch Protokollziel zu senden. CloudWatchLogs Außerdem können Sie dieselbe Leistungsindikator- oder Protokolldatei an mehrere Ziele senden. Um beispielsweise das Anwendungsprotokoll an zwei verschiedene Ziele zu senden, die Sie unter `"Id": "CloudWatchLogs"` und definiert haben`"Id": "CloudWatchLogs2"`, geben Sie **", (ApplicationEventLogCloudWatchLogs, CloudWatchLogs 2)**“ ein.  
Typ: Zeichenfolge  
Gültige Werte (Quelle): `ApplicationEventLog` \$1 `CustomLogs` \$1 `ETW` \$1 `PerformanceCounter` \$1 `SystemEventLog` \$1 `SecurityEventLog`   
Gültige Werte (Ziel): `CloudWatch` \$1 `CloudWatchLogs` \$1 `CloudWatch` *n* \$1 `CloudWatchLogs` *n*   
Erforderlich: Ja

**FullName**  
Der vollständige Name der Komponente.  
Typ: Zeichenfolge  
Erforderlich: Ja

**Id**  
Identifiziert die Datenquelle bzw. das Ziel. Die ID muss innerhalb der Konfigurationsdatei eindeutig sein.  
Typ: Zeichenfolge  
Erforderlich: Ja

**InstanceName**  
Der Name der Leistungsindikator-Instance. Verwenden Sie kein Sternchen (\$1) für alle Instances, da jede Leistungszählerkomponente nur eine Metrik unterstützt. Sie können jedoch **\$1Total** verwenden.  
Typ: Zeichenfolge  
Erforderlich: Ja

**Levels**  
Die Arten von Nachrichten, die an Amazon gesendet werden sollen CloudWatch.  
Typ: Zeichenfolge  
Zulässige Werte:   
+ **1** – Nur Fehlermeldungen werden hochgeladen.
+ **2** – Nur Warnmeldungen werden hochgeladen.
+ **4** – Nur Informationsmeldungen werden hochgeladen.
Sie können Werte kombinieren, um mehr als einen Meldungstyp einzuschließen. Beispiel: **3** bedeutet, dass Fehlermeldungen (**1**) und Warnmeldungen (**2**) enthalten sind. Wenn Sie den Wert **7** eingeben, werden Fehlermeldungen (**1**), Warnmeldungen (**2**) und Informationsmeldungen (**4**) einbezogen.  
Erforderlich: Ja  
Windows-Sicherheitsprotokolle müssen für „Levels“ den Wert „7“ festlegen.

**LineCount**  
Die Anzahl der Zeilen im Header zur Identifikation der Protokolldatei. Beispielsweise haben IIS-Protokolldateien praktisch identische Header. Sie können **3** eingeben; dann würden die ersten drei Zeilen des Headers der Protokolldatei gelesen, um diese zu identifizieren. In IIS-Protokolldateien ist die dritte Zeile Datum und Zeitstempel, die sich zwischen Protokolldateien unterscheiden.  
Typ: Ganzzahl  
Erforderlich: Nein

**LogDirectoryPath**  
Für den Pfad CustomLogs, in dem Protokolle auf Ihrer EC2-Instance gespeichert werden. Bei IIS-Protokollen der Ordner, in dem IIS-Protokolle für eine einzelne Site gespeichert werden (z. B. **C:\$1\$1 inetpub\$1\$1 logs\$1\$1\$1LogFiles\$1 W3SVC**). *n* Hinsichtlich IIS-Protokolle wird nur das Protokollformat W3C unterstützt. IIS, NCSA und benutzerdefinierte Formate werden nicht unterstützt.   
Typ: Zeichenfolge  
Erforderlich: Ja

**LogGroup**  
Der Name für Ihre Protokollgruppe. Dieser Name wird auf dem Bildschirm **Log Groups (Protokollgruppen)** in der CloudWatch-Konsole angezeigt.  
Typ: Zeichenfolge  
Erforderlich: Ja

**LogName**  
Der Name der Protokolldateien.  

1. Zum Suchen des Protokollnamens klicken Sie in der Ereignisanzeige im Navigationsbereich auf **Applications and Services Logs**.

1. Klicken Sie in der Liste der Protokolle mit der rechten Maustaste auf das Protokoll, das Sie hochladen möchten (z. B. `Microsoft` > `Windows` > `Backup` > `Operational`), und klicken Sie dann auf **Benutzerdefinierte Ansicht erstellen**.

1. Klicken Sie im Dialogfeld **Create Custom View** auf die Registerkarte **XML**. Das **LogName**befindet sich im <Select Path=> -Tag (zum Beispiel). `Microsoft-Windows-Backup` Kopieren Sie diesen Text in den **LogName**Parameter.
Typ: Zeichenfolge  
Zulässige Werte: `Application` \$1 `Security` \$1 `System` \$1 `Microsoft-Windows-WinINet/Analytic`  
Erforderlich: Ja

**LogStream**  
Der Zielprotokollstream. Wenn Sie **\$1instance\$1id\$1**, verwenden, also den Standard, wird die Instance-ID dieser Instance als Name des Protokollstreams verwendet.  
Typ: Zeichenfolge  
Gültige Werte: `{instance_id}` \$1 `{hostname}` \$1 `{ip_address}` *<log\$1stream\$1name>*  
Wenn Sie einen Log-Stream-Namen eingeben, der noch nicht existiert, erstellt CloudWatch Logs ihn automatisch für Sie. Sie können den Protokollstream mit einer Literalzeichenfolge, einer vordefinierten Variablen (**\$1instance\$1id\$1**, **\$1hostname\$1**, **\$1ip\$1address\$1**) oder einer Kombination aus allen drei Variablen definieren.  
Der in diesem Parameter angegebene Protokollstreamname wird auf dem *<YourLogStream>* Bildschirm **Protokollgruppen > Streams für** in der CloudWatch Konsole angezeigt.  
Erforderlich: Ja

**MetricName**  
Die CloudWatch Metrik, unter der die Leistungsdaten enthalten sein sollen.  
Verwenden Sie keine Sonderzeichen in dem Namen. Andernfalls funktionieren die Metrik und die zugehörigen Alarme möglicherweise nicht.
Typ: Zeichenfolge  
Erforderlich: Ja

**NameSpace**  
Der Metrik-Namespace, in dem die Leistungsindikatordaten geschrieben werden sollen.  
Typ: Zeichenfolge  
Erforderlich: Ja

**PollInterval**  
Die Anzahl der Sekunden, die vergehen muss, bevor neue Leistungsindikator- und Protokolldaten hochgeladen werden.  
Typ: Ganzzahl  
Gültige Werte: Legen Sie für diesen Wert 5 oder mehr Sekunden fest. Fünfzehn Sekunden (00:00:15) sind empfohlen.  
Erforderlich: Ja

**Region**  
Der AWS-Region Ort, an den Sie Protokolldaten senden möchten. Obwohl Sie Leistungszähler an eine andere Region als die, an die Sie Ihre Protokolldaten senden, senden können, empfehlen wir, diesen Parameter auf dieselbe Region zu setzen, in der Ihre Instance ausgeführt wird.  
Typ: Zeichenfolge  
Gültige Werte: Regionen IDs , die sowohl von Systems Manager als auch von CloudWatch Logs AWS-Regionen unterstützt werden`us-east-2`, wie`eu-west-1`, und`ap-southeast-1`. Eine Liste der von den einzelnen Services AWS-Regionen unterstützten Services finden Sie unter [Amazon CloudWatch Logs Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/cwl_region.html#cwl_region) und [Systems Manager Service Endpoints](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) in der. *Allgemeine Amazon Web Services-Referenz*   
Erforderlich: Ja

**SecretKey**  
Ihr geheimer -Zugriffsschlüssel Diese Eigenschaft ist erforderlich, wenn Sie die Instance mithilfe einer IAM-Rolle gestartet haben.  
Typ: Zeichenfolge  
Erforderlich: Nein

**startType**  
Schalten Sie die Instance ein oder aus CloudWatch .  
Typ: Zeichenfolge  
Zulässige Werte: `Enabled` \$1 `Disabled`  
Erforderlich: Ja

**TimestampFormat**  
Das Zeitstempelformat, das Sie verwenden möchten. Eine Liste der unterstützten Werte finden Sie unter [Custom Date and Time Format Strings](http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx) in der MSDN-Bibliothek.  
Typ: Zeichenfolge  
Erforderlich: Ja

**TimeZoneKind**  
Stellt Zeitzoneninformationen bereit, wenn der Zeitstempel Ihres Protokolls keine Zeitzoneninformationen enthält. Wenn dieser Parameter leer gelassen wird und Ihr Zeitstempel keine Zeitzoneninformationen enthält, verwendet CloudWatch Logs standardmäßig die lokale Zeitzone. Dieser Parameter wird ignoriert, wenn der Zeitstempel bereits Zeitzoneninformationen enthält.  
Typ: Zeichenfolge  
Zulässige Werte: `Local` \$1 `UTC`  
Erforderlich: Nein

**Einheit**  
Die korrekte Maßeinheit für die Metrik.  
Typ: Zeichenfolge  
Gültige Werte: Sekunden \$1 Mikrosekunden \$1 Millisekunden \$1 Byte \$1 Kilobyte \$1 Megabyte \$1 Gigabyte \$1 Terabyte \$1 Bits \$1 Kilobits \$1 Kilobits \$1 Megabit \$1 Gigabit \$1 Terabit \$1 Prozent \$1 Anzahl \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 \$1 Keine Bytes/Second Kilobytes/Second Megabytes/Second Gigabytes/Second Terabytes/Second Bits/Second Kilobits/Second Megabits/Second Gigabits/Second Terabits/Second Count/Second   
Erforderlich: Ja

## `aws:configureDocker`
<a name="aws-configuredocker"></a>

(Schemaversion 2.0 oder höher) Konfigurieren Sie eine Instance für die Arbeit mit Container und Docker. Dieses Plugin wird unter den meisten Linux-Varianten und Windows Server-Betriebssystemen unterstützt.

### Syntax
<a name="configuredocker-syntax"></a>

#### Schema 2.2
<a name="configuredocker-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:configureDocker
parameters:
  action:
    description: "(Required) The type of action to perform."
    type: String
    default: Install
    allowedValues:
    - Install
    - Uninstall
mainSteps:
- action: aws:configureDocker
  name: configureDocker
  inputs:
    action: "{{ action }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:configureDocker plugin",
  "parameters": {
    "action": {
      "description": "(Required) The type of action to perform.",
      "type": "String",
      "default": "Install",
      "allowedValues": [
        "Install",
        "Uninstall"
      ]
    }
  },
  "mainSteps": [
    {
      "action": "aws:configureDocker",
      "name": "configureDocker",
      "inputs": {
        "action": "{{ action }}"
      }
    }
  ]
}
```

------

### Eingaben
<a name="configuredocker-properties"></a>

**action**  
Der Typ der Aktion, die durchgeführt werden soll.  
Type: Zähler  
Zulässige Werte: `Install` \$1 `Uninstall`  
Erforderlich: Ja

## `aws:configurePackage`
<a name="aws-configurepackage"></a>

(Schemaversion AWS Systems Manager Distributor 2.0 oder höher) Installieren oder deinstallieren Sie ein Paket. Sie können die neueste Version, die Standardversion oder eine Version des angegebenen Pakets installieren. Pakete, die von bereitgestellt AWS werden, werden ebenfalls unterstützt. Dieses Plugin läuft unter Windows Server- und Linux-Betriebssystemen, wobei jedoch in Linux-Betriebssystemen nicht alle verfügbaren Pakete unterstützt werden.

Zu den verfügbaren AWS Paketen für Windows Server gehören: `AWSPVDriver``AWSNVMe`,`AwsEnaNetworkDriver`,`AwsVssComponents`,`AmazonCloudWatchAgent`,`CodeDeployAgent`, und `AWSSupport-EC2Rescue.`

Zu den verfügbaren AWS Paketen für Linux-Betriebssysteme gehören die folgenden: `AmazonCloudWatchAgent``CodeDeployAgent`, und`AWSSupport-EC2Rescue`.

### Syntax
<a name="configurepackage-syntax"></a>

#### Schema 2.2
<a name="configurepackage-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:configurePackage
parameters:
  name:
    description: "(Required) The name of the AWS package to install or uninstall."
    type: String
  action:
    description: "(Required) The type of action to perform."
    type: String
    default: Install
    allowedValues:
    - Install
    - Uninstall
  ssmParameter:
    description: "(Required) Argument stored in Parameter Store."
    type: String
    default: "{{ ssm:parameter_store_arg }}"
mainSteps:
- action: aws:configurePackage
  name: configurePackage
  inputs:
    name: "{{ name }}"
    action: "{{ action }}"
    additionalArguments: 
      "{\"SSM_parameter_store_arg\": \"{{ ssmParameter }}\", \"SSM_custom_arg\": \"myValue\"}"
```

------
#### [ JSON ]

```
{
   "schemaVersion": "2.2",
   "description": "aws:configurePackage",
   "parameters": {
      "name": {
         "description": "(Required) The name of the AWS package to install or uninstall.",
         "type": "String"
      },
      "action": {
         "description": "(Required) The type of action to perform.",
         "type": "String",
         "default": "Install",
         "allowedValues": [
            "Install",
            "Uninstall"
         ]
      },
      "ssmParameter": {
         "description": "(Required) Argument stored in Parameter Store.",
         "type": "String",
         "default": "{{ ssm:parameter_store_arg }}"
      }
   },
   "mainSteps": [
      {
         "action": "aws:configurePackage",
         "name": "configurePackage",
         "inputs": {
            "name": "{{ name }}",
            "action": "{{ action }}",
            "additionalArguments": "{\"SSM_parameter_store_arg\": \"{{ ssmParameter }}\", \"SSM_custom_arg\": \"myValue\"}"
         }
      }
   ]
}
```

------

### Eingaben
<a name="configurepackage-properties"></a>

**Name**  
Der Name des zu installierenden oder zu deinstallierenden AWS Pakets. In verfügbaren Paketen ist Folgendes enthalten: `AWSPVDriver`, `AwsEnaNetworkDriver`, `AwsVssComponents` und `AmazonCloudWatchAgent`.  
Typ: Zeichenfolge  
Erforderlich: Ja

**action**  
Installieren oder deinstallieren Sie ein Paket.  
Type: Zähler  
Zulässige Werte: `Install` \$1 `Uninstall`  
Erforderlich: Ja

**installationType**  
Der Typ der auszuführenden Installation. Wenn Sie `Uninstall and reinstall` angeben, wird das Paket vollständig deinstalliert und anschließend neu installiert. Die Anwendung ist bis zum Abschluss der Neuinstallation nicht verfügbar. Wenn Sie `In-place update` angeben, werden der vorhandenen Installation nur neue oder geänderte Dateien hinzugefügt, entsprechend den Anweisungen, die Sie in einem Update-Skript bereitstellen. Die Anwendung ist während des Aktualisierungsprozesses weiterhin verfügbar. Die `In-place update` Option wird für Pakete mit dem Namen AWS-published nicht unterstützt. `Uninstall and reinstall`ist der Standardwert.  
Type: Zähler  
Zulässige Werte: `Uninstall and reinstall` \$1 `In-place update`  
Erforderlich: Nein

**additionalArguments**  
Eine JSON-Zeichenkette mit den zusätzlichen Parametern, die Sie Ihren Installations-, Deinstallations- oder Update-Skripten bereitstellen müssen. Jedem Parameter muss das Präfix `SSM_` angefügt werden. Sie können in Ihren zusätzlichen Argumenten auf einen Parameter Store-Parameter verweisen, indem Sie die Konvention `{{ssm:parameter-name}}` verwenden. Um den zusätzlichen Parameter in Ihrem Installations-, Deinstallations- oder Updateskript zu verwenden, müssen Sie den Parameter mithilfe der für das Betriebssystem geeigneten Syntax als Umgebungsvariable referenzieren. In verweisen Sie PowerShell beispielsweise auf das `SSM_arg` Argument als`$Env:SSM_arg`. Es gibt keine Begrenzung für die Anzahl der von Ihnen definierten Argumente, aber die Eingabe von zusätzlichen Argumenten hat eine Begrenzung von 4096 Zeichen. Dieser Grenzwert umfasst alle von Ihnen definierten Schlüssel und Werte.  
Typ: StringMap  
Erforderlich: Nein

**version**  
Installieren oder deinstallieren Sie eine bestimmte Version des Pakets. Wenn Sie ein Installation vornehmen, installiert das System standardmäßig die neueste veröffentlichte Version. Wenn Sie eine Deinstallation vornehmen, deinstalliert das System standardmäßig die derzeit installierte Version. Wenn keine installierte Version gefunden wird, wird die neueste veröffentlichte Version heruntergeladen und die Deinstallationsaktion ausgeführt.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:domainJoin`
<a name="aws-domainJoin"></a>

Verbinden Sie eine EC2-Instance mit einer Domain. Dieses Plugin läuft unter Linux- und Windows Server-Betriebssystemen. Dieses Plugin ändert den Hostnamen für Linux-Instances in das Format EC2 AMAZ-. *XXXXXXX* Weitere Informationen zum Beitreten von EC2-Instances finden Sie unter [Join an EC2 Instance to Your AWS Managed Microsoft AD Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ms_ad_join_instance.html) im *AWS Directory Service Administrationshandbuch*.

### Syntax
<a name="domainJoin-syntax"></a>

#### Schema 2.2
<a name="domainJoin-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:domainJoin
parameters:
  directoryId:
    description: "(Required) The ID of the directory."
    type: String
  directoryName:
    description: "(Required) The name of the domain."
    type: String
  directoryOU:
    description: "(Optional) The organizational unit to assign the computer object to."
    type: String
  dnsIpAddresses:
    description: "(Required) The IP addresses of the DNS servers for your directory."
    type: StringList
  hostname:
    description: "(Optional) The hostname you want to assign to the node."
    type: String
mainSteps:
- action: aws:domainJoin
  name: domainJoin
  inputs:
    directoryId: "{{ directoryId }}"
    directoryName: "{{ directoryName }}"
    directoryOU: "{{ directoryOU }}"
    dnsIpAddresses: "{{ dnsIpAddresses }}"
    hostname: "{{ hostname }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:domainJoin",
  "parameters": {
    "directoryId": {
      "description": "(Required) The ID of the directory.",
      "type": "String"
    },
    "directoryName": {
      "description": "(Required) The name of the domain.",
      "type": "String"
    },
    "directoryOU": {
        "description": "(Optional) The organizational unit to assign the computer object to.",
        "type": "String"
      },
    "dnsIpAddresses": {
      "description": "(Required) The IP addresses of the DNS servers for your directory.",
      "type": "StringList"
    },
    "hostname": {
        "description": "(Optional) The hostname you want to assign to the node.",
        "type": "String"
      }
  },
  "mainSteps": [
    {
      "action": "aws:domainJoin",
      "name": "domainJoin",
      "inputs": {
        "directoryId": "{{ directoryId }}",
        "directoryName": "{{ directoryName }}",
        "directoryOU":"{{ directoryOU }}",
        "dnsIpAddresses":"{{ dnsIpAddresses }}",
        "hostname":"{{ hostname }}"
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="domainJoin-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:domainJoin:
    properties:
      directoryId: "{{ directoryId }}"
      directoryName: "{{ directoryName }}"
      directoryOU: "{{ directoryOU }}"
      dnsIpAddresses: "{{ dnsIpAddresses }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:domainJoin":{
         "properties":{
            "directoryId":"{{ directoryId }}",
            "directoryName":"{{ directoryName }}",
            "directoryOU":"{{ directoryOU }}",
            "dnsIpAddresses":"{{ dnsIpAddresses }}"
         }
      }
   }
}
```

------

### Eigenschaften
<a name="domainJoin-properties"></a>

**directoryId**  
Die ID des Verzeichnisses.  
Typ: Zeichenfolge  
Erforderlich: Ja  
Beispiel: "directoryId": "d-1234567890"

**directoryName**  
Der Name der Domain.  
Typ: Zeichenfolge  
Erforderlich: Ja  
Beispiel: "directoryName": "example.com"

**directoryOU**  
Die Organisationseinheit (OU).  
Typ: Zeichenfolge  
Erforderlich: Nein  
Beispiel: "directoryOU": "OU=test,DC=example,DC=com"

**dnsIpAddresses**  
Die IP-Adressen des DNS-Servers.  
Typ: StringList  
Erforderlich: Ja  
Beispiel: "dnsIpAddresses„: [" 198.51.100.1", "198.51.100.2"]

**hostname**  
Der Hostname, den Sie dem Knoten zuweisen möchten. Wenn nicht angegeben, gibt es keine Namensänderung für Windows Server-Instances. Linux-Instances hingegen verwenden das Standardbenennungsmuster. Wenn angegeben, verwenden Windows Server-Instances den entsprechenden Wert. Bei Linux-Instances dient er hingegen als Präfix (sofern `keepHostName` nicht auf „true“ gesetzt ist).  
Typ: Zeichenfolge  
Erforderlich: Nein

**keepHostName**  
Ermittelt, ob der Hostname für Linux-Instances geändert wird, wenn sie der Domain beitreten. Dies ist ein reiner Linux-Parameter. Standardmäßig (ohne Eingaben für `hostname``hostnameNumAppendDigits`, und mit „false“) werden `keepHostName` Linux-Hosts nach dem Muster AMAZ-XXXXXX umbenannt. EC2 Wenn der Wert auf „true“ gesetzt ist, wird der ursprüngliche Hostname beibehalten und Eingaben von `hostname` und `hostnameNumAppendDigits` werden ignoriert.  
Typ: Boolesch  
Erforderlich: Nein

**hostnameNumAppendZiffern**  
Definiert die Anzahl der zufälligen numerischen Ziffern, die nach dem Hostnamenwert angehängt werden sollen. Dies ist ein reiner Linux-Parameter, der zusammen mit dem Parameter `hostname` verwendet wird. Wenn `hostname` nicht angegeben wurde, wird er ignoriert.  
Typ: Zeichenfolge  
Zulässige Werte: 1 bis 5  
Erforderlich: Nein

### Beispiele
<a name="domainJoin-examples"></a>

Beispiele finden Sie unter [Verbinden einer Amazon-EC2-Instance mit Ihrem AWS Managed Microsoft AD](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/ec2-join-aws-domain.html) im *AWS Directory Service -Administratorhandbuch*.

## `aws:downloadContent`
<a name="aws-downloadContent"></a>

(Schemaversion 2.0 oder höher) Laden Sie SSM-Dokumente und -Skripte von Remote-Standorten herunter. GitHub Enterprise-Repositorys werden nicht unterstützt. Dieses Plugin wird unter Linux- und Windows Server-Betriebssystemen unterstützt.

### Syntax
<a name="downloadContent-syntax"></a>

#### Schema 2.2
<a name="downloadContent-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:downloadContent
parameters:
  sourceType:
    description: "(Required) The download source."
    type: String
  sourceInfo:
    description: "(Required) The information required to retrieve the content from
      the required source."
    type: StringMap
mainSteps:
- action: aws:downloadContent
  name: downloadContent
  inputs:
    sourceType: "{{ sourceType }}"
    sourceInfo: "{{ sourceInfo }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:downloadContent",
  "parameters": {
    "sourceType": {
    "description": "(Required) The download source.",
    "type": "String"
  },
  "sourceInfo": {
    "description": "(Required) The information required to retrieve the content from the required source.",
    "type": "StringMap"
    }
  },
  "mainSteps": [
    {
      "action": "aws:downloadContent",
      "name": "downloadContent",
      "inputs": {
        "sourceType":"{{ sourceType }}",
        "sourceInfo":"{{ sourceInfo }}"
      }
    }
  ]
}
```

------

### Eingaben
<a name="downloadContent-inputs"></a>

**sourceType**  
Die Downloadquelle. Systems Manager unterstützt derzeit die folgenden Quellarten für das Herunterladen von Skripts und SSM documents:-Dokumenten: `GitHub`, `Git`, `HTTP`, `S3` und `SSMDocument`.  
Typ: Zeichenfolge  
Erforderlich: Ja

**sourceInfo**  
Die erforderlichen Informationen zum Abrufen der Inhalte aus der erforderlichen Quelle.  
Typ: StringMap  
Erforderlich: Ja  
 **Für sourceType `GitHub,` geben Sie Folgendes an:**   
+ owner: Die Eigentümer des Repositorys.
+ repository: Der Name des Repositorys.
+ path: Der Pfad zu der Datei oder dem Verzeichnis, die bzw. das Sie herunterladen möchten.
+ getOptions: Zusätzliche Optionen zum Abrufen von Inhalten aus einem anderen Branch als dem Master-Branch oder aus einem bestimmten Commit im Repository. getOptions kann weggelassen werden, wenn Sie den letzten Commit in der Master-Branch verwenden. Wenn Ihr Repository nach dem 1. Oktober 2020 erstellt wurde, wird der Standardzweig möglicherweise „main“ statt „master“ genannt. In diesem Fall müssen Sie Werte für den getOptions-Parameter angeben.

  Dieser Parameter verwendet das folgende Format:
  + Branche: refs/heads/ *branch\$1name*

    Der Standardwert ist `master`.

    Verwenden Sie das folgende Format, um einen nicht standardmäßigen Zweig anzugeben:

    Branch:refs/heads/ *branch\$1name*
  + commitID: *commitID*

    Der Standardwert ist `head`.

    Um die Version Ihres SSM-Dokuments in einem anderen als dem letzten Commit zu verwenden, geben Sie die vollständige Commit-ID an. Beispiel:

    ```
    "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    ```
+ tokenInfo: Der Systems Manager Manager-Parameter (ein SecureString Parameter), in dem Sie Ihre GitHub Zugriffstoken-Informationen speichern, im Format. `{{ssm-secure:secure-string-token-name}}`
**Anmerkung**  
Dieses `tokenInfo` Feld ist das einzige SSM-Dokument-Plugin-Feld, das einen Parameter unterstützt. SecureString SecureString Parameter werden weder für andere Felder noch für andere SSM-Dokument-Plugins unterstützt.

```
{
    "owner":"TestUser",
    "repository":"GitHubTest",
    "path":"scripts/python/test-script",
    "getOptions":"branch:master",
    "tokenInfo":"{{ssm-secure:secure-string-token}}"
}
```
 **Für sourceType `Git` müssen Sie Folgendes angeben:**   
+ Repository

  Die URL des Git-Repositorys zu der Datei oder dem Verzeichnis, die bzw. das Sie herunterladen möchten.

  Typ: Zeichenfolge
Sie können zusätzlich einen der folgenden optionalen Parameter angeben:  
+ getOptions

  Zusätzliche Optionen zum Abrufen von Inhalten aus einem anderen Branch als dem Master-Branch oder aus einem bestimmten Commit im Repository. getOptions kann weggelassen werden, wenn Sie den letzten Commit in der Master-Branch verwenden.

  Typ: Zeichenfolge

  Dieser Parameter verwendet das folgende Format:
  + Branch:refs/heads/ *branch\$1name*

    Der Standardwert ist `master`.

    `"branch"` ist nur erforderlich, wenn Ihr SSM-Dokument in einer anderen Verzweigung als `master` gespeichert ist. Beispiel:

    ```
    "getOptions": "branch:refs/heads/main"
    ```
  + commitID: *commitID*

    Der Standardwert ist `head`.

    Um die Version Ihres SSM-Dokuments in einem anderen als dem letzten Commit zu verwenden, geben Sie die vollständige Commit-ID an. Beispiel:

    ```
    "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
    ```
+ privat SSHKey

  Der SSH-Schlüssel, der beim Herstellen einer Verbindung zur `repository` verwendet werden soll. Sie können das folgende Format verwenden, um auf einen `SecureString`-Parameter für den Wert Ihres SSH-Schlüssels zu verweisen: `{{ssm-secure:your-secure-string-parameter}}`.

  Typ: Zeichenfolge
+ skipHostKeyÜberprüfend

  Bestimmt den Wert der StrictHostKeyChecking Option, wenn eine Verbindung zu dem von `repository` Ihnen angegebenen hergestellt wird. Der Standardwert ist `false`.

  Typ: Boolescher Wert
+ username

  Der Benutzername, der bei der Verbindung mit der `repository` verwendet werden soll, die Sie mit HTTP angeben. Sie können das folgende Format verwenden, um auf einen `SecureString`-Parameter für den Wert Ihres Benutzernamens zu verweisen: `{{ssm-secure:your-secure-string-parameter}}`.

  Typ: Zeichenfolge
+ password

  Das Passwort, das bei der Verbindung mit der `repository` verwendet werden soll, die Sie mit HTTP angeben. Sie können das folgende Format verwenden, um auf einen `SecureString`-Parameter für den Wert Ihres Passworts zu verweisen: `{{ssm-secure:your-secure-string-parameter}}`.

  Typ: Zeichenfolge
 **Für sourceType `HTTP` müssen Sie Folgendes angeben:**   
+ URL

  Die URL zu der Datei oder dem Verzeichnis, die bzw. das Sie herunterladen möchten.

  Typ: Zeichenfolge
Sie können zusätzlich einen der folgenden optionalen Parameter angeben:  
+ allowInsecureDownload

  Bestimmt, ob ein Download über eine Verbindung durchgeführt werden kann, die nicht mit Secure Socket Layer (SSL) oder Transport Layer Security (TLS) verschlüsselt ist. Der Standardwert ist `false`. Wir raten davon ab, Downloads ohne Verschlüsselung durchzuführen. Wenn Sie sich dafür entscheiden, übernehmen Sie alle damit verbundenen Risiken. Sicherheit ist eine gemeinsame Verantwortung zwischen Ihnen AWS und Ihnen. Dies wird als Modell der geteilten Verantwortung beschrieben. Weitere Informationen hierzu finden Sie in [Modell der geteilten Verantwortung](https://aws.amazon.com/compliance/shared-responsibility-model/).

  Typ: Boolescher Wert
+ authMethod

  Bestimmt, ob ein Benutzername und ein Passwort für die Authentifizierung verwendet werden, wenn eine Verbindung mit der `url` hergestellt wird, die Sie angeben. Wenn Sie `Basic` oder `Digest` angeben, müssen Sie Werte für die `username`- und `password`-Parameter bereitstellen. Um die `Digest`-Methode zu verwenden, muss SSM Agent-Version 3.0.1181.0 oder höher muss auf Ihrer Instance installiert sein. Die `Digest` Methode unterstützt MD5 SHA256 Verschlüsselung.

  Typ: Zeichenfolge

  Zulässige Werte: `None` \$1 `Basic` \$1 `Digest`
+ username

  Der Benutzername, der bei der Verbindung mit der `url` verwendet werden soll, die Sie mit `Basic`-Authentifizierung angeben. Sie können das folgende Format verwenden, um auf einen `SecureString`-Parameter für den Wert Ihres Benutzernamens zu verweisen: `{{ssm-secure:your-secure-string-parameter}}`.

  Typ: Zeichenfolge
+ password

  Das Passwort, das bei der Verbindung mit der `url` verwendet werden soll, die Sie mit `Basic`-Authentifizierung angeben. Sie können das folgende Format verwenden, um auf einen `SecureString`-Parameter für den Wert Ihres Passworts zu verweisen: `{{ssm-secure:your-secure-string-parameter}}`.

  Typ: Zeichenfolge
 **Für sourceType `S3` geben Sie Folgendes an:**   
+ Die URL zu der Datei oder dem Verzeichnis, die bzw. das Sie von Amazon S3 herunterladen möchten.
Beim Herunterladen einer Datei aus einem S3-Bucket werden die .etag-Dateien im Download-Verzeichnis generiert.

```
{
    "path": "https://s3.amazonaws.com/amzn-s3-demo-bucket/powershell/helloPowershell.ps1" 
}
```
 **Geben Sie für sourceType `SSMDocument` *eine* der folgenden Optionen an:**   
+ name: Der Name und die Version des Dokuments in folgendem Format: `name:version`. Version ist optional. 

  ```
  {
      "name": "Example-RunPowerShellScript:3" 
  }
  ```
+ name: Der ARN für das Dokument im folgenden Format: `arn:aws:ssm:region:account_id:document/document_name`

  ```
  {
     "name":"arn:aws:ssm:us-east-2:3344556677:document/MySharedDoc"
  }
  ```

**destinationPath**  
Ein optionaler lokaler Pfad auf der Instance, in den die Datei heruntergeladen werden soll. Wenn Sie keinen Pfad angeben, wird der Inhalt in einen Pfad relativ zu Ihrer Befehls-ID heruntergeladen.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:psModule`
<a name="aws-psModule"></a>

Installieren Sie PowerShell Module auf einer Amazon EC2 EC2-Instance. Dieses Plugin läuft nur unter Windows Server-Betriebssystemen.

### Syntax
<a name="psModule-syntax"></a>

#### Schema 2.2
<a name="psModule-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:psModule
parameters:
  source:
    description: "(Required) The URL or local path on the instance to the application
      .zip file."
    type: String
mainSteps:
- action: aws:psModule
  name: psModule
  inputs:
    source: "{{ source }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:psModule",
  "parameters": {
    "source": {
      "description": "(Required) The URL or local path on the instance to the application .zip file.",
      "type": "String"
    }
  },
  "mainSteps": [
    {
      "action": "aws:psModule",
      "name": "psModule",
      "inputs": {
        "source": "{{ source }}"
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="domainJoin-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:psModule:
    properties:
    - runCommand: "{{ commands }}"
      source: "{{ source }}"
      sourceHash: "{{ sourceHash }}"
      workingDirectory: "{{ workingDirectory }}"
      timeoutSeconds: "{{ executionTimeout }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:psModule":{
         "properties":[
            {
               "runCommand":"{{ commands }}",
               "source":"{{ source }}",
               "sourceHash":"{{ sourceHash }}",
               "workingDirectory":"{{ workingDirectory }}",
               "timeoutSeconds":"{{ executionTimeout }}"
            }
         ]
      }
   }
}
```

------

### Eigenschaften
<a name="psModule-properties"></a>

**runCommand**  
Der PowerShell Befehl, der nach der Installation des Moduls ausgeführt werden soll.  
Typ: StringList  
Erforderlich: Nein

**Quelle**  
Die URL bzw. der lokale Pfad auf der Instance zur `.zip`-Datei der Anwendung.  
Typ: Zeichenfolge  
Erforderlich: Ja

**sourceHash**  
Der SHA256 Hash der `.zip` Datei.  
Typ: Zeichenfolge  
Erforderlich: Nein

**timeoutSeconds**  
Die Zeit in Sekunden, die ein Befehl in Anspruch nehmen darf, bevor er als fehlgeschlagen betrachtet wird.  
Typ: Zeichenfolge  
Erforderlich: Nein

**workingDirectory**  
Der Pfad zum Arbeitsverzeichnis auf der Instance.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:refreshAssociation`
<a name="aws-refreshassociation"></a>

(Schemaversion 2.0 oder höher) Aktualisieren (Erzwingen) Sie bei Bedarf eine Zuweisung. Diese Aktion ändert den Systemstatus basierend auf was in der ausgewählten Verknüpfungen bzw. in allen zielgebundenen Verknüpfungen definiert ist. Dieses Plugin läuft unter Linux- und Microsoft Windows Server-Betriebssystemen.

### Syntax
<a name="refreshassociation-syntax"></a>

#### Schema 2.2
<a name="refreshassociation-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:refreshAssociation
parameters:
  associationIds:
    description: "(Optional) List of association IDs. If empty, all associations bound
      to the specified target are applied."
    type: StringList
mainSteps:
- action: aws:refreshAssociation
  name: refreshAssociation
  inputs:
    associationIds:
    - "{{ associationIds }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:refreshAssociation",
  "parameters": {
    "associationIds": {
      "description": "(Optional) List of association IDs. If empty, all associations bound to the specified target are applied.",
      "type": "StringList"
    }
  },
  "mainSteps": [
    {
      "action": "aws:refreshAssociation",
      "name": "refreshAssociation",
      "inputs": {
        "associationIds": [
          "{{ associationIds }}"
        ]
      }
    }
  ]
}
```

------

### Eingaben
<a name="refreshassociation-properties"></a>

**associationIds**  
Liste der Assoziationen IDs. Wenn das Feld leer ist, werden alle Verknüpfungen mit dem angegebenen Ziel angewendet.  
Typ: StringList  
Erforderlich: Nein

## `aws:runDockerAction`
<a name="aws-rundockeraction"></a>

(Schemaversion 2.0 oder höher) Führen Sie Docker-Aktionen auf Containern aus. Dieses Plugin läuft unter Linux- und Microsoft Windows Server-Betriebssystemen.

### Syntax
<a name="rundockeraction-syntax"></a>

#### Schema 2.2
<a name="rundockeraction-syntax-2.2"></a>

------
#### [ YAML ]

```
---
mainSteps:
- action: aws:runDockerAction
  name: RunDockerAction
  inputs:
    action: "{{ action }}"
    container: "{{ container }}"
    image: "{{ image }}"
    memory: "{{ memory }}"
    cpuShares: "{{ cpuShares }}"
    volume: "{{ volume }}"
    cmd: "{{ cmd }}"
    env: "{{ env }}"
    user: "{{ user }}"
    publish: "{{ publish }}"
    workingDirectory: "{{ workingDirectory }}"
    timeoutSeconds: "{{ timeoutSeconds }}"
```

------
#### [ JSON ]

```
{
   "mainSteps":[
      {
         "action":"aws:runDockerAction",
         "name":"RunDockerAction",
         "inputs":{
            "action":"{{ action }}",
            "container":"{{ container }}",
            "image":"{{ image }}",
            "memory":"{{ memory }}",
            "cpuShares":"{{ cpuShares }}",
            "volume":"{{ volume }}",
            "cmd":"{{ cmd }}",
            "env":"{{ env }}",
            "user":"{{ user }}",
            "publish":"{{ publish }}",
            "workingDirectory": "{{ workingDirectory }}",
            "timeoutSeconds": "{{ timeoutSeconds }}"
         }
      }
   ]
}
```

------

### Eingaben
<a name="rundockeraction-properties"></a>

**action**  
Der Typ der Aktion, die durchgeführt werden soll.  
Typ: Zeichenfolge  
Erforderlich: Ja

**Container**  
Die Container-ID des Dockers.  
Typ: Zeichenfolge  
Erforderlich: Nein

**Abbild**  
Der Name des Docker-Image.  
Typ: Zeichenfolge  
Erforderlich: Nein

**cmd**  
Der Container-Befehl.  
Typ: Zeichenfolge  
Erforderlich: Nein

**memory**  
Die Grenze des Container-Speichers.  
Typ: Zeichenfolge  
Erforderlich: Nein

**cpuShares**  
Die Container-CPU-Anteile (relative Gewichtung).  
Typ: Zeichenfolge  
Erforderlich: Nein

**Volume**  
Die Container-Volume-Mounts.  
Typ: StringList  
Erforderlich: Nein

**env**  
Die Container-Umgebungsvariablen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**user**  
Der Container-Benutzername.  
Typ: Zeichenfolge  
Erforderlich: Nein

**publish**  
Die veröffentlichten Container-Ports.  
Typ: Zeichenfolge  
Erforderlich: Nein

**workingDirectory**  
Der Pfad zum Arbeitsverzeichnis in Ihrem verwalteten Knoten.  
Typ: Zeichenfolge  
Erforderlich: Nein

**timeoutSeconds**  
Die Zeit in Sekunden, die ein Befehl in Anspruch nehmen darf, bevor er als fehlgeschlagen betrachtet wird.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:runDocument`
<a name="aws-rundocument"></a>

(Schema-Version 2.0 oder höher) Führt SSM-Dokumente aus, die in Systems Manager oder einem lokal freigegebenen Verzeichnis gespeichert sind. Sie können dieses Plugin mit dem Plugin [`aws:downloadContent`](#aws-downloadContent) verwenden, um ein SSM-Dokument von einem Remote-Standort in ein lokal freigegebenes Verzeichnis herunterzuladen, und es dann ausführen. Dieses Plugin wird unter Linux- und Windows Server-Betriebssystemen unterstützt. Dieses Plugin unterstützt nicht das Ausführen des `AWS-UpdateSSMAgent`-Dokuments oder eines anderen Dokuments, das den `aws:updateSsmAgent`-Plugin verwendet.

### Syntax
<a name="rundocument-syntax"></a>

#### Schema 2.2
<a name="aws-rundocument-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:runDocument
parameters:
  documentType:
    description: "(Required) The document type to run."
    type: String
    allowedValues:
    - LocalPath
    - SSMDocument
mainSteps:
- action: aws:runDocument
  name: runDocument
  inputs:
    documentType: "{{ documentType }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:runDocument",
  "parameters": {
    "documentType": {
      "description": "(Required) The document type to run.",
      "type": "String",
      "allowedValues": [
        "LocalPath",
        "SSMDocument"
      ]
    }
  },
  "mainSteps": [
    {
      "action": "aws:runDocument",
      "name": "runDocument",
      "inputs": {
        "documentType": "{{ documentType }}"
      }
    }
  ]
}
```

------

### Eingaben
<a name="rundocument-properties"></a>

**documentType**  
Der auszuführende Dokumenttyp. Sie können lokale Dokumente (`LocalPath`) oder in Systems Manager gespeicherte Dokumente (`SSMDocument`) ausführen.  
Typ: Zeichenfolge  
Erforderlich: Ja

**documentPath**  
Der Pfad zu dem Dokument. Wenn `documentType` `LocalPath` ist, geben Sie den Pfad des Dokuments im lokal freigegebenen Verzeichnis an. Wenn `documentType` `SSMDocument` ist, geben Sie den Namen des Dokuments an.  
Typ: Zeichenfolge  
Erforderlich: Nein

**documentParameters**  
Parameter für das Dokument.  
Typ: StringMap  
Erforderlich: Nein

## `aws:runPowerShellScript`
<a name="aws-runPowerShellScript"></a>

Führen Sie PowerShell Skripts aus oder geben Sie den Pfad zu einem auszuführenden Skript an. Dieses Plugin läuft unter Microsoft Windows Server- und Linux-Betriebssystemen.

### Syntax
<a name="runPowerShellScript-syntax"></a>

#### Schema 2.2
<a name="runPowerShellScript-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:runPowerShellScript
parameters:
  commands:
    type: String
    description: "(Required) The commands to run or the path to an existing script
      on the instance."
    default: Write-Host "Hello World"
mainSteps:
- action: aws:runPowerShellScript
  name: runPowerShellScript
  inputs:
    timeoutSeconds: '60'
    runCommand:
    - "{{ commands }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:runPowerShellScript",
  "parameters": {
    "commands": {
      "type": "String",
      "description": "(Required) The commands to run or the path to an existing script on the instance.",
      "default": "Write-Host \"Hello World\""
    }
  },
  "mainSteps": [
    {
      "action": "aws:runPowerShellScript",
      "name": "runPowerShellScript",
      "inputs": {
        "timeoutSeconds": "60",
        "runCommand": [
          "{{ commands }}"
        ]
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="runPowerShellScript-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:runPowerShellScript:
    properties:
    - id: 0.aws:runPowerShellScript
      runCommand: "{{ commands }}"
      workingDirectory: "{{ workingDirectory }}"
      timeoutSeconds: "{{ executionTimeout }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:runPowerShellScript":{
         "properties":[
            {
               "id":"0.aws:runPowerShellScript",
               "runCommand":"{{ commands }}",
               "workingDirectory":"{{ workingDirectory }}",
               "timeoutSeconds":"{{ executionTimeout }}"
            }
         ]
      }
   }
}
```

------

### Eigenschaften
<a name="runPowerShellScript-properties"></a>

**runCommand**  
Geben Sie die auszuführenden Befehle oder den Pfad zu einem vorhandenen Skript auf der Instance an.  
Typ: StringList  
Erforderlich: Ja

**timeoutSeconds**  
Die Zeit in Sekunden, die ein Befehl in Anspruch nehmen darf, bevor er als fehlgeschlagen betrachtet wird. Wenn der Wert für den Timeout erreicht ist, hält Systems Manager die Ausführung des Befehls an.  
Typ: Zeichenfolge  
Erforderlich: Nein

**workingDirectory**  
Der Pfad zum Arbeitsverzeichnis auf der Instance.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:runShellScript`
<a name="aws-runShellScript"></a>

Führen Sie Linux-Shell-Skripts aus oder geben Sie den Pfad zu einem auszuführenden Skript an. Dieses Plugin läuft nur unter Linux-Betriebssystemen.

### Syntax
<a name="runShellScript-syntax"></a>

#### Schema 2.2
<a name="runShellScript-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:runShellScript
parameters:
  commands:
    type: String
    description: "(Required) The commands to run or the path to an existing script
      on the instance."
    default: echo Hello World
mainSteps:
- action: aws:runShellScript
  name: runShellScript
  inputs:
    timeoutSeconds: '60'
    runCommand:
    - "{{ commands }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:runShellScript",
  "parameters": {
    "commands": {
      "type": "String",
      "description": "(Required) The commands to run or the path to an existing script on the instance.",
      "default": "echo Hello World"
    }
  },
  "mainSteps": [
    {
      "action": "aws:runShellScript",
      "name": "runShellScript",
      "inputs": {
        "timeoutSeconds": "60",
        "runCommand": [
          "{{ commands }}"
        ]
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="runShellScript-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:runShellScript:
    properties:
    - runCommand: "{{ commands }}"
      workingDirectory: "{{ workingDirectory }}"
      timeoutSeconds: "{{ executionTimeout }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:runShellScript":{
         "properties":[
            {
               "runCommand":"{{ commands }}",
               "workingDirectory":"{{ workingDirectory }}",
               "timeoutSeconds":"{{ executionTimeout }}"
            }
         ]
      }
   }
}
```

------

### Eigenschaften
<a name="runShellScript-properties"></a>

**runCommand**  
Geben Sie die auszuführenden Befehle oder den Pfad zu einem vorhandenen Skript auf der Instance an.  
Typ: StringList  
Erforderlich: Ja

**timeoutSeconds**  
Die Zeit in Sekunden, die ein Befehl in Anspruch nehmen darf, bevor er als fehlgeschlagen betrachtet wird. Wenn der Wert für den Timeout erreicht ist, hält Systems Manager die Ausführung des Befehls an.  
Typ: Zeichenfolge  
Erforderlich: Nein

**workingDirectory**  
Der Pfad zum Arbeitsverzeichnis auf der Instance.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:softwareInventory`
<a name="aws-softwareinventory"></a>

(Schema-Version 2.0 oder höher) Erfassen von Metadaten zu Anwendungen, Dateien und Konfigurationen auf Ihren verwalteten Instances. Dieses Plugin läuft unter Linux- und Microsoft Windows Server-Betriebssystemen. Wenn Sie die Inventarerfassung konfigurieren, erstellen Sie zunächst eine AWS Systems Manager State Manager Zuordnung. Systems Manager erfasst die Bestandsdaten, wenn der Zuordnungsstatus ausgeführt wird. Wenn Sie den Zuordnungsstatus nicht zuerst erstellen und versuchen, das `aws:softwareInventory`-Plugin aufzurufen, gibt das System den folgenden Fehler aus:

```
The aws:softwareInventory plugin can only be invoked via ssm-associate.
```

Pro Instance kann nur jeweils ein Bestandszuordnungsstatus konfiguriert werden. Wenn Sie eine Instance mit zwei oder mehr Zuordnungen konfigurieren, wird der Bestandszuordnungsstatus nicht ausgeführt und es werden keine Bestandsdaten erfasst. Weitere Informationen über das Erfassen des Bestands finden Sie unter [AWS Systems Manager-Bestand](systems-manager-inventory.md).

### Syntax
<a name="softwareinventory-syntax"></a>

#### Schema 2.2
<a name="softwareinventory-syntax-2.2"></a>

------
#### [ YAML ]

```
---
mainSteps:
- action: aws:softwareInventory
  name: collectSoftwareInventoryItems
  inputs:
    applications: "{{ applications }}"
    awsComponents: "{{ awsComponents }}"
    networkConfig: "{{ networkConfig }}"
    files: "{{ files }}"
    services: "{{ services }}"
    windowsRoles: "{{ windowsRoles }}"
    windowsRegistry: "{{ windowsRegistry}}"
    windowsUpdates: "{{ windowsUpdates }}"
    instanceDetailedInformation: "{{ instanceDetailedInformation }}"
    customInventory: "{{ customInventory }}"
```

------
#### [ JSON ]

```
{
   "mainSteps":[
      {
         "action":"aws:softwareInventory",
         "name":"collectSoftwareInventoryItems",
         "inputs":{
            "applications":"{{ applications }}",
            "awsComponents":"{{ awsComponents }}",
            "networkConfig":"{{ networkConfig }}",
            "files":"{{ files }}",
            "services":"{{ services }}",
            "windowsRoles":"{{ windowsRoles }}",
            "windowsRegistry":"{{ windowsRegistry}}",
            "windowsUpdates":"{{ windowsUpdates }}",
            "instanceDetailedInformation":"{{ instanceDetailedInformation }}",
            "customInventory":"{{ customInventory }}"
         }
      }
   ]
}
```

------

### Eingaben
<a name="softwareinventory-properties"></a>

**applications**  
(Optional) Erfassen von Metadaten für installierte Anwendungen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**awsComponents**  
(Optional) Sammeln Sie Metadaten für AWS Komponenten wie amazon-ssm-agent.  
Typ: Zeichenfolge  
Erforderlich: Nein

**files**  
(Optional, erfordert SSM Agent-Version 2.2.64.0 oder höher) Erfassen von Metadaten für Dateien, einschließlich Dateinamen, der Erstellungszeit der Dateien, der letzten Änderungs- und Zugriffszeit der Dateien oder Dateigrößen usw. Weitere Informationen zum Erfassen eines Dateibestands finden Sie unter [Arbeiten mit Datei- und Windows-Registrierungsbestand](inventory-file-and-registry.md).  
Typ: Zeichenfolge  
Erforderlich: Nein

**networkConfig**  
(Optional) Erfassen von Metadaten für Netzwerkkonfigurationen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**billingInfo**  
(Optional) Sammeln von Metadaten für Plattformdetails, die mit dem Fakturierungscode des AMI verknüpft sind.  
Typ: Zeichenfolge  
Erforderlich: Nein

**windowsUpdates**  
(Optional) Erfassen von Metadaten für alle Windows-Updates.  
Typ: Zeichenfolge  
Erforderlich: Nein

**instanceDetailedInformation**  
(Optional) Erfassen weiterer Instance-Informationen neben den Informationen des Standardbestands-Plugins (`aws:instanceInformation`), einschließlich CPU-Modell, Geschwindigkeit und Anzahl der Kerne usw.  
Typ: Zeichenfolge  
Erforderlich: Nein

**service**  
(Optional, nur Windows-BS, erfordert SSM Agent-Version 2.2.64.0 oder höher) Erfassen von Daten für Servicekonfigurationen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**windowsRegistry**  
(Optional, nur Windows-BS, erfordert SSM Agent-Version 2.2.64.0 oder höher) Erfassen von Windows Registry-Schlüsseln und -Werten. Sie können einen Schlüssel-Pfad auswählen und alle Schlüssel und Werte rekursiv erfassen. Sie können auch einen bestimmten Registrierungsschlüssel und seinen Wert für einen bestimmten Pfad erfassen. Inventory erfasst den Schlüsselpfad, den Namen, Typ und Wert. Weitere Informationen zur Erfassung von Windows Registry-Bestand finden Sie unter [Arbeiten mit Datei- und Windows-Registrierungsbestand](inventory-file-and-registry.md).  
Typ: Zeichenfolge  
Erforderlich: Nein

**windowsRoles**  
(Optional, nur Windows-BS, erfordert SSM Agent-Version 2.2.64.0 oder höher) Erfassen von Metadaten für Microsoft Windows-Rollenkonfigurationen.  
Typ: Zeichenfolge  
Erforderlich: Nein

**customInventory**  
(Optional) Erfassen von benutzerdefinierten Bestandsdaten. Weitere Informationen zum benutzerdefinierten Bestand finden Sie unter [Arbeiten mit benutzerdefiniertem Bestand](inventory-custom.md)  
Typ: Zeichenfolge  
Erforderlich: Nein

**customInventoryDirectory**  
(Optional) Erfassen benutzerdefinierter Inventardaten aus dem angegebenen Verzeichnis. Weitere Informationen zum benutzerdefinierten Bestand finden Sie unter [Arbeiten mit benutzerdefiniertem Bestand](inventory-custom.md)  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:updateAgent`
<a name="aws-updateagent"></a>

Aktualisieren Sie den EC2 Config-Dienst auf die neueste Version oder geben Sie eine ältere Version an. Dieses Plugin läuft nur unter Microsoft Windows Server-Betriebssystemen. Weitere Informationen zum EC2 Config-Service finden Sie unter [Konfiguration einer Windows-Instance mithilfe des EC2 Config-Service (Legacy)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2config-service.html) im *Amazon EC2 EC2-Benutzerhandbuch*.

### Syntax
<a name="updateagent-syntax"></a>

#### Schema 2.2
<a name="updateagent-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:updateAgent
mainSteps:
- action: aws:updateAgent
  name: updateAgent
  inputs:
    agentName: Ec2Config
    source: https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:updateAgent",
  "mainSteps": [
    {
      "action": "aws:updateAgent",
      "name": "updateAgent",
      "inputs": {
        "agentName": "Ec2Config",
        "source": "https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json"
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="updateagent-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:updateAgent:
    properties:
      agentName: Ec2Config
      source: https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json
      allowDowngrade: "{{ allowDowngrade }}"
      targetVersion: "{{ version }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:updateAgent":{
         "properties":{
            "agentName":"Ec2Config",
            "source":"https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json",
            "allowDowngrade":"{{ allowDowngrade }}",
            "targetVersion":"{{ version }}"
         }
      }
   }
}
```

------

### Eigenschaften
<a name="updateagent-properties"></a>

**agentName**  
EC2Config. Dies ist der Name des Agenten, der den EC2 Config-Dienst ausführt.  
Typ: Zeichenfolge  
Erforderlich: Ja

**allowDowngrade**  
Erlauben Sie, dass der EC2 Config-Dienst auf eine frühere Version herabgestuft wird. Wenn hierfür „false“ festgelegt ist, kann der Service nur auf neuere Versionen aktualisiert werden (Standard). Wenn hierfür „true“ festgelegt wurde, geben Sie die ältere Version an.   
Typ: Boolesch  
Erforderlich: Nein

**Quelle**  
Der Speicherort, an den Systems Manager die Version von EC2 Config kopiert, um sie zu installieren. Sie können diesen Speicherort nicht ändern.  
Typ: Zeichenfolge  
Erforderlich: Ja

**targetVersion**  
Eine bestimmte Version des EC2 Config-Dienstes, die installiert werden soll. Ist hierfür nichts angegeben, wird der Dienst auf die neueste Version aktualisiert.  
Typ: Zeichenfolge  
Erforderlich: Nein

## `aws:updateSsmAgent`
<a name="aws-updatessmagent"></a>

Aktualisieren Sie SSM Agent auf die neueste Version oder geben Sie eine ältere Version an. Dieses Plugin läuft unter Linux- und Windows Server-Betriebssystemen. Weitere Informationen finden Sie unter [Arbeiten mit SSM Agent](ssm-agent.md). 

### Syntax
<a name="updateSSMagent-syntax"></a>

#### Schema 2.2
<a name="updateaSSMgent-syntax-2.2"></a>

------
#### [ YAML ]

```
---
schemaVersion: '2.2'
description: aws:updateSsmAgent
parameters:
  allowDowngrade:
    default: 'false'
    description: "(Optional) Allow the Amazon SSM Agent service to be downgraded to
      an earlier version. If set to false, the service can be upgraded to newer versions
      only (default). If set to true, specify the earlier version."
    type: String
    allowedValues:
    - 'true'
    - 'false'
mainSteps:
- action: aws:updateSsmAgent
  name: updateSSMAgent
  inputs:
    agentName: amazon-ssm-agent
    source: https://s3.{Region}.amazonaws.com/amazon-ssm-{Region}/ssm-agent-manifest.json
    allowDowngrade: "{{ allowDowngrade }}"
```

------
#### [ JSON ]

```
{
  "schemaVersion": "2.2",
  "description": "aws:updateSsmAgent",
  "parameters": {
    "allowDowngrade": {
      "default": "false",
      "description": "(Required) Allow the Amazon SSM Agent service to be downgraded to an earlier version. If set to false, the service can be upgraded to newer versions only (default). If set to true, specify the earlier version.",
      "type": "String",
      "allowedValues": [
        "true",
        "false"
      ]
    }
  },
  "mainSteps": [
    {
      "action": "aws:updateSsmAgent",
      "name": "awsupdateSsmAgent",
      "inputs": {
        "agentName": "amazon-ssm-agent",
        "source": "https://s3.{Region}.amazonaws.com/amazon-ssm-{Region}/ssm-agent-manifest.json",
        "allowDowngrade": "{{ allowDowngrade }}"
      }
    }
  ]
}
```

------

#### Schema 1.2
<a name="updateaSSMgent-syntax-1.2"></a>

------
#### [ YAML ]

```
---
runtimeConfig:
  aws:updateSsmAgent:
    properties:
    - agentName: amazon-ssm-agent
      source: https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json
      allowDowngrade: "{{ allowDowngrade }}"
```

------
#### [ JSON ]

```
{
   "runtimeConfig":{
      "aws:updateSsmAgent":{
         "properties":[
            {
               "agentName":"amazon-ssm-agent",
               "source":"https://s3.{Region}.amazonaws.com/aws-ssm-{Region}/manifest.json",
               "allowDowngrade":"{{ allowDowngrade }}"
            }
         ]
      }
   }
}
```

------

### Eigenschaften
<a name="updateSSMagent-properties"></a>

**agentName**  
amazon-ssm-agent. Dies ist der Name des Systems Manager Manager-Agenten, der Anfragen verarbeitet und Befehle auf der Instanz ausführt.  
Typ: Zeichenfolge  
Erforderlich: Ja

**allowDowngrade**  
Erlauben Sie, dass SSM Agent auf eine ältere Version zurückgesetzt wird. Wenn hierfür „false“ festgelegt ist, kann der Agent nur auf neuere Versionen aktualisiert werden (Standard). Wenn hierfür „true“ festgelegt wurde, geben Sie die ältere Version an.   
Typ: Boolescher Wert  
Erforderlich: Ja

**Quelle**  
Der Ort, an den Systems Manager die zu installierende Version von SSM Agent kopiert. Sie können diesen Speicherort nicht ändern.  
Typ: Zeichenfolge  
Erforderlich: Ja

**targetVersion**  
Eine bestimmte zu installierende Version von SSM Agent. Ist hierfür nichts angegeben, wird der Agent auf die neueste Version aktualisiert.  
Typ: Zeichenfolge  
Erforderlich: Nein

# Erstellen von SSM-Dokumentinhalten
<a name="documents-creating-content"></a>

Wenn die AWS Systems Manager öffentlichen Dokumente nicht alle Aktionen ausführen, die Sie für Ihre AWS Ressourcen ausführen möchten, können Sie Ihre eigenen SSM-Dokumente erstellen. Sie können SSM-Dokumente auch über die Konsole klonen. Beim Klonen von Dokumenten werden Inhalte aus einem vorhandenen Dokument in ein neues Dokument kopiert, das Sie ändern können. Beim Erstellen oder Klonen eines Dokuments darf der Inhalt des Dokuments 64 KB nicht überschreiten. Dieses Kontingent beinhaltet auch den zur Laufzeit für Eingabeparameter angegebenen Inhalt. Wenn Sie ein neues `Command`- oder `Policy`-Dokument erstellen, wird empfohlen, Schemaversion 2.2 oder höher zu verwenden, damit Sie die neuesten Features wie Dokumentbearbeitung, automatisches Versioning, Sequenzierung usw. nutzen können.

## Schreiben von SSM-Dokumentinhalt
<a name="writing-ssm-doc-content"></a>

Um eigene SSM-Dokumentinhalte zu erstellen, müssen Sie die verschiedenen Schemas, Features, Plugins und die Syntax für SSM-Dokumente verstehen. Wir empfehlen Ihnen, sich mit den folgenden Ressourcen vertraut zu machen.
+  [Schreiben Sie Ihre eigenen Dokumente AWS Systems Manager](https://aws.amazon.com/blogs//mt/writing-your-own-aws-systems-manager-documents/) 
+  [Datenelemente und Parameter](documents-syntax-data-elements-parameters.md) 
+  [Schemata, Features und Beispiele](documents-schemas-features.md) 
+  [Referenz für Befehlsdokument-Plugins](documents-command-ssm-plugin-reference.md) 
+  [Systems Manager Automation Aktionen-Referenz](automation-actions.md) 
+  [Systemvariablen für Automation](automation-variables.md) 
+  [Weitere Runbook-Beispiele](automation-document-examples.md) 
+  [Arbeiten mit Systems Manager Automation-Runbooks](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/systems-manager-automation-docs.html) mithilfe des AWS Toolkit for Visual Studio Code 
+  [Visuelle Designerfahrung für Automation-Runbooks](automation-visual-designer.md) 
+  [Verwenden von Skripten in Runbooks](automation-document-script-considerations.md) 

AWS Vordefinierte SSM-Dokumente können einige der von Ihnen benötigten Aktionen ausführen. Sie können diese Dokumente je nach Dokumenttyp mithilfe der Plugins `aws:runDocument`, `aws:runCommand` oder `aws:executeAutomation` in Ihrem benutzerdefinierten SSM-Dokument aufrufen. Sie können Teile dieser Dokumente auch in ein benutzerdefiniertes SSM-Dokument kopieren und den Inhalt entsprechend Ihren Anforderungen bearbeiten.

**Tipp**  
Beim Erstellen von SSM-Dokumentinhalten können Sie den Inhalt ändern und das SSM-Dokument während des Tests mehrmals aktualisieren. Mit den folgenden Befehlen wird das SSM-Dokument mit dem neuesten Inhalt aktualisiert und die Standardversion des Dokuments wird auf die neueste Dokumentversion aktualisiert.  
Die Linux- und Windows-Befehle nutzen das `jq`-Befehlszeilen-Tool, um die JSON-Antwortdaten zu filtern.

```
latestDocVersion=$(aws ssm update-document \
    --content file://path/to/file/documentContent.json \
    --name "ExampleDocument" \
    --document-format JSON \
    --document-version '$LATEST' \
    | jq -r '.DocumentDescription.LatestVersion')

aws ssm update-document-default-version \
    --name "ExampleDocument" \
    --document-version $latestDocVersion
```

```
latestDocVersion=$(aws ssm update-document ^
    --content file://C:\path\to\file\documentContent.json ^
    --name "ExampleDocument" ^
    --document-format JSON ^
    --document-version "$LATEST" ^
    | jq -r '.DocumentDescription.LatestVersion')

aws ssm update-document-default-version ^
    --name "ExampleDocument" ^
    --document-version $latestDocVersion
```

```
$content = Get-Content -Path "C:\path\to\file\documentContent.json" | Out-String
$latestDocVersion = Update-SSMDocument `
    -Content $content `
    -Name "ExampleDocument" `
    -DocumentFormat "JSON" `
    -DocumentVersion '$LATEST' `
    | Select-Object -ExpandProperty LatestVersion

Update-SSMDocumentDefaultVersion `
    -Name "ExampleDocument" `
    -DocumentVersion $latestDocVersion
```

### Bewährte Methoden für die Sicherheit für SSM-Dokumente
<a name="ssm-document-security-practices"></a>

Beachten Sie beim Erstellen von SSM-Dokumenten die folgenden bewährten Methoden, um das Einschleusen von Befehlen zu verhindern und eine sichere Parameterbearbeitung zu gewährleisten:
+ Verwenden Sie die Interpolation von Umgebungsvariablen für Zeichenfolgeparameter, die in Befehlen oder Skripten verwendet werden. Fügen Sie Ihren Zeichenfolgeparametern die Eigenschaft `interpolationType` mit dem Wert `ENV_VAR` hinzu:

  ```
  {
      "command": {
          "type": "String",
          "description": "Command to execute",
          "interpolationType": "ENV_VAR"
      }
  }
  ```

  Sie können die Sicherheit Ihrer SSM-Dokumente weiter verbessern, indem Sie angeben, dass doppelte Anführungszeichen in durch Interpolation gelieferten Werten nicht zulässig sind:

  ```
  {
      "command": {
          "type": "String",
          "description": "Command to execute",
          "interpolationType": "ENV_VAR",
              "allowedPattern": "^[^"]*$"
      }
  }
  ```
+ Wenn Sie interpretierte Sprachen wie Python, Ruby oder Node.js verwenden, verweisen Sie auf Parameter mit der entsprechenden Umgebungsvariablensyntax:

  ```
  # Python example
  import os
  command = os.environ['SSM_Message']
  ```
+ Um die Abwärtskompatibilität mit älteren Versionen von SSM Agent zu gewährleisten (vor Version 3.3.2746.0), fügen Sie eine Fallback-Logik für Umgebungsvariablen hinzu:

  ```
  if [ -z "${SSM_command+x}" ]; then
      export SSM_command="{{command}}"
  fi
  ```
+ Kombinieren Sie die Interpolation von Umgebungsvariablen mit `allowedPattern`, um eine zusätzliche Eingabevalidierung bereitzustellen. Im folgenden Beispiel verhindert der `allowedPattern`-Wert `^[^"]*$` doppelte Anführungszeichen im Zeichenfolgewert:

  ```
  {
      "command": {
          "type": "String",
          "interpolationType": "ENV_VAR",
          "allowedPattern": "^[a-zA-Z0-9_-]+$"
      }
  }
  ```
+ Bevor Sie Ihr SSM-Dokument implementieren, sollten Sie die folgenden Sicherheitsaspekte prüfen:
  + Alle Zeichenfolgeparameter, die Benutzereingaben akzeptieren, verwenden gegebenenfalls die Interpolation mit Umgebungsvariablen.
  + Die Eingabevalidierung wird nach Möglichkeit mit `allowedPattern` implementiert.
  + Das Dokument beinhaltet eine angemessene Fehlerbehandlung für die Parameterverarbeitung.
  + Für Umgebungen, die ältere Versionen von SSM Agent verwenden, wird die Abwärtskompatibilität beibehalten.

Informationen zu AWS diensteigenen Ressourcen, auf die Systems Manager zugreift, und zur Konfiguration von Datenperimeterrichtlinien finden Sie unter. [Datenperimeter in AWS Systems Manager](data-perimeters.md)

## Klonen eines SSM-Dokuments
<a name="cloning-ssm-document"></a>

Sie können AWS Systems Manager Dokumente mit der Systems Manager Documents Console klonen, um SSM-Dokumente zu erstellen. Durch das Klonen von SSM-Dokumenten werden Inhalte aus einem vorhandenen Dokument in ein neues Dokument kopiert, das Sie ändern können. Sie können kein Dokument klonen, das größer als 64 KB ist.

**Klonen eines SSM-Dokuments**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Geben Sie in das Suchfeld den Namen des Dokuments ein, das Sie klonen möchten.

1. Wählen Sie den Namen des Dokuments aus, das Sie klonen möchten. Wählen Sie anschließend die Option **Clone document (Dokument klonen)** im Dropdownmenü **Aktionen**. 

1. Ändern Sie das Dokument nach Belieben und wählen Sie dann **Create document** (Dokument erstellen), um das Dokument zu speichern. 

Nachdem Sie den SSM-Dokumentinhalt geschrieben haben, können Sie mithilfe eines der folgenden Methoden ein SSM-Dokument erstellen.

**Topics**
+ [Schreiben von SSM-Dokumentinhalt](#writing-ssm-doc-content)
+ [Klonen eines SSM-Dokuments](#cloning-ssm-document)
+ [Erstellen von zusammengesetzten Dokumenten](#documents-creating-composite)

## Erstellen von zusammengesetzten Dokumenten
<a name="documents-creating-composite"></a>

Ein *zusammengesetztes* Dokument AWS Systems Manager (SSM) ist ein benutzerdefiniertes Dokument, das eine Reihe von Aktionen ausführt, indem es ein oder mehrere sekundäre SSM-Dokumente ausführt. Zusammengesetzte Dokumente fördern *Infrastruktur als Code*, indem sie Ihnen ermöglichen, einen Standardsatz an SSM-Dokumenten für allgemeine Aufgaben wie das Bootstrapping von Software oder den Domain-Betritt von Instances zu erstellen. Sie können diese Dokumente dann gemeinsam nutzen, um die Wartung von SSM-Dokumenten AWS-Region zu reduzieren und die Konsistenz AWS-Konten zu gewährleisten.

Sie können beispielsweise ein zusammengesetztes Dokument erstellen, das die folgenden Aktionen ausführt:

1. Installiert alle Patches in der Zulassungsliste.

1. Installieren von Antivirensoftware

1. Herunterladen von Skripts von GitHub und Ausführen der Skripts.

In diesem Beispiel umfasst das benutzerdefinierte SSM-Dokument die folgenden Plugins für die Ausführung dieser Aktionen:

1. Das `aws:runDocument`-Plugin zum Ausführen des `AWS-RunPatchBaseline`-Dokuments, das alle aufgeführten Patches installiert.

1. Das Plugin `aws:runDocument` zum Ausführen des Dokuments `AWS-InstallApplication`, das die Antivirensoftware installiert

1. Das Plugin `aws:downloadContent` zum Herunterladen von Skripts von GitHub und Ausführen der Skripts.

Zusammengesetzte und sekundäre Dokumente können in Systems Manager, GitHub (öffentliche und private Repositorys) oder Amazon S3 gespeichert werden. Zusammengesetzte und sekundäre Dokumente lassen sich im JSON- oder YAML-Format erstellen. 

**Anmerkung**  
Zusammengesetzte Dokumente können maximal drei Dokumente tief ausgeführt werden. Dies bedeutet, dass ein zusammengesetztes Dokument ein untergeordnetes Dokument aufrufen kann, das wiederum ein letztes Dokument aufrufen kann.

Zum Erstellen eines zusammengesetzten Dokuments fügen Sie das [`aws:runDocument`](documents-command-ssm-plugin-reference.md#aws-rundocument)-Plugin einem benutzerdefinierten SSM-Dokument hinzu und geben die erforderlichen Eingaben an. Folgendes ist ein Beispiel eines zusammengesetzten Dokuments, das die folgenden Aktionen ausführt:

1. Ausführen des [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent)-Plugins zum Herunterladen eines SSM-Dokuments von einem öffentlichen Repository auf GitHub in ein lokales Verzeichnis mit der Bezeichnung „bootstrap“. Das SSM-Dokument heißt StateManagerBootstrap .yml (ein YAML-Dokument).

1. Führt das `aws:runDocument` Plugin aus, um das .yml-Dokument auszuführen. StateManagerBootstrap Es wurden keine Parameter angegeben.

1. Führt das Plugin `aws:runDocument` aus, um das `AWS-ConfigureDocker pre-defined` SSM-Dokument auszuführen. Die angegebenen Parameter installieren Docker in der Instance.

```
{
  "schemaVersion": "2.2",
  "description": "My composite document for bootstrapping software and installing Docker.",
  "parameters": {
  },
  "mainSteps": [
    {
      "action": "aws:downloadContent",
      "name": "downloadContent",
      "inputs": {
        "sourceType": "GitHub",
        "sourceInfo": "{\"owner\":\"TestUser1\",\"repository\":\"TestPublic\", \"path\":\"documents/bootstrap/StateManagerBootstrap.yml\"}",
        "destinationPath": "bootstrap"
      }
    },
    {
      "action": "aws:runDocument",
      "name": "runDocument",
      "inputs": {
        "documentType": "LocalPath",
        "documentPath": "bootstrap",
        "documentParameters": "{}"
      }
    },
    {
      "action": "aws:runDocument",
      "name": "configureDocker",
      "inputs": {
        "documentType": "SSMDocument",
        "documentPath": "AWS-ConfigureDocker",
        "documentParameters": "{\"action\":\"Install\"}"
      }
    }
  ]
}
```

**Weitere Informationen**  
+ Informationen zum Neustarten von Servern und Instances bei Verwendung von Run Command für den Aufruf von Skripts finden Sie unter [Umgang mit Neustarts beim Ausführen von Befehlen](send-commands-reboot.md).
+ Weitere Informationen zu den Plugins, die Sie einem benutzerdefinierten SSM-Dokument hinzufügen können, finden Sie unter [Referenz für Befehlsdokument-Plugins](documents-command-ssm-plugin-reference.md).
+ Informationen zum Ausführen von Dokumenten von einem Remote-Standort (ohne Erstellen eines zusammengesetzten Dokuments) finden Sie unter [Ausführen von -Dokumenten von Remote-Standorten](documents-running-remote-github-s3.md).

# Arbeiten mit Dokumenten
<a name="documents-using"></a>

Dieser Abschnitt enthält Informationen darüber, wie Sie SSM-Dokumente verwenden und mit ihnen arbeiten können.

**Topics**
+ [Vergleichen von SSM-Dokumentversionen](comparing-versions.md)
+ [Erstellen eines SSM-Dokuments](create-ssm-console.md)
+ [Löschen benutzerdefinierter SSM-Dokumente](deleting-documents.md)
+ [Ausführen von -Dokumenten von Remote-Standorten](documents-running-remote-github-s3.md)
+ [Freigeben von SSM-Dokumenten](documents-ssm-sharing.md)
+ [Suchen nach SSM-Dokumenten](ssm-documents-searching.md)

# Vergleichen von SSM-Dokumentversionen
<a name="comparing-versions"></a>

Sie können die Unterschiede im Inhalt zwischen Versionen von AWS Systems Manager (SSM)-Dokumenten in der Systems Manager-Dokumentenkonsole vergleichen. Beim Vergleich von Versionen eines SSM-Dokuments werden Unterschiede zwischen dem Inhalt der Versionen hervorgehoben.

**Vergleichen von SSM-Dokumentinhalten (Konsole)**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie in der Dokumentliste das freizugebende Dokument, dessen Inhalt Sie teilen möchten.

1. Wählen Sie auf der Registerkarte **Content** (Inhalt) die Option **Compare versions** (Versionen vergleichen) und wählen Sie die Version des Dokuments aus, mit der Sie den Inhalt vergleichen möchten.

# Erstellen eines SSM-Dokuments
<a name="create-ssm-console"></a>

Nachdem Sie den Inhalt wie unter [Schreiben von SSM-Dokumentinhalt](documents-creating-content.md#writing-ssm-doc-content) beschrieben für das benutzerdefinierte SSM-Dokument erstellt haben, können Sie mithilfe der Systems Manager-Konsole ein SSM-Dokument mit Ihrem Inhalt erstellen.

**So erstellen Sie ein SSM-Dokument**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie **Create command or session (Befehl oder Sitzung erstellen)** aus.

1. Geben Sie einen aussagekräftigen Namen für das Dokument ein.

1. (Optional) Geben Sie in **Target type (Zieltyp)** den Typ der Ressourcen an, auf denen das Dokument ausgeführt werden kann.

1. Wählen Sie in der Liste **Document type** den Typ des zu erstellenden Dokuments aus.

1. Löschen Sie die Klammern im Feld **Content (Inhalt)** und fügen Sie dann den zuvor erstellten Dokumentinhalt ein.

1. (Optional) Wenden Sie im Abschnitt **Document tags (Dokument-Tags)** ein oder mehrere Tag-Schlüssel-Name/Wert-Paare auf das Dokument an.

   Tags sind optionale Metadaten, die Sie einer Ressource zuweisen. Mithilfe von Tags können Sie eine Ressource unterschiedlich kategorisieren, beispielsweise nach Zweck, Besitzer oder Umgebung. Möglicherweise möchten Sie ein Dokument markieren, um den Typ der von ihm ausgeführten Aufgaben, den Typ der Betriebssysteme, auf die es ausgerichtet ist, und die Umgebung, in der es ausgeführt wird, zu identifizieren. In diesem Fall könnten Sie z.B. die folgenden Schlüsselname-Wert-Paare angeben:
   + `Key=TaskType,Value=MyConfigurationUpdate`
   + `Key=OS,Value=AMAZON_LINUX_2`
   + `Key=Environment,Value=Production`

1. Wählen Sie **Create document** aus, um das Dokument zu speichern.

# Löschen benutzerdefinierter SSM-Dokumente
<a name="deleting-documents"></a>

Wenn Sie ein benutzerdefiniertes SSM-Dokument nicht mehr verwenden möchten, können Sie es über die AWS Systems Manager-Konsole löschen. 

**Löschen eines SSM-Dokuments**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie das Dokument aus, die Sie löschen möchten.

1. Wählen Sie **Löschen**. Wenn Sie zum Löschen des Dokuments aufgefordert werden, wählen Sie **Löschen**.

Beispiele für die Verwendung von Befehlszeilentools oder SDKs zum Löschen von SSM-Dokumenten finden Sie unter [Verwendung `DeleteDocument` mit einem AWS SDK oder CLI](example_ssm_DeleteDocument_section.md).

# Ausführen von -Dokumenten von Remote-Standorten
<a name="documents-running-remote-github-s3"></a>

Sie können AWS Systems Manager (SSM-) Dokumente von entfernten Standorten aus ausführen, indem Sie das `AWS-RunDocument` vordefinierte SSM-Dokument verwenden. Dieses Dokument unterstützt die Ausführung von SSM-Dokumenten, die an den folgenden Speicherorten gespeichert sind:
+ Öffentliche und private GitHub-Repositorys (GitHub Enterprise wird nicht unterstützt)
+ Amazon-S3-Buckets
+ Systems Manager

Sie können Remote-Dokumente zwar auch mithilfe von State Manager oder Automation, Tools unter, ausführen. Im folgenden Verfahren wird jedoch nur beschrieben AWS Systems Manager, wie Sie Remote-SSM-Dokumente mithilfe AWS Systems Manager Run Command der Systems Manager Manager-Konsole ausführen. 

**Anmerkung**  
`AWS-RunDocument` kann verwendet werden, um nur SSM-Dokumente vom Befehlstyp auszuführen, nicht andere Typen wie Automation-Runbooks. Das `AWS-RunDocument` verwendet das `aws:downloadContent`-Plugin. Weitere Informationen zum `aws:downloadContent`-Plugin finden Sie unter [`aws:downloadContent`](documents-command-ssm-plugin-reference.md#aws-downloadContent).

**Warnung**  
`AWS-RunDocument`kann Dokumenteninhalte aus verschiedenen Quellen (SSM-Dokumente, S3 GitHub, URLs) ausführen. Bei der Ausführung von Remote-Dokumenten beziehen sich die ausgewerteten IAM-Berechtigungen `ssm:GetDocument` auf das Remote-Dokument und `ssm:SendCommand` auf. `AWS-RunDocument` Wenn Sie über IAM-Richtlinien verfügen, die den Zugriff auf bestimmte SSM-Dokumente verweigern, können Benutzer mit `AWS-RunDocument` entsprechenden Berechtigungen diese abgelehnten Dokumente trotzdem ausführen, indem sie den Dokumentinhalt als Parameter übergeben, für die möglicherweise nicht dieselben dokumentspezifischen IAM-Einschränkungen gelten.  
Verwenden Sie einen der folgenden Ansätze, um die Ausführung von Dokumenten ordnungsgemäß einzuschränken:  
**Zulässige Quellen** zulassen: Wenn Sie die Ausführung von verschachtelten Dokumenten verwenden müssen, beschränken Sie den Zugriff nur auf genehmigte Quellen, indem Sie die entsprechenden Kontrollen für jeden Quelltyp verwenden: IAM-Richtlinien zur Steuerung `ssm:GetDocument` von SSM-Dokumentenquellen, IAM- und Amazon S3-Bucket-Richtlinien für Amazon S3-Quellen und Netzwerkeinstellungen (wie VPC-Endpunkte oder Sicherheitsgruppen) für öffentliche Internetquellen.
**Beschränken Sie den Zugriff auf AWS- RunDocument**: Deny `ssm:SendCommand` on `AWS-RunDocument` und alle anderen Dokumente, die das `aws:runDocument` Plugin in Ihren IAM-Richtlinien verwenden, um die Ausführung verschachtelter Dokumente zu verhindern.
**Verwenden Sie Berechtigungsgrenzen**: Implementieren Sie IAM-Berechtigungsgrenzen, um maximale Berechtigungen für Benutzer festzulegen und zu verhindern, dass sie unabhängig von der Ausführungsmethode nicht autorisierte Dokumente ausführen.
*Weitere Informationen zu bewährten IAM-Methoden und Berechtigungsgrenzen finden Sie im Benutzerhandbuch unter [Berechtigungsgrenzen für IAM-Entitäten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html).AWS Identity and Access Management *

**Bevor Sie beginnen**  
Bevor Sie ein Remote-Dokument ausführen, müssen Sie die folgenden Aufgaben erledigen.
+ Erstellen Sie ein SSM-Befehlsdokument und speichern Sie es an einem Remote-Standort. Weitere Informationen finden Sie unter [Erstellen von SSM-Dokumentinhalten](documents-creating-content.md).
+ Wenn Sie ein Remote-Dokument ausführen möchten, das in einem privaten GitHub-Repository gespeichert ist, müssen Sie einen Systems-Manager-`SecureString`-Parameter für Ihr GitHub-Sicherheitszugriffstoken erstellen. Sie können nicht auf ein Remote-Dokument in einem privaten GitHub-Repository zugreifen, indem Sie Ihr Token manuell über SSH übergeben. Das Zugriffstoken muss als `SecureString`-Systems Manager-Parameter übertragen werden. Weitere Informationen zum Erstellen eines `SecureString`-Parameters finden Sie unter [Parameter Store-Parameter im Systems Manager erstellen](sysman-paramstore-su-create.md).

## Ausführen eines Remote-Dokuments (Konsole)
<a name="documents-running-remote-github-s3-console"></a>

**So führen Sie ein Remote-Dokument aus**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich **Run Command** aus.

1. Wählen Sie **Befehl ausführen** aus.

1. Wählen Sie in der Liste **Dokument** die Option **`AWS-RunDocument`**.

1. Wählen Sie unter **Command parameters (Befehlsparameter)** für **Source Type (Quelltyp)** eine Option aus. 
   + Wenn Sie **GitHub** auswählen, geben Sie für **Quallinformationen** Informationen in folgendem Format an:

     ```
     {
         "owner": "owner_name",
         "repository": "repository_name",
         "path": "path_to_document",
         "getOptions":"branch:branch_name",
         "tokenInfo": "{{ssm-secure:secure-string-token}}"
     }
     ```

     Beispiel:

     ```
     {
         "owner":"TestUser",
         "repository":"GitHubTestExamples",
         "path":"scripts/python/test-script",
         "getOptions":"branch:exampleBranch",
         "tokenInfo":"{{ssm-secure:my-secure-string-token}}"
     }
     ```
**Anmerkung**  
`getOptions` sind zusätzliche Optionen zum Abrufen von Inhalten aus einem anderen Branch als dem Master-Branch oder aus einem bestimmten Commit im Repository. `getOptions` kann weggelassen werden, wenn Sie den letzten Commit in der Master-Branch verwenden. Der `branch`-Parameter ist nur erforderlich, wenn Ihr SSM-Dokument in einer anderen Verzweigung als `master` gespeichert ist.  
Um die Version Ihres SSM-Dokuments in einem bestimmten *Commit* in Ihrem Repository zu verwenden, verwenden Sie `commitID` mit `getOptions`statt `branch`. Zum Beispiel:  

     ```
     "getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",
     ```
   + Wenn Sie **S3** auswählen, geben Sie für **Source Info** Informationen in folgendem Format an:

     ```
     {"path":"URL_to_document_in_S3"}
     ```

     Beispiel:

     ```
     {"path":"https://s3.amazonaws.com/amzn-s3-demo-bucket/scripts/ruby/mySSMdoc.json"}
     ```
   + Wenn Sie **SSMDocument** auswählen, geben Sie für **Quallinformationen** Informationen in folgendem Format an:

     ```
     {"name": "document_name"}
     ```

     Beispiel:

     ```
     {"name": "mySSMdoc"}
     ```

1. Geben Sie im Feld **Document Parameters** Parameter für das Remote-SSM-Dokument ein. Wenn Sie beispielsweise das Dokument `AWS-RunPowerShell` ausführen, könnten Sie Folgendes angeben:

   ```
   {"commands": ["date", "echo \"Hello World\""]}
   ```

   Wenn Sie das Dokument `AWS-ConfigureAWSPack` ausführen, könnten Sie Folgendes angeben:

   ```
   {
      "action":"Install",
      "name":"AWSPVDriver"
   }
   ```

1. Identifizieren Sie für den Abschnitt **Targets** (Ziele) die verwalteten Knoten, auf denen Sie diese Operation ausführen möchten, indem Sie Tags angeben, Instances oder Edge-Geräte manuell auswählen oder eine Ressourcengruppe angeben.
**Tipp**  
Wenn ein verwalteter Knoten, den Sie erwarten, nicht aufgeführt ist, finden Sie weitere Informationen unter [Problembehandlung bei der Verfügbarkeit verwalteter Knoten](fleet-manager-troubleshooting-managed-nodes.md) Tipps zur Fehlerbehebung.

1. Für **Weitere Parameter**:
   + Geben Sie im Feld **Kommentar** Informationen zu diesem Befehl ein.
   + Geben Sie für **Timeout (Sekunden)** in Sekunden an, wie lange gewartet werden soll, bis für die gesamte Befehlsausführung ein Fehler auftritt. 

1. Für **Ratenregelung**:
   + Geben Sie unter **Nebenläufigkeit** entweder eine Zahl oder einen Prozentsatz der verwalteten Knoten an, auf denen der Befehl gleichzeitig ausgeführt werden soll.
**Anmerkung**  
Wenn Sie Ziele ausgewählt haben, indem Sie Tags für verwaltete Knoten oder AWS Ressourcengruppen angegeben haben und Sie sich nicht sicher sind, wie viele verwaltete Knoten das Ziel sind, schränken Sie die Anzahl der Ziele ein, die das Dokument gleichzeitig ausführen können, indem Sie einen Prozentsatz angeben.
   + Geben Sie unter **Fehlerschwellenwert** an, wann die Ausführung des Befehls auf anderen verwalteten Knoten beendet werden soll, nachdem dafür entweder auf einer bestimmten Anzahl oder einem Prozentsatz von Knoten ein Fehler aufgetreten ist. Falls Sie beispielsweise drei Fehler angeben, sendet Systems Manager keinen Befehl mehr, wenn der vierte Fehler empfangen wird. Von verwalteten Knoten, auf denen der Befehl noch verarbeitet wird, werden unter Umständen ebenfalls Fehler gesendet.

1. (Optional) Wenn Sie im Abschnitt **Ausgabeoptionen** die Befehlsausgabe in einer Datei speichern möchten, aktivieren Sie das Kontrollkästchen **Schreiben in einen S3-Bucket aktivieren**. Geben Sie die Namen für den Bucket und das Präfix (Ordner) in die Textfelder ein.
**Anmerkung**  
Die S3-Berechtigungen zum Schreiben von Daten in einen S3-Bucket sind diejenigen des Instance-Profils (für EC2-Instances) oder der IAM-Servicerolle (hybrid-aktivierte Maschinen), die der Instance zugewiesen sind, und nicht diejenigen des IAM-Benutzers, der diese Aufgabe ausführt. Weitere Informationen finden Sie unter [Instance-Berechtigungen für Systems Manager konfigurieren](setup-instance-permissions.md) oder [Eine IAM-Servicerolle für eine Hybrid-Umgebung erstellen](hybrid-multicloud-service-role.md). Wenn sich der angegebene S3-Bucket in einem anderen AWS-Konto befindet, stellen Sie außerdem sicher, dass das Instance-Profil oder die IAM-Servicerolle, die dem verwalteten Knoten zugeordnet ist, über die erforderlichen Berechtigungen zum Schreiben in diesen Bucket verfügt.

1. Aktivieren Sie das Kontrollkästchen **SNS-Benachrichtigungen aktivieren** im Abschnitt **SNS-Benachrichtigungen**, wenn Sie über den Status der Befehlsausführung benachrichtigt werden möchten,

   Weitere Informationen zum Konfigurieren von Amazon-SNS-Benachrichtigungen für Run Command finden Sie unter [Überwachung von Systems Manager-Statusänderungen mit Amazon SNS-Benachrichtigungen](monitoring-sns-notifications.md).

1. Klicken Sie auf **Ausführen**.

**Anmerkung**  
Informationen zum Neustarten von Servern und Instances bei Verwendung von Run Command für den Aufruf von Skripts finden Sie unter [Umgang mit Neustarts beim Ausführen von Befehlen](send-commands-reboot.md).

# Freigeben von SSM-Dokumenten
<a name="documents-ssm-sharing"></a>

Sie können AWS Systems Manager (SSM) Dokumente privat oder öffentlich mit Konten in demselben AWS-Region teilen. Um ein Dokument privat freizugeben, ändern Sie die Dokumentberechtigungen und erlauben bestimmten Personen entsprechend ihrer AWS-Konto -ID den Zugriff darauf. Wenn Sie ein SSM-Dokument öffentlich freigeben möchten, ändern Sie die Zugriffsberechtigungen des Dokuments und geben `All` an. Dokumente können nicht gleichzeitig öffentlich und privat freigegeben werden.

**Warnung**  
Verwenden Sie freigegebene SSM-Dokumente nur, wenn sie aus vertrauenswürdigen Quellen stammen. Wenn Sie ein freigegebenes Dokument verwenden, überprüfen Sie den Inhalt des Dokuments sorgfältig, bevor Sie es verwenden, damit Sie verstehen, wie es die Konfiguration der Instance ändert. Weitere Informationen zu bewährten Methoden für freigegebene Dokumente finden Sie unter [Bewährte Methoden für freigegebene SSM-Dokumente](#best-practices-shared). 

**Einschränkungen**  
Beachten Sie die folgenden Einschränkungen, wenn Sie zum ersten Mal mit SSM-Dokumenten arbeiten.
+ Nur der Eigentümer eines Dokuments kann ein Dokument freigeben.
+ Sie müssen die Freigabe eines Dokuments aufheben, bevor Sie ein Dokument löschen können. Weitere Informationen finden Sie unter [Modifizieren von Berechtigungen für ein freigegebenes SSM-Dokument](#modify-permissions-shared).
+ Sie können ein Dokument mit maximal 1000 AWS-Konten Personen teilen. Sie können über das [Support Center](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase) eine Erhöhung dieses Limits anfordern. Wählen Sie unter **Limittyp** die Option *EC2 Systems Manager* aus und beschreiben Sie die Gründe für die Anforderung.
+ Sie können maximal fünf SSM-Dokumente öffentlich freigeben. Sie können über das [Support Center](https://console.aws.amazon.com/support/home#/case/create?issueType=service-limit-increase) eine Erhöhung dieses Limits anfordern. Wählen Sie unter **Limittyp** die Option *EC2 Systems Manager* aus und beschreiben Sie die Gründe für die Anforderung.
+ Dokumente können AWS-Region nur mit anderen Konten in demselben Konto geteilt werden. Die Freigabe über Regionsgrenzen hinweg wird nicht unterstützt.

**Wichtig**  
In Systems Manager ist ein zu *Amazon gehörendes* SSM-Dokument ein Dokument, das von Amazon Web Services selbst erstellt und verwaltet wird. Dokumente, *die Amazon gehören*, enthalten ein Präfix wie `AWS-*` im Dokumentnamen. Als Eigentümer des Dokuments gilt Amazon und nicht als ein bestimmtes Benutzerkonto innerhalb AWS. Diese Dokumente sind öffentlich zugänglich und können von allen verwendet werden.

Weitere Informationen zu Service Quotas für Systems Manager finden Sie unter [AWS Systems Manager Service Quotas](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm).

**Topics**
+ [Bewährte Methoden für freigegebene SSM-Dokumente](#best-practices-shared)
+ [Öffentliche Freigabe für SSM-Dokumente blockieren](#block-public-access)
+ [Freigeben eines SSM-Dokuments](#ssm-how-to-share)
+ [Modifizieren von Berechtigungen für ein freigegebenes SSM-Dokument](#modify-permissions-shared)
+ [Verwenden von freigegebenen SSM-Dokumenten](#using-shared-documents)

## Bewährte Methoden für freigegebene SSM-Dokumente
<a name="best-practices-shared"></a>

Überprüfen Sie die folgenden Richtlinien, bevor Sie ein Dokument freigeben oder ein gemeinsam genutztes Dokument verwenden. 

**Entfernen sensibler Daten**  
Überprüfen Sie Ihr AWS Systems Manager (SSM-) Dokument sorgfältig und entfernen Sie alle vertraulichen Informationen. Stellen Sie beispielsweise sicher, dass das Dokument Ihre AWS Anmeldeinformationen nicht enthält. Wenn Sie ein Dokument für bestimmten Personen freigeben, können die Informationen in dem Dokument anzeigen. Wenn Sie ein Dokument öffentlich freigeben, können beliebige Personen die Informationen in dem Dokument anzeigen.

**Öffentliche Freigabe für Dokumente blockieren**  
Überprüfen Sie alle öffentlich geteilten SSM-Dokumente in Ihrem Konto und bestätigen Sie, ob Sie sie weiterhin teilen möchten. Um die gemeinsame Nutzung eines Dokuments für die Öffentlichkeit zu beenden, müssen Sie die Einstellung für die Dokumentberechtigungen wie im [Modifizieren von Berechtigungen für ein freigegebenes SSM-Dokument](#modify-permissions-shared)-Abschnitt dieses Themas beschrieben ändern. Die Aktivierung der Einstellung „Öffentliches Teilen blockieren“ hat keine Auswirkungen auf Dokumente, die Sie derzeit für die Öffentlichkeit freigeben. Sofern Ihr Anwendungsfall nicht erfordert, dass Sie Dokumente öffentlich freigeben, empfehlen wir Ihnen, die Einstellung „Öffentliche Freigabe blockieren“ für Ihre SSM-Dokumente im Abschnitt **Einstellungen** der Systems-Manager-Dokumentenkonsole zu aktivieren. Wenn Sie diese Einstellung aktivieren, wird unerwünschter Zugriff auf Ihre SSM-Dokumente verhindert. Die Einstellung „Öffentliche Freigabe sperren“ ist eine Einstellung auf Kontoebene, die sich für jede AWS-Region unterscheiden kann.

**Beschränken von Run Command-Aktionen mithilfe einer IAM-Vertrauensrichtlinie**  
Erstellen Sie eine restriktive Richtlinie AWS Identity and Access Management (IAM) für Benutzer, die Zugriff auf das Dokument haben werden. Die IAM-Richtlinie bestimmt, welche SSM-Dokumente ein Benutzer entweder in der Amazon Elastic Compute Cloud (Amazon EC2) -Konsole oder durch Aufrufen `ListDocuments` mit AWS Command Line Interface (AWS CLI) oder sehen kann. AWS Tools for Windows PowerShell Die Richtlinie schränkt auch die Aktionen ein, die der Benutzer mit SSM-Dokumenten durchführen kann. Sie können eine restriktive Richtlinie erstellen, damit Benutzer nur bestimmte Dokumente verwenden können. Weitere Informationen finden Sie unter [Beispiele für vom Kunden verwaltete Richtlinien](security_iam_id-based-policy-examples.md#customer-managed-policies).

**Vorsicht bei der Verwendung freigegebener SSM-Dokumente**  
Überprüfen Sie den Inhalt jedes Dokuments, das für Sie freigegeben ist, insbesondere öffentliche Dokumente, um die Befehle zu verstehen, die über Ihre Instances ausgeführt werden. Ein Dokument kann absichtlich oder unbeabsichtigterweise negative Auswirkungen haben, wenn es ausgeführt wird. Wenn das Dokument auf ein externes Netzwerk verweist, überprüfen Sie die externe Quelle, bevor Sie das Dokument verwenden. 

**Versenden von Befehlen mit dem Dokument-Hash**  
Wenn Sie ein Dokument freigeben, erstellt das System einen SHA-256-Hash und weist diesen dem Dokument zu. Das System speichert außerdem einen Snapshot des Dokumentinhalts. Wenn Sie mit einem freigegebenen Dokument einen Befehl senden, können Sie für den Befehl diesen Hash angeben, um sicherzustellen, dass die folgenden Bedingungen erfüllt sind:  
+ Sie führen den Befehl über das richtige Systems Manager-Dokument aus.
+ Der Inhalt des Dokuments wurde nicht geändert, seit es für Sie freigegeben wurde.
Wenn der Hash nicht mit dem angegebenen Dokument übereinstimmt oder der Inhalt des freigegebenen Dokuments geändert wurde, löst der Befehl eine `InvalidDocument`-Ausnahmebedingung aus. Mit dem Hash können keine Dokumentinhalte von externen Standorten überprüft werden.

**Verwenden des Interpolationsparameters, um die Sicherheit zu verbessern**  
Verwenden Sie für Parameter vom Typ `String` in Ihren SSM-Dokumenten den Parameter und den Wert `interpolationType": "ENV_VAR`, um die Sicherheit vor Befehlseinschleusungen zu erhöhen. Parametereingaben werden dadurch als Zeichenfolgeliterale und nicht als potenziell ausführbare Befehle behandelt. In diesem Fall erstellt der Agent eine Umgebungsvariable mit dem Namen `SSM_parameter-name`, die den Wert des Parameters enthält. Wir empfehlen, allen SSM-Dokumenten mit Parametern vom Typ `String` den Parameter `"interpolationType": "ENV_VAR"` hinzuzufügen. Weitere Informationen finden Sie unter [Schreiben von SSM-Dokumentinhalt](documents-creating-content.md#writing-ssm-doc-content).

## Öffentliche Freigabe für SSM-Dokumente blockieren
<a name="block-public-access"></a>

Bevor Sie beginnen, überprüfen Sie alle öffentlich freigegebenen SSM-Dokumente in Ihrem AWS-Konto und bestätigen Sie, ob Sie diese weiterhin freigeben möchten. Um die gemeinsame Nutzung eines SSM-Dokuments für die Öffentlichkeit zu beenden, müssen Sie die Einstellung für Dokumentberechtigungen wie im [Modifizieren von Berechtigungen für ein freigegebenes SSM-Dokument](#modify-permissions-shared)-Abschnitt dieses Themas beschrieben ändern. Die Aktivierung der Einstellung „Öffentliches Teilen blockieren“ hat keine Auswirkungen auf SSM-Dokumente, die Sie derzeit für die Öffentlichkeit freigeben. Wenn die Einstellung „Öffentliches Teilen blockieren“ aktiviert ist, können Sie keine weiteren SSM-Dokumente mit der Öffentlichkeit teilen.

Sofern Ihr Anwendungsfall nicht erfordert, dass Sie Dokumente öffentlich freigeben, empfehlen wir Ihnen, die Einstellung „Öffentliche Freigabe blockieren“ für Ihre SSM-Dokumente zu aktivieren. Wenn Sie diese Einstellung aktivieren, wird unerwünschter Zugriff auf Ihre SSM-Dokumente verhindert. Bei der Einstellung „Öffentliches Teilen blockieren“ handelt es sich um eine Einstellung auf Kontoebene, die für jedes Konto unterschiedlich sein kann. AWS-Region Führen Sie die folgenden Aufgaben aus, um die öffentliche Freigabe für alle SSM-Dokumente zu blockieren, die Sie derzeit nicht freigeben.

### Öffentliche Freigabe blockieren (Konsole)
<a name="block-public-access-console"></a>

**Blockieren der öffentlichen Freigabe Ihrer SSM-Dokumente**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie **Preferences (Präferenzen)** und dann **Edit (Bearbeiten)** im Abschnitt **Block public sharing (Öffentliche Freigabe blockieren)** .

1. Wählen Sie das Kontrollkästchen **Block public sharing (Öffentliche Freigabe blockieren)** und wählen Sie aus **Save (speichern)**. 

### Öffentliche Freigabe blockieren (Befehlszeile)
<a name="block-public-access-cli"></a>

Öffnen Sie AWS Command Line Interface (AWS CLI) oder AWS Tools for Windows PowerShell auf Ihrem lokalen Computer und führen Sie den folgenden Befehl aus, um das öffentliche Teilen Ihrer SSM-Dokumente zu blockieren.

------
#### [ Linux & macOS ]

```
aws ssm update-service-setting  \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --setting-value Disable \
    --region 'The AWS-Region you want to block public sharing in'
```

------
#### [ Windows ]

```
aws ssm update-service-setting ^
    --setting-id /ssm/documents/console/public-sharing-permission ^
    --setting-value Disable ^
    --region "The AWS-Region you want to block public sharing in"
```

------
#### [ PowerShell ]

```
Update-SSMServiceSetting `
    -SettingId /ssm/documents/console/public-sharing-permission `
    -SettingValue Disable `
    –Region The AWS-Region you want to block public sharing in
```

------

Überprüfen Sie, ob der Einstellungswert aktualisiert wurde, indem Sie den folgenden Befehl verwenden.

------
#### [ Linux & macOS ]

```
aws ssm get-service-setting   \
    --setting-id /ssm/documents/console/public-sharing-permission \
    --region The AWS-Region you blocked public sharing in
```

------
#### [ Windows ]

```
aws ssm get-service-setting  ^
    --setting-id /ssm/documents/console/public-sharing-permission ^
    --region "The AWS-Region you blocked public sharing in"
```

------
#### [ PowerShell ]

```
Get-SSMServiceSetting `
    -SettingId /ssm/documents/console/public-sharing-permission `
    -Region The AWS-Region you blocked public sharing in
```

------

### Beschränken des Zugriffs zum Blockieren der öffentlichen Freigabe mit IAM
<a name="block-public-access-changes-iam"></a>

Sie können AWS Identity and Access Management (IAM) -Richtlinien erstellen, die Benutzer daran hindern, die Einstellung „Öffentliches Teilen blockieren“ zu ändern. Dadurch wird verhindert, dass Benutzer unerwünschten Zugriff auf Ihre SSM-Dokumente zulassen. 

Nachfolgend finden Sie ein Beispiel für eine IAM-Richtlinie, die verhindert, dass Benutzer die Einstellung zum Blockieren der öffentlichen Freigabe zu aktualisieren. Um dieses Beispiel zu verwenden, müssen Sie die Beispiel-Konto-ID für Amazon Web Services durch Ihre eigene Konto-ID ersetzen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "ssm:UpdateServiceSetting",
            "Resource": "arn:aws:ssm:*:444455556666:servicesetting/ssm/documents/console/public-sharing-permission"
        }
    ]
}
```

------

## Freigeben eines SSM-Dokuments
<a name="ssm-how-to-share"></a>

Sie können AWS Systems Manager (SSM) Dokumente mithilfe der Systems Manager Manager-Konsole teilen. Beim Teilen von Dokumenten über die Konsole kann nur die Standardversion des Dokuments geteilt werden. Sie können SSM-Dokumente auch programmgesteuert teilen, indem Sie die `ModifyDocumentPermission` API-Operation mit dem AWS Command Line Interface (AWS CLI) AWS Tools for Windows PowerShell, oder dem SDK aufrufen. AWS Bevor Sie ein Dokument teilen, sollten Sie die Personen AWS-Konto IDs ermitteln, mit denen Sie es teilen möchten. Sie geben diese Konten an IDs , wenn Sie das Dokument teilen.

### Freigeben eines Dokuments (Konsole)
<a name="share-using-console"></a>

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie in der Dokumentenliste das Dokument aus, das Sie freigeben möchten, und klicken Sie dann auf **View details** (Details anzeigen). Überprüfen Sie dann auf der Registerkarte **Permissions**, ob Sie der Besitzer des Dokuments sind. Nur der Eigentümer eines Dokuments kann ein Dokument freigeben.

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

1. Um den Befehl öffentlich freizugeben, wählen Sie **Public** und dann die Option **Save**. Wählen Sie zur privaten Freigabe des Befehls die Option **Private** aus, geben Sie die AWS-Konto -ID ein und wählen Sie **Add permission** sowie anschließend die Option **Save** aus. 

### Freigeben eines Dokuments (Befehlszeile)
<a name="share-using-cli"></a>

Das folgende Verfahren erfordert, dass Sie eine AWS-Region für Ihre Befehlszeilensitzung angeben.

1. Öffnen Sie AWS CLI oder AWS Tools for Windows PowerShell auf Ihrem lokalen Computer und führen Sie den folgenden Befehl aus, um Ihre Anmeldeinformationen anzugeben. 

   Ersetzen Sie den Befehl im folgenden Befehl *region* durch Ihre eigenen Informationen. Eine Liste der unterstützten *region* Werte finden Sie in der Spalte **Region** der [Systems Manager Manager-Dienstendpunkte](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) in der *Allgemeine Amazon Web Services-Referenz*.

------
#### [ Linux & macOS ]

   ```
   aws config
   
   AWS Access Key ID: [your key]
   AWS Secret Access Key: [your key]
   Default region name: region
   Default output format [None]:
   ```

------
#### [ Windows ]

   ```
   aws config
   
   AWS Access Key ID: [your key]
   AWS Secret Access Key: [your key]
   Default region name: region
   Default output format [None]:
   ```

------
#### [ PowerShell ]

   ```
   Set-AWSCredentials –AccessKey your key –SecretKey your key
   Set-DefaultAWSRegion -Region region
   ```

------

1. Verwenden Sie den folgenden Befehl, um alle SSM-Dokumente aufzulisten, die für Sie verfügbar sind. Die Liste enthält Dokumente, die Sie erstellt haben, und Dokumente, die für Sie freigegeben wurden.

------
#### [ Linux & macOS ]

   ```
   aws ssm list-documents
   ```

------
#### [ Windows ]

   ```
   aws ssm list-documents
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentList
   ```

------

1. Verwenden Sie den folgenden Befehl, um ein bestimmtes Dokument abzurufen.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-document \
       --name document name
   ```

------
#### [ Windows ]

   ```
   aws ssm get-document ^
       --name document name
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocument `
       –Name document name
   ```

------

1. Verwenden Sie den folgenden Befehl, um eine Beschreibung des Dokuments abzurufen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document \
       --name document name
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-document ^
       --name document name
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentDescription `
       –Name document name
   ```

------

1. Verwenden Sie den folgenden Befehl, um die Zugriffsberechtigungen für das Dokument anzuzeigen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-document-permission \
       --name document name \
       --permission-type Share
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-document-permission ^
       --name document name ^
       --permission-type Share
   ```

------
#### [ PowerShell ]

   ```
   Get-SSMDocumentPermission `
       –Name document name `
       -PermissionType Share
   ```

------

1. Verwenden Sie den folgenden Befehl, um die Zugriffsberechtigungen für das Dokument zu ändern und das Dokument freizugeben. Sie müssen der Eigentümer des Dokuments sein, um die Berechtigungen bearbeiten zu können. Optional können Sie für Dokumente, die mit bestimmten AWS-Konto IDs Personen geteilt wurden, mithilfe des `--shared-document-version` Parameters eine Version des Dokuments angeben, die Sie teilen möchten. Wenn Sie keine Version angeben, gibt das System die `Default`-Version des Dokuments frei. Wenn Sie ein Dokument öffentlich (mit `all`) teilen, werden standardmäßig alle Versionen des angegebenen Dokuments geteilt. Mit dem folgenden Beispielbefehl wird das Dokument privat für eine bestimmte Person freigegeben, basierend auf der AWS-Konto ID dieser Person.

------
#### [ Linux & macOS ]

   ```
   aws ssm modify-document-permission \
       --name document name \
       --permission-type Share \
       --account-ids-to-add AWS-Konto ID
   ```

------
#### [ Windows ]

   ```
   aws ssm modify-document-permission ^
       --name document name ^
       --permission-type Share ^
       --account-ids-to-add AWS-Konto ID
   ```

------
#### [ PowerShell ]

   ```
   Edit-SSMDocumentPermission `
       –Name document name `
       -PermissionType Share `
       -AccountIdsToAdd AWS-Konto ID
   ```

------

1. Verwenden Sie den folgenden Befehl, um ein Dokument öffentlich freizugeben.
**Anmerkung**  
Wenn Sie ein Dokument öffentlich (mit `all`) teilen, werden standardmäßig alle Versionen des angegebenen Dokuments geteilt. 

------
#### [ Linux & macOS ]

   ```
   aws ssm modify-document-permission \
       --name document name \
       --permission-type Share \
       --account-ids-to-add 'all'
   ```

------
#### [ Windows ]

   ```
   aws ssm modify-document-permission ^
       --name document name ^
       --permission-type Share ^
       --account-ids-to-add "all"
   ```

------
#### [ PowerShell ]

   ```
   Edit-SSMDocumentPermission `
       -Name document name `
       -PermissionType Share `
       -AccountIdsToAdd ('all')
   ```

------

## Modifizieren von Berechtigungen für ein freigegebenes SSM-Dokument
<a name="modify-permissions-shared"></a>

Wenn Sie einen Befehl teilen, können Benutzer diesen Befehl anzeigen und verwenden, bis Sie entweder den Zugriff auf das AWS Systems Manager (SSM-) Dokument aufheben oder das SSM-Dokument löschen. Sie können ein Dokument jedoch erst löschen, wenn es nicht mehr freigegeben ist. Sie müssen also zuerst die Freigabe beenden und können erst anschließend die Datei löschen.

### Beenden der Freigabe eines Dokuments (Konsole)
<a name="unshare-using-console"></a>

**Beenden der Freigabe eines Dokuments**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie in der Dokumentenliste das Dokument aus, dessen Freigabe Sie beenden möchten, und klicken Sie dann auf **Details anzeigen**. Überprüfen Sie dann auf der Registerkarte **Berechtigungen**, ob Sie der Besitzer des Dokuments sind. Nur der Eigentümer eines Dokuments kann die Freigabe eines Dokuments beenden.

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

1. Wählen Sie **X**, um die AWS-Konto ID zu löschen, die keinen Zugriff mehr auf den Befehl haben sollte, und wählen Sie dann **Speichern**. 

### Beenden der Freigabe eines Dokuments (Befehlszeile)
<a name="unshare-using-cli"></a>

Öffnen Sie AWS CLI oder AWS Tools for Windows PowerShell auf Ihrem lokalen Computer und führen Sie den folgenden Befehl aus, um die gemeinsame Nutzung eines Befehls zu beenden.

------
#### [ Linux & macOS ]

```
aws ssm modify-document-permission \
    --name document name \
    --permission-type Share \
    --account-ids-to-remove 'AWS-Konto ID'
```

------
#### [ Windows ]

```
aws ssm modify-document-permission ^
    --name document name ^
    --permission-type Share ^
    --account-ids-to-remove "AWS-Konto ID"
```

------
#### [ PowerShell ]

```
Edit-SSMDocumentPermission `
    -Name document name `
    -PermissionType Share `
    –AccountIdsToRemove AWS-Konto ID
```

------

## Verwenden von freigegebenen SSM-Dokumenten
<a name="using-shared-documents"></a>

Wenn Sie ein AWS Systems Manager (SSM) -Dokument teilen, generiert das System einen Amazon-Ressourcennamen (ARN) und weist ihn dem Befehl zu. Wenn Sie ein freigegebenes Dokument über die Systems-Manager-Konsole auswählen und ausführen, wird der ARN nicht angezeigt. Wenn Sie jedoch ein freigegebenes SSM-Dokument mit einer anderen Methode als der Systems-Manager-Konsole ausführen möchten, müssen Sie den vollständigen ARN des Dokuments für den `DocumentName`-Anforderungsparameter angeben. Wenn Sie den Befehl zum Auflisten der Dokumente ausführen, wird jeweils der vollständige ARN für SSM-Dokumente angezeigt. 

**Anmerkung**  
Sie müssen nicht angeben, ob es sich ARNs um AWS öffentliche Dokumente (Dokumente, die mit 1 beginnen`AWS-*`) oder um Dokumente handelt, deren Eigentümer Sie sind.

### Verwenden eines freigegebenen SSM-Dokuments (Befehlszeile)
<a name="using-shared-documents-cli"></a>

 **So listen Sie öffentliche SSM-Dokumente auf** 

------
#### [ Linux & macOS ]

```
aws ssm list-documents \
    --filters Key=Owner,Values=Public
```

------
#### [ Windows ]

```
aws ssm list-documents ^
    --filters Key=Owner,Values=Public
```

------
#### [ PowerShell ]

```
$filter = New-Object Amazon.SimpleSystemsManagement.Model.DocumentKeyValuesFilter
$filter.Key = "Owner"
$filter.Values = "Public"

Get-SSMDocumentList `
    -Filters @($filter)
```

------

 **So listen Sie private SSM-Dokumente auf, die für Sie freigegeben wurden** 

------
#### [ Linux & macOS ]

```
aws ssm list-documents \
    --filters Key=Owner,Values=Private
```

------
#### [ Windows ]

```
aws ssm list-documents ^
    --filters Key=Owner,Values=Private
```

------
#### [ PowerShell ]

```
$filter = New-Object Amazon.SimpleSystemsManagement.Model.DocumentKeyValuesFilter
$filter.Key = "Owner"
$filter.Values = "Private"

Get-SSMDocumentList `
    -Filters @($filter)
```

------

 **So listen Sie alle SSM-Dokumente auf, die für Sie verfügbar sind** 

------
#### [ Linux & macOS ]

```
aws ssm list-documents
```

------
#### [ Windows ]

```
aws ssm list-documents
```

------
#### [ PowerShell ]

```
Get-SSMDocumentList
```

------

 **So rufen Sie Informationen zu einem SSM-Dokument ab, das für Sie freigegeben wurde** 

------
#### [ Linux & macOS ]

```
aws ssm describe-document \
    --name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------
#### [ Windows ]

```
aws ssm describe-document ^
    --name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------
#### [ PowerShell ]

```
Get-SSMDocumentDescription `
    –Name arn:aws:ssm:us-east-2:12345678912:document/documentName
```

------

 **So führen Sie ein freigegebenes SSM-Dokument aus** 

------
#### [ Linux & macOS ]

```
aws ssm send-command \
    --document-name arn:aws:ssm:us-east-2:12345678912:document/documentName \
    --instance-ids ID
```

------
#### [ Windows ]

```
aws ssm send-command ^
    --document-name arn:aws:ssm:us-east-2:12345678912:document/documentName ^
    --instance-ids ID
```

------
#### [ PowerShell ]

```
Send-SSMCommand `
    –DocumentName arn:aws:ssm:us-east-2:12345678912:document/documentName `
    –InstanceIds ID
```

------

# Suchen nach SSM-Dokumenten
<a name="ssm-documents-searching"></a>

Sie können den AWS Systems Manager (SSM-) Dokumentenspeicher nach SSM-Dokumenten durchsuchen, indem Sie entweder die Freitextsuche oder eine filterbasierte Suche verwenden. Sie können auch Dokumente als Favoriten markieren, um häufig verwendete SSM-Dokumente zu finden. In den folgenden Abschnitten wird beschrieben, wie Sie diese Funktionen nutzen können.

## Verwenden der Freitextsuche
<a name="ssm-documents-searching-free-text"></a>

Das Suchfeld auf der Seite Systems Manager-**Dokumente** unterstützt die Freitextsuche. Die Freitextsuche vergleicht den bzw. die eingegebenen Suchbegriffe mit dem Dokumentnamen in jedem SSM-Dokument. Wenn Sie einen einzelnen Suchbegriff eingeben, z. B. **ansible**, gibt Systems Manager alle SSM-Dokumente zurück, in denen dieser Begriff erkannt wurde. Wenn Sie mehrere Suchbegriffe eingeben, sucht Systems Manager mithilfe einer `OR`-Anweisung. Wenn Sie z. B. **ansible** und **linux** angeben, gibt die Suche alle Dokumente zurück, die *eines* der beiden Schlüsselwörter im Namen tragen.

Wenn Sie einen Freitext-Suchbegriff eingeben und eine Suchoption wählen, z. B. **Plattformtyp**, dann verwendet die Suche eine `AND`-Anweisung und gibt alle Dokumente zurück, die das Schlüsselwort im Namen und den angegebenen Plattformtyp enthalten.

**Anmerkung**  
Beachten Sie die folgenden Details zur Freitextsuche.  
Bei der Freitextsuche wird *nicht* zwischen Groß- und Kleinschreibung unterschieden.
Die Suchbegriffe müssen mindestens drei und dürfen höchstens 20 Zeichen lang sein.
Die Freitextsuche akzeptiert bis zu fünf Suchbegriffe.
Wenn Sie ein Leerzeichen zwischen den Suchbegriffen eingeben, schließt das System das Leerzeichen bei der Suche ein.
Sie können die Freitextsuche mit anderen Suchoptionen wie **Dokumenttyp** oder **Plattformtyp** kombinieren.
Der Filter **Dokumentname-Präfix** und die Freitextsuche können nicht zusammen verwendet werden, da sie sich gegenseitig ausschließen.

**Suchen nach SSM-Dokumenten**

1. Öffnen Sie die Konsole unter AWS Systems Manager . [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Geben Sie Ihre Suchbegriffe in das Suchfeld ein und drücken Sie die Eingabetaste.

### Durchführen einer Freitextdokumentsuche mit dem AWS CLI
<a name="ssm-documents-searching-free-text-cli"></a>

**Durchführen der Freitextdokumentsuche mithilfe der CLI**

1. Installieren und konfigurieren Sie AWS Command Line Interface (AWS CLI), falls Sie dies noch nicht getan haben.

   Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version von AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Führen Sie den folgenden Befehl aus, um eine Freitextdokumentsuche mit einem einzelnen Begriff durchzuführen. Ersetzen Sie diesen Befehl *search\$1term* durch Ihre eigenen Informationen.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="search_term"
   ```

   Ein Beispiel:

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="aws-asg" --region us-east-2
   ```

   Um mit mehreren Begriffen zu suchen, die eine `AND`-Anweisung erstellen, führen Sie den folgenden Befehl aus. Ersetzen Sie in diesem Befehl *search\$1term\$11* und *search\$1term\$12* durch Ihre eigenen Informationen.

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="search_term_1","search_term_2","search_term_3" --region us-east-2
   ```

   Ein Beispiel:

   ```
   aws ssm list-documents --filters Key="SearchKeyword",Values="aws-asg","aws-ec2","restart" --region us-east-2
   ```

## Verwenden von Filtern
<a name="ssm-documents-searching-filters"></a>

Der Systems Manager–Seite **Dokumente** zeigt automatisch die folgenden Filter an, wenn Sie das Suchfeld auswählen. 
+ Dokumentnamenpräfix
+ Plattformentypen
+ Dokumenttyp
+ Tag-Schlüssel

![\[Filteroptionen auf der Seite SSM-Dokumente.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/ssm-documents-filters-1.png)


Sie können mit einem einzigen Filter nach SSM-Dokumenten suchen. Wenn Sie einen spezifischeren Satz von SSM-Dokumenten zurückgeben möchten, können Sie mehrere Filter anwenden. Hier ein Beispiel für eine Suche, bei der die Filter **Plattformtypen** und **Dokumentnamenpräfix** verwendet werden.

![\[Anwenden mehrerer Filteroptionen auf der Seite SSM-Dokumente\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/ssm-documents-filters-2.png)


Wenn Sie mehrere Filter anwenden, erstellt Systems Manager verschiedene Suchanweisungen basierend auf den ausgewählten Filtern: 
+ Wenn Sie *denselben* Filter mehrfach anwenden, z. B. das Präfix für den **Dokumentennamenpräfix**, sucht Systems Manager mit Hilfe einer `OR`-Anweisung. Wenn Sie z. B. einen Filter **Dokumentname Präfix**=**AWS** und einen zweiten Filter **Dokumentnamenpräfix**=**Lambda** angeben, liefert die Suche alle Dokumente mit dem Präfix „`AWS`“ und alle Dokumente mit dem Präfix „`Lambda`“.
+ Wenn Sie *verschiedene* Filter anwenden, z. B. **Document name prefix** (Präfix Dokumentname) und **Platform types** (Plattformtypen), sucht Systems Manager mithilfe einer `AND`-Anweisung. Wenn Sie z. B. den Filter **Document name prefix** (Präfix Dokumentname) = **AWS** und den Filter **Platform types** (Plattformtypen) = **Linux** angeben, gibt die Suche alle Dokumente mit dem Präfix „`AWS`“ zurück, die spezifisch für die Linux-Plattform sind.

**Anmerkung**  
Dabei wird Groß- und Kleinschreibung beachtet. 

## Hinzufügen von Dokumenten zu Ihren Favoriten
<a name="favorite-documents"></a>

Fügen Sie Dokumente zu Ihren Favoriten hinzu, um häufig verwendete SSM-Dokumente leichter zu finden. Sie können bis zu 20 Dokumente pro Dokumenttyp, pro AWS-Konto und als Favorit markieren AWS-Region. Sie können Ihre Favoriten in der Dokumenten- AWS-Managementkonsole auswählen, ändern und anzeigen. Die folgenden Verfahren beschreiben, wie Sie Ihre Favoriten auswählen, ändern und anzeigen.

**So markieren Sie ein SSM-Dokument als Favorit**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie das Sternsymbol neben dem Namen des Dokuments aus, das Sie als Favorit markieren möchten.

**So entfernen Sie ein SSM-Dokument aus Ihren Favoriten**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie das Sternsymbol neben dem Namen des Dokuments ab, das Sie nicht mehr als Favorit markieren möchten.

**Um Ihre Favoriten aus den Dokumenten anzuzeigen AWS-Managementkonsole**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich die Option **Dokumente** aus.

1. Wählen Sie die Registerkarte **Favoriten** aus.

# Beheben von Fehlern mit der Parameterverarbeitung
<a name="parameter-troubleshooting"></a>

## Häufige Probleme bei der Parameterverarbeitung
<a name="common-parameter-issues"></a>

**Umgebungsvariablen sind während der Ausführung nicht verfügbar**  
**Problem:** Befehle schlagen fehl, weil Umgebungsvariablen (`SSM_parameter-name`) nicht gefunden werden.  
**Mögliche Ursachen:**  
+ Die Version von SSM Agent unterstützt keine Interpolation von Umgebungsvariablen.
+ `interpolationType` ist nicht auf `ENV_VAR` gesetzt.
+ Der Parametername stimmt nicht mit dem erwarteten Namen der Umgebungsvariablen überein.
**Lösung:**  
+ Stellen Sie sicher, dass die SSM Agent-Version 3.3.2746.0 oder höher ist.
+ Fügen Sie eine Fallback-Logik für ältere Agentenversionen hinzu:

  ```
  if [ -z "${SSM_parameterName+x}" ]; then
      export SSM_parameterName="{{parameterName}}"
  fi
  ```

**Parameterwerte mit Sonderzeichen**  
**Problem:** Befehle schlagen fehl, wenn Parameterwerte Leerzeichen, Anführungszeichen oder andere Sonderzeichen enthalten.  
**Lösung:**  
+ Verwenden Sie korrekte Anführungszeichen, wenn Sie auf Umgebungsvariablen verweisen:

  ```
  # Correct
  echo "$SSM_parameter-name"
  
  # Incorrect
  echo $SSM_parameter-name
  ```
+ Fügen Sie mit `allowedPattern` eine Eingabevalidierung hinzu, um Sonderzeichen einzuschränken.

**Inkonsistentes Verhalten auf verschiedenen Plattformen**  
**Problem:** Die Parameterverarbeitung funktioniert in Linux- und Windows Server-Systemen unterschiedlich.  
**Lösung:**  
+ Verwenden Sie die plattformspezifische Syntax für Umgebungsvariablen:

  ```
  # PowerShell
  $env:SSM_parameter-name
  
  # Bash
  $SSM_parameter-name
  ```
+ Verwenden Sie plattformspezifische Vorbedingungsprüfungen in Ihrem Dokument.

**Parameterwerte wurden nicht korrekt maskiert**  
**Problem:** Mangelnder Schutz vor Befehlseinschleusung trotz Interpolation von Umgebungsvariablen.  
**Lösung:**  
+ Achten Sie immer auf die ordnungsgemäße Maskierung, wenn Sie Parameterwerte in Befehle aufnehmen:

  ```
  # Correct
  mysql_command="mysql -u \"$SSM_username\" -p\"$SSM_password\""
  
  # Incorrect
  mysql_command="mysql -u $SSM_username -p$SSM_password"
  ```

## Tipps für die Parametervalidierung
<a name="parameter-validation"></a>

Nutzen Sie diese Methoden, um Ihre Parameterverarbeitung zu validieren:

1. Verfügbarkeit von Umgebungsvariablen testen:

   ```
   #!/bin/bash
   # Print all SSM_ environment variables
   env | grep ^SSM_
   
   # Test specific parameter
   if [ -n "$SSM_parameter" ]; then
       echo "Parameter is available"
   else
       echo "Parameter is not available"
   fi
   ```

1. Parametermuster überprüfen:

   ```
   parameters:
     myParameter:
       type: String
       allowedPattern: "^[a-zA-Z0-9_-]+$"
       description: "Test this pattern with sample inputs"
   ```

1. Fehlerbehandlung einbeziehen:

   ```
   if [[ ! "$SSM_parameter" =~ ^[a-zA-Z0-9_-]+$ ]]; then
       echo "Parameter validation failed"
       exit 1
   fi
   ```

# AWS Systems Manager Maintenance Windows
<a name="maintenance-windows"></a>

Maintenance Windows, ein Tool in AWS Systems Manager, hilft Ihnen dabei, einen Zeitplan für die Ausführung potenziell störender Aktionen auf Ihren Knoten zu definieren, z. B. das Patchen eines Betriebssystems, das Aktualisieren von Treibern oder das Installieren von Software oder Patches.

**Anmerkung**  
State Manager und Maintenance Windows können ähnliche Arten von Updates für Ihre verwalteten Knoten ausführen. Welche Option Sie wählen, hängt davon ab, ob Sie die System-Compliance automatisieren oder zeitkritische Aufgaben mit hoher Priorität während der von Ihnen angegebenen Zeiträume ausführen müssen.  
Weitere Informationen finden Sie unter [Auswahl zwischen State Manager und Maintenance Windows](state-manager-vs-maintenance-windows.md).

Mit Maintenance Windows können Sie Aktionen für zahlreiche andere AWS Ressourcentypen planen, z. B. Amazon Simple Storage Service (Amazon S3) -Buckets, Amazon Simple Queue Service (Amazon SQS) -Warteschlangen, AWS Key Management Service (AWS KMS) -Schlüssel und vieles mehr. 

*Eine vollständige Liste der unterstützten Ressourcentypen, die Sie in ein Wartungsfensterziel aufnehmen können, finden Sie unter [Ressourcen, die Sie mit verwenden können AWS -Ressourcengruppen und Tag-Editor](https://docs.aws.amazon.com/ARG/latest/userguide/supported-resources.html#supported-resources-console) im AWS -Ressourcengruppen Benutzerhandbuch.* Um mit Maintenance Windows zu beginnen, öffnen Sie die [Systems-Manager-Konsole](https://console.aws.amazon.com//systems-manager/maintenance-windows). Wählen Sie im Navigationsbereich **Maintenance Windows** aus.

Jedes Wartungsfenster hat einen Zeitplan, eine maximale Dauer, eine Reihe registrierter Ziele (die verwalteten Knoten oder andere AWS Ressourcen, auf die reagiert wird) und eine Reihe registrierter Aufgaben. Sie können Tags zu Ihren Wartungsfenstern hinzufügen, wenn Sie sie erstellen oder aktualisieren. Tags sind Schlüssel, die das Identifizieren und Sortieren der Ressourcen in Ihrer Organisation ermöglichen. Sie können auch Daten angeben, vor oder nach denen ein Wartungsfenster nicht ausgeführt werden soll und Sie können die internationale Zeitzone angeben, auf der der Zeitplan des Wartungsfensters basieren soll. 

Eine Beschreibung des Verhältnisses zwischen den verschiedenen zeitplanbezogenen Optionen für Wartungsfenster finden Sie unter [Wartungsfenster-Optionen für Planung und aktive Zeiträume](maintenance-windows-schedule-options.md).

Weitere Informationen zum Arbeiten mit der `--schedule`-Option finden Sie unter [Referenz: Cron- und Rate-Ausdrücke für System Manager](reference-cron-and-rate-expressions.md).

**Unterstützte Aufgabentypen**  
Mit Wartungsfenstern können Sie vier Aufgabentypen ausführen:
+ Befehle in Run Command, einem Tool in Systems Manager

  Mehr über Run Command erfahren Sie unter [AWS Systems Manager Run Command](run-command.md).
+ Workflows in Automation, ein Tool in Systems Manager

  Weitere Informationen über Automation-Workflows finden Sie unter [AWS Systems Manager-Automatisierung](systems-manager-automation.md).
+ Funktionen in AWS Lambda

  Weitere Informationen über Lambda-Funktionen finden Sie unter [Erste Schritte mit Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) im *AWS Lambda -Entwicklerhandbuch*.
+ Aufgaben in AWS Step Functions
**Anmerkung**  
Aufgaben im Wartungsfenster unterstützen nur Zustandsmaschinen-Workflows von Step Functions Standard. Sie unterstützen keine Express-Zustandsmaschinen-Workflows. Informationen zu Workflowtypen für Zustandsmaschinen finden Sie unter [Standard- gegenüber Express-Workflows](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) im *AWS Step Functions -Entwicklerhandbuch*.

  Weitere Informationen zu Step Functions finden Sie im *[AWS Step Functions Developer Guide](https://docs.aws.amazon.com/step-functions/latest/dg/)*.

Das bedeutet, dass Sie mit Wartungsfenstern z. B. folgende Aufgaben für Ihre ausgewählten Ziele durchführen können.
+ Installieren oder Aktualisieren von Anwendungen.
+ Anwenden von Patches.
+ Installieren oder Aktualisieren von SSM Agent
+ Führen Sie PowerShell Befehle und Linux-Shell-Skripts mithilfe einer Systems Manager Run Command Manager-Task aus.
+ Erstellen von Amazon Machine Images (AMIs), Bootstrappen von Software und Konfigurieren von Knoten mit einer Systems-Manager-Automatisierungs-Aufgabe.
+ Führen Sie AWS Lambda Funktionen aus, die zusätzliche Aktionen aufrufen, z. B. das Scannen Ihrer Knoten nach Patch-Updates.
+ Führen Sie AWS Step Functions Zustandsmaschinen aus, um Aufgaben wie das Entfernen eines Knotens aus einer Elastic Load Balancing Balancing-Umgebung, das Patchen des Knotens und das anschließende Hinzufügen des Knotens wieder zur Elastic Load Balancing Balancing-Umgebung auszuführen.
+ Zielknoten, die offline sind, indem Sie eine AWS Ressourcengruppe als Ziel angeben.

**Anmerkung**  
Ein oder mehrere Ziele für Wartungsfenster Run Command-Typ-Aufgaben müssen angegeben werden. Je nach Aufgabe sind Ziele für andere Aufgabentypen im Wartungsfenster (Automatisierung AWS Lambda, und AWS Step Functions) optional. Weitere Informationen zur Ausführung von Aufgaben, die keine Ziele angeben, finden Sie unter [Wartungsfenster-Tasks ohne Ziele registrieren](maintenance-windows-targetless-tasks.md).

**EventBridge Unterstützung**  
Dieses Systems Manager Manager-Tool wird in den EventBridge Amazon-Regeln als *Ereignistyp* unterstützt. Weitere Informationen finden Sie unter [Überwachung von Systems Manager Manager-Ereignissen mit Amazon EventBridge](monitoring-eventbridge-events.md) und [Referenz: EventBridge Amazon-Ereignistypen und -muster für Systems Manager](reference-eventbridge-events.md).

**Topics**
+ [Einrichten von Maintenance Windows](setting-up-maintenance-windows.md)
+ [Wartungsfenster mit der Konsole erstellen und verwalten](sysman-maintenance-working.md)
+ [Tutorials](maintenance-windows-tutorials.md)
+ [Verwendung von Pseudo-Parametern bei der Registrierung von Aufgaben im Wartungsfenster](maintenance-window-tasks-pseudo-parameters.md)
+ [Wartungsfenster-Optionen für Planung und aktive Zeiträume](maintenance-windows-schedule-options.md)
+ [Wartungsfenster-Tasks ohne Ziele registrieren](maintenance-windows-targetless-tasks.md)
+ [Fehlerbehebung bei Wartungsfenstern](troubleshooting-maintenance-windows.md)

# Einrichten von Maintenance Windows
<a name="setting-up-maintenance-windows"></a>

Bevor Benutzer in Ihrem AWS-Konto Wartungsfensteraufgaben mit Maintenance Windows, einem Tool in AWS Systems Manager, planen und erstellen können, müssen ihnen die erforderlichen Berechtigungen erteilt werden. Darüber hinaus müssen Sie eine IAM-Servicerolle für Wartungsfenster und die IAM-Richtlinie erstellen, die an diese angehängt werden soll.

**Bevor Sie beginnen**  
Zusätzlich zu den Berechtigungen, die Sie in diesem Abschnitt konfigurieren, sollten die IAM-Entitäten (Benutzer, Rollen oder Gruppen), die mit Wartungsfenstern arbeiten, bereits über allgemeine Wartungsfensterberechtigungen verfügen. Sie können diese Berechtigungen erteilen, indem Sie den Entitäten die IAM-Richtlinie `AmazonSSMFullAccess` zuweisen oder eine benutzerdefinierte IAM-Richtlinie zuweisen, die einen kleineren Satz von Zugriffsberechtigungen für Systems Manager bereitstellt, der Aufgaben des Wartungsfensters abdeckt.

**Topics**
+ [Steuern des Zugriffs auf Wartungsfenster mithilfe der Konsole](configuring-maintenance-window-permissions-console.md)
+ [Steuern Sie den Zugriff auf Wartungsfenster mithilfe der AWS CLI](configuring-maintenance-window-permissions-cli.md)

# Steuern des Zugriffs auf Wartungsfenster mithilfe der Konsole
<a name="configuring-maintenance-window-permissions-console"></a>

Die folgenden Verfahren beschreiben, wie Sie die AWS Systems Manager Konsole verwenden, um die erforderlichen Berechtigungen und Rollen für Wartungsfenster zu erstellen.

**Topics**
+ [Aufgabe 1: Erstellen einer benutzerdefinierten Servicerolle für Wartungsfenster-Aufgaben](#create-custom-policy-console)
+ [Aufgabe 2: Erstellen einer benutzerdefinierten Servicerolle für Wartungsfenster mithilfe der Konsole](#create-custom-role-console)
+ [Aufgabe 3: Bestimmten Benutzern die Berechtigung erteilen, Wartungsfensteraufgaben über die Konsole zu registrieren](#allow-maintenance-window-access-console)
+ [Aufgabe 4: Verhindern, dass bestimmte Benutzer Aufgaben im Wartungsfenster über die Konsole registrieren](#deny-maintenance-window-access-console)

## Aufgabe 1: Erstellen einer benutzerdefinierten Servicerolle für Wartungsfenster-Aufgaben
<a name="create-custom-policy-console"></a>

Wartungsfenster-Aufgaben erfordern eine IAM-Rolle, um die Berechtigungen bereitzustellen, die für die Ausführung für die Zielressourcen erforderlich sind. Die Berechtigungen werden durch eine IAM-Richtlinie bereitgestellt, die der Rolle angefügt wird. Die Arten von Aufgaben, die Sie ausführen, und Ihre anderen betrieblichen Anforderungen bestimmen den Inhalt dieser Richtlinie. Wir bieten eine Basisrichtlinie an, die Sie Ihren Bedürfnissen anpassen können. Abhängig von den Aufgaben und Arten von Aufgaben, die Ihre Wartungsfenster ausführen, benötigen Sie möglicherweise nicht alle Berechtigungen in dieser Richtlinie und müssen möglicherweise zusätzliche Berechtigungen einschließen. Sie hängen diese Richtlinie an die Rolle an, die Sie später in [Aufgabe 2: Erstellen einer benutzerdefinierten Servicerolle für Wartungsfenster mithilfe der Konsole](#create-custom-role-console) erstellen.

**Erstellen einer benutzerdefinierten Richtlinie mithilfe der Konsole**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Richtlinien** und dann **Richtlinie erstellen**.

1. Wählen Sie im Abschnitt **Richtlinien-Editor** **JSON** aus.

1. Ersetzen Sie die Standardinhalte durch folgenden Inhalt:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:SendCommand",
                   "ssm:CancelCommand",
                   "ssm:ListCommands",
                   "ssm:ListCommandInvocations",
                   "ssm:GetCommandInvocation",
                   "ssm:GetAutomationExecution",
                   "ssm:StartAutomationExecution",
                   "ssm:ListTagsForResource",
                   "ssm:DescribeInstanceInformation",
                   "ssm:GetParameters"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "states:DescribeExecution",
                   "states:StartExecution"
               ],
               "Resource": [
                   "arn:aws:states:*:*:execution:*:*",
                   "arn:aws:states:*:*:stateMachine:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:*:*:function:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "resource-groups:ListGroups",
                   "resource-groups:ListGroupResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/maintenance-window-role-name",
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": [
                           "ssm.amazonaws.com"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Ändern Sie den JSON-Inhalt nach Bedarf für die Wartungsaufgaben, die Sie in Ihrem Konto ausführen. Die Änderungen, die Sie vornehmen, beziehen sich auf Ihre geplanten Abläufe. 

   Beispiel:
   + Sie können Amazon-Ressourcennamen (ARNs) für bestimmte Funktionen und Zustandsmaschinen angeben, anstatt Platzhalterkennungen (\$1) zu verwenden.
   + Wenn Sie nicht vorhaben, AWS Step Functions Aufgaben auszuführen, können Sie die `states` Berechtigungen und () ARNs entfernen.
   + Wenn Sie nicht vorhaben, AWS Lambda Aufgaben auszuführen, können Sie die `lambda` Berechtigungen und entfernen ARNs.
   + Wenn Sie keine Automatisierungs-Aufgaben ausführen möchten, können Sie die `ssm:GetAutomationExecution`- und `ssm:StartAutomationExecution`-Berechtigungen entfernen.
   + Fügen Sie zusätzliche Berechtigungen hinzu, die möglicherweise für die Ausführung der Aufgaben erforderlich sind. Manche Automatisierungsaktionen basieren z. B. auf AWS CloudFormation -Stacks. Aus diesem Grund sind die Berechtigungen `cloudformation:CreateStack`, `cloudformation:DescribeStacks` und `cloudformation:DeleteStack` erforderlich. 

     Als weiteres Beispiel benötigt das Automation-Runbook `AWS-CopySnapshot` Berechtigungen zum Erstellen eines Amazon Elastic Block Store (Amazon EBS)-Snapshots. Daher benötigt die Servicerolle die Berechtigung `ec2:CreateSnapshot`. 

     Informationen zu den Rollenberechtigungen, die von Automation-Runbooks benötigt werden, finden Sie in den Runbook-Beschreibungen in der [Referenz zum AWS Systems Manager -Automation-Runbook](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html).

1. Nachdem Sie die Richtlinienüberarbeitungen abgeschlossen haben, wählen Sie **Weiter: Tags**.

1. Geben Sie für **Richtlinienname** einen Namen ein, der dies als Richtlinie identifiziert, die von der von Ihnen erstellten Servicerolle verwendet wird. Beispiel: **my-maintenance-window-role-policy**.

1. (Optional) Fügen Sie im Bereich **Tags hinzufügen** ein oder mehrere Tag-Schlüssel-Wert-Paare hinzu, um den Zugriff für diese Richtlinie zu organisieren, zu verfolgen oder zu steuern. 

1. Wählen Sie **Richtlinie erstellen** aus.

   Notieren Sie sich den Namen, den Sie für die Richtlinie angegeben haben. Sie beziehen sich im nächsten Verfahren, [Aufgabe 2: Erstellen einer benutzerdefinierten Servicerolle für Wartungsfenster mithilfe der Konsole](#create-custom-role-console), darauf.

## Aufgabe 2: Erstellen einer benutzerdefinierten Servicerolle für Wartungsfenster mithilfe der Konsole
<a name="create-custom-role-console"></a>

Die Richtlinie, die Sie in der vorherigen Aufgabe erstellt haben, ist an die Wartungsfenster-Servicerolle angehängt, die Sie in dieser Aufgabe erstellen. Wenn Benutzer eine Wartungsfenster-Aufgabe registrieren, geben sie diese IAM-Rolle als Teil der Aufgabenkonfiguration an. Die Berechtigungen in dieser Rolle ermöglichen es Systems Manager, Wartungsfenster-Aufgaben in Ihrem Namen auszuführen.

**Wichtig**  
Bisher bot Ihnen die Systems Manager Manager-Konsole die Möglichkeit, die AWS verwaltete, mit dem IAM-Dienst verknüpfte Rolle auszuwählen`AWSServiceRoleForAmazonSSM`, die Sie als Wartungsrolle für Ihre Aufgaben verwenden möchten. Die Verwendung dieser Rolle und der zugehörigen Richtlinie, `AmazonSSMServiceRolePolicy`, für Wartungsfenster-Aufgaben wird nicht mehr empfohlen. Wenn Sie diese Rolle jetzt für Wartungsfenster-Aufgaben verwenden, empfehlen wir Ihnen, sie nicht mehr zu verwenden. Erstellen Sie stattdessen Ihre eigene IAM-Rolle, die die Kommunikation zwischen Systems Manager und anderen ermöglicht, AWS-Services wenn Ihre Wartungsfensteraufgaben ausgeführt werden.

Verwenden Sie das folgende Verfahren, um eine benutzerdefinierte Servicerolle für Maintenance Windows zu erstellen, damit Systems Manager Maintenance Windows-Aufgaben in Ihrem Namen ausführen kann. Sie fügen die Richtlinie, die Sie in der vorherigen Aufgabe erstellt haben, an die von Ihnen erstellte benutzerdefinierte Servicerolle an.

**Erstellen einer benutzerdefinierten Servicerolle für Wartungsfenster mithilfe der Konsole**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Rollen** und dann **Rolle erstellen**.

1. Wählen Sie für **Select trusted entity** (Vertrauenswürdige Entität auswählen) die folgenden Optionen:

   1. Wählen Sie unter **Vertrauenswürdiger Entitätstyp** die Option **AWS -Service** aus.

   1. Wählen Sie für **Anwendungsfall** **Systems Manager** aus

   1. Wählen Sie **Systems Manager** aus.

      In der folgenden Abbildung wird die Position der Systems-Manager-Option hervorgehoben.  
![\[Systems Manager ist eine der Optionen für den Anwendungsfall.\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/images/iam_use_cases_for_MWs.png)

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

1. Geben Sie im Bereich **Berechtigungsrichtlinien** in das Suchfeld den Namen der Richtlinie ein, die Sie in [Aufgabe 1: Erstellen einer benutzerdefinierten Servicerolle für Wartungsfenster-Aufgaben](#create-custom-policy-console) erstellt haben, aktivieren Sie das Kontrollkästchen neben dem Namen und wählen Sie dann **Weiter** aus.

1. Geben Sie unter **Role name** (Rollenname) einen Namen ein, der diese Rolle als Maintenance Windows-Rolle identifiziert. Beispiel: **my-maintenance-window-role**.

1. (Optional) Ändern der Standardrollenbeschreibung, um den Zweck dieser Rolle anzuzeigen. Beispiel: **Performs maintenance window tasks on your behalf**.

1. Stellen Sie für **Schritt 1: Vertrauenswürdige Entitäten auswählen** sicher, dass die folgende Richtlinie im Feld **Vertrauenswürdige Richtlinie** angezeigt wird.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "",
         "Effect": "Allow",
         "Principal": {
           "Service": "ssm.amazonaws.com"
         },
         "Action": "sts:AssumeRole"
       }
     ]
   }
   ```

------

1. Stellen Sie für **Schritt 2: Berechtigungen hinzufügen** sicher, dass die Richtlinie, die Sie in [Aufgabe 1: Erstellen einer benutzerdefinierten Servicerolle für Wartungsfenster-Aufgaben](#create-custom-policy-console) erstellt haben, vorhanden ist.

1. (Optional) Fügen Sie in **Schritt 3: Tags hinzufügen** ein oder mehrere Tag-Schlüssel-Wert-Paare hinzu, um den Zugriff für diese Rolle zu organisieren, zu verfolgen oder zu steuern. 

1. Wählen Sie **Create role (Rolle erstellen)** aus. Das System leitet Sie zur Seite **Rollen** zurück.

1. Wählen Sie den Namen der IAM-Rolle aus, die Sie gerade erstellt haben.

1. Kopieren oder Notieren Sie sich Rollenname und **ARN**-Wert im **Übersicht**-Bereich. Benutzer in Ihrem Konto geben diese Informationen an, wenn sie Wartungsfenster erstellen.

## Aufgabe 3: Bestimmten Benutzern die Berechtigung erteilen, Wartungsfensteraufgaben über die Konsole zu registrieren
<a name="allow-maintenance-window-access-console"></a>

Wenn Sie Benutzern Berechtigungen für den Zugriff auf die Servicerolle des benutzerdefinierten Wartungsfensters erteilen, können sie sie mit ihren Wartungsfenstern verwenden. Dies gilt zusätzlich zu den Berechtigungen, die Sie ihnen bereits zur Arbeit mit den Systems-Manager-API-Befehlen für das Tool Maintenance Windows erteilt haben. Diese IAM-Rolle vermittelt, dass Berechtigungen zum Ausführen einer Wartungsfenster-Aufgabe erforderlich sind. Infolgedessen kann ein Benutzer einem Wartungsfenster mithilfe Ihrer benutzerdefinierten Servicerolle keine Aufgaben registrieren, ohne diese IAM-Berechtigungen übergeben zu können.

Wenn Sie eine Aufgabe bei einem Wartungsfenster registrieren, geben Sie eine Servicerolle an, um die eigentlichen Aufgabenvorgänge auszuführen. Hierbei handelt es sich um die Rolle, die vom Service angenommen wird, wenn Aufgaben in Ihrem Namen ausgeführt werden. Um die Aufgabe selbst zu registrieren, weisen Sie zuvor die IAM-`PassRole`-Richtlinie einer IAM-Entität (z. B. einem Benutzer oder einer Gruppe) zu. Dadurch kann die IAM Entität als Teil der Registrierung dieser Aufgaben im Wartungsfenster die Rolle angeben, die beim Ausführen der Aufgaben verwendet werden soll. Weitere Informationen finden Sie unter [Erteilen von Berechtigungen, mit denen ein Benutzer eine Rolle an einen AWS-Serviceübergeben kann](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) im *IAM-Benutzerhandbuch*.

**So konfigurieren Sie Berechtigungen, die es Benutzern ermöglichen, Wartungsfensteraufgaben zu registrieren**

Wenn eine IAM-Entität (Benutzer, Rolle oder Gruppe) mit Administratorberechtigungen eingerichtet ist, hat der IAM-Benutzer oder die Rolle Zugriff auf Wartungsfenster. Für Entitäten ohne Administratorberechtigungen muss ein Administrator der IAM-Entität die folgenden Berechtigungen gewähren. Dies sind die Mindestberechtigungen, die erforderlich sind, um Aufgaben in einem Wartungsfenster zu registrieren:
+ Die von `AmazonSSMFullAccess` verwaltete Richtlinie oder eine Richtlinie, die vergleichbare Berechtigungen bereitstellt.
+ Die folgenden `iam:PassRole`- und `iam:ListRoles`-Berechtigungen.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "iam:PassRole",
              "Resource": "arn:aws:iam::111122223333:role/my-maintenance-window-role"
          },
          {
              "Effect": "Allow",
              "Action": "iam:ListRoles",
              "Resource": "arn:aws:iam::111122223333:role/"
          },
          {
              "Effect": "Allow",
              "Action": "iam:ListRoles",
              "Resource": "arn:aws:iam::111122223333:role/aws-service-role/ssm.amazonaws.com/"
          }
      ]
  }
  ```

------

  *my-maintenance-window-role*steht für den Namen der benutzerdefinierten Wartungsfenster-Servicerolle, die Sie zuvor erstellt haben.

  *account-id*steht für die ID Ihres AWS-Konto. Durch das Hinzufügen dieser Berechtigung für die Ressource `arn:aws:iam::account-id:role/` können Benutzer Kundenrollen in der Konsole anzeigen und auswählen, wenn sie eine Wartungsfensteraufgabe erstellen. Durch das Hinzufügen dieser Berechtigung für `arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/` können Benutzer die mit dem Systems Manager-Service verknüpfte Rolle in der Konsole auswählen, wenn sie eine Wartungsfensteraufgabe erstellen. 

  Um Zugriff zu gewähren, fügen Sie Ihren Benutzern, Gruppen oder Rollen Berechtigungen hinzu:
  + Benutzer und Gruppen in AWS IAM Identity Center:

    Erstellen Sie einen Berechtigungssatz. Befolgen Sie die Anweisungen unter [Erstellen eines Berechtigungssatzes](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html) im *AWS IAM Identity Center -Benutzerhandbuch*.
  + Benutzer, die in IAM über einen Identitätsanbieter verwaltet werden:

    Erstellen Sie eine Rolle für den Identitätsverbund. Befolgen Sie die Anleitung unter [Eine Rolle für einen externen Identitätsanbieter (Verbund) erstellen](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) im *IAM-Benutzerhandbuch*.
  + IAM-Benutzer:
    + Erstellen Sie eine Rolle, die Ihr Benutzer annehmen kann. Befolgen Sie die Anleitung unter [Eine Rolle für einen IAM-Benutzer erstellen](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) im *IAM-Benutzerhandbuch*.
    + (Nicht empfohlen) Weisen Sie einem Benutzer eine Richtlinie direkt zu oder fügen Sie einen Benutzer zu einer Benutzergruppe hinzu. Befolgen Sie die Anweisungen unter [Hinzufügen von Berechtigungen zu einem Benutzer (Konsole)](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) im *IAM-Benutzerhandbuch*.

**Konfigurieren von Berechtigungen für Gruppen, die Wartungsfensteraufgaben registrieren dürfen mithilfe der Konsole**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Klicken Sie im Navigationsbereich auf **Groups oder Users**.

1. Wählen Sie in der Gruppenliste den Namen der Gruppe aus, der Sie die `iam:PassRole`-Berechtigung zuweisen möchten, oder erstellen Sie ggf. zunächst eine neue Gruppe 

1. Wählen Sie auf der Registerkarte **Permissions** (Berechtigungen) die Optionen **Add permissions, Create Inline Policy** (Berechtigungen hinzufügen, Inline-Richtlinie erstellen) aus.

1. Wählen Sie im Bereich **Richtlinien-Editor** **JSON** und ersetzen Sie den Standardinhalt des Felds durch Folgendes.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/my-maintenance-window-role"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/aws-service-role/ssm.amazonaws.com/"
           }
       ]
   }
   ```

------

   *my-maintenance-window-role*steht für den Namen der benutzerdefinierten Rolle im Wartungsfenster, die Sie zuvor erstellt haben.

   *account-id*steht für die ID Ihres AWS-Konto. Durch das Hinzufügen dieser Berechtigung für die Ressource `arn:aws:iam::account-id:role/` können Benutzer Kundenrollen in der Konsole anzeigen und auswählen, wenn sie eine Wartungsfensteraufgabe erstellen. Durch das Hinzufügen dieser Berechtigung für `arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/` können Benutzer die mit dem Systems Manager-Service verknüpfte Rolle in der Konsole auswählen, wenn sie eine Wartungsfensteraufgabe erstellen. 

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

1. Geben Sie auf der Seite **Überprüfen und erstellen** einen Namen in das Feld **Richtlinenname** ein, um diese `PassRole`-Richtlinie zu identifizieren (beispielsweise **my-group-iam-passrole-policy**) und wählen Sie dann **Richtlinie erstellen** aus.

## Aufgabe 4: Verhindern, dass bestimmte Benutzer Aufgaben im Wartungsfenster über die Konsole registrieren
<a name="deny-maintenance-window-access-console"></a>

Sie können den Benutzern in Ihrem Bereich, die Sie nicht möchten AWS-Konto , die `ssm:RegisterTaskWithMaintenanceWindow` Erlaubnis verweigern, Aufgaben in Wartungsfenstern zu registrieren. Dies bietet eine zusätzliche Verhinderungsebene für Benutzer, die keine Wartungsfenster-Aufgaben registrieren sollten.

**Konfigurieren von Berechtigungen für Gruppen, die keine Wartungsfensteraufgaben registrieren dürfen mithilfe der Konsole**

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Klicken Sie im Navigationsbereich auf **Groups oder Users**.

1. Wählen Sie in der Gruppenliste den Namen der Gruppe aus, der Sie die `ssm:RegisterTaskWithMaintenanceWindow`-Berechtigung verweigern möchten, oder erstellen Sie ggf. zunächst eine neue Gruppe.

1. Wählen Sie auf der Registerkarte **Permissions** (Berechtigungen) die Optionen **Add permissions, Create Inline Policy** (Berechtigungen hinzufügen, Inline-Richtlinie erstellen) aus.

1. Wählen Sie im Bereich **Richtlinien-Editor** **JSON** und ersetzen Sie dann den Standardinhalt des Felds durch Folgendes.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": "ssm:RegisterTaskWithMaintenanceWindow",
               "Resource": "*"
           }
       ]
   }
   ```

------

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

1. Geben Sie auf der Seite **Überprüfen und Erstellen** bei **Richtlinienname** einen Namen ein, um diese Richtlinie zu identifizieren (beispielsweise **my-groups-deny-mw-tasks-policy**) und wählen Sie dann **Richtlinie erstellen** aus.

# Steuern Sie den Zugriff auf Wartungsfenster mithilfe der AWS CLI
<a name="configuring-maintenance-window-permissions-cli"></a>

In den folgenden Verfahren wird beschrieben, wie Sie das AWS Command Line Interface (AWS CLI) verwenden, um die erforderlichen Berechtigungen und Rollen für Maintenance Windows ein Tool in zu erstellen AWS Systems Manager.

**Topics**
+ [Aufgabe 1: Vertrauensrichtlinien und vom Kunden verwaltete Richtliniendateien im JSON-Format erstellen](#create-custom-policy-json-files-cli)
+ [Aufgabe 2: Erstellen und verifizieren Sie eine benutzerdefinierte Servicerolle für Wartungsfenster mithilfe der AWS CLI](#create-custom-role-cli)
+ [Aufgabe 3: Erteilen Sie bestimmten Benutzern die Erlaubnis, Aufgaben im Wartungsfenster zu registrieren. Verwenden Sie dazu den AWS CLI](#allow-maintenance-window-access-cli)
+ [Aufgabe 4: Verhindern Sie, dass bestimmte Benutzer Aufgaben im Wartungsfenster registrieren, indem Sie AWS CLI](#deny-maintenance-window-access-cli)

## Aufgabe 1: Vertrauensrichtlinien und vom Kunden verwaltete Richtliniendateien im JSON-Format erstellen
<a name="create-custom-policy-json-files-cli"></a>

Wartungsfenster-Aufgaben erfordern eine IAM-Rolle, um die Berechtigungen bereitzustellen, die für die Ausführung für die Zielressourcen erforderlich sind. Die Berechtigungen werden durch eine IAM-Richtlinie bereitgestellt, die der Rolle angefügt wird. Die Arten von Aufgaben, die Sie ausführen, und Ihre anderen betrieblichen Anforderungen bestimmen den Inhalt dieser Richtlinie. Wir bieten eine Basisrichtlinie an, die Sie Ihren Bedürfnissen anpassen können. Abhängig von den Aufgaben und Arten von Aufgaben, die Ihre Wartungsfenster ausführen, benötigen Sie möglicherweise nicht alle Berechtigungen in dieser Richtlinie und müssen möglicherweise zusätzliche Berechtigungen einschließen. 

In dieser Aufgabe geben Sie die Berechtigungen, die für Ihre benutzerdefinierte Rolle im Wartungsfenster erforderlich sind, in einem Paar von JSON-Dateien an. Sie hängen diese Richtlinie an die Rolle an, die Sie später in [Aufgabe 2: Erstellen und verifizieren Sie eine benutzerdefinierte Servicerolle für Wartungsfenster mithilfe der AWS CLI](#create-custom-role-cli) erstellen. 

**Um Vertrauensrichtlinien und vom Kunden verwaltete Richtliniendateien zu erstellen**

1. Kopieren Sie die folgende Vertrauensrichtlinie in eine Textdatei. Speichen Sie diese Datei mit folgendem Namen und folgender Dateierweiterung: **mw-role-trust-policy.json**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

1. Kopieren Sie die folgende JSON-Richtlinie und fügen Sie sie in eine andere Textdatei ein. Speichern Sie diese Datei in demselben Verzeichnis, in dem Sie die erste Datei erstellt haben, mit dem folgenden Namen und der folgenden Dateierweiterung: **mw-role-custom-policy.json**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "ssm:SendCommand",
                   "ssm:CancelCommand",
                   "ssm:ListCommands",
                   "ssm:ListCommandInvocations",
                   "ssm:GetCommandInvocation",
                   "ssm:GetAutomationExecution",
                   "ssm:StartAutomationExecution",
                   "ssm:ListTagsForResource",
                   "ssm:GetParameters"
               ],
               "Resource": "*"
           },
           {
               "Effect": "Allow",
               "Action": [
                   "states:DescribeExecution",
                   "states:StartExecution"
               ],
               "Resource": [
                   "arn:aws:states:*:*:execution:*:*",
                   "arn:aws:states:*:*:stateMachine:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:*:*:function:*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "resource-groups:ListGroups",
                   "resource-groups:ListGroupResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "tag:GetResources"
               ],
               "Resource": [
                   "*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/maintenance-window-role-name",
               "Condition": {
                   "StringEquals": {
                       "iam:PassedToService": [
                           "ssm.amazonaws.com"
                       ]
                   }
               }
           }
       ]
   }
   ```

------

1. Ändern Sie den Inhalt von `mw-role-custom-policy.json` nach Bedarf für die Wartungsaufgaben, die Sie in Ihrem Konto ausführen. Die Änderungen, die Sie vornehmen, beziehen sich auf Ihre geplanten Abläufe. 

   Beispiel:
   + Sie können Amazon-Ressourcennamen (ARNs) für bestimmte Funktionen und Zustandsmaschinen angeben, anstatt Platzhalterkennungen (\$1) zu verwenden.
   + Wenn Sie nicht vorhaben, AWS Step Functions Aufgaben auszuführen, können Sie die `states` Berechtigungen und () ARNs entfernen.
   + Wenn Sie nicht vorhaben, AWS Lambda Aufgaben auszuführen, können Sie die `lambda` Berechtigungen und entfernen ARNs.
   + Wenn Sie keine Automatisierungs-Aufgaben ausführen möchten, können Sie die `ssm:GetAutomationExecution`- und `ssm:StartAutomationExecution`-Berechtigungen entfernen.
   + Fügen Sie zusätzliche Berechtigungen hinzu, die möglicherweise für die Ausführung der Aufgaben erforderlich sind. Manche Automatisierungsaktionen basieren z. B. auf AWS CloudFormation -Stacks. Aus diesem Grund sind die Berechtigungen `cloudformation:CreateStack`, `cloudformation:DescribeStacks` und `cloudformation:DeleteStack` erforderlich. 

     Als weiteres Beispiel benötigt das Automation-Runbook `AWS-CopySnapshot` Berechtigungen zum Erstellen eines Amazon Elastic Block Store (Amazon EBS)-Snapshots. Daher benötigt die Servicerolle die Berechtigung `ec2:CreateSnapshot`. 

     Informationen zu den Rollenberechtigungen, die von Automation-Runbooks benötigt werden, finden Sie in den Runbook-Beschreibungen in der [Referenz zum AWS Systems Manager -Automation-Runbook](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html).

   Speichern Sie die Datei erneut, nachdem Sie alle erforderlichen Änderungen vorgenommen haben.

## Aufgabe 2: Erstellen und verifizieren Sie eine benutzerdefinierte Servicerolle für Wartungsfenster mithilfe der AWS CLI
<a name="create-custom-role-cli"></a>

Die Richtlinie, die Sie in der vorherigen Aufgabe erstellt haben, ist an die Wartungsfenster-Servicerolle angehängt, die Sie in dieser Aufgabe erstellen. Wenn Benutzer eine Wartungsfenster-Aufgabe registrieren, geben sie diese IAM-Rolle als Teil der Aufgabenkonfiguration an. Die Berechtigungen in dieser Rolle ermöglichen es Systems Manager, Wartungsfenster-Aufgaben in Ihrem Namen auszuführen.

**Wichtig**  
Bisher bot Ihnen die Systems Manager Manager-Konsole die Möglichkeit, die AWS verwaltete, mit dem IAM-Dienst verknüpfte Rolle auszuwählen`AWSServiceRoleForAmazonSSM`, die Sie als Wartungsrolle für Ihre Aufgaben verwenden möchten. Die Verwendung dieser Rolle und der zugehörigen Richtlinie, `AmazonSSMServiceRolePolicy`, für Wartungsfenster-Aufgaben wird nicht mehr empfohlen. Wenn Sie diese Rolle jetzt für Wartungsfenster-Aufgaben verwenden, empfehlen wir Ihnen, sie nicht mehr zu verwenden. Erstellen Sie stattdessen Ihre eigene IAM-Rolle, die die Kommunikation zwischen Systems Manager und anderen ermöglicht, AWS-Services wenn Ihre Wartungsfensteraufgaben ausgeführt werden.

In dieser Aufgabe führen Sie CLI-Befehle aus, um Ihre Windows-Wartungsservicerolle zu erstellen, und fügen dabei den Richtlinieninhalt aus den von Ihnen erstellten JSON-Dateien hinzu. 

**Erstellen Sie eine benutzerdefinierte Servicerolle für Wartungsfenster mithilfe des AWS CLI**

1. Öffnen Sie das AWS CLI und führen Sie den folgenden Befehl in dem Verzeichnis aus, in dem Sie `mw-role-custom-policy.json` und platziert haben`mw-role-trust-policy.json`. Der Befehl erstellt eine Wartungsfenster-Servicerolle namens `my-maintenance-window-role` und fügt ihr die *Vertrauensrichtlinie* hinzu.

------
#### [ Linux & macOS ]

   ```
   aws iam create-role \
       --role-name "my-maintenance-window-role" \
       --assume-role-policy-document file://mw-role-trust-policy.json
   ```

------
#### [ Windows ]

   ```
   aws iam create-role ^
       --role-name "my-maintenance-window-role" ^
       --assume-role-policy-document file://mw-role-trust-policy.json
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "Role": {
           "AssumeRolePolicyDocument": {
               "Version": "2012-10-17", 		 	 	 		 	 	 
               "Statement": [
                   {
                       "Action": "sts:AssumeRole",
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "ssm.amazonaws.com"
                       }
                   }
               ]
           },
           "RoleId": "AROAIIZKPBKS2LEXAMPLE",
           "CreateDate": "2024-08-19T03:40:17.373Z",
           "RoleName": "my-maintenance-window-role",
           "Path": "/",
           "Arn": "arn:aws:iam::123456789012:role/my-maintenance-window-role"
       }
   }
   ```
**Anmerkung**  
Notieren Sie sich die Werte für `RoleName` und `Arn`. Sie brauchen diese Informationen im nächsten Befehl.

1. Führen Sie den folgenden Befehl aus, um der Rolle die *vom Kunden verwaltete Richtlinie* anzufügen. Ersetzen Sie den *account-id* Platzhalter durch Ihre eigene ID AWS-Konto 

------
#### [ Linux & macOS ]

   ```
   aws iam attach-role-policy \
       --role-name "my-maintenance-window-role" \
       --policy-arn "arn:aws:iam::account-id:policy/mw-role-custom-policy.json"
   ```

------
#### [ Windows ]

   ```
   aws iam attach-role-policy ^
       --role-name "my-maintenance-window-role" ^
       --policy-arn "arn:aws:iam::account-id:policy/mw-role-custom-policy.json"
   ```

------

1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ihre Rolle erstellt wurde und ob die Vertrauensrichtlinie angefügt wurde.

   ```
   aws iam get-role --role-name my-maintenance-window-role
   ```

   Die vom System zurückgegebenen Informationen ähneln den Folgenden:

   ```
   {
       "Role": {
           "Path": "/",
           "RoleName": "my-maintenance-window-role",
           "RoleId": "AROA123456789EXAMPLE",
           "Arn": "arn:aws:iam::123456789012:role/my-maintenance-window-role",
           "CreateDate": "2024-08-19T14:13:32+00:00",
           "AssumeRolePolicyDocument": {
               "Version": "2012-10-17", 		 	 	 		 	 	 
               "Statement": [
                   {
                       "Effect": "Allow",
                       "Principal": {
                           "Service": "ssm.amazonaws.com"
                       },
                       "Action": "sts:AssumeRole"
                   }
               ]
           },
           "MaxSessionDuration": 3600,
           "RoleLastUsed": {
               "LastUsedDate": "2024-08-19T14:30:44+00:00",
               "Region": "us-east-2"
           }
       }
   }
   ```

1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die vom Kunden verwaltete Richtlinie der Rolle angefügt wurde.

   ```
   aws iam list-attached-role-policies --role-name my-maintenance-window-role
   ```

   Die vom System zurückgegebenen Informationen ähneln den Folgenden:

   ```
   {
       "AttachedPolicies": [
           {
               "PolicyName": "mw-role-custom-policy",
               "PolicyArn": "arn:aws:iam::123456789012:policy/mw-role-custom-policy"
           }
       ]
   }
   ```

## Aufgabe 3: Erteilen Sie bestimmten Benutzern die Erlaubnis, Aufgaben im Wartungsfenster zu registrieren. Verwenden Sie dazu den AWS CLI
<a name="allow-maintenance-window-access-cli"></a>

Wenn Sie Benutzern Berechtigungen für den Zugriff auf die Servicerolle des benutzerdefinierten Wartungsfensters erteilen, können sie sie mit ihren Wartungsfenstern verwenden. Dies gilt zusätzlich zu den Berechtigungen, die Sie ihnen bereits zur Arbeit mit den Systems-Manager-API-Befehlen für das Tool Maintenance Windows erteilt haben. Diese IAM-Rolle vermittelt, dass Berechtigungen zum Ausführen einer Wartungsfenster-Aufgabe erforderlich sind. Infolgedessen kann ein Benutzer einem Wartungsfenster mithilfe Ihrer benutzerdefinierten Servicerolle keine Aufgaben registrieren, ohne diese IAM-Berechtigungen übergeben zu können.

Wenn Sie eine Aufgabe bei einem Wartungsfenster registrieren, geben Sie eine Servicerolle an, um die eigentlichen Aufgabenvorgänge auszuführen. Hierbei handelt es sich um die Rolle, die vom Service angenommen wird, wenn Aufgaben in Ihrem Namen ausgeführt werden. Um die Aufgabe selbst zu registrieren, weisen Sie zuvor die IAM-`PassRole`-Richtlinie einer IAM-Entität (z. B. einem Benutzer oder einer Gruppe) zu. Dadurch kann die IAM Entität als Teil der Registrierung dieser Aufgaben im Wartungsfenster die Rolle angeben, die beim Ausführen der Aufgaben verwendet werden soll. Weitere Informationen finden Sie unter [Erteilen von Berechtigungen, mit denen ein Benutzer eine Rolle an einen AWS-Serviceübergeben kann](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) im *IAM-Benutzerhandbuch*.

**Um Berechtigungen für Benutzer zu konfigurieren, die Wartungsfensteraufgaben registrieren dürfen, verwenden Sie AWS CLI**

1. Kopieren Sie die folgende AWS Identity and Access Management (IAM-) Richtlinie, fügen Sie sie in einen Texteditor ein und speichern Sie sie mit dem folgenden Namen und der folgenden Dateierweiterung:`mw-passrole-policy.json`.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": "iam:PassRole",
               "Resource": "arn:aws:iam::111122223333:role/my-maintenance-window-role"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/"
           },
           {
               "Effect": "Allow",
               "Action": "iam:ListRoles",
               "Resource": "arn:aws:iam::111122223333:role/aws-service-role/ssm.amazonaws.com/"
           }
       ]
   }
   ```

------

   *my-maintenance-window-role*Ersetzen Sie es durch den Namen der benutzerdefinierten Rolle im Wartungsfenster, die Sie zuvor erstellt haben.

   *account-id*Ersetzen Sie durch die ID Ihres AWS-Konto. Wenn Sie diese Berechtigung für die Ressource `arn:aws:iam::account-id:role/` hinzufügen, können Benutzer in der Gruppe Kundenrollen in der Konsole anzeigen und auswählen, wenn sie eine Wartungsfensteraufgabe erstellen. Wenn Sie diese Berechtigung für `arn:aws:iam::account-id:role/aws-service-role/ssm.amazonaws.com/` hinzufügen, können Benutzer in der Gruppe die mit dem Systems Manager-Service verknüpfte Rolle in der Konsole auswählen, wenn sie eine Wartungsfensteraufgabe erstellen. 

1. Öffne das AWS CLI.

1. Je nachdem, ob Sie die Berechtigung einer IAM-Entität (Benutzer oder Gruppe) zuweisen, führen Sie einen der folgenden Befehle aus.
   + **Für eine IAM-Entität:**

------
#### [ Linux & macOS ]

     ```
     aws iam put-user-policy \
         --user-name "user-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-user-policy ^
         --user-name "user-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Geben Sie für *user-name* den Benutzer an, der Wartungsfenstern Aufgaben zuweist. Geben Sie für den Namen an*policy-name*, den Sie zur Identifizierung der Richtlinie verwenden möchten, z. B. **my-iam-passrole-policy** Geben Sie als *path-to-document* den Pfad zur in Schritt 1 gespeicherten Datei an. Beispiel: `file://C:\Temp\mw-passrole-policy.json`
**Anmerkung**  
Um einem Benutzer Zugriff zum Registrieren von Aufgaben für Wartungsfenster über die Systems-Manager-Konsole zu gewähren, müssen Sie auch die Richtlinie `AmazonSSMFullAccess` Ihrem Benutzer zuweisen (oder eine IAM-Richtlinie, die eine kleinere Gruppe von Zugriffsberechtigungen für Systems Manager bereitstellt, die die Aufgaben im Wartungsfenster abdeckt). Führen Sie den folgenden Befehl aus, um Ihrem Benutzer die Richtlinie `AmazonSSMFullAccess` zuzuweisen.  

     ```
     aws iam attach-user-policy \
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" \
         --user-name "user-name"
     ```

     ```
     aws iam attach-user-policy ^
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" ^
         --user-name "user-name"
     ```
   + **Für eine IAM-Gruppe**:

------
#### [ Linux & macOS ]

     ```
     aws iam put-group-policy \
         --group-name "group-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-group-policy ^
         --group-name "group-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Geben Sie für *group-name* die Gruppe an, deren Mitglieder Wartungsfenstern Aufgaben zuweisen. Geben Sie für den Namen an*policy-name*, den Sie zur Identifizierung der Richtlinie verwenden möchten, z. **my-iam-passrole-policy** B. Geben Sie als *path-to-document* den Pfad zur in Schritt 1 gespeicherten Datei an. Zum Beispiel: `file://C:\Temp\mw-passrole-policy.json`
**Anmerkung**  
Um Mitgliedern einer Gruppe Zugriff zum Registrieren von Aufgaben für Wartungsfenster über die Systems Manager-Konsole zu gewähren, müssen Sie die Richtlinie `AmazonSSMFullAccess` auch Ihrer Gruppe zuweisen. Führen Sie den folgenden Befehl aus, um Ihrer Gruppe diese Richtlinie zuzuweisen.  

     ```
     aws iam attach-group-policy \
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" \
         --group-name "group-name"
     ```

     ```
     aws iam attach-group-policy ^
         --policy-arn "arn:aws:iam::aws:policy/AmazonSSMFullAccess" ^
         --group-name "group-name"
     ```

1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Richtlinie der Gruppe zugewiesen wurde.

------
#### [ Linux & macOS ]

   ```
   aws iam list-group-policies \
       --group-name "group-name"
   ```

------
#### [ Windows ]

   ```
   aws iam list-group-policies ^
       --group-name "group-name"
   ```

------

## Aufgabe 4: Verhindern Sie, dass bestimmte Benutzer Aufgaben im Wartungsfenster registrieren, indem Sie AWS CLI
<a name="deny-maintenance-window-access-cli"></a>

Sie können Benutzern in Ihrem Umfeld, die Sie nicht möchten AWS-Konto , die `ssm:RegisterTaskWithMaintenanceWindow` Erlaubnis verweigern, Aufgaben in Wartungsfenstern zu registrieren. Dies bietet eine zusätzliche Verhinderungsebene für Benutzer, die keine Wartungsfenster-Aufgaben registrieren sollten.

Je nachdem, ob Sie die `ssm:RegisterTaskWithMaintenanceWindow`-Berechtigung für einen einzelnen Benutzer oder eine Gruppe verweigern, verwenden Sie eines der folgenden Verfahren, um zu verhindern, dass Benutzer Aufgaben mit einem Wartungsfenster registrieren können. 

**Um Berechtigungen für Benutzer zu konfigurieren, die keine Wartungsfensteraufgaben registrieren dürfen, verwenden Sie den AWS CLI**

1. Kopieren Sie die folgende IAM-Richtlinie und fügen Sie sie in einen Text-Editor ein und speichern Sie sie mit dem folgenden Namen und Dateierweiterung: **deny-mw-tasks-policy.json**.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": "ssm:RegisterTaskWithMaintenanceWindow",
               "Resource": "*"
           }
       ]
   }
   ```

------

1. Öffnen Sie das AWS CLI.

1. Je nachdem, ob Sie die Berechtigung einer IAM-Entität (Benutzer oder Gruppe) zuweisen, führen Sie einen der folgenden Befehle aus.
   + **Für einen Benutzer:**

------
#### [ Linux & macOS ]

     ```
     aws iam put-user-policy \
         --user-name "user-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-user-policy ^
         --user-name "user-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Geben Sie für den Benutzer an*user-name*, der verhindern soll, dass Wartungsfenstern Aufgaben zugewiesen werden. Geben Sie für den Namen an*policy-name*, den Sie zur Identifizierung der Richtlinie verwenden möchten, z. B. **my-deny-mw-tasks-policy** Geben Sie als *path-to-document* den Pfad zur in Schritt 1 gespeicherten Datei an. Beispiel: `file://C:\Temp\deny-mw-tasks-policy.json`
   + **Für eine Gruppe:**

------
#### [ Linux & macOS ]

     ```
     aws iam put-group-policy \
         --group-name "group-name" \
         --policy-name "policy-name" \
         --policy-document file://path-to-document
     ```

------
#### [ Windows ]

     ```
     aws iam put-group-policy ^
         --group-name "group-name" ^
         --policy-name "policy-name" ^
         --policy-document file://path-to-document
     ```

------

     Geben Sie für die Gruppe an*group-name*, die daran gehindert werden soll, Wartungsfenstern Aufgaben zuzuweisen. Geben Sie für den Namen an*policy-name*, den Sie zur Identifizierung der Richtlinie verwenden möchten, z. B. **my-deny-mw-tasks-policy** Geben Sie als *path-to-document* den Pfad zur in Schritt 1 gespeicherten Datei an. Zum Beispiel: `file://C:\Temp\deny-mw-tasks-policy.json`

1. Führen Sie den folgenden Befehl aus, um zu überprüfen, ob die Richtlinie der Gruppe zugewiesen wurde.

------
#### [ Linux & macOS ]

   ```
   aws iam list-group-policies \
       --group-name "group-name"
   ```

------
#### [ Windows ]

   ```
   aws iam list-group-policies ^
       --group-name "group-name"
   ```

------

# Wartungsfenster mit der Konsole erstellen und verwalten
<a name="sysman-maintenance-working"></a>

In diesem Abschnitt wird beschrieben, wie Sie Wartungsfenster mithilfe der AWS Systems Manager Konsole erstellen, konfigurieren, aktualisieren und löschen. Dieser Abschnitt enthält auch Informationen zum Verwalten der Ziele und Aufgaben eines Wartungsfensters.

**Wichtig**  
Wir empfehlen, dass Sie Wartungsfenster anfänglich in einer Testumgebung erstellen und konfigurieren. 

**Bevor Sie beginnen**  
Bevor Sie ein Wartungsfenster erstellen, müssen Sie den Zugriff auf Maintenance Windows ein Tool in konfigurieren AWS Systems Manager. Weitere Informationen finden Sie unter [Einrichten von Maintenance Windows](setting-up-maintenance-windows.md).

**Topics**
+ [Erstellen eines Wartungsfensters mit der Konsole](sysman-maintenance-create-mw.md)
+ [Ziele zu einem Wartungsfenster mit der Konsole zuweisen](sysman-maintenance-assign-targets.md)
+ [Aufgaben zu einem Wartungsfenster mit der Konsole zuweisen](sysman-maintenance-assign-tasks.md)
+ [Deaktivieren oder Aktivieren eines Wartungsfensters mithilfe der Konsole](sysman-maintenance-disable.md)
+ [Ressourcen für das Wartungsfenster mithilfe der Konsole aktualisieren oder löschen](sysman-maintenance-update.md)

# Erstellen eines Wartungsfensters mit der Konsole
<a name="sysman-maintenance-create-mw"></a>

In diesem Verfahren erstellen Sie ein Wartungsfenster in Maintenance Windows, einem Tool in AWS Systems Manager. Sie können die grundlegenden Optionen, wie Name, Zeitplan und Dauer, festlegen. In späteren Schritten wählen Sie die Ziele oder Ressourcen aus, die damit aktualisiert werden sollen, sowie die Aufgaben, die während der Ausführung des Wartungsfensters ausgeführt werden.

**Anmerkung**  
Eine Beschreibung des Verhältnisses zwischen den verschiedenen zeitplanbezogenen Optionen für Wartungsfenster finden Sie unter [Wartungsfenster-Optionen für Planung und aktive Zeiträume](maintenance-windows-schedule-options.md).  
Weitere Informationen zum Arbeiten mit der `--schedule`-Option finden Sie unter [Referenz: Cron- und Rate-Ausdrücke für System Manager](reference-cron-and-rate-expressions.md).

**So erstellen Sie ein Wartungsfenster mit der Konsole**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Maintenance Windows** aus. 

1. Wählen Sie **Create maintenance window (Wartungsfenster erstellen)** aus.

1. Geben Sie im Feld **Name** einen aussagekräftigen Namen ein, an dem Sie dieses Wartungsfenster erkennen können.

1. (Optional) Geben Sie unter **Description** (Beschreibung) eine Beschreibung ein, um anzugeben, wie dieses Wartungsfenster verwendet werden soll.

1. Wenn eine Wartungsfenster-Aufgabe auf verwalteten Knoten ausgeführt werden soll, obwohl diese Knoten nicht als Ziele registriert wurden, wählen Sie **Allow unregistered targets** (Nicht registrierte Ziele erlauben) aus. 

   Falls Sie diese Option wählen, können Sie die nicht registrierten Knoten (nach Knoten-ID) auswählen, wenn Sie eine Aufgabe für das Wartungsfenster registrieren. 

   Sollten Sie diese Option nicht wählen, müssen Sie die zuvor registrierten Ziele auswählen, wenn Sie eine Aufgabe für das Wartungsfenster registrieren.

1. Geben Sie mithilfe einer der drei Planungsoptionen einen Zeitplan für das Wartungsfenster an.

   Hinweise zum Erstellen von cron/rate Ausdrücken finden Sie unter[Referenz: Cron- und Rate-Ausdrücke für System Manager](reference-cron-and-rate-expressions.md).

1. Geben Sie unter **Duration (Dauer)** die Anzahl der Stunden ein, die das Wartungsfenster ausgeführt wird. Der Wert, den Sie angeben, bestimmt die spezifische Endzeit für das Wartungsfenster basierend auf dem Zeitpunkt, an dem es beginnt. Nach der resultierenden Endzeit dürfen keine Wartungsfenster-Aufgaben gestartet werden, abzüglich der Anzahl der Stunden, die Sie für **Stop initiating tasks (Initiieren von Aufgaben beenden)** im nächsten Schritt angeben.

   Beispiel: Wenn das Wartungsfenster um 15:00 Uhr beginnt, die Dauer drei Stunden beträgt und der Wert **Stop initiating tasks (Initiieren von Aufgaben beenden)** eine Stunde beträgt, können nach 17:00 Uhr keine Wartungsfenster-Aufgaben gestartet werden.

1. Geben Sie unter **Stop initiating tasks (Initiieren von Aufgaben beenden)** die Anzahl der Stunden für den Zeitpunkt vor dem Ende des Wartungsfensters an, ab dem vom System keine neuen auszuführenden Aufgaben mehr geplant werden sollen.

1. (Optional) Geben Sie unter **Window start date** (Startzeit des Fensters) ein Datum und eine Uhrzeit im erweiterten ISO-8601-Format an, zu dem bzw. der das Wartungsfenster aktiviert werden soll. Auf diese Weise können Sie die Aktivierung des Wartungsfensters bis zum angegebenen künftigen Zeitpunkt verzögern.
**Anmerkung**  
Sie können kein Startdatum und keine Startzeit angeben, die in der Vergangenheit liegen.

1. (Optional) Geben Sie unter **Window end date** (Enddatum des Fensters) ein Datum und eine Uhrzeit im erweiterten ISO-8601-Format an, zu dem bzw. der das Wartungsfenster deaktiviert werden soll. Auf diese Weise können Sie ein in der Zukunft liegendes Datum sowie eine Uhrzeit festlegen, nach dem das Wartungsfenster nicht mehr ausgeführt wird.

1. (Optional) Geben Sie unter **Schedule time zone** (Zeitzone des Zeitplans) die Zeitzone im IANA-Format (Internet Assigned Numbers Authority) an, die als Grundlage für die Ausführung der geplanten Wartungsfenster verwendet werden soll. Zum Beispiel: "America/Los\$1Angeles", "etc/UTC", or "Asia/Seoul“.

   Weitere Informationen zu gültigen Formaten finden Sie unter [Time Zone Database (Zeitzonendatenbank)](https://www.iana.org/time-zones) auf der IANA-Website.

1. (Optional) Geben Sie unter **Schedule offset** (Zeitplanversatz) die Anzahl der Tage an, die nach dem durch einen Cron- oder Rate-Ausdruck angegebenen Datum und der angegebenen Uhrzeit gewartet werden soll, bevor das Wartungsfenster ausgeführt wird. Sie können ein bis sechs Tage angeben.
**Anmerkung**  
Diese Option ist nur verfügbar, wenn Sie einen Zeitplan durch manuelle Eingabe eines Cron- oder Rate-Ausdrucks angegeben haben.

1. (Optional) Wenden **Sie im Bereich „Tags verwalten**“ ein oder mehrere name/value Tag-Schlüsselpaare auf das Wartungsfenster an.

   Tags sind optionale Metadaten, die Sie einer Ressource zuweisen. Mithilfe von Tags können Sie eine Ressource unterschiedlich kategorisieren, beispielsweise nach Zweck, Besitzer oder Umgebung. Sie können beispielsweise ein Wartungsfenster mit Tags versehen, um die Aufgabentypen, die darüber ausgeführt werden, die Arten der Ziele sowie die Umgebung, in der es ausgeführt wird, zu identifizieren. In diesem Fall könnten Sie die folgenden name/value Schlüsselpaare angeben:
   + `Key=TaskType,Value=AgentUpdate`
   + `Key=OS,Value=Windows`
   + `Key=Environment,Value=Production`

1. Wählen Sie **Create maintenance window (Wartungsfenster erstellen)** aus. Das System leitet Sie zur Seite „Maintenance Window“ (Wartungsfenster) zurück. Der Status des soeben erstellten Wartungsfensters lautet **Enabled (Aktiviert)**.

# Ziele zu einem Wartungsfenster mit der Konsole zuweisen
<a name="sysman-maintenance-assign-targets"></a>

In diesem Verfahren registrieren Sie ein Ziel für ein Wartungsfenster. Mit anderen Worten: Geben Sie an, für welche Ressourcen das Wartungsfenster Aktionen durchführt.

**Anmerkung**  
Wenn eine einzelne Wartungsfenster-Aufgabe mit mehreren Zielen registriert ist, werden ihre Aufrufe sequenziell und nicht parallel ausgeführt. Wenn Ihre Aufgabe gleichzeitig auf mehreren Zielen ausgeführt werden muss, registrieren Sie eine Aufgabe für jedes Ziel einzeln, und weisen Sie jeder Aufgabe dieselbe Prioritätsstufe zu.

**So weisen Sie Ziele zu einem Wartungsfenster mit der Konsole zu**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Maintenance Windows** aus. 

1. Wählen Sie in der Wartungsfensterliste die Wartungsfenster aus, dem Ziele hinzugefügt werden sollen.

1. Wählen Sie **Actions (Aktionen)** und anschließend **Register targets (Ziele registrieren)** aus.

1. (Optional) Geben Sie im Feld **Target Name (Zielname)** einen Namen für die Ziele ein.

1. (Optional) Geben Sie unter **Description (Beschreibung)** eine Beschreibung ein.

1. (Optional) Geben Sie für **Eigentümerinformationen Informationen** an, die in jedes EventBridge Amazon-Ereignis aufgenommen werden sollen, das während der Ausführung von Aufgaben für diese Ziele in diesem Wartungsfenster ausgelöst wird.

   Informationen EventBridge zur Überwachung von Systems Manager Manager-Ereignissen finden Sie unter[Überwachung von Systems Manager Manager-Ereignissen mit Amazon EventBridge](monitoring-eventbridge-events.md).

1. Wählen Sie im Bereich **Targets (Ziele)** eine der in der folgenden Tabelle beschriebenen Optionen.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/sysman-maintenance-assign-targets.html)

1. Wählen Sie **Register target**.

Wenn Sie diesem Wartungsfenster mehrere Ziele zuweisen möchten, wählen Sie die Registerkarte **Targets (Ziele)** und anschließend **Register target (Ziel registrieren)** aus. Mit dieser Option können Sie eine andere Auswahlmethode festlegen. Wenn Sie beispielsweise zuvor Ziel-Knoten nach Knoten-ID ausgewählt haben, können Sie neue Ziele und Ziel-Knoten registrieren, indem Sie für verwaltete Knoten Tags angeben oder Ressourcentypen aus einer Ressourcengruppe auswählen.

# Aufgaben zu einem Wartungsfenster mit der Konsole zuweisen
<a name="sysman-maintenance-assign-tasks"></a>

In diesem Verfahren fügen Sie eine Aufgabe zu einem Wartungsfenster hinzu. Aufgaben sind die Aktionen, die während der Ausführung eines Wartungsfensters durchgeführt werden.

Die folgenden vier Aufgabentypen können zu einem Wartungsfenster hinzugefügt werden:
+ AWS Systems Manager Run Command-Befehle
+ Systems Manager Automation-Workflows
+ AWS Step Functions Aufgaben
+ AWS Lambda Funktionen
**Wichtig**  
Die IAM-Richtlinie für Maintenance Windows erfordert, dass Sie den Namen von Lambda-Funktionen (oder Aliasen) das Präfix `SSM` hinzufügen. Bevor Sie mit der Registrierung dieser Art von Aufgabe fortfahren, aktualisieren Sie ihren Namen so, dass er AWS Lambda einschließt`SSM`. Beispiel: Wenn Ihr Lambda-Funktionsname `MyLambdaFunction` lautet, ändern Sie ihn in `SSMMyLambdaFunction`.

**So weisen Sie einem Wartungsfenster Aufgaben zu**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Maintenance Windows** aus. 

1. Wählen Sie ein Wartungsfenster aus der Wartungsfensterliste aus.

1. Wählen Sie **Actions (Aktionen)** und anschließend die Option für den Aufgabentyp aus, den Sie für das Wartungsfenster registrieren möchten.
   + **Register Run command task (Run Command-Aufgabe registrieren)**
   + **Register Automation task (Automatisierungsaufgabe registrieren)**
   + **Register Lambda task (Lambda-Aufgabe registrieren)**
   + **Register Step Functions task (Step Functions-Aufgabe registrieren)**
**Anmerkung**  
Aufgaben im Wartungsfenster unterstützen nur Zustandsmaschinen-Workflows von Step Functions Standard. Sie unterstützen keine Express-Zustandsmaschinen-Workflows. Informationen zu Workflowtypen für Zustandsmaschinen finden Sie unter [Standard- gegenüber Express-Workflows](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) im *AWS Step Functions -Entwicklerhandbuch*.

1. (Optional) Geben Sie unter **Name** einen Namen für die Aufgabe ein.

1. (Optional) Geben Sie unter **Description (Beschreibung)** eine Beschreibung ein.

1. Wählen Sie für **New task invocation cutoff** (Cutoff für den Aufruf neuer Aufgaben) **Enabled** (Aktiviert), wenn Sie nicht möchten, dass neue Aufgabenaufrufe nach Erreichen der Grenzzeit des Wartungsfensters gestartet werden.

   Wenn diese Option *nicht* aktiviert ist, wird die Aufgabe weiter ausgeführt, wenn die Grenzzeit erreicht ist, und startet neue Aufgabenaufrufe bis zum Abschluss. 
**Anmerkung**  
Der Status für Aufgaben, die beim Aktivieren dieser Option nicht abgeschlossen sind, lautet `TIMED_OUT`. 

1. Wählen Sie für diesen Schritt die Registerkarte für den ausgewählten Aufgabentyp aus.

------
#### [ Run Command ]

   1. Wählen Sie in der Liste Command document **Befehlsdokument** das Systems-Manager-Befehlsdokument (SSM-Dokument) aus, das die auszuführenden Aufgaben definiert.

   1. Wählen Sie für **Document version (Dokumentversion)** die zu verwendende Dokumentversion aus.

   1. Geben Sie für **Task priority (Aufgabenpriorität)** eine Priorität für diese Aufgabe an. Null (`0`) ist die höchste Priorität. Aufgaben in einem Wartungsfenster werden in Reihenfolge der Priorität geplant. Dabei werden Aufgaben mit derselben Priorität parallel ausgeführt.

------
#### [ Automation ]

   1.  Wählen Sie in der Liste **Automation-Dokument** das Automation-Runbook aus, das die auszuführende Aufgabe definiert.

   1. Wählen Sie für **Document version (Dokumentversion)** die zu verwendende Runbook-Version aus.

   1. Geben Sie für **Task priority (Aufgabenpriorität)** eine Priorität für diese Aufgabe an. Null (`0`) ist die höchste Priorität. Aufgaben in einem Wartungsfenster werden in Reihenfolge der Priorität geplant. Dabei werden Aufgaben mit derselben Priorität parallel ausgeführt.

------
#### [ Lambda ]

   1. Wählen Sie im Bereich **Lambda-Parameter** eine Lambda-Funktion aus der Liste aus.

   1. (Optional) Geben Sie einzubeziehende Inhalte für **Payload** (Nutzlast), **Client Context** (Client-Kontext) oder **Qualifier** (Qualifizierer) an.
**Anmerkung**  
In einigen Fällen können Sie einen *Pseudo-Parameter* als Teil Ihres `Payload`-Werts verwenden. Während der Ausführung übergibt die Wartungsfenster-Aufgabe dann anstelle der Pseudoparameter-Platzhalter richtige Werte. Weitere Informationen finden Sie unter [Verwendung von Pseudo-Parametern bei der Registrierung von Aufgaben im Wartungsfenster](maintenance-window-tasks-pseudo-parameters.md).

   1. Geben Sie für **Task priority (Aufgabenpriorität)** eine Priorität für diese Aufgabe an. Null (`0`) ist die höchste Priorität. Aufgaben in einem Wartungsfenster werden in Reihenfolge der Priorität geplant. Dabei werden Aufgaben mit derselben Priorität parallel ausgeführt.

------
#### [ Step Functions ]

   1. Wählen Sie im Bereich **Step-Functions-Parameter** eine Zustandsmaschine aus der Liste aus.

   1. (Optional) Geben Sie einen Namen für die Ausführung des Zustandsautomaten und einzubeziehende Inhalte für **Input** (Eingabe) an.
**Anmerkung**  
In einigen Fällen können Sie einen *Pseudo-Parameter* als Teil Ihres `Input`-Werts verwenden. Während der Ausführung übergibt die Wartungsfenster-Aufgabe dann anstelle der Pseudoparameter-Platzhalter richtige Werte. Weitere Informationen finden Sie unter [Verwendung von Pseudo-Parametern bei der Registrierung von Aufgaben im Wartungsfenster](maintenance-window-tasks-pseudo-parameters.md).

   1. Geben Sie für **Task priority (Aufgabenpriorität)** eine Priorität für diese Aufgabe an. Null (`0`) ist die höchste Priorität. Aufgaben in einem Wartungsfenster werden in Reihenfolge der Priorität geplant. Dabei werden Aufgaben mit derselben Priorität parallel ausgeführt.

------

1. Wählen Sie im Bereich **Targets (Ziele)** eine der folgenden Optionen aus:
   + **Auswahl registrierter Zielgruppen**: Wählen Sie ein oder mehrere Wartungsfensterziele aus, die Sie im aktuellen Wartungsfenster registriert haben.
   + **Auswählen von nicht registrierten Zielen**: Wählen Sie nacheinander verfügbare Ressourcen als Ziele für den Vorgang aus.

     Wenn ein verwalteter Knoten, den Sie erwarten, nicht aufgeführt ist, finden Sie weitere Informationen unter [Problembehandlung bei der Verfügbarkeit verwalteter Knoten](fleet-manager-troubleshooting-managed-nodes.md) Tipps zur Fehlerbehebung.
   + **Aufgabenziel nicht erforderlich**: Ziele für die Aufgabe werden möglicherweise bereits in anderen Funktionen für alle Run Command-Typ-Aufgaben angegeben.

     Geben Sie ein oder mehrere Ziele für Wartungsfenster Run Command-Typ-Aufgaben an. Je nach Aufgabe sind Ziele für andere Aufgabentypen im Wartungsfenster (Automatisierung AWS Lambda, und AWS Step Functions) optional. Weitere Informationen zur Ausführung von Aufgaben, die keine Ziele angeben, finden Sie unter [Wartungsfenster-Tasks ohne Ziele registrieren](maintenance-windows-targetless-tasks.md).
**Anmerkung**  
In vielen Fällen müssen Sie ein Ziel für eine Automatisierungsaufgabe nicht explizit angeben. Angenommen, Sie erstellen beispielsweise eine Automation-Aufgabe, um eine Amazon Machine Image (AMI) für Linux mit dem `AWS-UpdateLinuxAmi`-Runbook zu aktualisieren. Wenn die Aufgabe ausgeführt wird, wird AMI mit den neuesten verfügbaren Linux-Verteilungspaketen und Amazon-Software aktualisiert. Neue Instances, die aus der AMI erstellt wurden, haben diese Updates bereits installiert. Da die ID des AMI in den Eingabeparametern für das Runbook angegeben ist, muss in der Wartungsfenster-Aufgabe kein Ziel erneut angegeben werden.

1. *Nur für Automation-Aufgaben:*

   Geben Sie im Bereich **Input parameters** (Eingabeparameter) Werte für erforderliche oder optionale Parameter an, die zum Ausführen der Aufgabe notwendig sind.
**Anmerkung**  
In einigen Fällen können Sie einen *Pseudoparameter* für bestimmte Eingabeparameterwerte verwenden. Während der Ausführung übergibt die Wartungsfenster-Aufgabe dann anstelle der Pseudoparameter-Platzhalter richtige Werte. Weitere Informationen finden Sie unter [Verwendung von Pseudo-Parametern bei der Registrierung von Aufgaben im Wartungsfenster](maintenance-window-tasks-pseudo-parameters.md).

1. Für **Ratenregelung**:
   + Geben Sie unter **Nebenläufigkeit** entweder eine Zahl oder einen Prozentsatz der verwalteten Knoten an, auf denen der Befehl gleichzeitig ausgeführt werden soll.
**Anmerkung**  
Wenn Sie Ziele ausgewählt haben, indem Sie Tags für verwaltete Knoten oder AWS Ressourcengruppen angegeben haben und Sie sich nicht sicher sind, auf wie viele verwaltete Knoten es sich handelt, schränken Sie die Anzahl der Ziele ein, die das Dokument gleichzeitig ausführen können, indem Sie einen Prozentsatz angeben.
   + Geben Sie unter **Fehlerschwellenwert** an, wann die Ausführung des Befehls auf anderen verwalteten Knoten beendet werden soll, nachdem dafür entweder auf einer bestimmten Anzahl oder einem Prozentsatz von Knoten ein Fehler aufgetreten ist. Falls Sie beispielsweise drei Fehler angeben, sendet Systems Manager keinen Befehl mehr, wenn der vierte Fehler empfangen wird. Von verwalteten Knoten, auf denen der Befehl noch verarbeitet wird, werden unter Umständen ebenfalls Fehler gesendet.

1. (Optional) Wählen Sie für **IAM-Servicerolle** eine Rolle aus, um Systems Manager Berechtigungen zur Übernahme zum Ausführen von Wartungsfenster-Aufgaben zu erteilen.

   Wenn Sie keinen ARN für die Servicerolle angeben, verwendet Systems Manager eine serviceverknüpfte Rolle in Ihrem Konto. Diese Rolle ist nicht im Dropdown-Menü aufgeführt. Wenn in Ihrem Konto keine geeignete serviceverknüpfte Rolle für Systems Manager vorhanden ist, wird sie erstellt, wenn die Aufgabe erfolgreich registriert wurde. 
**Anmerkung**  
Um die Sicherheitslage zu verbessern, empfehlen wir dringend, eine benutzerdefinierte Richtlinie und eine benutzerdefinierte Servicerolle für die Ausführung Ihrer Aufgaben im Wartungsfenster zu erstellen. Die Richtlinie kann so gestaltet werden, dass sie nur die Berechtigungen gewährt, die für Ihre speziellen Wartungsfensteraufgaben erforderlich sind. Weitere Informationen finden Sie unter [Einrichten von Maintenance Windows](setting-up-maintenance-windows.md).

1. *Nur für Run Command-Aufgaben:*

   (Optional) Gehen Sie für **Output options** (Ausgabeoptionen) wie folgt vor:
   + Aktivieren Sie das Kontrollkästchen **Enable writing to S3 (Schreiben in S3 aktivieren)**, um die Befehlsausgabe in einer Datei zu speichern. Geben Sie die Namen für den Bucket und das Präfix (Ordner) in die Textfelder ein.
   + Aktivieren Sie das Kontrollkästchen **CloudWatch Ausgabe**, um die vollständige Ausgabe in Amazon CloudWatch Logs zu schreiben. Geben Sie den Namen einer CloudWatch Logs-Protokollgruppe ein.
**Anmerkung**  
Die Berechtigungen, die das Schreiben von Daten in einen S3-Bucket oder in CloudWatch Logs ermöglichen, entsprechen denen des Instanzprofils, das dem Knoten zugewiesen ist, und nicht denen des IAM-Benutzers, der diese Aufgabe ausführt. Weitere Informationen finden Sie unter [Erforderliche Instance-Berechtigungen für Systems Manager konfigurieren](setup-instance-permissions.md). Wenn sich der angegebene S3-Bucket oder die angegebene Protokollgruppe in einem anderen befindet, stellen Sie außerdem sicher AWS-Konto, dass das dem Knoten zugeordnete Instanzprofil über die erforderlichen Berechtigungen verfügt, um in diesen Bucket zu schreiben.

1. *Nur für Run Command-Aufgaben:*

   Aktivieren Sie das Kontrollkästchen **SNS-Benachrichtigungen aktivieren** im Abschnitt **SNS-Benachrichtigungen**, wenn Sie über den Status der Befehlsausführung benachrichtigt werden möchten,

   Weitere Informationen zum Konfigurieren von Amazon-SNS-Benachrichtigungen für Run Command finden Sie unter [Überwachung von Systems Manager-Statusänderungen mit Amazon SNS-Benachrichtigungen](monitoring-sns-notifications.md).

1. *Nur für Run Command-Aufgaben:*

   Geben Sie im Abschnitt **Parameters** (Parameter) die Parameter für das Dokument an. 
**Anmerkung**  
In einigen Fällen können Sie einen *Pseudoparameter* für bestimmte Eingabeparameterwerte verwenden. Während der Ausführung übergibt die Wartungsfenster-Aufgabe dann anstelle der Pseudoparameter-Platzhalter richtige Werte. Weitere Informationen finden Sie unter [Verwendung von Pseudo-Parametern bei der Registrierung von Aufgaben im Wartungsfenster](maintenance-window-tasks-pseudo-parameters.md).

1. *Nur für Run Command und Automation-Aufgaben:*

   (Optional) Wählen Sie im **CloudWatch Alarmbereich** unter **Alarmname** einen vorhandenen CloudWatch Alarm aus, der auf Ihre zu überwachende Aufgabe angewendet werden soll. 

   Die Aufgabe wird gestoppt, wenn Ihr Alarm aktiviert wird.
**Anmerkung**  
Um Ihrer Aufgabe einen CloudWatch Alarm zuzuweisen, muss der IAM-Prinzipal, der die Aufgabe ausführt, über die entsprechenden Berechtigungen verfügen`iam:createServiceLinkedRole`. Weitere Informationen zu CloudWatch Alarmen finden Sie unter [ CloudWatch Amazon-Alarme verwenden](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html).

1. Wählen Sie je nach Aufgabentyp eine der folgenden Optionen:
   + **Register Run command task (Run Command-Aufgabe registrieren)**
   + **Register Automation task (Automatisierungsaufgabe registrieren)**
   + **Register Lambda task (Lambda-Aufgabe registrieren)**
   + **Register Step Functions task (Step Functions-Aufgabe registrieren)**

# Deaktivieren oder Aktivieren eines Wartungsfensters mithilfe der Konsole
<a name="sysman-maintenance-disable"></a>

Sie können ein Wartungsfenster in Maintenance Windows deaktivieren oder aktivieren, einem Tool in AWS Systems Manager. Sie können jeweils ein Wartungsfenster auswählen, um die Ausführung des Wartungsfensters entweder zu deaktivieren oder zu aktivieren. Sie können auch mehrere oder alle Wartungsfenster zum Aktivieren und Deaktivieren auswählen.

In diesem Abschnitt wird beschrieben, wie Sie ein Wartungsfenster mit Hilfe der Systems-Manager-Konsole deaktivieren oder aktivieren können. Beispiele dafür, wie Sie dies mithilfe von AWS Command Line Interface (AWS CLI) tun können, finden Sie unter[Tutorial: Aktualisieren Sie ein Wartungsfenster mit dem AWS CLI](maintenance-windows-cli-tutorials-update.md). 

**Topics**
+ [Deaktivieren eines Wartungsfensters mithilfe der Konsole](#sysman-maintenance-disable-mw)
+ [Aktivieren eines Wartungsfensters mit der Konsole](#sysman-maintenance-enable-mw)

## Deaktivieren eines Wartungsfensters mithilfe der Konsole
<a name="sysman-maintenance-disable-mw"></a>

Sie können ein Wartungsfenster deaktivieren, um eine Aufgabe für einen bestimmten Zeitraum anzuhalten, so dass sie später wieder aktiviert werden kann.

**Um ein Wartungsfenster zu deaktivieren**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Maintenance Windows** aus. 

1. Wählen Sie mit Hilfe des Kontrollkästchens neben dem Wartungsfenster, das Sie deaktivieren möchten, ein oder mehrere Wartungsfenster aus.

1. Wählen Sie **Wartungsfenster deaktivieren** im Menü **Aktionen**. Sie werden aufgefordert, Ihre Aktionen zu bestätigen. 

## Aktivieren eines Wartungsfensters mit der Konsole
<a name="sysman-maintenance-enable-mw"></a>

Sie können ein Wartungsfenster aktivieren, um eine Aufgabe wieder aufzunehmen.

**Anmerkung**  
Wenn das Wartungsfenster eine Tariftabelle verwendet und das Startdatum derzeit auf ein Datum und eine vergangene Uhrzeit festgelegt ist, werden das aktuelle Datum und die aktuelle Uhrzeit als Startdatum für das Wartungsfenster verwendet. Sie können das Startdatum des Wartungsfensters vor oder nach der Aktivierung ändern. Weitere Informationen finden Sie unter [Ressourcen für das Wartungsfenster mithilfe der Konsole aktualisieren oder löschen](sysman-maintenance-update.md).

**Ein Wartungsfenster aktivieren**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Maintenance Windows** aus. 

1. Wählen Sie das Kontrollkästchen neben dem Wartungsfenster, um es zu aktivieren.

1. Wählen Sie **Aktionen, Wartungsfenster aktivieren**. Sie werden aufgefordert, Ihre Aktionen zu bestätigen. 

# Ressourcen für das Wartungsfenster mithilfe der Konsole aktualisieren oder löschen
<a name="sysman-maintenance-update"></a>

Sie können in Maintenance Windows, ein Tool in AWS Systems Manager, ein Wartungsfenster aktualisieren oder löschen. Sie können auch die Ziele oder Aufgaben eines Wartungsfensters aktualisieren oder löschen. Wenn Sie die Details eines Wartungsfensters bearbeiten, können Sie den Zeitplan, die Ziele und die Aufgaben ändern. Sie können auch Namen und Beschreibungen für Fenster, Ziele und Aufgaben angeben. Auf diese Weise erhalten Sie einen besseren Eindruck des Zwecks und vereinfachen die Verwaltung Ihrer Fensterwarteschlange.

In diesem Abschnitt wird beschrieben, wie Sie ein Wartungsfenster, Ziele und Aufgaben über die Systems Manager-Konsole aktualisieren oder löschen. Beispiele dafür, wie dies mit der AWS Command Line Interface (AWS CLI) möglich ist, finden Sie unter [Tutorial: Aktualisieren Sie ein Wartungsfenster mit dem AWS CLI](maintenance-windows-cli-tutorials-update.md). 

**Topics**
+ [Aktualisieren oder Löschen eines Wartungsfensters mithilfe der Konsole](#sysman-maintenance-update-mw)
+ [Aktualisieren oder Abmelden von Wartungsfenster-Zielen mithilfe der Konsole](#sysman-maintenance-update-target)
+ [Aktualisieren oder Abmelden von Wartungsfenster-Aufgaben mithilfe der Konsole](#sysman-maintenance-update-tasks)

## Aktualisieren oder Löschen eines Wartungsfensters mithilfe der Konsole
<a name="sysman-maintenance-update-mw"></a>

Sie können ein Wartungsfenster aktualisieren, um den Namen, die Beschreibung und den Zeitplan des Wartungsfensters zu ändern und festzulegen, ob das Wartungsfenster nicht registrierte Ziele zulassen soll.

**So aktualisieren oder löschen Sie ein Wartungsfenster**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Maintenance Windows** aus. 

1. Wählen Sie die Schaltfläche neben dem Wartungsfenster aus, das Sie aktualisieren oder löschen möchten, und führen Sie dann einen der folgenden Schritte aus:
   + Wählen Sie **Löschen** aus. Sie werden aufgefordert, Ihre Aktionen zu bestätigen. 
   + Wählen Sie **Bearbeiten** aus. Ändern Sie auf der Seite **Edit maintenance window** (Wartungsfenster bearbeiten) die Werte und Optionen nach Bedarf und wählen Sie dann **Save changes** (Änderungen speichern) aus.

     Weitere Informationen zu den Konfigurationsoptionen, die Sie ausführen können, finden Sie unter [Erstellen eines Wartungsfensters mit der Konsole](sysman-maintenance-create-mw.md).

## Aktualisieren oder Abmelden von Wartungsfenster-Zielen mithilfe der Konsole
<a name="sysman-maintenance-update-target"></a>

Sie können die Ziele eines Wartungsfensters aktualisieren oder abmelden. Wenn Sie das Ziel eines Wartungsfensters aktualisieren möchten, können Sie einen neuen Zielnamen, eine Beschreibung und einen Eigentümer angeben. Sie können auch verschiedene Ziele auswählen. 

**So aktualisieren oder löschen Sie die Ziele eines Wartungsfensters**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Maintenance Windows** aus. 

1. Wählen Sie den Namen des zu aktualisierenden Wartungsfensters und danach die Registerkarte **Targets** (Ziele) aus und führen Sie dann einen der folgenden Schritte aus:
   + Um Ziele zu aktualisieren, klicken Sie auf die Schaltfläche neben dem zu aktualisierenden Ziel und wählen Sie dann **Edit** (Bearbeiten) aus.
   + Um Ziele abzumelden, klicken Sie auf die Schaltfläche neben dem abzumeldenden Ziel und wählen Sie dann **Deregister target** (Ziel abmelden) aus. Wählen Sie im Dialogfenster **Deregister maintenance windows target (Deregistrierung des Wartungsfensterziels)** die Option **Deregistrierung**.

## Aktualisieren oder Abmelden von Wartungsfenster-Aufgaben mithilfe der Konsole
<a name="sysman-maintenance-update-tasks"></a>

Sie können die Aufgaben eines Wartungsfensters aktualisieren oder abmelden. Wenn Sie eine Aktualisierung durchführen möchten, können Sie einen neuen Aufgabennamen, eine Beschreibung und einen Eigentümer angeben. Bei Run Command und Automation-Aufgaben können Sie ein anderes SSM-Dokument für die Aufgaben wählen. Sie können allerdings den Typ einer Aufgabe nicht durch Bearbeitung ändern. Beispiel: Wenn Sie eine Automatisierungsaufgabe erstellt haben, können Sie die Aufgabe nicht bearbeiten und in eine Run Command-Aufgabe ändern. 

**So aktualisieren oder löschen Sie die Aufgaben eines Wartungsfensters mithilfe der Konsole**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Maintenance Windows** aus. 

1. Wählen Sie den Namen des zu aktualisierenden Wartungsfensters aus.

1. Wählen Sie die Registerkarte **Tasks** (Aufgaben) aus und klicken Sie dann auf die Schaltfläche neben der zu aktualisierenden Aufgabe.

1. Führen Sie eine der folgenden Aktionen aus:
   + Um eine Aufgabe abzumelden, wählen Sie **Deregister task** (Aufgabe abmelden) aus.
   + Um die Aufgabe zu bearbeiten, wählen Sie **Edit (Bearbeiten)** aus. Ändern Sie die Werte und Optionen wie gewünscht und wählen Sie dann **Edit Task** (Aufgabe bearbeiten) aus.

# Tutorials
<a name="maintenance-windows-tutorials"></a>

Die Tutorials in diesem Abschnitt veranschaulichen, wie Sie mit Wartungsfenstern gängige Aufgaben durchführen.

**Erfüllen der Voraussetzungen**  
Erfüllen Sie die folgenden Voraussetzungen, bevor Sie diese Tutorials ausführen.
+ **Konfigurieren der AWS CLI auf Ihrem lokalen Computer**: Bevor Sie AWS CLI-Befehle ausführen können, müssen Sie die CLI auf Ihrem lokalen Computer installieren und konfigurieren. Weitere Informationen finden Sie unter [Installieren oder Aktualisieren der neuesten Version der AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [Installieren des AWS -Tools für PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html).
+ **Überprüfen der Wartungsfenster-Rollen und -Berechtigungen**: Ein AWS-Administrator in Ihrem Konto muss Ihnen die AWS Identity and Access Management (IAM)-Berechtigungen gewähren, die Sie zur Verwaltung von Wartungsfenstern mithilfe der CLI benötigen. Weitere Informationen finden Sie unter [Einrichten von Maintenance Windows](setting-up-maintenance-windows.md).
+ **Erstellen oder Konfigurieren einer mit Systems Manager kompatiblen Instance** Sie benötigen mindestens eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance, die für die Verwendung mit Systems Manager konfiguriert ist, um die Tutorials abzuschließen. Dies bedeutet, dass SSM Agent auf der Instance installiert ist und der Instance ein IAM-Instance-Profil für Systems Manager zugeordnet ist. 

  Wir empfehlen, eine Instance von einem AWS verwalteten Amazon Machine Image (AMI) mit vorinstalliertem Agent zu starten. Weitere Informationen finden Sie unter [Finden Sie AMIs mit dem vorinstallierten SSM Agent](ami-preinstalled-agent.md).

  Weitere Informationen zum Installieren von SSM Agent auf einer Instance finden Sie in den folgenden Themen:
  + [Manuelle Installation und Deinstallation des SSM Agent auf EC2-Instances für Windows Server](manually-install-ssm-agent-windows.md)
  + [Manuelle Installation und Deinstallation des SSM Agent auf EC2-Instances für Linux](manually-install-ssm-agent-linux.md)

  Informationen zum Konfigurieren von IAM-Berechtigungen für Systems Manager für Ihre Instance finden Sie unter [Konfigurieren von erforderlichen Instance-Berechtigungen für Systems Manager](setup-instance-permissions.md).
+ **Erstellen zusätzlicher Ressourcen nach Bedarf**: Run Command, ein Tool in Systems Manager, enthält viele Aufgaben, für die Sie keine anderen Ressourcen erstellen müssen als die, die in diesem Thema über die Voraussetzungen aufgeführt sind. Aus diesem Grund stellen wir Ihnen eine einfache Run Command-Aufgabe bereit, die Sie verwenden können, wenn Sie sich das erste Mal durch die Tutorials arbeiten. Sie benötigen außerdem eine EC2-Instance, die für die Verwendung mit Systems Manager konfiguriert ist, wie weiter oben in diesem Thema beschrieben. Nachdem Sie diese Instance konfiguriert haben, können Sie eine einfache Run Command-Aufgabe registrieren. 

  Das Systems-Manager-Tool Maintenance Windows unterstützt vier Arten von Aufgaben: 
  + Run Command-Befehle
  + Systems Manager Automation-Workflows
  + AWS Lambda-Funktionen
  + AWS Step Functions-Aufgaben

  Wenn eine Wartungsfensteraufgabe, die Sie ausführen möchten, zusätzliche Ressourcen erfordert, gilt im Allgemeinen, dass Sie diese zuerst erstellen sollten. Beispiel: Wenn Sie in einem Wartungsfenster eine AWS Lambda-Funktion ausführen möchten, erstellen Sie zuerst die Lambda-Funktion, bevor Sie beginnen. Erstellen Sie für eine Run Command-Aufgabe zuerst den S3-Bucket zum Speichern der Befehlsausgabe (sofern Sie dies vorhaben) usw.

**Topics**
+ [Tutorials: Wartungsfenster erstellen und verwalten mit dem AWS CLI](maintenance-window-tutorial-cli.md)
+ [Tutorial: Erstellen Sie ein Wartungsfenster zum Patchen über die Konsole](maintenance-window-tutorial-patching.md)

# Tutorials: Wartungsfenster erstellen und verwalten mit dem AWS CLI
<a name="maintenance-window-tutorial-cli"></a>

Dieser Abschnitt enthält Tutorials, die Sie mit der Verwendung der AWS Command Line Interface (AWS CLI) zur Ausführung der folgenden Schritte vertraut machen:
+ Erstellen und Konfigurieren eines Wartungsfensters
+ Anzeigen von Informationen zu Wartungsfenstern
+ Anzeigen von Informationen über Wartungsfenster-Aufgaben und Aufgabenausführungen
+ Aktualisieren eines Wartungsfensters
+ Löschen eines Wartungsfensters

**Behalten Sie den Überblick über die Ressourcen IDs**  
Behalten Sie bei der Ausführung der Aufgaben in diesen AWS CLI Tutorials den Überblick über die Ressourcen, die durch die von Ihnen ausgeführten Befehle IDs generiert wurden. Sie können viele davon als Eingabe für nachfolgende Befehle verwenden. Wenn Sie beispielsweise das Wartungsfenster erstellen, stellt das System eine Wartungsfenster-ID im folgenden Format für Sie bereit.

```
{
   "WindowId":"mw-0c50858d01EXAMPLE"
}
```

Notieren Sie sich die folgenden vom System generierten Informationen, IDs da sie in den Tutorials in diesem Abschnitt verwendet werden:
+ `WindowId`
+ `WindowTargetId`
+ `WindowTaskId`
+ `WindowExecutionId`
+ `TaskExecutionId`
+ `InvocationId`
+ `ExecutionId`

Sie benötigen außerdem die ID der EC2-Instance, die Sie in den Tutorials verwenden möchten. Beispiel: `i-02573cafcfEXAMPLE`

**Topics**
+ [Tutorial: Erstellen und konfigurieren Sie ein Wartungsfenster mit dem AWS CLI](maintenance-windows-cli-tutorials-create.md)
+ [Tutorial: Informationen zu Wartungsfenstern anzeigen mit dem AWS CLI](maintenance-windows-cli-tutorials-describe.md)
+ [Tutorial: Informationen zu Aufgaben und Aufgabenausführungen anzeigen mit dem AWS CLI](mw-cli-tutorial-task-info.md)
+ [Tutorial: Aktualisieren Sie ein Wartungsfenster mit dem AWS CLI](maintenance-windows-cli-tutorials-update.md)
+ [Tutorial: Löschen Sie ein Wartungsfenster mit dem AWS CLI](mw-cli-tutorial-delete-mw.md)

# Tutorial: Erstellen und konfigurieren Sie ein Wartungsfenster mit dem AWS CLI
<a name="maintenance-windows-cli-tutorials-create"></a>

In diesem Tutorial wird gezeigt, wie Sie mit AWS Command Line Interface (AWS CLI) ein Wartungsfenster sowie dessen Ziele und Aufgaben erstellen und konfigurieren. Der Hauptpfad durch das Tutorial besteht aus einfachen Schritten. Sie erstellen ein einziges Wartungsfenster, identifizieren ein einziges Ziel und richten eine einfache Aufgabe ein, die im Wartungsfenster ausgeführt werden soll. Entlang des Pfades stellen wir Informationen bereit, die Sie beim Ausprobieren komplexerer Szenarien unterstützen.

Wenn Sie die Schritte in diesem Tutorial befolgen, ersetzen Sie die Werte in kursivem *red* Text durch Ihre eigenen Optionen und. IDs Ersetzen Sie beispielsweise die ID des Wartungsfensters *mw-0c50858d01EXAMPLE* und die Instanz-ID durch die IDs von *i-02573cafcfEXAMPLE* Ihnen erstellten Ressourcen.

**Topics**
+ [Schritt 1: Erstellen Sie das Wartungsfenster mit dem AWS CLI](mw-cli-tutorial-create-mw.md)
+ [Schritt 2: Registrieren Sie einen Zielknoten im Wartungsfenster mithilfe des AWS CLI](mw-cli-tutorial-targets.md)
+ [Schritt 3: Registrieren Sie eine Aufgabe im Wartungsfenster mithilfe des AWS CLI](mw-cli-tutorial-tasks.md)

# Schritt 1: Erstellen Sie das Wartungsfenster mit dem AWS CLI
<a name="mw-cli-tutorial-create-mw"></a>

In diesem Schritt erstellen Sie ein Wartungsfenster und geben die grundlegenden Optionen, wie z. B. Name, Zeitplan und Dauer, an. In späteren Schritten, wählen Sie die Instance aus, die aktualisiert werden soll, und legen die Aufgabe fest, die ausgeführt wird.

In unserem Beispiel erstellen Sie ein Wartungsfenster, das alle fünf Minuten ausgeführt wird. Normalerweise würden Sie ein Wartungsfenster nicht so häufig ausführen. Mit dieser Rate werden Ihre Ergebnisse des Tutorials schneller ersichtlich. Wir zeigen Ihnen, wie Sie zu einer weniger häufigen Rate wechseln, nachdem die Aufgabe erfolgreich ausgeführt wurde.

**Anmerkung**  
Eine Beschreibung des Verhältnisses zwischen den verschiedenen zeitplanbezogenen Optionen für Wartungsfenster finden Sie unter [Wartungsfenster-Optionen für Planung und aktive Zeiträume](maintenance-windows-schedule-options.md).  
Weitere Informationen zum Arbeiten mit der `--schedule`-Option finden Sie unter [Referenz: Cron- und Rate-Ausdrücke für System Manager](reference-cron-and-rate-expressions.md).

**Um ein Wartungsfenster zu erstellen, verwenden Sie AWS CLI**

1. Öffnen Sie AWS Command Line Interface (AWS CLI) und führen Sie den folgenden Befehl auf Ihrem lokalen Computer aus, um ein Wartungsfenster zu erstellen, das Folgendes bewirkt:
   + Es wird (je nach Bedarf) über bis zu zwei Stunden hinweg alle fünf Minuten ausgeführt.
   + Verhindert, dass bis zu einer Stunde nach der Ausführung des Wartungsfensters neue Aufgaben gestartet werden.
   + Es ermöglicht nicht zugeordnete Ziele (Instances, die Sie nicht beim Wartungsfenster registriert haben).
   + Es gibt durch die Verwendung von benutzerdefinierten Tags an, dass sein Ersteller beabsichtigt, es in einem Tutorial zu verwenden.

------
#### [ Linux & macOS ]

   ```
   aws ssm create-maintenance-window \
       --name "My-First-Maintenance-Window" \
       --schedule "rate(5 minutes)" \
       --duration 2 \
       --cutoff 1 \
       --allow-unassociated-targets \
       --tags "Key=Purpose,Value=Tutorial"
   ```

------
#### [ Windows ]

   ```
   aws ssm create-maintenance-window ^
       --name "My-First-Maintenance-Window" ^
       --schedule "rate(5 minutes)" ^
       --duration 2 ^
       --cutoff 1 ^
       --allow-unassociated-targets ^
       --tags "Key"="Purpose","Value"="Tutorial"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
      "WindowId":"mw-0c50858d01EXAMPLE"
   }
   ```

1. Führen Sie jetzt den folgenden Befehl aus, um Details zu diesem und allen anderen Wartungsfenstern anzuzeigen, die Ihrem Konto bereits zugeordnet sind.

   ```
   aws ssm describe-maintenance-windows
   ```

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
      "WindowIdentities":[
         {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "Name": "My-First-Maintenance-Window",
               "Enabled": true,
               "Duration": 2,
               "Cutoff": 1,
               "NextExecutionTime": "2019-05-11T16:46:16.991Z"
         }
      ]
   }
   ```

Fahren Sie fort mit [Schritt 2: Registrieren Sie einen Zielknoten im Wartungsfenster mithilfe des AWS CLI](mw-cli-tutorial-targets.md).

# Schritt 2: Registrieren Sie einen Zielknoten im Wartungsfenster mithilfe des AWS CLI
<a name="mw-cli-tutorial-targets"></a>

In diesem Schritt registrieren Sie ein Ziel für Ihr neues Wartungsfenster. In diesem Fall geben Sie an, welcher Knoten aktualisiert werden soll, wenn das Wartungsfenster ausgeführt wird. 

Ein Beispiel für die gleichzeitige Registrierung mehrerer Knoten mithilfe von Node IDs, Beispiele für die Verwendung von Tags zur Identifizierung mehrerer Knoten und Beispiele für die Angabe von Ressourcengruppen als Ziele finden Sie unter[Beispiele: Ziele für ein Wartungsfenster registrieren](mw-cli-tutorial-targets-examples.md).

**Anmerkung**  
Sie sollten bereits eine in diesem Schritt zu verwendende Amazon Elastic Compute Cloud (Amazon EC2)-Instance nach der Beschreibung in den [Voraussetzungen für das Maintenance Windows-Tutorial](maintenance-windows-tutorials.md) erstellt haben.

**Um einen Zielknoten mit einem Wartungsfenster zu registrieren, verwenden Sie den AWS CLI**

1. Führen Sie den folgenden Befehl auf Ihrem lokalen Computer aus. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

   ```
   aws ssm register-target-with-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --resource-type "INSTANCE" \
       --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm register-target-with-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --resource-type "INSTANCE" ^
       --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
      "WindowTargetId":"e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
   }
   ```

1. Jetzt führen Sie den folgenden Befehl auf Ihrem lokalen Computer aus, um Details zu Ihrem Wartungsfensterziel anzuzeigen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-targets \
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-targets ^
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "Targets": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
               "ResourceType": "INSTANCE",
               "Targets": [
                   {
                       "Key": "InstanceIds",
                       "Values": [
                           "i-02573cafcfEXAMPLE"
                       ]
                   }
               ]
           }
       ]
   }
   ```

Fahren Sie fort mit [Schritt 3: Registrieren Sie eine Aufgabe im Wartungsfenster mithilfe des AWS CLI](mw-cli-tutorial-tasks.md). 

# Beispiele: Ziele für ein Wartungsfenster registrieren
<a name="mw-cli-tutorial-targets-examples"></a>

Sie können einen einzelnen Knoten mithilfe der Knoten-ID als Ziel registrieren. Die Anleitung dazu finden Sie unter [Schritt 2: Registrieren Sie einen Zielknoten im Wartungsfenster mithilfe des AWS CLI](mw-cli-tutorial-targets.md). Darüber hinaus haben Sie die Möglichkeit, einen oder mehrere Knoten mithilfe der Befehlsformate auf dieser Seite als Ziele zu registrieren.

Im Allgemeinen gibt es zwei Methoden, um Knoten als Ziele für das Wartungsfenster zu identifizieren: durch das Festlegen einzelner Knoten und mithilfe von Ressourcen-Tags. Die Ressourcen-Tags-Methode bietet weitere Optionen, wie in den Beispielen 2 bis 3 gezeigt. 

Sie können auch eine oder mehrere Ressourcengruppen als Ziel eines Wartungsfensters angeben. Eine Ressourcengruppe kann Knoten und viele andere Arten unterstützter AWS Ressourcen enthalten. Die Beispiele 4 und 5 demonstrieren nun, wie Sie Ihren Zielen für das Wartungsfenster Ressourcengruppen hinzufügen.

**Anmerkung**  
Wenn eine einzelne Wartungsfenster-Aufgabe mit mehreren Zielen registriert ist, werden ihre Aufrufe sequenziell und nicht parallel ausgeführt. Wenn Ihre Aufgabe gleichzeitig auf mehreren Zielen ausgeführt werden muss, registrieren Sie eine Aufgabe für jedes Ziel einzeln, und weisen Sie jeder Aufgabe dieselbe Prioritätsstufe zu.

Weitere Informationen zum Erstellen und Verwalten von Ressourcengruppen finden Sie unter [Was sind Ressourcengruppen?](https://docs.aws.amazon.com/ARG/latest/userguide/resource-groups.html) im *AWS -Ressourcengruppen -Benutzerhandbuch* und unter [Resource Groups and Tagging for AWS](https://aws.amazon.com/blogs/aws/resource-groups-and-tagging/) im *AWS News Blog*.

Weitere Informationen zu Kontingenten fürMaintenance Windows, ein Tool in AWS Systems Manager, zusätzlich zu den in den folgenden Beispielen angegebenen, finden Sie unter [Systems Manager Manager-Dienstkontingente](https://docs.aws.amazon.com/general/latest/gr/ssm.html#limits_ssm) in der *Allgemeine Amazon Web Services-Referenz*.

## Beispiel 1: Registrieren Sie mehrere Ziele mithilfe von Node IDs
<a name="mw-target-example-1"></a>

Führen Sie den folgenden Befehl auf Ihrem lokalen Computerformat aus, um mehrere Knoten mithilfe ihres Knotens als Ziele zu registrieren IDs. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "INSTANCE" \
    --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE ^
    --resource-type "INSTANCE" ^
    --target "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE,i-07782c72faEXAMPLE
```

------

**Empfohlene Verwendung**: Besonders nützlich bei der erstmaligen Registrierung einer eindeutigen Gruppe von Knoten bei einem beliebigen Wartungsfenster, wenn die Knoten *nicht* über ein gemeinsames Knoten-Tag verfügen.

**Kontingente:** Sie können insgesamt bis zu 50 Knoten für jedes Wartungsfenster-Ziel angeben.

## Beispiel 2: Registrieren von Zielen mithilfe von Ressourcen-Tags, die auf Knoten angewendet werden
<a name="mw-target-example-2"></a>

Führen Sie den folgenden Befehl auf Ihrer lokalen Maschine aus, um alle Knoten anzumelden, die bereits mit einem von Ihnen zugewiesenen Schlüssel-Wert-Paar markiert wurden. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "INSTANCE" \
    --target "Key=tag:Region,Values=East"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "INSTANCE" ^
    --target "Key=tag:Region,Values=East"
```

------

**Empfohlene Verwendung**: Besonders nützlich bei der erstmaligen Registrierung einer eindeutigen Gruppe von Knoten bei einem beliebigen Wartungsfenster, wenn die Knoten *schon* über ein gemeinsames Knoten-Tag verfügen.

**Kontingente:** Sie können insgesamt bis zu fünf Schlüssel-Wert-Paare für jedes Ziel festlegen. Wenn Sie mehr als ein Schlüssel-Wert-Paar angeben, muss ein Knoten mit *allen* Tag-Schlüsseln und Werten gekennzeichnet werden, die Sie für die Aufnahme in die Zielgruppe angeben.

**Anmerkung**  
Sie können eine Gruppe von Knoten mit dem Tag-Schlüssel `Patch Group` oder `PatchGroup` markieren und die Knoten einem gemeinsamen Schlüsselwert zuweisen, z. B. `my-patch-group`. (Sie müssen `PatchGroup` ohne Leerzeichen verwenden, wenn Sie [Tags in EC2-Instance-Metadaten zugelassen haben](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#allow-access-to-tags-in-IMDS).) Patch Manager, ein Tool in Systems Manager, wertet den Schlüssel `Patch Group` oder `PatchGroup` auf Knoten aus, um zu bestimmen, welche Patch-Baseline für sie gilt. Wenn Ihre Aufgabe das `AWS-RunPatchBaseline`-SSM-Dokument (oder das Legacy-`AWS-ApplyPatchBaseline`-SSM-Dokument) ausführt, können Sie das gleiche `Patch Group`- oder `PatchGroup`-Schlüssel-Wert-Paar angeben, wenn Sie Ziele für ein Wartungsfenster registrieren. Beispiel: `--target "Key=tag:PatchGroup,Values=my-patch-group`. Auf diese Weise können Sie Patches für eine Gruppe von Knoten, die schon der gleichen Patch-Baseline zugeordnet sind, mithilfe eines Wartungsfensters aktualisieren. Weitere Informationen finden Sie unter [Patch-Gruppen](patch-manager-patch-groups.md).

## Beispiel 3: Registrieren von Zielen mithilfe einer Gruppe von Tag-Schlüsseln (ohne Tag-Werte)
<a name="mw-target-example-3"></a>

Führen Sie den folgenden Befehl auf Ihrer lokalen Maschine aus, um Knoten anzumelden, denen alle ein oder mehrere Tag-Schlüssel zugeordnet wurden, unabhängig von ihren Schlüsselwerten. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen.

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "INSTANCE" \
    --target "Key=tag-key,Values=Name,Instance-Type,CostCenter"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "INSTANCE" ^
    --target "Key=tag-key,Values=Name,Instance-Type,CostCenter"
```

------

**Empfohlene Verwendung**: Diese Option ist hilfreich, wenn Sie Knoten als Ziele verwenden möchten, indem Sie mehrere Tag-*Schlüssel* (ohne Werte) angeben und nicht nur einen Tag-Schlüssel oder ein Tag-Schlüssel-Wert-Paar.

**Kontingente:** Sie können insgesamt bis zu fünf Tag-Schlüssel für jedes Ziel festlegen. Wenn Sie mehr als einen Tag-Schlüssel angeben, muss ein Knoten mit *allen* Tag-Schlüsseln und Werten markiert werden, die Sie für die Aufnahme in die Zielgruppe angeben.

## Beispiel 4: Registrieren von Zielen unter Verwendung eines Ressourcengruppennamens
<a name="mw-target-example-4"></a>

Führen Sie den folgenden Befehl zum Registrieren einer bestimmten Ressourcengruppe auf Ihrem lokalen Computer aus, unabhängig von der Art der Ressourcen, die sie enthält. *mw-0c50858d01EXAMPLE*Ersetzen Sie es durch Ihre eigenen Informationen. Wenn die Aufgaben, die Sie dem Wartungsfenster zuweisen, auf eine Art von Ressource in dieser Ressourcengruppe nicht angewendet werden kann, meldet das System möglicherweise einen Fehler. Auch wenn ein solcher Fehler gemeldet wird, werden Aufgaben, für die ein unterstützter Ressourcentyp gefunden wurde, dennoch ausgeführt.

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "RESOURCE_GROUP" \
    --target "Key=resource-groups:Name,Values=MyResourceGroup"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "RESOURCE_GROUP" ^
    --target "Key=resource-groups:Name,Values=MyResourceGroup"
```

------

**Empfohlene Verwendung**: Diese Vorgehensweise ist hilfreich, wenn Sie schnell eine Ressourcengruppe als Ziel angeben möchten, ohne auszuwerten, ob alle Ressourcentypen Ziel des Wartungsfensters sind, oder wenn Sie wissen, dass die Ressourcengruppe nur solche Ressourcentypen enthält, über denen Ihre Aufgaben Aktionen durchführen können.

**Kontingente:** Sie können nur eine Ressourcengruppe als Ziel angeben.

## Beispiel 5: Registrieren von Zielen durch Filtern von Ressourcentypen in einer Ressourcengruppe
<a name="mw-target-example-5"></a>

Führen Sie den folgenden Befehl auf Ihrem lokalen Computer aus, um nur bestimmte Ressourcentypen zu registrieren, die einer Ressourcengruppe angehören, die Sie angeben. *mw-0c50858d01EXAMPLE*Ersetzen Sie durch Ihre eigenen Informationen. Bei dieser Vorgehensweise wird eine Aufgabe, selbst wenn Sie sie für einen Ressourcentyp hinzufügen, der der Ressourcengruppe angehört, nicht ausgeführt, wenn Sie den Filter nicht explizit auf den Ressourcentyp setzen

------
#### [ Linux & macOS ]

```
aws ssm register-target-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --resource-type "RESOURCE_GROUP" \
    --target "Key=resource-groups:Name,Values=MyResourceGroup" \
    "Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::Instance,AWS::ECS::Cluster"
```

------
#### [ Windows ]

```
aws ssm register-target-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --resource-type "RESOURCE_GROUP" ^
    --target "Key=resource-groups:Name,Values=MyResourceGroup" ^
    "Key=resource-groups:ResourceTypeFilters,Values=AWS::EC2::Instance,AWS::ECS::Cluster"
```

------

**Empfohlene Verwendung**: Nützlich, wenn Sie die strenge Kontrolle über die Arten von AWS Ressourcen behalten möchten, für die im Wartungsfenster Aktionen ausgeführt werden können, oder wenn Ihre Ressourcengruppe eine große Anzahl von Ressourcentypen enthält und Sie unnötige Fehlerberichte in Ihren Wartungsfensterprotokollen vermeiden möchten.

**Kontingente:** Sie können nur eine Ressourcengruppe als Ziel angeben.

# Schritt 3: Registrieren Sie eine Aufgabe im Wartungsfenster mithilfe des AWS CLI
<a name="mw-cli-tutorial-tasks"></a>

In diesem Schritt des Tutorials registrieren Sie eine AWS Systems Manager Run Command Aufgabe, die den `df` Befehl auf Ihrer Amazon Elastic Compute Cloud (Amazon EC2) -Instance für Linux ausführt. Die Ergebnisse dieses Standard-Linux-Befehls zeigen, wie viel Speicherplatz frei ist und wie viel Speicherplatz auf dem Festplatten-Dateisystem Ihrer Instance belegt wird.

–oder–

Wenn Sie die Anweisungen an eine Amazon-EC2-Instance für Windows Server anstatt für Linux richten, ersetzen Sie **df** im folgenden Befehl durch **ipconfig**. Die Ausgabe dieses Befehls enthält Details über die IP-Adresse, die Subnetzmaske und das Standard-Gateway für Adapter auf der Ziel-Instance.

Wenn Sie zum Registrieren anderer Aufgabentypen oder zur Verwendung weiterer verfügbarer Run Command Systems Manager-Optionen bereit sind, finden Sie unter [Beispiele: Registrieren von Aufgaben für ein Wartungsfenster](mw-cli-register-tasks-examples.md) weitere Informationen. Dort befinden sich weitere Informationen zu allen vier Aufgabentypen und einigen ihrer wichtigsten Optionen, die Sie beim Planen umfassenderer realer Szenarien unterstützen. 

**So registrieren Sie eine Aufgabe für ein Wartungsfenster**

1. Führen Sie den folgenden Befehl auf Ihrem lokalen Computer aus. Ersetzen Sie jeden *example resource placeholder* durch Ihre Informationen. Die Version, die von einem lokalen Windows-Computer aus ausgeführt werden soll, enthält die Escape-Zeichen („/“), die Sie zum Ausführen des Befehls über Ihr Befehlszeilen-Tool benötigen.

------
#### [ Linux & macOS ]

   ```
   aws ssm register-task-with-maintenance-window \
       --window-id mw-0c50858d01EXAMPLE \
       --task-arn "AWS-RunShellScript" \
       --max-concurrency 1 --max-errors 1 \
       --priority 10 \
       --targets "Key=InstanceIds,Values=i-0471e04240EXAMPLE" \
       --task-type "RUN_COMMAND" \
       --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
   ```

------
#### [ Windows ]

   ```
   aws ssm register-task-with-maintenance-window ^
       --window-id mw-0c50858d01EXAMPLE ^
       --task-arn "AWS-RunShellScript" ^
       --max-concurrency 1 --max-errors 1 ^
       --priority 10 ^
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^
       --task-type "RUN_COMMAND" ^
       --task-invocation-parameters={\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden:

   ```
   {
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE"
   }
   ```

1. Führen Sie nun den folgenden Befehl aus, um Details zu der von Ihnen erstellten Wartungsfensteraufgabe anzuzeigen. 

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-tasks \
       --window-id mw-0c50858d01EXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-tasks ^
       --window-id mw-0c50858d01EXAMPLE
   ```

------

1. Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "Tasks": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
               "TaskArn": "AWS-RunShellScript",
               "Type": "RUN_COMMAND",
               "Targets": [
                   {
                       "Key": "InstanceIds",
                       "Values": [
                           "i-02573cafcfEXAMPLE"
                       ]
                   }
               ],
               "TaskParameters": {},
               "Priority": 10,
               "ServiceRoleArn": "arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole",
               "MaxConcurrency": "1",
               "MaxErrors": "1"
           }
       ]
   }
   ```

1. Räumen Sie basierend auf dem von Ihnen in [Schritt 1: Erstellen Sie das Wartungsfenster mit dem AWS CLI](mw-cli-tutorial-create-mw.md) angegebenen Zeitplan genügend Zeit für die Aufgabenausführung ein. Wenn Sie **--schedule "rate(5 minutes)"** angegeben haben, warten Sie beispielsweise fünf Minuten. Führen Sie dann den folgenden Befehl aus, um Informationen über alle Ausführungen anzuzeigen, die für diese Aufgabe aufgetreten sind. 

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-executions \
       --window-id mw-0c50858d01EXAMPLE
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-executions ^
       --window-id mw-0c50858d01EXAMPLE
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowExecutions": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593493.096,
               "EndTime": 1557593498.611
           }
       ]
   }
   ```

**Tipp**  
Nachdem die Aufgabe erfolgreich durchgeführt wurde, können Sie die Rate verringern, mit der das Wartungsfenster ausgeführt wird. Führen Sie beispielsweise den folgenden Befehl aus, um die Häufigkeit auf einmal pro Woche zu verringern. Ersetzen Sie es *mw-0c50858d01EXAMPLE* durch Ihre eigenen Informationen.  

```
aws ssm update-maintenance-window \
    --window-id mw-0c50858d01EXAMPLE \
    --schedule "rate(7 days)"
```

```
aws ssm update-maintenance-window ^
    --window-id mw-0c50858d01EXAMPLE ^
    --schedule "rate(7 days)"
```
Weitere Informationen zum Verwalten von Wartungsfenster-Zeitplänen finden Sie unter [Referenz: Cron- und Rate-Ausdrücke für System Manager](reference-cron-and-rate-expressions.md) und [Wartungsfenster-Optionen für Planung und aktive Zeiträume](maintenance-windows-schedule-options.md).  
Hinweise zur Verwendung von AWS Command Line Interface (AWS CLI) zum Ändern eines Wartungsfensters finden Sie unter[Tutorial: Aktualisieren Sie ein Wartungsfenster mit dem AWS CLI](maintenance-windows-cli-tutorials-update.md).

Um zu üben, wie Sie AWS CLI Befehle ausführen, um weitere Informationen über Ihre Wartungsfensteraufgabe und deren Ausführung zu [Tutorial: Informationen zu Aufgaben und Aufgabenausführungen anzeigen mit dem AWS CLI](mw-cli-tutorial-task-info.md) erhalten, fahren Sie fort unter.

**Zugreifen auf die Tutorial-Befehlsausgabe**  
Es würde den Rahmen dieses Tutorials sprengen, den zu verwenden AWS CLI , um die *Ausgabe* des Run Command Befehls anzuzeigen, der mit der Ausführung Ihrer Wartungsfensteraufgaben verknüpft ist.

Sie könnten diese Daten jedoch mit dem AWS CLI anzeigen. (Sie können die Ausgabe auch in der Systems Manager-Konsole oder in einer in einem Amazon Simple Storage Service (Amazon S3)-Bucket gespeicherten Protokolldatei anzeigen, sofern Sie das Wartungsfenster zur Befehlsausgabe an dieser Stelle konfiguriert haben.) In diesem Fall würden Sie feststellen, dass die Ausgabe des Befehls **df** auf einer EC2-Instance für Linux ähnlich der folgenden ist.

```
Filesystem 1K-blocks Used Available Use% Mounted on

devtmpfs 485716 0 485716 0% /dev

tmpfs 503624 0 503624 0% /dev/shm

tmpfs 503624 328 503296 1% /run

tmpfs 503624 0 503624 0% /sys/fs/cgroup

/dev/xvda1 8376300 1464160 6912140 18% /
```

Die Ausgabe des Befehls **ipconfig** auf einer EC2-Instance für Windows Server sieht in etwa wie folgt aus:

```
Windows IP Configuration


Ethernet adapter Ethernet 2:

   Connection-specific DNS Suffix  . : example.com
   IPv4 Address. . . . . . . . . . . : 10.24.34.0/23
   Subnet Mask . . . . . . . . . . . : 255.255.255.255
   Default Gateway . . . . . . . . . : 0.0.0.0

Ethernet adapter Ethernet:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : abc1.wa.example.net

Wireless LAN adapter Local Area Connection* 1:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Wireless LAN adapter Wi-Fi:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::100b:c234:66d6:d24f%4
   IPv4 Address. . . . . . . . . . . : 192.0.2.0
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.0.2.0

Ethernet adapter Bluetooth Network Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
```

# Beispiele: Registrieren von Aufgaben für ein Wartungsfenster
<a name="mw-cli-register-tasks-examples"></a>

Sie können eine Aufgabe inRun Command, ein Tool in AWS Systems Manager, mit einem Wartungsfenster registrieren, indem Sie die AWS Command Line Interface (AWS CLI) verwenden, wie unter [Aufgaben im Wartungsfenster registrieren](mw-cli-tutorial-tasks.md) gezeigt. Sie können auch Aufgaben für Workflows, AWS Lambda Funktionen und AWS Step Functions Aufgaben von Systems Manager Automation registrieren, wie weiter unten in diesem Thema gezeigt wird.

**Anmerkung**  
Geben Sie ein oder mehrere Ziele für Wartungsfenster Run Command-Typ-Aufgaben an. Je nach Aufgabe sind Ziele für andere Aufgabentypen im Wartungsfenster (Automatisierung AWS Lambda, und AWS Step Functions) optional. Weitere Informationen zur Ausführung von Aufgaben, die keine Ziele angeben, finden Sie unter [Wartungsfenster-Tasks ohne Ziele registrieren](maintenance-windows-targetless-tasks.md).

In diesem Thema finden Sie Beispiele für die Verwendung des Befehls AWS Command Line Interface (AWS CLI)`register-task-with-maintenance-window`, um jeden der vier unterstützten Aufgabentypen in einem Wartungsfenster zu registrieren. Die Beispiele dienen nur zur Veranschaulichung. Sie können sie abwandeln, um funktionsfähige Befehle zur Aufgabenregistrierung zu erstellen. 

**Verwenden der cli-input-json Option --**  
Zur besseren Verwaltung Ihrer Aufgabenoptionen können Sie die Befehlsoption `--cli-input-json` mit in einer JSON-Datei referenzierten Optionswerten verwenden. 

Um den Inhalt der JSON-Beispieldatei zu verwenden, den wir in den folgenden Beispielen bereitgestellt haben, führen Sie auf Ihrem lokalen Computer die die folgenden Schritte aus:

1. Erstellen Sie eine Datei mit einem Namen wie z. B. `MyRunCommandTask.json`, `MyAutomationTask.json` oder einem anderen von Ihnen bevorzugten Namen.

1. Kopieren Sie den Inhalt der JSON-Beispieldatei in die Datei.

1. Ändern Sie den Inhalt der Datei für Ihre Aufgabenregistrierung ab und speichern Sie dann die Datei.

1. Führen Sie in demselben Verzeichnis, in dem Sie die Datei gespeichert haben, den folgenden Befehl aus. Ersetzen Sie Ihren Dateinamen durch*MyFile.json*. 

------
#### [ Linux & macOS ]

   ```
   aws ssm register-task-with-maintenance-window \
       --cli-input-json file://MyFile.json
   ```

------
#### [ Windows ]

   ```
   aws ssm register-task-with-maintenance-window ^
       --cli-input-json file://MyFile.json
   ```

------

**Pseudo-Parameter in Wartungsfenster-Aufgaben**  
In einigen Beispielen verwenden wir *Pseudoparameter* als Methode zur Übergabe von ID-Informationen an Ihre Aufgaben. Zum Beispiel `{{TARGET_ID}}` und `{{RESOURCE_ID}}` kann verwendet werden, um AWS Ressourcen an Automation-, Lambda- und Step Functions Functions-Aufgaben weiterzugeben IDs . Weitere Informationen zu Pseudoparametern im `--task-invocation-parameters`-Inhalt finden Sie unter [Verwendung von Pseudo-Parametern bei der Registrierung von Aufgaben im Wartungsfenster](maintenance-window-tasks-pseudo-parameters.md). 

**Weitere Informationen**  
+ [Parameteroptionen für den Befehl register-task-with-maintenance -windows](mw-cli-task-options.md).
+ [https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html) in der *AWS CLI Befehlsreferenz*
+ [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_RegisterTaskWithMaintenanceWindow.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_RegisterTaskWithMaintenanceWindow.html) in der *AWS Systems Manager -API-Referenz*

## Beispiele der Aufgabenregistrierung
<a name="task-examples"></a>

Die folgenden Abschnitte enthalten einen AWS CLI Beispielbefehl für die Registrierung eines unterstützten Aufgabentyps und ein JSON-Beispiel, das mit der `--cli-input-json` Option verwendet werden kann.

### Registrieren einer Systems Manager Run Command-Aufgabe
<a name="register-tasks-tutorial-run-command"></a>

Die folgenden Beispiele veranschaulichen, wie Sie Aufgaben von Systems Manager Run Command-Aufgaben mithilfe der AWS CLI bei einem Wartungsfenster registrieren.

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id mw-0c50858d01EXAMPLE \
    --task-arn "AWS-RunShellScript" \
    --max-concurrency 1 --max-errors 1 --priority 10 \
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \
    --task-type "RUN_COMMAND" \
    --task-invocation-parameters '{"RunCommand":{"Parameters":{"commands":["df"]}}}'
```

------
#### [ Windows ]

```
aws ssm register-task-with-maintenance-window ^
    --window-id mw-0c50858d01EXAMPLE ^
    --task-arn "AWS-RunShellScript" ^
    --max-concurrency 1 --max-errors 1 --priority 10 ^
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^
    --task-type "RUN_COMMAND" ^
    --task-invocation-parameters "{\"RunCommand\":{\"Parameters\":{\"commands\":[\"df\"]}}}"
```

------

**JSON-Inhalt für die Verwendung mit der Dateioption `--cli-input-json`:**

```
{
    "TaskType": "RUN_COMMAND",
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Description": "My Run Command task to update SSM Agent on an instance",
    "MaxConcurrency": "1",
    "MaxErrors": "1",
    "Name": "My-Run-Command-Task",
    "Priority": 10,
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "AWS-UpdateSSMAgent",
    "TaskInvocationParameters": {
        "RunCommand": {
            "Comment": "A TaskInvocationParameters test comment",
            "NotificationConfig": {
                "NotificationArn": "arn:aws:sns:region:123456789012:my-sns-topic-name",
                "NotificationEvents": [
                    "All"
                ],
                "NotificationType": "Invocation"
            },
            "OutputS3BucketName": "amzn-s3-demo-bucket",
            "OutputS3KeyPrefix": "S3-PREFIX",
            "TimeoutSeconds": 3600
        }
    }
}
```

### Registrieren einer Systems Manager Automation-Aufgabe
<a name="register-tasks-tutorial-automation"></a>

Die folgenden Beispiele veranschaulichen, wie Systems Manager Automation-Aufgaben mithilfe der bei einem Wartungsfenster registriert werden AWS CLI: 

**AWS CLI Befehl:**

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --task-arn "AWS-RestartEC2Instance" \
    --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole \
    --task-type AUTOMATION \
    --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" \
    --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" \
    --description "Automation task to restart EC2 instances"
```

------
#### [ Windows ]

```
aws ssm register-task-with-maintenance-window ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --task-arn "AWS-RestartEC2Instance" ^
    --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole ^
    --task-type AUTOMATION ^
    --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{TARGET_ID}}'}}" ^
    --priority 0 --name "My-Restart-EC2-Instances-Automation-Task" ^
    --description "Automation task to restart EC2 instances"
```

------

**JSON-Inhalt für die Verwendung mit der Dateioption `--cli-input-json`:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
        "TaskArn": "AWS-PatchInstanceWithRollback",
    "TaskType": "AUTOMATION","TaskInvocationParameters": {
        "Automation": {
            "DocumentVersion": "1",
            "Parameters": {
                "instanceId": [
                    "{{RESOURCE_ID}}"
                ]
            }
        }
    }
}
```

### Eine AWS Lambda Aufgabe registrieren
<a name="register-tasks-tutorial-lambda"></a>

Die folgenden Beispiele veranschaulichen, wie Lambda-Funktionsaufgaben mithilfe der AWS CLI bei einem Wartungsfenster registriert werden. 

Bei diesen Beispielen hat der Benutzer, der die Lambda-Funktion erstellt hat, ihr den Namen `SSMrestart-my-instances` gegeben und zwei Parameter mit dem Namen `instanceId` und `targetType` erstellt.

**Wichtig**  
Die IAM-Richtlinie für Maintenance Windows erfordert, dass Sie den Namen von Lambda-Funktionen (oder Aliasen) das Präfix `SSM` hinzufügen. Bevor Sie mit der Registrierung dieser Art von Aufgabe fortfahren, aktualisieren Sie ihren Namen so, dass er AWS Lambda einschließt`SSM`. Beispiel: Wenn Ihr Lambda-Funktionsname `MyLambdaFunction` lautet, ändern Sie ihn in `SSMMyLambdaFunction`.

**AWS CLI Befehl:**

------
#### [ Linux & macOS ]

**Wichtig**  
Wenn Sie Version 2 von verwenden AWS CLI, müssen Sie die Option `--cli-binary-format raw-in-base64-out` in den folgenden Befehl aufnehmen, wenn Ihre Lambda-Payload nicht base64-codiert ist. Die Option `cli_binary_format` ist nur in Version 2 verfügbar. *Informationen zu diesen und anderen AWS CLI `config` Dateieinstellungen finden Sie im Benutzerhandbuch unter [Unterstützte `config` Dateieinstellungen](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings).AWS Command Line Interface *

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
    --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" \
    --description "A description for my LAMBDA example task" --task-type "LAMBDA" \
    --task-arn "arn:aws:lambda:region:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" \
    --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}","Qualifier": "$LATEST"}}'
```

------
#### [ PowerShell ]

**Wichtig**  
Wenn Sie Version 2 von verwenden AWS CLI, müssen Sie die Option `--cli-binary-format raw-in-base64-out` in den folgenden Befehl aufnehmen, wenn Ihre Lambda-Payload nicht base64-codiert ist. Die Option `cli_binary_format` ist nur in Version 2 verfügbar. *Informationen zu diesen und anderen AWS CLI `config` Dateieinstellungen finden Sie im Benutzerhandbuch unter [Unterstützte `config` Dateieinstellungen](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html#cli-configure-files-settings).AWS Command Line Interface *

```
aws ssm register-task-with-maintenance-window `
    --window-id "mw-0c50858d01EXAMPLE" `
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" `
    --priority 2 --max-concurrency 10 --max-errors 5 --name "My-Lambda-Example" `
    --description "A description for my LAMBDA example task" --task-type "LAMBDA" `
    --task-arn "arn:aws:lambda:region:123456789012:function:serverlessrepo-SSMrestart-my-instances-C4JF9EXAMPLE" `
    --task-invocation-parameters '{\"Lambda\":{\"Payload\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\",\\\"targetType\\\":\\\"{{TARGET_TYPE}}\\\"}\",\"Qualifier\": \"$LATEST\"}}'
```

------

**JSON-Inhalt für die Verwendung mit der Dateioption `--cli-input-json`:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "SSM_RestartMyInstances",
    "TaskType": "LAMBDA",
    "MaxConcurrency": "10",
    "MaxErrors": "10",
    "TaskInvocationParameters": {
        "Lambda": {
            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",
            "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }",
            "Qualifier": "$LATEST"
        }
    },
    "Name": "My-Lambda-Task",
    "Description": "A description for my LAMBDA task",
    "Priority": 5
}
```

### Register a Step Functions task (Eine Step Functions-Aufgabe registrieren)
<a name="register-tasks-tutorial-step-functions"></a>

Die folgenden Beispiele veranschaulichen, wie Sie Aufgaben von Step Functions-Zustandsautomaten mithilfe der AWS CLI bei einem Wartungsfenster registrieren.

**Anmerkung**  
Aufgaben im Wartungsfenster unterstützen nur Zustandsmaschinen-Workflows von Step Functions Standard. Sie unterstützen keine Express-Zustandsmaschinen-Workflows. Informationen zu Workflowtypen für Zustandsmaschinen finden Sie unter [Standard- gegenüber Express-Workflows](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) im *AWS Step Functions -Entwicklerhandbuch*.

In diesen Beispielen erstellte der Benutzer, der den Step Functions-Zustandsautomaten erstellt hatte, einen Zustandsautomaten mit dem Namen „`SSMMyStateMachine`“ und dem Parameter „`instanceId`“.

**Wichtig**  
Die AWS Identity and Access Management (IAM-) Richtlinie für Maintenance Windows erfordert, dass Sie Step Functions Functions-Zustandsmaschinen das Präfix voranstellen. `SSM` Bevor Sie mit dem Registrieren dieser Art von Aufgabe fortfahren, müssen Sie ihren Namen in AWS Step Functions so aktualisieren, dass in ihm `SSM` enthalten ist. Beispiel: Wenn der Name des Zustandsautomaten `MyStateMachine` lautet, ändern Sie ihn in `SSMMyStateMachine`.

**AWS CLI Befehl:**

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-0c50858d01EXAMPLE" \
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
    --task-arn arn:aws:states:region:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE \
    --task-type STEP_FUNCTIONS \
    --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}", "Name":"{{INVOCATION_ID}}"}}' \
    --priority 0 --max-concurrency 10 --max-errors 5 \
    --name "My-Step-Functions-Task" --description "A description for my Step Functions task"
```

------
#### [ PowerShell ]

```
aws ssm register-task-with-maintenance-window `
    --window-id "mw-0c50858d01EXAMPLE" `
    --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" `
    --task-arn arn:aws:states:region:123456789012:stateMachine:SSMMyStateMachine-MggiqEXAMPLE `
    --task-type STEP_FUNCTIONS `
    --task-invocation-parameters '{\"StepFunctions\":{\"Input\":\"{\\\"InstanceId\\\":\\\"{{RESOURCE_ID}}\\\"}\", \"Name\":\"{{INVOCATION_ID}}\"}}' `
    --priority 0 --max-concurrency 10 --max-errors 5 `
    --name "My-Step-Functions-Task" --description "A description for my Step Functions task"
```

------

**JSON-Inhalt für die Verwendung mit der Dateioption `--cli-input-json`:**

```
{
    "WindowId": "mw-0c50858d01EXAMPLE",
    "Targets": [
        {
            "Key": "WindowTargetIds",
            "Values": [
                "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
            ]
        }
    ],
    "TaskArn": "SSM_MyStateMachine",
    "TaskType": "STEP_FUNCTIONS",
    "MaxConcurrency": "10",
    "MaxErrors": "10",
    "TaskInvocationParameters": {
        "StepFunctions": {
            "Input": "{ \"instanceId\": \"{{TARGET_ID}}\" }",
            "Name": "{{INVOCATION_ID}}"
        }
    },
    "Name": "My-Step-Functions-Task",
    "Description": "A description for my Step Functions task",
    "Priority": 5
}
```

# Parameteroptionen für den Befehl register-task-with-maintenance -windows
<a name="mw-cli-task-options"></a>

Der Befehl **register-task-with-maintenance-window** bietet mehrere Optionen für die Konfiguration einer Aufgabe entsprechend Ihren Anforderungen. Einige sind erforderlich, einige sind optional und einige gelten nur für einen einzigen Wartungsfenster-Aufgabentyp.

In diesem Thema erhalten Sie Informationen zu einigen dieser Optionen, um Sie bei der Arbeit mit Beispielen in diesem Abschnitt des Tutorials zu unterstützen. Informationen über alle Befehlsoptionen finden Sie unter **[https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html)** in der *AWS CLI Command Reference*.

**Befehlsoption: `--task-arn`**  
Die Option `--task-arn` wird verwendet, um die Ressource anzugeben, die von der Aufgabe ausgeführt wird. Der von Ihnen angegebene Wert hängt wie in der folgenden Tabelle beschrieben, davon ab, welche Art von Aufgabe Sie registrieren möchten.


**TaskArn Formate für Aufgaben im Wartungsfenster**  

| Wartungsfenster-Aufgabentyp | TaskArn Wert | 
| --- | --- | 
|  **`RUN_COMMAND`** und ** `AUTOMATION`**  |  `TaskArn` ist der SSM-Dokumentname oder der Amazon-Ressourcenname (ARN). Zum Beispiel:  `AWS-RunBatchShellScript`  –oder– `arn:aws:ssm:region:111122223333:document/My-Document`.  | 
|  **`LAMBDA`**  |  `TaskArn` ist der Funktionsname oder -ARN. Zum Beispiel:  `SSMMy-Lambda-Function` –oder– `arn:aws:lambda:region:111122223333:function:SSMMyLambdaFunction`.  Die IAM-Richtlinie für Maintenance Windows erfordert, dass Sie den Namen von Lambda-Funktionen (oder Aliasen) das Präfix `SSM` hinzufügen. Bevor Sie mit der Registrierung dieser Art von Aufgabe fortfahren, aktualisieren Sie ihren Namen so, dass er AWS Lambda einschließt`SSM`. Beispiel: Wenn Ihr Lambda-Funktionsname `MyLambdaFunction` lautet, ändern Sie ihn in `SSMMyLambdaFunction`.   | 
|  **`STEP_FUNCTIONS`**  |  `TaskArn` ist der ARN des Zustandsautomaten. Zum Beispiel:  `arn:aws:states:us-east-2:111122223333:stateMachine:SSMMyStateMachine`.  Die IAM-Richtlinie für Wartungsfenster erfordert, dass Sie Step Functions-Zustandsautomaten-Namen das Präfix `SSM` geben. Bevor Sie diese Art der Aufgabe registrieren können, müssen Sie ihren Namen in AWS Step Functions so aktualisieren, dass in ihm `SSM` enthalten ist. Beispiel: Wenn der Name des Zustandsautomaten `MyStateMachine` lautet, ändern Sie ihn in `SSMMyStateMachine`.   | 

**Befehlsoption: `--service-role-arn`**  
Die Rolle AWS Systems Manager , die bei der Ausführung der Wartungsfensteraufgabe übernommen werden soll. 

Weitere Informationen finden Sie unter [Einrichten von Maintenance Windows](setting-up-maintenance-windows.md).

**Befehlsoption: `--task-invocation-parameters`**  
Die Option `--task-invocation-parameters` wird dazu verwendet, jene Parameter anzugeben, die nur für die vier Aufgabentypen gelten. Die unterstützten Parameter für jede der vier Arten von Aufgaben werden in der folgenden Tabelle beschrieben.

**Anmerkung**  
Weitere Informationen über die Verwendung von Pseudoparametern in `--task-invocation-parameters`-Inhalten, z. B. \$1\$1TARGET\$1ID\$1\$1, finden Sie unter [Verwendung von Pseudo-Parametern bei der Registrierung von Aufgaben im Wartungsfenster](maintenance-window-tasks-pseudo-parameters.md). 

Aufgabenaufruf-Parameteroptionen für Wartungsfenster-Aufgaben


| Wartungsfenster-Aufgabentyp | Verfügbare Parameter  | Beispiel | 
| --- | --- | --- | 
|  **`RUN_COMMAND`**  |  `Comment` `DocumentHash` `DocumentHashType` `NotificationConfig` `OutputS3BucketName` `OutPutS3KeyPrefix` `Parameters` `ServiceRoleArn` `TimeoutSeconds`  |  <pre>"TaskInvocationParameters": {<br />        "RunCommand": {<br />            "Comment": "My Run Command task comment",<br />            "DocumentHash": "6554ed3d--truncated--5EXAMPLE",<br />            "DocumentHashType": "Sha256",<br />            "NotificationConfig": {<br />                "NotificationArn": "arn:aws:sns:region:123456789012:my-sns-topic-name",<br />                "NotificationEvents": [<br />                    "FAILURE"<br />                ],<br />                "NotificationType": "Invocation"<br />            },<br />            "OutputS3BucketName": "amzn-s3-demo-bucket",<br />            "OutputS3KeyPrefix": "S3-PREFIX",<br />            "Parameters": {<br />                "commands": [<br />                    "Get-ChildItem$env: temp-Recurse|Remove-Item-Recurse-force"<br />                ]<br />            },<br />            "ServiceRoleArn": "arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole",<br />            "TimeoutSeconds": 3600<br />        }<br />    }</pre>  | 
|  **`AUTOMATION`**  |  `DocumentVersion` `Parameters`  |  <pre>"TaskInvocationParameters": {<br />        "Automation": {<br />            "DocumentVersion": "3",<br />            "Parameters": {<br />                "instanceid": [<br />                    "{{TARGET_ID}}"<br />                ]<br />            }<br />        }<br />    }</pre>  | 
|  **`LAMBDA`**  |  `ClientContext` `Payload` `Qualifier`  |  <pre>"TaskInvocationParameters": {<br />        "Lambda": {<br />            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",<br />            "Payload": "{ \"targetId\": \"{{TARGET_ID}}\", \"targetType\": \"{{TARGET_TYPE}}\" }",<br />            "Qualifier": "$LATEST"<br />        }<br />    }</pre>  | 
|  **`STEP_FUNCTIONS`**  |  `Input` `Name`  |  <pre>"TaskInvocationParameters": {<br />        "StepFunctions": {<br />            "Input": "{ \"targetId\": \"{{TARGET_ID}}\" }",<br />            "Name": "{{INVOCATION_ID}}"<br />        }<br />    }</pre>  | 

# Tutorial: Informationen zu Wartungsfenstern anzeigen mit dem AWS CLI
<a name="maintenance-windows-cli-tutorials-describe"></a>

In diesem Tutorial sind Befehle enthalten, mit denen Sie Ihre Wartungsfenster, Aufgaben, Ausführungen und Aufrufe aktualisieren oder Informationen darüber abrufen können. Die Beispiele sind nach Befehl geordnet, um zu zeigen, wie Befehlsoptionen verwendet werden, um nach der Art von Details zu filtern, die Sie anzeigen möchten.

Wenn Sie die Schritte in diesem Tutorial befolgen, ersetzen Sie die Werte in kursivem *red* Text durch Ihre eigenen Optionen und. IDs Ersetzen Sie beispielsweise die ID des Wartungsfensters *mw-0c50858d01EXAMPLE* und die Instanz-ID durch die IDs von *i-02573cafcfEXAMPLE* Ihnen erstellten Ressourcen.

Informationen zur Einrichtung und Konfiguration von AWS Command Line Interface (AWS CLI) finden Sie unter [Installation, Aktualisierung und Deinstallation von AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) und [Konfiguration von](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html). AWS CLI

**Topics**
+ [Beispiele für '' describe-maintenance-windows](#mw-cli-tutorials-describe-maintenance-windows)
+ [Beispiele für 'describe-maintenance-window-targets'](#mw-cli-tutorials-describe-maintenance-window-targets)
+ [Beispiele für 'describe-maintenance-window-tasks'](#mw-cli-tutorials-describe-maintenance-window-tasks)
+ [Beispiele für 'describe-maintenance-windows-for-target'](#mw-cli-tutorials-describe-maintenance-windows-for-target)
+ [Beispiele für '' describe-maintenance-window-executions](#mw-cli-tutorials-describe-maintenance-window-executions)
+ [Beispiele für 'describe-maintenance-window-schedule'](#mw-cli-tutorials-describe-maintenance-window-schedule)

## Beispiele für '' describe-maintenance-windows
<a name="mw-cli-tutorials-describe-maintenance-windows"></a>

**Listet alle Wartungsfenster in Ihrem auf AWS-Konto**  
Führen Sie den folgenden Befehl aus.

```
aws ssm describe-maintenance-windows
```

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
   "WindowIdentities":[
      {
         "WindowId":"mw-0c50858d01EXAMPLE",
         "Name":"My-First-Maintenance-Window",
         "Enabled":true,
         "Duration":2,
         "Cutoff":0,
         "NextExecutionTime": "2019-05-18T17:01:01.137Z"        
      },
      {
         "WindowId":"mw-9a8b7c6d5eEXAMPLE",
         "Name":"My-Second-Maintenance-Window",
         "Enabled":true,
         "Duration":4,
         "Cutoff":1,
         "NextExecutionTime": "2019-05-30T03:30:00.137Z"        
      },
   ]
}
```

**Alle aktivierten Wartungsfenster aufführen**  
Führen Sie den folgenden Befehl aus.

```
aws ssm describe-maintenance-windows --filters "Key=Enabled,Values=true"
```

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
   "WindowIdentities":[
      {
         "WindowId":"mw-0c50858d01EXAMPLE",
         "Name":"My-First-Maintenance-Window",
         "Enabled":true,
         "Duration":2,
         "Cutoff":0,
         "NextExecutionTime": "2019-05-18T17:01:01.137Z"        
      },
      {
         "WindowId":"mw-9a8b7c6d5eEXAMPLE",
         "Name":"My-Second-Maintenance-Window",
         "Enabled":true,
         "Duration":4,
         "Cutoff":1,
         "NextExecutionTime": "2019-05-30T03:30:00.137Z"        
      },
   ]
}
```

**Alle deaktivierten Wartungsfenster aufführen**  
Führen Sie den folgenden Befehl aus.

```
aws ssm describe-maintenance-windows --filters "Key=Enabled,Values=false"
```

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
    "WindowIdentities": [
        {
            "WindowId": "mw-6e5c9d4b7cEXAMPLE",
            "Name": "My-Disabled-Maintenance-Window",
            "Enabled": false,
            "Duration": 2,
            "Cutoff": 1
        }
    ]
}
```

**Alle Wartungsfenster aufführen, deren Name mit einem bestimmten Präfix beginnt**  
Führen Sie den folgenden Befehl aus.

```
aws ssm describe-maintenance-windows --filters "Key=Name,Values=My"
```

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
    "WindowIdentities": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "Enabled": true,
            "Duration": 2,
            "Cutoff": 0,
            "NextExecutionTime": "2019-05-18T17:01:01.137Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "Enabled": true,
            "Duration": 4,
            "Cutoff": 1,
            "NextExecutionTime": "2019-05-30T03:30:00.137Z"
        },
        {
            "WindowId": "mw-6e5c9d4b7cEXAMPLE",
            "Name": "My-Disabled-Maintenance-Window",
            "Enabled": false,
            "Duration": 2,
            "Cutoff": 1
        }
    ]
}
```

## Beispiele für 'describe-maintenance-window-targets'
<a name="mw-cli-tutorials-describe-maintenance-window-targets"></a>

**Die Ziele für ein Wartungsfenster anzeigen, das einem bestimmten Eigentümer-Informationswert entspricht**  
Führen Sie den folgenden Befehl aus.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-targets \
    --window-id "mw-6e5c9d4b7cEXAMPLE" \
    --filters "Key=OwnerInformation,Values=CostCenter1"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-targets ^
    --window-id "mw-6e5c9d4b7cEXAMPLE" ^
    --filters "Key=OwnerInformation,Values=CostCenter1"
```

------

**Anmerkung**  
Die unterstützten Filterschlüssel sind `Type`, `WindowTargetId` und `OwnerInformation`.

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
    "Targets": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
            "ResourceType": "INSTANCE",
            "Targets": [
                {
                    "Key": "tag:Name",
                    "Values": [
                        "Production"
                    ]
                }
            ],
            "OwnerInformation": "CostCenter1",
            "Name": "Target1"
        }
    ]
}
```

## Beispiele für 'describe-maintenance-window-tasks'
<a name="mw-cli-tutorials-describe-maintenance-window-tasks"></a>

**Alle registrierten Aufgaben anzeigen, die das SSM-Befehlsdokument `AWS-RunPowerShellScript` aufrufen**  
Führen Sie den folgenden Befehl aus.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-tasks \
    --window-id "mw-0c50858d01EXAMPLE" \
    --filters "Key=TaskArn,Values=AWS-RunPowerShellScript"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-tasks ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --filters "Key=TaskArn,Values=AWS-RunPowerShellScript"
```

------

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
   "Tasks":[
      {
         "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
         "MaxErrors":"1",
         "TaskArn":"AWS-RunPowerShellScript",
         "MaxConcurrency":"1",
         "WindowTaskId":"4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
         "TaskParameters":{
            "commands":{
               "Values":[
                  "driverquery.exe"
               ]
            }
         },
         "Priority":3,
         "Type":"RUN_COMMAND",
         "Targets":[
            {
               "TaskTargetId":"i-02573cafcfEXAMPLE",
               "TaskTargetType":"INSTANCE"
            }
         ]
      },
      {
         "ServiceRoleArn":"arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
         "MaxErrors":"1",
         "TaskArn":"AWS-RunPowerShellScript",
         "MaxConcurrency":"1",
         "WindowTaskId":"4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
         "TaskParameters":{
            "commands":{
               "Values":[
                  "ipconfig"
               ]
            }
         },
         "Priority":1,
         "Type":"RUN_COMMAND",
         "Targets":[
            {
               "TaskTargetId":"i-02573cafcfEXAMPLE",
               "TaskTargetType":"WINDOW_TARGET"
            }
         ]
      }
   ]
}
```

**Alle registrierten Aufgaben mit Priorität 3 anzeigen**  
Führen Sie den folgenden Befehl aus.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-tasks \
    --window-id "mw-9a8b7c6d5eEXAMPLE" \
    --filters "Key=Priority,Values=3"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-tasks ^
    --window-id "mw-9a8b7c6d5eEXAMPLE" ^
    --filters "Key=Priority,Values=3"
```

------

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
   "Tasks":[
      {
         "ServiceRoleArn":"arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
         "MaxErrors":"1",
         "TaskArn":"AWS-RunPowerShellScript",
         "MaxConcurrency":"1",
         "WindowTaskId":"4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
         "TaskParameters":{
            "commands":{
               "Values":[
                  "driverquery.exe"
               ]
            }
         },
         "Priority":3,
         "Type":"RUN_COMMAND",
         "Targets":[
            {
               "TaskTargetId":"i-02573cafcfEXAMPLE",
               "TaskTargetType":"INSTANCE"
            }
         ]
      }
   ]
}
```

**Alle registrierten Aufgaben anzeigen, die Priorität "1" haben und Run Command verwenden**  
Führen Sie den folgenden Befehl aus.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-tasks \
    --window-id "mw-0c50858d01EXAMPLE" \
    --filters "Key=Priority,Values=1" "Key=TaskType,Values=RUN_COMMAND"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-tasks ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --filters "Key=Priority,Values=1" "Key=TaskType,Values=RUN_COMMAND"
```

------

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
    "Tasks": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
            "TaskArn": "AWS-RunShellScript",
            "Type": "RUN_COMMAND",
            "Targets": [
                {
                    "Key": "InstanceIds",
                    "Values": [
                        "i-02573cafcfEXAMPLE"
                    ]
                }
            ],
            "TaskParameters": {},
            "Priority": 1,
            "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
            "MaxConcurrency": "1",
            "MaxErrors": "1"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowTaskId": "8a5c4629-31b0-4edd-8aea-33698EXAMPLE",
            "TaskArn": "AWS-UpdateSSMAgent",
            "Type": "RUN_COMMAND",
            "Targets": [
                {
                    "Key": "InstanceIds",
                    "Values": [
                        "i-0471e04240EXAMPLE"
                    ]
                }
            ],
            "TaskParameters": {},
            "Priority": 1,
            "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
            "MaxConcurrency": "1",
            "MaxErrors": "1",
            "Name": "My-Run-Command-Task",
            "Description": "My Run Command task to update SSM Agent on an instance"
        }
    ]
}
```

## Beispiele für 'describe-maintenance-windows-for-target'
<a name="mw-cli-tutorials-describe-maintenance-windows-for-target"></a>

**Informationen über die Wartungsfensterziele oder -Aufgaben im Zusammenhang mit einem bestimmten Knoten aufführen**  
Führen Sie den folgenden Befehl aus.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-windows-for-target \
    --resource-type INSTANCE \
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" \
    --max-results 10
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-windows-for-target ^
    --resource-type INSTANCE ^
    --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE" ^
    --max-results 10
```

------

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
    "WindowIdentities": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window"
        }
    ]
}
```

## Beispiele für '' describe-maintenance-window-executions
<a name="mw-cli-tutorials-describe-maintenance-window-executions"></a>

**Alle Aufgaben aufführen, die vor einem bestimmten Datum ausgeführt wurden**  
Führen Sie den folgenden Befehl aus.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-executions \
    --window-id "mw-9a8b7c6d5eEXAMPLE" \
    --filters "Key=ExecutedBefore,Values=2019-05-12T05:00:00Z"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-executions ^
    --window-id "mw-9a8b7c6d5eEXAMPLE" ^
    --filters "Key=ExecutedBefore,Values=2019-05-12T05:00:00Z"
```

------

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
    "WindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
            "Status": "FAILED",
            "StatusDetails": "The following SSM parameters are invalid: LevelUp",
            "StartTime": 1557617747.993,
            "EndTime": 1557617748.101
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "WindowExecutionId": "791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557594085.428,
            "EndTime": 1557594090.978
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557593793.483,
            "EndTime": 1557593798.978
        }
    ]
}
```

**Alle Aufgaben aufführen, die nach einem bestimmten Datum ausgeführt wurden**  
Führen Sie den folgenden Befehl aus.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-executions \
    --window-id "mw-9a8b7c6d5eEXAMPLE" \
    --filters "Key=ExecutedAfter,Values=2018-12-31T17:00:00Z"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-executions ^
    --window-id "mw-9a8b7c6d5eEXAMPLE" ^
    --filters "Key=ExecutedAfter,Values=2018-12-31T17:00:00Z"
```

------

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
    "WindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
            "Status": "FAILED",
            "StatusDetails": "The following SSM parameters are invalid: LevelUp",
            "StartTime": 1557617747.993,
            "EndTime": 1557617748.101
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "WindowExecutionId": "791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557594085.428,
            "EndTime": 1557594090.978
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "WindowExecutionId": "ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
            "Status": "SUCCESS",
            "StartTime": 1557593793.483,
            "EndTime": 1557593798.978
        }
    ]
}
```

## Beispiele für 'describe-maintenance-window-schedule'
<a name="mw-cli-tutorials-describe-maintenance-window-schedule"></a>

**Die nächsten zehn Wartungsfenster-Ausführungen, die für einen bestimmten Knoten geplant sind, anzeigen**  
Führen Sie den folgenden Befehl aus.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-schedule \
    --resource-type INSTANCE \
    --targets "Key=InstanceIds,Values=i-07782c72faEXAMPLE" \
    --max-results 10
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-schedule ^
    --resource-type INSTANCE ^
    --targets "Key=InstanceIds,Values=i-07782c72faEXAMPLE" ^
    --max-results 10
```

------

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
    "ScheduledWindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-05-18T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-05-25T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-06-01T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-06-08T23:35:24.902Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "ExecutionTime": "2019-06-15T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-06-22T23:35:24.902Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "ExecutionTime": "2019-06-29T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-07-06T23:35:24.902Z"
        },
        {
            "WindowId": "mw-9a8b7c6d5eEXAMPLE",
            "Name": "My-Second-Maintenance-Window",
            "ExecutionTime": "2019-07-13T23:35:24.902Z"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "My-First-Maintenance-Window",
            "ExecutionTime": "2019-07-20T23:35:24.902Z"
        }
    ],
    "NextToken": "AAEABUXdceT92FvtKld/dGHELj5Mi+GKW/EXAMPLE"
}
```

**Den Wartungsfenster-Zeitplan für Knoten anzeigen, die mit einem bestimmten Schlüssel-Wert-Paar markiert sind**  
Führen Sie den folgenden Befehl aus.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-schedule \
    --resource-type INSTANCE \
    --targets "Key=tag:prod,Values=rhel7"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-schedule ^
    --resource-type INSTANCE ^
    --targets "Key=tag:prod,Values=rhel7"
```

------

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
    "ScheduledWindowExecutions": [
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-20T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-21T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-22T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-23T05:34:56-07:00"
        },
        {
            "WindowId": "mw-0c50858d01EXAMPLE",
            "Name": "DemoRateStartDate",
            "ExecutionTime": "2019-10-24T05:34:56-07:00"
        }
    ],
    "NextToken": "AAEABccwSXqQRGKiTZ1yzGELR6cxW4W/EXAMPLE"
}
```

**Startzeiten für die nächsten vier Ausführungen eines Wartungsfensters anzeigen**  
Führen Sie den folgenden Befehl aus.

------
#### [ Linux & macOS ]

```
aws ssm describe-maintenance-window-schedule \
    --window-id "mw-0c50858d01EXAMPLE" \
    --max-results "4"
```

------
#### [ Windows ]

```
aws ssm describe-maintenance-window-schedule ^
    --window-id "mw-0c50858d01EXAMPLE" ^
    --max-results "4"
```

------

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
    "WindowSchedule": [
        {
            "ScheduledWindowExecutions": [
                {
                    "ExecutionTime": "2019-10-04T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                },
                {
                    "ExecutionTime": "2019-10-11T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                },
                {
                    "ExecutionTime": "2019-10-18T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                },
                {
                    "ExecutionTime": "2019-10-25T10:10:10Z",
                    "Name": "My-First-Maintenance-Window",
                    "WindowId": "mw-0c50858d01EXAMPLE"
                }
            ]
        }
    ]
}
```

# Tutorial: Informationen zu Aufgaben und Aufgabenausführungen anzeigen mit dem AWS CLI
<a name="mw-cli-tutorial-task-info"></a>

In diesem Tutorial wird gezeigt, wie Sie mit AWS Command Line Interface (AWS CLI) Details zu Ihren abgeschlossenen Aufgaben im Wartungsfenster anzeigen können. 

Wenn Sie direkt von [Tutorial: Erstellen und konfigurieren Sie ein Wartungsfenster mit dem AWS CLI](maintenance-windows-cli-tutorials-create.md) fortfahren, überprüfen Sie, dass genügend Zeit verstrichen ist, damit das Wartungsfenster mindestens einmal ausgeführt werden konnte, um die Ausführungsergebnisse anzuzeigen.

Wenn Sie die Schritte in diesem Tutorial befolgen, ersetzen Sie die Werte in kursivem *red* Text durch Ihre eigenen Optionen und. IDs Ersetzen Sie beispielsweise die ID des Wartungsfensters *mw-0c50858d01EXAMPLE* und die Instanz-ID durch die IDs von *i-02573cafcfEXAMPLE* Ihnen erstellten Ressourcen.

**Um Informationen über Aufgaben und Aufgabenausführungen mit dem AWS CLI**

1. Führen Sie den folgenden Befe.l aus, um eine Liste der Aufgabenausführungen für ein bestimmtes Wartungsfenster anzuzeigen:

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-executions \
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-executions ^
       --window-id "mw-0c50858d01EXAMPLE"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowExecutions": [
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593793.483,
               "EndTime": 1557593798.978
           },
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "791b72e0-f0da-4021-8b35-f95dfEXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593493.096,
               "EndTime": 1557593498.611
           },
           {
               "WindowId": "mw-0c50858d01EXAMPLE",
               "WindowExecutionId": "ecec60fa-6bb0-4d26-98c7-140308EXAMPLE",
               "Status": "SUCCESS",
               "StatusDetails": "No tasks to execute.",
               "StartTime": 1557593193.309,
               "EndTime": 1557593193.334
           }
       ]
   }
   ```

1. Führen Sie den folgenden Befehl aus, um Informationen zu der Aufgabenausführung eines Wartungsfensters abzurufen.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-maintenance-window-execution \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm get-maintenance-window-execution ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
       "TaskIds": [
           "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
       ],
       "Status": "SUCCESS",
       "StartTime": 1557593493.096,
       "EndTime": 1557593498.611
   }
   ```

1. Führen Sie den folgenden Befehl aus, um eine Liste der Aufgabenausführungen als Teil einer Wartungsfenster-Ausführung anzuzeigen.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-execution-tasks \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-execution-tasks ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowExecutionTaskIdentities": [
           {
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "TaskExecutionId": "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE",
               "Status": "SUCCESS",
               "StartTime": 1557593493.162,
               "EndTime": 1557593498.57,
               "TaskArn": "AWS-RunShellScript",
               "TaskType": "RUN_COMMAND"
           }
       ]
   }
   ```

1. Führen Sie den folgenden Befehl aus, um Details zu einer Aufgabenausführung abzurufen.

------
#### [ Linux & macOS ]

   ```
   aws ssm get-maintenance-window-execution-task \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" \
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm get-maintenance-window-execution-task ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" ^
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
       "TaskExecutionId": "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE",
       "TaskArn": "AWS-RunShellScript",
       "ServiceRole": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
       "Type": "RUN_COMMAND",
       "TaskParameters": [
           {
               "aws:InstanceId": {
                   "Values": [
                       "i-02573cafcfEXAMPLE"
                   ]
               },
               "commands": {
                   "Values": [
                       "df"
                   ]
               }
           }
       ],
       "Priority": 10,
       "MaxConcurrency": "1",
       "MaxErrors": "1",
       "Status": "SUCCESS",
       "StartTime": 1557593493.162,
       "EndTime": 1557593498.57
   }
   ```

1. Führen Sie den folgenden Befehl aus, um die spezifischen Aufgabenaufrufe abzurufen, die bei einer Aufgabenausführung durchgeführt werden.

------
#### [ Linux & macOS ]

   ```
   aws ssm describe-maintenance-window-execution-task-invocations \
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" \
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------
#### [ Windows ]

   ```
   aws ssm describe-maintenance-window-execution-task-invocations ^
       --window-execution-id "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE" ^
       --task-id "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowExecutionTaskInvocationIdentities": [
           {
               "WindowExecutionId": "14bea65d-5ccc-462d-a2f3-e99c8EXAMPLE",
               "TaskExecutionId": "c9b05aba-197f-4d8d-be34-e73fbEXAMPLE",
               "InvocationId": "c336d2ab-09de-44ba-8f6a-6136cEXAMPLE",
               "ExecutionId": "76a5a04f-caf6-490c-b448-92c02EXAMPLE",
               "TaskType": "RUN_COMMAND",
               "Parameters": "{\"documentName\":\"AWS-RunShellScript\",\"instanceIds\":[\"i-02573cafcfEXAMPLE\"],\"maxConcurrency\":\"1\",\"maxErrors\":\"1\",\"parameters\":{\"commands\":[\"df\"]}}",
               "Status": "SUCCESS",
               "StatusDetails": "Success",
               "StartTime": 1557593493.222,
               "EndTime": 1557593498.466
           }
       ]
   }
   ```

# Tutorial: Aktualisieren Sie ein Wartungsfenster mit dem AWS CLI
<a name="maintenance-windows-cli-tutorials-update"></a>

Dieses Tutorial zeigt, wie Sie das AWS Command Line Interface (AWS CLI) verwenden, um ein Wartungsfenster zu aktualisieren. Es zeigt Ihnen auch, wie Sie verschiedene Aufgabentypen aktualisieren, einschließlich der Aufgabentypen für AWS Systems Manager Run Command und Automatisierung AWS Lambda, und AWS Step Functions. 

In den Beispielen dieses Abschnitts werden die folgenden Systems Manager-Aktionen zum Aktualisieren eines Wartungsfensters verwendet:
+ [UpdateMaintenanceWindow](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateMaintenanceWindow.html)
+ [UpdateMaintenanceWindowTarget](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateMaintenanceWindowTarget.html)
+ [UpdateMaintenanceWindowTask](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_UpdateMaintenanceWindowTask.html)
+ [DeregisterTargetFromMaintenanceWindow](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DeregisterTargetFromMaintenanceWindow.html)

Weitere Informationen zum Aktualisieren eines Wartungsfensters über die Systems Manager-Konsole finden Sie unter [Ressourcen für das Wartungsfenster mithilfe der Konsole aktualisieren oder löschen](sysman-maintenance-update.md). 

Wenn Sie die Schritte in diesem Tutorial befolgen, ersetzen Sie die Werte in kursivem *red* Text durch Ihre eigenen Optionen und. IDs Ersetzen Sie beispielsweise die ID des Wartungsfensters *mw-0c50858d01EXAMPLE* und die Instanz-ID durch die IDs von *i-02573cafcfEXAMPLE* Ihnen erstellten Ressourcen.

**Um ein Wartungsfenster mit dem zu aktualisieren AWS CLI**

1. Öffnen Sie das AWS CLI und führen Sie den folgenden Befehl aus, um ein Ziel so zu aktualisieren, dass es einen Namen und eine Beschreibung enthält.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-target \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --name "My-Maintenance-Window-Target" \
       --description "Description for my maintenance window target"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-target ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --name "My-Maintenance-Window-Target" ^
       --description "Description for my maintenance window target"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
       "Targets": [
           {
               "Key": "InstanceIds",
               "Values": [
                   "i-02573cafcfEXAMPLE"
               ]
           }
       ],
       "Name": "My-Maintenance-Window-Target",
       "Description": "Description for my maintenance window target"
   }
   ```

1. Führen Sie den folgenden Befehl aus, um mit der `replace`-Option das Beschreibungsfeld zu entfernen und ein zusätzliches Ziel hinzuzufügen. Das Beschreibungsfeld wird gelöscht, da die Aktualisierung das Feld nicht enthält (NULL-Wert). Stellen Sie sicher, dass Sie einen zusätzlichen Knoten angeben, der für die Verwendung mit Systems Manager konfiguriert wurde.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-target \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "d208dedf-3f6b-41ff-ace8-8e751EXAMPLE" \
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE" \
       --name "My-Maintenance-Window-Target" \
       --replace
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-target ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "d208dedf-3f6b-41ff-ace8-8e751EXAMPLE" ^
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE,i-0471e04240EXAMPLE" ^
       --name "My-Maintenance-Window-Target" ^
       --replace
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE",
       "Targets": [
           {
               "Key": "InstanceIds",
               "Values": [
                   "i-02573cafcfEXAMPLE",
                   "i-0471e04240EXAMPLE"
               ]
           }
       ],
       "Name": "My-Maintenance-Window-Target"
   }
   ```

1. Die Option `start-date` erlaubt Ihnen, die Aktivierung eines Wartungsfensters bis zu einem angegebenen künftigen Zeitpunkt zu verzögern. Die Option `end-date` erlaubt Ihnen, ein in der Zukunft liegendes Datum sowie eine Uhrzeit festzulegen, nach dem das Wartungsfenster nicht mehr ausgeführt wird. Geben Sie die Optionen im erweiterten ISO-8601-Format an.

   Führen Sie den folgenden Befehl aus, um ein Datum oder eine Zeitspanne für die regelmäßig geplanten Wartungsfenster-Ausführungen anzugeben.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --start-date "2020-10-01T10:10:10Z" \
       --end-date "2020-11-01T10:10:10Z"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --start-date "2020-10-01T10:10:10Z" ^
       --end-date "2020-11-01T10:10:10Z"
   ```

------

1. Führen Sie den folgenden Befehl aus, um eine Run Command-Aufgabe zu aktualisieren.
**Tipp**  
Wenn es sich bei Ihrem Ziel um eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance für Windows Server handelt, ändern Sie `df` auf `ipconfig` und `AWS-RunShellScript` auf `AWS-RunPowerShellScript` im folgenden Befehl.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --task-arn "AWS-RunShellScript" \
       --service-role-arn "arn:aws:iam::account-id:role/MaintenanceWindowsRole" \
       --task-invocation-parameters "RunCommand={Comment=Revising my Run Command task,Parameters={commands=df}}" \
       --priority 1 --max-concurrency 10 --max-errors 4 \
       --name "My-Task-Name" --description "A description for my Run Command task"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --task-arn "AWS-RunShellScript" ^
       --service-role-arn "arn:aws:iam::account-id:role/MaintenanceWindowsRole" ^
       --task-invocation-parameters "RunCommand={Comment=Revising my Run Command task,Parameters={commands=df}}" ^
       --priority 1 --max-concurrency 10 --max-errors 4 ^
       --name "My-Task-Name" --description "A description for my Run Command task"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": [
                   "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
               ]
           }
       ],
       "TaskArn": "AWS-RunShellScript",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "RunCommand": {
               "Comment": "Revising my Run Command task",
               "Parameters": {
                   "commands": [
                       "df"
                   ]
               }
           }
       },
       "Priority": 1,
       "MaxConcurrency": "10",
       "MaxErrors": "4",
       "Name": "My-Task-Name",
       "Description": "A description for my Run Command task"
   }
   ```

1. Passen Sie den folgenden Befehl aus und führen Sie ihn aus, um eine Lambda-Aufgabe zu aktualisieren.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id mw-0c50858d01EXAMPLE \
       --window-task-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --task-arn "arn:aws:lambda:region:111122223333:function:SSMTestLambda" \
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" \
       --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}"}}' \
       --priority 1 --max-concurrency 10 --max-errors 5 \
       --name "New-Lambda-Task-Name" \
       --description "A description for my Lambda task"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id mw-0c50858d01EXAMPLE ^
       --window-task-id 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --task-arn --task-arn "arn:aws:lambda:region:111122223333:function:SSMTestLambda" ^
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" ^
       --task-invocation-parameters '{"Lambda":{"Payload":"{\"InstanceId\":\"{{RESOURCE_ID}}\",\"targetType\":\"{{TARGET_TYPE}}\"}"}}' ^
       --priority 1 --max-concurrency 10 --max-errors 5 ^
       --name "New-Lambda-Task-Name" ^
       --description "A description for my Lambda task"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
           }
       ],
       "TaskArn": "arn:aws:lambda:us-east-2:111122223333:function:SSMTestLambda",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "Lambda": {
               "Payload": "e30="
           }
       },
       "Priority": 1,
       "MaxConcurrency": "10",
       "MaxErrors": "5",
       "Name": "New-Lambda-Task-Name",
       "Description": "A description for my Lambda task"
   }
   ```

1. Wenn Sie eine Step Functions Functions-Aufgabe aktualisieren, passen Sie sie an und führen Sie den folgenden Befehl aus, um sie zu aktualisieren task-invocation-parameters.

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --task-arn "arn:aws:states:region:execution:SSMStepFunctionTest" \
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" \
       --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}"}}' \
       --priority 0 --max-concurrency 10 --max-errors 5 \
       --name "My-Step-Functions-Task" \
       --description "A description for my Step Functions task"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --task-arn "arn:aws:states:region:execution:SSMStepFunctionTest" ^
       --service-role-arn "arn:aws:iam:account-id:role/MaintenanceWindowsRole" ^
       --task-invocation-parameters '{"StepFunctions":{"Input":"{\"InstanceId\":\"{{RESOURCE_ID}}\"}"}}' ^
       --priority 0 --max-concurrency 10 --max-errors 5 ^
       --name "My-Step-Functions-Task" ^
       --description "A description for my Step Functions task"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": [
                   "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
               ]
           }
       ],
       "TaskArn": "arn:aws:states:us-east-2:111122223333:execution:SSMStepFunctionTest",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MaintenanceWindowsRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "StepFunctions": {
               "Input": "{\"instanceId\":\"{{RESOURCE_ID}}\"}"
           }
       },
       "Priority": 0,
       "MaxConcurrency": "10",
       "MaxErrors": "5",
       "Name": "My-Step-Functions-Task",
       "Description": "A description for my Step Functions task"
   }
   ```

1. Führen Sie den folgenden Befehl aus, um ein Ziel von einem Wartungsfenster abzumelden. In diesem Beispiel wird der `safe`-Parameter verwendet, um zu bestimmen, ob beliebige Aufgaben auf das Ziel verweisen und es sicher abgemeldet werden kann.

------
#### [ Linux & macOS ]

   ```
   aws ssm deregister-target-from-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --safe
   ```

------
#### [ Windows ]

   ```
   aws ssm deregister-target-from-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --safe
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   An error occurred (TargetInUseException) when calling the DeregisterTargetFromMaintenanceWindow operation: 
   This Target cannot be deregistered because it is still referenced in Task: 4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE
   ```

1. Führen Sie den folgenden Befehl aus, um ein Ziel auch dann von einem Wartungsfenster abzumelden, wenn eine Aufgabe auf das Ziel verweist. Sie können den Abmeldevorgang mit dem `no-safe`-Parameter erzwingen.

------
#### [ Linux & macOS ]

   ```
   aws ssm deregister-target-from-maintenance-window \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" \
       --no-safe
   ```

------
#### [ Windows ]

   ```
   aws ssm deregister-target-from-maintenance-window ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-target-id "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE" ^
       --no-safe
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTargetId": "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
   }
   ```

1. Führen Sie den folgenden Befehl aus, um eine Run Command-Aufgabe zu aktualisieren. Dieses Beispiel verwendet einen Parameter Store Systems Manager-Parameter mit dem Namen `UpdateLevel` und der folgenden Formatierung: `{{ssm:UpdateLevel}}`'

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"  \
       --task-invocation-parameters "RunCommand={Comment=A comment for my task update,Parameters={UpdateLevel='{{ssm:UpdateLevel}}'}}"
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=InstanceIds,Values=i-02573cafcfEXAMPLE"  ^
       --task-invocation-parameters "RunCommand={Comment=A comment for my task update,Parameters={UpdateLevel='{{ssm:UpdateLevel}}'}}"
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "InstanceIds",
               "Values": [
                   "i-02573cafcfEXAMPLE"
               ]
           }
       ],
       "TaskArn": "AWS-RunShellScript",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "RunCommand": {
               "Comment": "A comment for my task update",
               "Parameters": {
                   "UpdateLevel": [
                       "{{ssm:UpdateLevel}}"
                   ]
               }
           }
       },
       "Priority": 10,
       "MaxConcurrency": "1",
       "MaxErrors": "1"
   }
   ```

1. Führen Sie den folgenden Befehl aus, um eine Automatisierungsaufgabe so zu aktualisieren, dass `WINDOW_ID`-Parameter und `WINDOW_TASK_ID`-Parameter als `task-invocation-parameters`-Parameter angegeben werden:

------
#### [ Linux & macOS ]

   ```
   aws ssm update-maintenance-window-task \
       --window-id "mw-0c50858d01EXAMPLE" \
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" \
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE \
       --task-arn "AutoTestDoc" \
       --service-role-arn "arn:aws:iam:account-id:role/MyMaintenanceWindowServiceRole \
       --task-invocation-parameters "Automation={Parameters={InstanceId='{{RESOURCE_ID}}',initiator='{{WINDOW_ID}}.Task-{{WINDOW_TASK_ID}}'}}" \
       --priority 3 --max-concurrency 10 --max-errors 5
   ```

------
#### [ Windows ]

   ```
   aws ssm update-maintenance-window-task ^
       --window-id "mw-0c50858d01EXAMPLE" ^
       --window-task-id "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE" ^
       --targets "Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE ^
       --task-arn "AutoTestDoc" ^
       --service-role-arn "arn:aws:iam:account-id:role/MyMaintenanceWindowServiceRole ^
       --task-invocation-parameters "Automation={Parameters={InstanceId='{{RESOURCE_ID}}',initiator='{{WINDOW_ID}}.Task-{{WINDOW_TASK_ID}}'}}" ^
       --priority 3 --max-concurrency 10 --max-errors 5
   ```

------

   Die vom System zurückgegebenen Informationen ähneln den Folgenden.

   ```
   {
       "WindowId": "mw-0c50858d01EXAMPLE",
       "WindowTaskId": "4f7ca192-7e9a-40fe-9192-5cb15EXAMPLE",
       "Targets": [
           {
               "Key": "WindowTargetIds",
               "Values": [
                   "e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE"
               ]
           }
       ],
       "TaskArn": "AutoTestDoc",
       "ServiceRoleArn": "arn:aws:iam::111122223333:role/MyMaintenanceWindowServiceRole",
       "TaskParameters": {},
       "TaskInvocationParameters": {
           "Automation": {
               "Parameters": {
                   "multi": [
                       "{{WINDOW_TASK_ID}}"
                   ],
                   "single": [
                       "{{WINDOW_ID}}"
                   ]
               }
           }
       },
       "Priority": 0,
       "MaxConcurrency": "10",
       "MaxErrors": "5",
       "Name": "My-Automation-Task",
       "Description": "A description for my Automation task"
   }
   ```

# Tutorial: Löschen Sie ein Wartungsfenster mit dem AWS CLI
<a name="mw-cli-tutorial-delete-mw"></a>

Um ein in diesen Tutorials erstelltes Wartungsfenster zu löschen, führen Sie den folgenden Befehl aus.

```
aws ssm delete-maintenance-window --window-id "mw-0c50858d01EXAMPLE"
```

Die vom System zurückgegebenen Informationen ähneln den Folgenden.

```
{
   "WindowId":"mw-0c50858d01EXAMPLE"
}
```

# Tutorial: Erstellen Sie ein Wartungsfenster zum Patchen über die Konsole
<a name="maintenance-window-tutorial-patching"></a>

**Wichtig**  
Sie können dieses ältere Thema weiterhin zum Erstellen eines Wartungsfensters zum Patchen verwenden. Wir empfehlen jedoch, stattdessen eine Patch-Richtlinie zu verwenden. Weitere Informationen erhalten Sie unter [Patch-Richtlinienkonfigurationen in Quick Setup](patch-manager-policies.md) und [Das Patchen für Instances in einer Organisation mithilfe einer Patch-Richtlinie für Quick Setup konfigurieren](quick-setup-patch-manager.md). 

Um die Auswirkungen auf die Verfügbarkeit Ihres Servers zu minimieren, empfehlen wir, ein Wartungsfenster zu konfigurieren, um die Patches dann einzuspielen, wenn der Geschäftsbetrieb dadurch nicht unterbrochen wird.

Sie müssen Rollen und Berechtigungen für Maintenance Windows ein Tool in konfigurieren AWS Systems Manager, bevor Sie mit diesem Verfahren beginnen. Weitere Informationen finden Sie unter [Einrichten von Maintenance Windows](setting-up-maintenance-windows.md). 

**So erstellen Sie ein Wartungsfenster für das Einspielen von Patches**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Maintenance Windows** aus.

1. Wählen Sie **Create maintenance window (Wartungsfenster erstellen)** aus.

1. Geben Sie im Feld **Name** einen Namen ein, aus dem hervorgeht, dass das Wartungsfenster für das Einspielen von kritischen und wichtigen Updates verwendet wird.

1. (Optional) Geben Sie unter **Description (Beschreibung)** eine Beschreibung ein. 

1. Wählen Sie **Allow unregistered targets** (Nicht registrierte Ziele erlauben), wenn Sie erlauben möchten, dass eine Wartungsfensteraufgabe auf verwalteten Knoten ausgeführt wird, obwohl diese Knoten nicht als Ziele registriert wurden.

   Falls Sie diese Option wählen, können Sie die nicht registrierten Knoten (nach Knoten-ID) auswählen, wenn Sie eine Aufgabe für das Wartungsfenster registrieren.

   Sollten Sie diese Option nicht wählen, müssen Sie die zuvor registrierten Ziele auswählen, wenn Sie eine Aufgabe für das Wartungsfenster registrieren. 

1. Geben Sie oben im Abschnitt **Schedule (Zeitplan)** einen Zeitplan für das Wartungsfenster an, indem Sie eine der drei Planungsoptionen verwenden.

   Hinweise zum Erstellen von cron/rate Ausdrücken finden Sie unter[Referenz: Cron- und Rate-Ausdrücke für System Manager](reference-cron-and-rate-expressions.md).

1. Geben Sie unter **Duration (Dauer)** die Anzahl der Stunden ein, die das Wartungsfenster ausgeführt wird. Der Wert, den Sie angeben, bestimmt die spezifische Endzeit für das Wartungsfenster basierend auf dem Zeitpunkt, an dem es beginnt. Nach der resultierenden Endzeit dürfen keine Wartungsfenster-Aufgaben gestartet werden, abzüglich der Anzahl der Stunden, die Sie für **Stop initiating tasks (Initiieren von Aufgaben beenden)** im nächsten Schritt angeben. 

   Beispiel: Wenn das Wartungsfenster um 15:00 Uhr beginnt, die Dauer drei Stunden beträgt und der Wert **Stop initiating tasks (Initiieren von Aufgaben beenden)** eine Stunde beträgt, können nach 17:00 Uhr keine Wartungsfenster-Aufgaben gestartet werden. 

1. Geben Sie unter **Stop initiating tasks (Initiieren von Aufgaben beenden)** die Anzahl der Stunden für den Zeitpunkt vor dem Ende des Wartungsfensters an, ab dem vom System keine neuen auszuführenden Aufgaben mehr geplant werden sollen. 

1. (Optional) Geben Sie unter **Window start date** (Startzeit des Fensters) ein Datum und eine Uhrzeit im erweiterten ISO-8601-Format an, zu dem bzw. der das Wartungsfenster aktiviert werden soll. Auf diese Weise können Sie die Aktivierung des Wartungsfensters bis zum angegebenen künftigen Zeitpunkt verzögern.

1. (Optional) Geben Sie unter **Window end date** (Enddatum des Fensters) ein Datum und eine Uhrzeit im erweiterten ISO-8601-Format an, zu dem bzw. der das Wartungsfenster deaktiviert werden soll. Auf diese Weise können Sie ein in der Zukunft liegendes Datum sowie eine Uhrzeit festlegen, nach dem das Wartungsfenster nicht mehr ausgeführt wird.

1. (Optional) Geben Sie unter **Zeitzone planen** die Zeitzone im IANA-Format (Internet Assigned Numbers Authority) an, auf der die Ausführung geplanter Wartungsfenster basieren soll. Zum Beispiel: "America/Los\$1Angeles", "etc/UTC", or "Asia/Seoul“.

   Weitere Informationen zu gültigen Formaten finden Sie unter [Time Zone Database (Zeitzonendatenbank)](https://www.iana.org/time-zones) auf der IANA-Website.

1. (Optional) Wenden **Sie im Bereich „Tags verwalten**“ ein oder mehrere name/value Tag-Schlüsselpaare auf das Wartungsfenster an.

   Tags sind optionale Metadaten, die Sie einer Ressource zuweisen. Mithilfe von Tags können Sie eine Ressource unterschiedlich kategorisieren, beispielsweise nach Zweck, Besitzer oder Umgebung. Sie können beispielsweise dieses Wartungsfenster mit Tags versehen, um die Aufgabentypen, die darin ausgeführt werden, zu identifizieren. In diesem Fall könnten Sie das folgende name/value Schlüsselpaar angeben:
   + `Key=TaskType,Value=Patching`

1. Wählen Sie **Create maintenance window (Wartungsfenster erstellen)** aus.

1. Wählen Sie in der Liste mit den Wartungsfenstern das gerade erstellte Wartungsfenster aus und klicken Sie anschließend auf **Actions (Aktionen)**, **Register targets (Ziele registrieren)**.

1. (Optional) Geben Sie im Abschnitt **Maintenance window target details** einen Namen, eine Beschreibung und Eigentümerinformationen (Ihren Namen oder Alias) für dieses Ziel an.

1. Wählen Sie für die **Zielauswahl** die Option **Instance-Tags festlegen** aus.

1. Geben Sie im Feld **Instance-Tags angeben** einen Tag-Schlüssel und einen Tag-Wert ein, um die Knoten zu identifizieren, die beim Wartungsfenster angemeldet werden sollen, und wählen Sie dann **Hinzufügen**.

1. Wählen Sie **Register target**. Das System erstellt ein Ziel für das Wartungsfenster.

1. Wählen Sie auf der Detailseite des von Ihnen erstellten Wartungsfensters **Actions (Aktionen)**, **Register Run command task (Ausführungsbefehlaufgabe registrieren)** aus.

1. (Optional) Geben Sie im Abschnitt **Maintenance window task details (Aufgabendetails für Wartungszeitraum)** einen Namen und eine Beschreibung für diese Aufgabe an.

1. Wählen Sie unter **Command document (Befehlsdokument)** die Option `AWS-RunPatchBaseline` aus.

1. Wählen Sie für **Task priority (Aufgabenpriorität)** eine Priorität aus. Null (`0`) ist die höchste Priorität.

1. Wählen Sie für **Targets (Ziele)** unter **Target by (Auswahl nach)** das Wartungsfensterziel aus, das Sie zuvor erstellt haben.

1. Für **Ratenregelung**:
   + Geben Sie unter **Nebenläufigkeit** entweder eine Zahl oder einen Prozentsatz der verwalteten Knoten an, auf denen der Befehl gleichzeitig ausgeführt werden soll.
**Anmerkung**  
Wenn Sie Ziele ausgewählt haben, indem Sie Tags angegeben haben, die auf verwaltete Knoten angewendet wurden, oder indem Sie AWS Ressourcengruppen angegeben haben und Sie sich nicht sicher sind, wie viele verwaltete Knoten das Ziel sind, schränken Sie die Anzahl der Ziele ein, die das Dokument gleichzeitig ausführen können, indem Sie einen Prozentsatz angeben.
   + Geben Sie unter **Fehlerschwellenwert** an, wann die Ausführung des Befehls auf anderen verwalteten Knoten beendet werden soll, nachdem dafür entweder auf einer bestimmten Anzahl oder einem Prozentsatz von Knoten ein Fehler aufgetreten ist. Falls Sie beispielsweise drei Fehler angeben, sendet Systems Manager keinen Befehl mehr, wenn der vierte Fehler empfangen wird. Von verwalteten Knoten, auf denen der Befehl noch verarbeitet wird, werden unter Umständen ebenfalls Fehler gesendet.

1. (Optional) Wählen Sie für **IAM-Servicerolle** eine Rolle aus, um Systems Manager Berechtigungen zur Übernahme zum Ausführen von Wartungsfenster-Aufgaben zu erteilen.

   Wenn Sie keinen ARN für die Servicerolle angeben, verwendet Systems Manager eine serviceverknüpfte Rolle in Ihrem Konto. Wenn in Ihrem Konto keine geeignete serviceverknüpfte Rolle für Systems Manager vorhanden ist, wird sie erstellt, wenn die Aufgabe erfolgreich registriert wurde.
**Anmerkung**  
Um die Sicherheitslage zu verbessern, empfehlen wir dringend, eine benutzerdefinierte Richtlinie und eine benutzerdefinierte Servicerolle für die Ausführung Ihrer Aufgaben im Wartungsfenster zu erstellen. Die Richtlinie kann so gestaltet werden, dass sie nur die Berechtigungen gewährt, die für Ihre speziellen Wartungsfensteraufgaben erforderlich sind. Weitere Informationen finden Sie unter [Einrichten von Maintenance Windows](setting-up-maintenance-windows.md).

1. (Optional) Wenn Sie im Abschnitt **Ausgabeoptionen** die Befehlsausgabe in einer Datei speichern möchten, aktivieren Sie das Kontrollkästchen **Schreiben der Ausgabe in S3 aktivieren**. Geben Sie die Namen für den Bucket und das Präfix (Ordner) in die Textfelder ein.
**Anmerkung**  
Die S3-Berechtigungen zum Schreiben von Daten in einen S3-Bucket sind die Berechtigungen des dem verwalteten Knoten zugewiesenen Instance-Profils und nicht diejenigen des IAM-Benutzers, der diese Aufgabe ausführt. Weitere Informationen finden Sie unter [Instance-Berechtigungen für Systems Manager konfigurieren](setup-instance-permissions.md) oder [Eine IAM-Servicerolle für eine Hybrid-Umgebung erstellen](hybrid-multicloud-service-role.md). Wenn sich der angegebene S3-Bucket in einem anderen AWS-Konto befindet, stellen Sie außerdem sicher, dass das Instance-Profil oder die IAM-Servicerolle, die dem verwalteten Knoten zugeordnet ist, über die erforderlichen Berechtigungen zum Schreiben in diesen Bucket verfügt.

   Um die Ausgabe in eine Amazon CloudWatch Logs-Protokollgruppe zu streamen, wählen Sie das **CloudWatch Ausgabefeld** aus. Geben Sie den Namen der Protokollgruppe in das Feld ein.

1. Aktivieren Sie das Kontrollkästchen **Enable SNS notifications (SNS-Benachrichtigungen aktivieren)** im Abschnitt **SNS notifications (SNS-Benachrichtigungen)**, wenn Sie über den Status der Befehlsausführung benachrichtigt werden möchten,

   Weitere Informationen zum Konfigurieren von Amazon SNS-Benachrichtigungen für Run Command finden Sie unter [Überwachung von Systems Manager-Statusänderungen mit Amazon SNS-Benachrichtigungen](monitoring-sns-notifications.md).

1. Für **Parameters (Parameter)**:
   + Wählen Sie in der Liste **Operation (Vorgang)** die Option **Scan (Scannen)**, um nach fehlenden Patches zu suchen, oder wählen Sie **Install (Installieren)**, um nach fehlenden Patches zu suchen und diese direkt zu installieren.
   + Sie brauchen keine Angaben für das Feld **Snapshot Id (Snapshot-ID)** zu machen. Das System generiert diesen Parameter automatisch und stellt ihn bereit.
   + Sie müssen nichts in das Feld **Install Override List (Überschreibungsliste installieren)** eingeben, es sei denn, Sie möchten, dass Patch Manager einen anderen Patch als für die Patch-Baseline angegeben verwenden soll. Weitere Informationen finden Sie unter [Parametername: `InstallOverrideList`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-installoverridelist).
   + Geben Sie für an **RebootOption**, ob Knoten neu gestartet werden sollen, wenn während des `Install` Vorgangs Patches installiert werden, oder ob andere Patches Patch Manager erkannt werden, die seit dem letzten Knotenneustart installiert wurden. Weitere Informationen finden Sie unter [Parametername: `RebootOption`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-norebootoption).
   + (Optional) Geben Sie im Feld **Comment (Kommentar)** eine Verfolgungsnotiz oder Erinnerung zu diesem Befehl ein.
   + Geben Sie im Feld **Timeout (seconds) (Timeout (Sekunden))** die Anzahl der Sekunden ein, die das System warten soll, bis der Vorgang beendet ist, bevor er als nicht erfolgreich eingestuft wird.

1. Wählen Sie **Register Run command task**.

Nachdem die Wartungsfensteraufgabe abgeschlossen ist, können Sie Details zur Patch-Compliance in der Systems-Manager-Konsole im Tool [Fleet Manager](fleet-manager.md) anzeigen. 

Sie können Konformitätsinformationen auch im Tool [Patch Manager](patch-manager.md) auf der Registerkarte **Konformitätsberichte** einsehen. 

Sie können auch das [DescribePatchGroupState](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribePatchGroupState.html)und verwenden [DescribeInstancePatchStatesForPatchGroup](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeInstancePatchStatesForPatchGroup.html) APIs , um Konformitätsdetails einzusehen. Weitere Informationen zu Patch-Compliance-Daten finden Sie unter [Info zu Patch Compliance](compliance-about.md#compliance-monitor-patch).

# Patching von Zeitplänen mithilfe von Wartungsfenstern
<a name="sysman-patch-scheduletasks"></a>

Nach der Konfiguration einer Patch-Baseline (und optional einer Patch-Gruppe), können Sie Patches für Ihren Knoten mithilfe eines Wartungsfensters einspielen. Ein Wartungsfenster kann die Auswirkungen bei der Serververfügbarkeit verringern, da Sie die Möglichkeit haben, eine Uhrzeit für das Einspielen der Patches festzulegen, sodass der Geschäftsbetrieb nicht unterbrochen werden muss. Wartungsfenster funktionieren wie folgt:

1. Sie erstellen ein Wartungsfenster mit einem Zeitplan für Ihre Patching-Operationen.

1. Sie wählen die Ziele für das Wartungsfenster aus, indem Sie das Tag `Patch Group` oder `PatchGroup` für den Tag-Namen angeben und einen beliebigen Wert angeben, für den Sie Amazon Elastic Compute Cloud (Amazon EC2)-Tags definiert haben, z. B. „Produktionsserver“ oder „US-EAST-PROD“. (Sie müssen `PatchGroup` ohne Leerzeichen verwenden, wenn Sie[ Tags in EC2-Instance-Metadaten zugelassen haben](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#allow-access-to-tags-in-IMDS).

1. Sie erstellen eine neue Aufgabe für das Wartungsfenster und geben für diese Aufgabe das Dokument `AWS-RunPatchBaseline` an. 

Wenn Sie die Aufgabe konfigurieren, können Sie entweder Knoten scannen oder Patches scannen und auf den Knoten installieren. Wenn Sie die Knoten scannen, scannt Patch Manager, ein Tool in AWS Systems Manager, jeden Knoten und generiert eine Liste der fehlenden Patches für Sie zur Überprüfung.

Wenn Sie Patches scannen und installieren, scannt Patch Manager jeden Knoten und vergleicht die Liste der installierten Patches mit der Liste der genehmigten Patches in der Baseline. Patch Manager identifiziert fehlende Patches und lädt dann alle fehlenden und genehmigten Patches herunter und installiert sie.

Wenn Sie einen einmaligen Scan oder eine einmalige Installation ausführen möchten, um ein Problem zu beheben, können Sie Run Command für den direkten Aufruf des Dokuments `AWS-RunPatchBaseline` verwenden.

**Wichtig**  
Nach dem Installieren von Patches führt Systems Manager einen Neustart eines jeden Knotens durch. Der Neustart ist erforderlich, um sicherzustellen, dass die Patches ordnungsgemäß installiert sind, und um sicherzustellen, dass das System den Knoten nach dem Einspielen der Patches nicht in einem potenziell fehlerhaften Zustand zurücklässt. (Ausnahme: Wenn der `RebootOption`-Parameter im `NoReboot`-Dokument auf `AWS-RunPatchBaseline` gesetzt ist, wird der verwaltete Knoten nach der Ausführung von Patch Manager nicht neu gestartet. Weitere Informationen finden Sie unter [Parametername: `RebootOption`](patch-manager-aws-runpatchbaseline.md#patch-manager-aws-runpatchbaseline-parameters-norebootoption).) 

# Verwendung von Pseudo-Parametern bei der Registrierung von Aufgaben im Wartungsfenster
<a name="maintenance-window-tasks-pseudo-parameters"></a>

Beim Registrieren einer Aufgabe in Maintenance Windows, einem Tool in AWS Systems Manager, geben Sie die Parameter an, die für jede der vier Arten von Aufgaben eindeutig sind. (In CLI-Befehlen werden diese mit der `--task-invocation-parameters`-Option bereitgestellt.)

 Sie können auch mithilfe der *Pseudoparameter*-Syntax wie `{{RESOURCE_ID}}`, `{{TARGET_TYPE}}` und `{{WINDOW_TARGET_ID}}` auf bestimmte Werte verweisen. Während der Ausführung übergibt die Wartungsfenster-Aufgabe anstelle der Pseudoparameter-Platzhalter richtige Werte. Die vollständige Liste der verwendbaren Pseudoparameter finden Sie weiter unten in diesem Thema unter [Unterstützte Pseudoparameter](#pseudo-parameters).

**Wichtig**  
Je nach dem für die Aufgabe erforderlichen ID-Format können Sie für den Zieltyp `RESOURCE_GROUP` auswählen, ob Sie die `{{TARGET_ID}}` und `{{RESOURCE_ID}}` zum Verweisen verwenden möchten, wenn Ihre Aufgabe ausgeführt wird. `{{TARGET_ID}}` gibt den vollständigen ARN der Ressource zurück. `{{RESOURCE_ID}}` gibt wie in diesen Beispielen gezeigt nur einen kürzeren Namen oder eine kürzere ID der Ressource zurück.  
`{{TARGET_ID}}`-Format: `arn:aws:ec2:us-east-1:123456789012:instance/i-02573cafcfEXAMPLE`
`{{RESOURCE_ID}}`-Format: `i-02573cafcfEXAMPLE`
Für Zieltyp `INSTANCE` ergeben die Parameter `{{TARGET_ID}}` und `{{RESOURCE_ID}}` nur die Instance-ID. Weitere Informationen finden Sie unter [Unterstützte Pseudoparameter](#pseudo-parameters).  
`{{TARGET_ID}}`und `{{RESOURCE_ID}}` kann verwendet werden, um AWS Ressourcen nur IDs an Automation-, Lambda- und Step Functions Functions-Aufgaben weiterzugeben. Diese beiden Pseudo-Parameter können nicht mit Run Command-Aufgaben verwendet werden.

## Beispiele für Pseudoparameter
<a name="pseudo-parameter-examples"></a>

Angenommen, Ihre Payload für eine AWS Lambda Aufgabe muss anhand ihrer ID auf eine Instanz verweisen.

Unabhängig davon, ob Sie ein Wartungsfensterziel `INSTANCE` oder `RESOURCE_GROUP` verwenden, kann dies mit dem `{{RESOURCE_ID}}`-Pseudoparameter erreicht werden. Zum Beispiel:

```
"TaskArn": "arn:aws:lambda:us-east-2:111122223333:function:SSMTestFunction",
    "TaskType": "LAMBDA",
    "TaskInvocationParameters": {
        "Lambda": {
            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",
            "Payload": "{ \"instanceId\": \"{{RESOURCE_ID}}\" }",
            "Qualifier": "$LATEST"
        }
    }
```

Wenn Ihre Lambda-Aufgabe zusätzlich zu Amazon Elastic Compute Cloud (Amazon EC2)-Instances für einen anderen unterstützten Zieltyp, z. B. eine Amazon DynamoDB-Tabelle, ausgeführt werden soll, kann dieselbe Syntax verwendet werden und `{{RESOURCE_ID}}` ergibt nur den Namen der Tabelle. Wenn Sie jedoch den vollständigen ARN der Tabelle benötigen, verwenden Sie `{{TARGET_ID}}`, wie im folgenden Beispiel gezeigt.

```
"TaskArn": "arn:aws:lambda:us-east-2:111122223333:function:SSMTestFunction",
    "TaskType": "LAMBDA",
    "TaskInvocationParameters": {
        "Lambda": {
            "ClientContext": "ew0KICAi--truncated--0KIEXAMPLE",
            "Payload": "{ \"tableArn\": \"{{TARGET_ID}}\" }",
            "Qualifier": "$LATEST"
        }
    }
```

Dieselbe Syntax funktioniert, wenn Sie auf Instances oder andere Ressourcentypen abzielen. Wenn einer Ressourcengruppe mehrere Ressourcentypen hinzugefügt wurden, wird die Aufgabe für jede der entsprechenden Ressourcen ausgeführt. 

**Wichtig**  
Nicht alle Ressourcentypen, die möglicherweise in eine Ressourcengruppe einbezogen werden, ergeben einen Wert für den `{{RESOURCE_ID}}`-Parameter. Eine Liste der unterstützten Ressourcentypen finden Sie unter [Unterstützte Pseudoparameter](#pseudo-parameters).

Ein weiteres Beispiel: Um eine Automation-Aufgabe auszuführen, die Ihre EC2-Instances beendet, geben Sie das Systems Manager-Dokument (SSM-Dokument) `AWS-StopEC2Instance` als `TaskArn`-Wert an und verwenden Sie den Pseudoparameter `{{RESOURCE_ID}}`:

```
"TaskArn": "AWS-StopEC2Instance",
    "TaskType": "AUTOMATION"
    "TaskInvocationParameters": {
        "Automation": {
            "DocumentVersion": "1",
            "Parameters": {
                "instanceId": [
                    "{{RESOURCE_ID}}"
                ]
            }
        }
    }
```

Um eine Automatisierungsaufgabe auszuführen, die einen Snapshot eines Amazon Elastic Block Store (Amazon EBS)-Volumes kopiert, geben Sie das `AWS-CopySnapshot`-SSM-Dokument als `TaskArn`-Wert an und verwenden den Pseudoparameter „`{{RESOURCE_ID}}`“:

```
"TaskArn": "AWS-CopySnapshot",
    "TaskType": "AUTOMATION"
    "TaskInvocationParameters": {
        "Automation": {
            "DocumentVersion": "1",
            "Parameters": {
                "SourceRegion": "us-east-2",
                "targetType":"RESOURCE_GROUP",
                "SnapshotId": [
                    "{{RESOURCE_ID}}"
                ]
            }
        }
    }
```

## Unterstützte Pseudoparameter
<a name="pseudo-parameters"></a>

Die folgende Liste beschreibt die Pseudoparameter, die Sie mit der `{{PSEUDO_PARAMETER}}`-Syntax in der `--task-invocation-parameters`-Option angeben können.
+ **`WINDOW_ID`**: Die ID des Ziel-Wartungsfensters.
+ **`WINDOW_TASK_ID`**: Die ID der Fensteraufgabe, die ausgeführt wird.
+ **`WINDOW_TARGET_ID`**: Die ID des Fensterziels, die das Ziel (die Ziel-ID) umfasst.
+ **`WINDOW_EXECUTION_ID`**: Die ID der aktuellen Fensterausführung.
+ **`TASK_EXECUTION_ID`**: Die ID der aktuellen Aufgabenausführung.
+ **`INVOCATION_ID`**: Die ID des aktuellen Aufrufs.
+ **`TARGET_TYPE`**: Der Zieltyp. Unterstützte Typen sind u. a.: `RESOURCE_GROUP` und `INSTANCE`.
+ **`TARGET_ID`**: 

  Wenn der angegebene Zieltyp „`INSTANCE`“ lautet, wird der Pseudoparameter „`TARGET_ID`“ durch die ID der Instance ersetzt. Beispiel, `i-078a280217EXAMPLE`.

  Wenn der angegebene Zieltyp „`RESOURCE_GROUP`“ lautet, ist der für die Aufgabenausführung referenzierte Wert der vollständige ARN der Ressource. Beispiel: `arn:aws:ec2:us-east-1:123456789012:instance/i-078a280217EXAMPLE`. Die folgende Tabelle enthält `TARGET_ID`-Beispielwerte für bestimmte Ressourcentypen in einer Ressourcengruppe. 
**Anmerkung**  
`TARGET_ID` wird nicht für Run Command-Aufgaben unterstützt.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/maintenance-window-tasks-pseudo-parameters.html)
+ **`RESOURCE_ID`**: Die kurze ID eines Ressourcentyps, der in einer Ressourcengruppe enthalten ist. Die folgende Tabelle enthält `RESOURCE_ID`-Beispielwerte für bestimmte Ressourcentypen in einer Ressourcengruppe. 
**Anmerkung**  
`RESOURCE_ID` wird nicht für Run Command-Aufgaben unterstützt.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/systems-manager/latest/userguide/maintenance-window-tasks-pseudo-parameters.html)
**Anmerkung**  
Wenn die von Ihnen angegebene AWS Ressourcengruppe Ressourcentypen enthält, die keinen `RESOURCE_ID` Wert ergeben und in der obigen Tabelle nicht aufgeführt sind, wird der `RESOURCE_ID` Parameter nicht aufgefüllt. Für diese Ressource wird weiterhin ein Ausführungsaufruf ausgeführt. Verwenden Sie in diesen Fällen stattdessen Pseudoparameter „`TARGET_ID`“, der durch den vollständigen ARN der Ressource ersetzt wird.

# Wartungsfenster-Optionen für Planung und aktive Zeiträume
<a name="maintenance-windows-schedule-options"></a>

Wenn Sie ein Wartungsfenster erstellen, müssen Sie angeben, wie oft das Wartungsfenster ausgeführt werden soll. Verwenden Sie dazu einen [Cron- oder Rate-Ausdruck](reference-cron-and-rate-expressions.md). Optional können Sie einen Datumsbereich angeben, in dem das Wartungsfenster nach seinem regulären Zeitplan laufen kann, sowie eine Zeitzone, auf der dieser reguläre Zeitplan basieren soll. 

Beachten Sie jedoch, dass die Zeitzonenoption und die Optionen für Start- und Enddatum voneinander unabhängig sind. Das von Ihnen angegebene Start- und Enddatum (mit oder ohne einen Versatz für Ihre Zeitzone) bestimmt ausschließlich den *gültigen Zeitraum*, während dem das Wartungsfenster entsprechend seinem Zeitplan ausgeführt werden kann. Die Zeitzonenoption bestimmt die internationale Zeitzone, auf dessen Basis der Wartungsfenster-Zeitplan *während* seines gültigen Zeitraums ausgeführt wird.

**Anmerkung**  
Sie geben das Start- und Enddatum im ISO-8601-Zeitstempelformat an. Beispiel: `2021-04-07T14:29:00-08:00`  
Sie geben Zeitzonen in Internet Assigned Numbers Authority (IANA)-Format an. Beispiel: `America/Chicago`, `Europe/Berlin` oder `Asia/Tokyo`.

**Topics**
+ [Beispiel 1: Angeben eines Startdatums für das Wartungsfenster](#schedule-example-start-date)
+ [Beispiel 2: Angeben eines Start- und Enddatums für das Wartungsfenster](#schedule-example-start-end-date)
+ [Beispiel 3: Erstellen eines Wartungsfensters, das nur einmal ausgeführt wird](#schedule-example-one-time)
+ [Beispiel 4: Angeben der Anzahl der Zeitplanversatztage für ein Wartungsfenster](#schedule-example-schedule-offset)

## Beispiel 1: Angeben eines Startdatums für das Wartungsfenster
<a name="schedule-example-start-date"></a>

Angenommen, Sie verwenden die AWS Command Line Interface (AWS CLI), um ein Wartungsfenster mit den folgenden Optionen zu erstellen:
+ `--start-date 2021-01-01T00:00:00-08:00`
+ `--schedule-timezone "America/Los_Angeles"`
+ `--schedule "cron(0 09 ? * WED *)"`

Beispiel:

------
#### [ Linux & macOS ]

```
aws ssm create-maintenance-window \
    --name "My-LAX-Maintenance-Window" \
    --allow-unassociated-targets \
    --duration 3 \
    --cutoff 1 \
    --start-date 2021-01-01T00:00:00-08:00 \
    --schedule-timezone "America/Los_Angeles" \
    --schedule "cron(0 09 ? * WED *)"
```

------
#### [ Windows ]

```
aws ssm create-maintenance-window ^
    --name "My-LAX-Maintenance-Window" ^
    --allow-unassociated-targets ^
    --duration 3 ^
    --cutoff 1 ^
    --start-date 2021-01-01T00:00:00-08:00 ^
    --schedule-timezone "America/Los_Angeles" ^
    --schedule "cron(0 09 ? * WED *)"
```

------

Das bedeutet, dass der erste Durchlauf des Wartungsfensters erst *nach dem* angegebenen Startdatum und -zeitpunkt, d. h. am Freitag, dem 1. Januar 2021, um 12:00 Uhr US-Pazifikzeit, stattfinden wird. (Diese Zeitzone liegt acht Stunden hinter der UTC-Zeit.) In diesem Fall entsprechen das Startdatum und die Startzeit des Zeitfensters nicht dem Zeitpunkt, zu dem das Wartungsfenster zum ersten Mal läuft. Zusammen betrachtet bedeuten die Werte `--schedule-timezone` und `--schedule`, dass das Wartungsfenster jeden Mittwoch um 9:00 Uhr in der US Pacific-Zeitzone ausgeführt wird (angegeben durch "Amerika/Los Angeles" im IANA-Format). Die erste Ausführung im aktivierten Zeitraum erfolgt Mittwoch, 4. Januar 2021, um 9.00 Uhr US Pacific-Zeitzone.

## Beispiel 2: Angeben eines Start- und Enddatums für das Wartungsfenster
<a name="schedule-example-start-end-date"></a>

In diesem Beispiel gehen wir davon aus, dass Sie als Nächstes ein Wartungsfenster mit diesen Optionen erstellen:
+ `--start-date 2019-01-01T00:03:15+09:00`
+ `--end-date 2019-06-30T00:06:15+09:00`
+ `--schedule-timezone "Asia/Tokyo"`
+ `--schedule "rate(7 days)"`

Zum Beispiel:

------
#### [ Linux & macOS ]

```
aws ssm create-maintenance-window \
    --name "My-NRT-Maintenance-Window" \
    --allow-unassociated-targets \
    --duration 3 \
    --cutoff 1 \
    --start-date 2019-01-01T00:03:15+09:00 \
    --end-date 2019-06-30T00:06:15+09:00 \
    --schedule-timezone "Asia/Tokyo" \
    --schedule "rate(7 days)"
```

------
#### [ Windows ]

```
aws ssm create-maintenance-window ^
    --name "My-NRT-Maintenance-Window" ^
    --allow-unassociated-targets ^
    --duration 3 ^
    --cutoff 1 ^
    --start-date 2019-01-01T00:03:15+09:00 ^
    --end-date 2019-06-30T00:06:15+09:00 ^
    --schedule-timezone "Asia/Tokyo" ^
    --schedule "rate(7 days)"
```

------

Der aktivierte Zeitraum für dieses Wartungsfenster beginnt am 1. Januar 2019 um 3:15 Uhr japanische Standardzeit. Der gültige Zeitraum für dieses Wartungsfenster endet am Sonntag, 30. Juni 2019 um 6:15 Uhr japanische Standardzeit. (Diese Zeitzone liegt neun Stunden vor der UTC-Zeit.) Zusammen betrachtet bedeuten die Werte `--schedule-timezone` und `--schedule`, dass das Wartungsfenster jeden Dienstag um 3:15 Uhr in der japanischen Standardzeitzone ausgeführt wird (angegeben durch "Asien/Tokio" im IANA-Format). Der Grund hierfür ist, dass das Wartungsfenster alle sieben Tage ausgeführt wird und am Dienstag, 1. Januar um 3:15 Uhr aktiv wird. Die letzte Ausführung erfolgt am Dienstag, 25. Juni 2019 um 3:15 Uhr japanische Standardzeit. Dies ist der letzte Dienstag bevor der aktivierte Zeitraum für das Wartungsfenster fünf Tage später endet.

## Beispiel 3: Erstellen eines Wartungsfensters, das nur einmal ausgeführt wird
<a name="schedule-example-one-time"></a>

Jetzt erstellen Sie ein Wartungsfenster mit dieser Option:
+ `--schedule "at(2020-07-07T15:55:00)"`

Zum Beispiel:

------
#### [ Linux & macOS ]

```
aws ssm create-maintenance-window \
    --name "My-One-Time-Maintenance-Window" \
    --schedule "at(2020-07-07T15:55:00)" \
    --duration 5 \
    --cutoff 2 \
    --allow-unassociated-targets
```

------
#### [ Windows ]

```
aws ssm create-maintenance-window ^
    --name "My-One-Time-Maintenance-Window" ^
    --schedule "at(2020-07-07T15:55:00)" ^
    --duration 5 ^
    --cutoff 2 ^
    --allow-unassociated-targets
```

------

Dieses Wartungsfenster wird nur einmal ausgeführt und zwar am 7. Juli 2020 um 15:55 Uhr UTC-Zeit. Das Wartungsfenster wurde aktiviert, um bei Bedarf bis zu fünf Stunden ausgeführt zu werden, jedoch können zwei Stunden vor dem Ende des Wartungsfensters keine neuen Aufgaben mehr gestartet werden.

## Beispiel 4: Angeben der Anzahl der Zeitplanversatztage für ein Wartungsfenster
<a name="schedule-example-schedule-offset"></a>

Jetzt erstellen Sie ein Wartungsfenster mit dieser Option:

```
--schedule-offset 2
```

Zum Beispiel:

------
#### [ Linux & macOS ]

```
aws ssm create-maintenance-window \
    --name "My-Cron-Offset-Maintenance-Window" \
    --schedule "cron(0 30 23 ? * TUE#3 *)" \
    --duration 4 \
    --cutoff 1 \
    --schedule-offset 2 \
    --allow-unassociated-targets
```

------
#### [ Windows ]

```
aws ssm create-maintenance-window ^
    --name "My-Cron-Offset-Maintenance-Window" ^
    --schedule "cron(0 30 23 ? * TUE#3 *)" ^
    --duration 4 ^
    --cutoff 1 ^
    --schedule-offset 2 ^
    --allow-unassociated-targets
```

------

Ein Zeitplanversatz ist die Anzahl der Tage, die nach dem über einen CRON-Ausdruck angegebenen Datum und der angegebenen Uhrzeit gewartet werden soll, bevor das Wartungsfenster ausgeführt wird.

Im vorhergegangenen Beispiel wird mit dem CRON-Ausdruck die Ausführung eines Wartungsfensters um 23.30 Uhr am dritten Dienstag jedes Monats geplant: 

```
--schedule "cron(0 30 23 ? * TUE#3 *)
```

Die Einbeziehung von `--schedule-offset 2` bedeutet allerdings, dass das Wartungsfenster erst um 23.30 Uhr zwei Tage *nach* dem dritten Dienstag jedes Monats ausgeführt wird. 

Zeitplanversätze werden nur für CRON Ausdrücke unterstützt. 

**Weitere Informationen**  
+ [Referenz: Cron- und Rate-Ausdrücke für System Manager](reference-cron-and-rate-expressions.md)
+ [Erstellen eines Wartungsfensters mit der Konsole](sysman-maintenance-create-mw.md)
+ [Tutorial: Erstellen und konfigurieren Sie ein Wartungsfenster mit dem AWS CLI](maintenance-windows-cli-tutorials-create.md)
+ [CreateMaintenanceWindow](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_CreateMaintenanceWindow.html) in der *AWS Systems Manager -API-Referenz*
+ [https://docs.aws.amazon.com/cli/latest/reference/ssm/create-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/create-maintenance-window.html)im *AWS Systems Manager Abschnitt der AWS CLI Befehlsreferenz*
+ [Zeitzonendatenbank](https://www.iana.org/time-zones) auf der IANA-Website

# Wartungsfenster-Tasks ohne Ziele registrieren
<a name="maintenance-windows-targetless-tasks"></a>

Für jedes von Ihnen erstellte Wartungsfenster können Sie eine oder mehrere Aufgaben angeben, die beim Ausführen des Wartungsfensters ausgeführt werden sollen. ln den meisten Fällen müssen Sie die Ressourcen oder Ziele angeben, für die Aufgabe ausgeführt werden soll. In einigen Fällen müssen Sie Ziele jedoch nicht explizit in der Aufgabe angeben.

Ein oder mehrere Ziele für Wartungsfenster Systems Manager Run Command-Typ-Aufgaben müssen angegeben werden. Je nach Art der Aufgabe sind Ziele für andere Aufgabentypen im Wartungsfenster (Systems Manager Automation AWS Lambda, und AWS Step Functions) optional. 

Bei den Aufgabentypen Lambda und Step Functions hängt es vom Inhalt der von Ihnen erstellten Funktion oder des Zustandsautomaten ab, ob ein Ziel erforderlich ist.

**Anmerkung**  
Wenn eine Aufgabe registrierte Ziele hat, lösen Automation und AWS Step Functions Aufgaben die Ziele aus Ressourcengruppen und Tags auf und senden einen Aufruf pro aufgelöster Ressource, was zu mehreren Aufgabenaufrufen führt. AWS Lambda Aber angenommen, Sie möchten nur einen Aufruf für eine Lambda-Aufgabe, die bei einer Ressourcengruppe mit mehr als einer Instance registriert ist. Wenn Sie in diesem Fall in der AWS-Managementkonsole arbeiten, wählen Sie auf der Seite **Lambda-Aufgabe registrieren** oder **Lambda-Aufgabe bearbeiten** die Option **Aufgabenziel nicht erforderlich** aus. Wenn Sie den AWS CLI Befehl verwenden, geben Sie bei der Ausführung des Befehls oder [https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/register-task-with-maintenance-window.html)Befehls keine Ziele mithilfe des `--targets` Parameters an. [https://docs.aws.amazon.com/cli/latest/reference/ssm/update-maintenance-window-task.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/update-maintenance-window-task.html)

In vielen Fällen müssen Sie ein Ziel für eine Automatisierungsaufgabe nicht explizit angeben. Angenommen, Sie erstellen beispielsweise eine Automation-Aufgabe, um eine Amazon Machine Image (AMI) für Linux mit dem `AWS-UpdateLinuxAmi`-Runbook zu aktualisieren. Wenn die Aufgabe ausgeführt wird, wird AMI mit den neuesten verfügbaren Linux-Verteilungspaketen und Amazon-Software aktualisiert. Neue Instances, die aus der AMI erstellt wurden, haben diese Updates bereits installiert. Da die ID des AMI in den Eingabeparametern für das Runbook angegeben ist, muss in der Wartungsfenster-Aufgabe kein Ziel erneut angegeben werden.

Angenommen, Sie verwenden AWS Command Line Interface (AWS CLI), um eine Automatisierungsaufgabe im Wartungsfenster zu registrieren, die das `AWS-RestartEC2Instance` Runbook verwendet. Da der neu zu startende Knoten im `--task-invocation-parameters`-Argument angegeben wird, müssen Sie nicht auch eine `--targets`-Option angeben. 

**Anmerkung**  
Bei Wartungsfensteraufgaben ohne festgelegtes Ziel können Sie keine Werte für `--max-errors` und `--max-concurrency` bereitstellen. Stattdessen fügt das System den Platzhalterwert `1` ein, der in der Antwort auf Befehle wie [https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/describe-maintenance-window-tasks.html) und [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-maintenance-window-task.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-maintenance-window-task.html) gemeldet wird. Diese Werte wirken sich nicht auf die Ausführung Ihrer Aufgabe aus und können ignoriert werden.

Das folgende Beispiel zeigt auch, dass die `--targets`, `--max-errors` und `--max-concurrency`-Optionen für eine ziellose Wartungsfensteraufgabe weggelassen werden.

------
#### [ Linux & macOS ]

```
aws ssm register-task-with-maintenance-window \
    --window-id "mw-ab12cd34eEXAMPLE" \
    --service-role-arn "arn:aws:iam::123456789012:role/MaintenanceWindowAndAutomationRole" \
    --task-type "AUTOMATION" \
    --name "RestartInstanceWithoutTarget" \
    --task-arn "AWS-RestartEC2Instance" \
    --task-invocation-parameters "{\"Automation\":{\"Parameters\":{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"]}}}" \
    --priority 10
```

------
#### [ Windows ]

```
aws ssm register-task-with-maintenance-window ^
    --window-id "mw-ab12cd34eEXAMPLE" ^
    --service-role-arn "arn:aws:iam::123456789012:role/MaintenanceWindowAndAutomationRole" ^
    --task-type "AUTOMATION" ^
    --name "RestartInstanceWithoutTarget" ^
    --task-arn "AWS-RestartEC2Instance" ^
    --task-invocation-parameters "{\"Automation\":{\"Parameters\":{\"InstanceId\":[\"i-02573cafcfEXAMPLE\"]}}}" ^
    --priority 10
```

------

**Anmerkung**  
Für Aufgaben im Wartungsfenster, die vor dem 23. Dezember 2020 registriert wurden: Wenn Sie Ziele für die Aufgabe angegeben haben und eines nicht mehr erforderlich ist, können Sie diese Aufgabe aktualisieren, um die Ziele mithilfe der Systems Manager Manager-Konsole oder des [https://docs.aws.amazon.com/cli/latest/reference/ssm/update-maintenance-window-task.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/update-maintenance-window-task.html) AWS CLI Befehls zu entfernen.

**Weitere Informationen**  
+ [Fehlermeldungen: „Wartungsfensteraufgaben ohne Ziele unterstützen keine MaxConcurrency Werte“ und „Wartungsfensteraufgaben ohne Ziele unterstützen keine MaxErrors Werte“](troubleshooting-maintenance-windows.md#maxconcurrency-maxerrors-not-supported)

# Fehlerbehebung bei Wartungsfenstern
<a name="troubleshooting-maintenance-windows"></a>

Im Folgenden finden Sie Informationen zur Behandlung von Problemen mit Wartungsfenstern.

**Topics**
+ [Aufgabenfehler bearbeiten: Auf der Seite zur Bearbeitung einer Wartungsfensteraufgabe gibt die IAM-Rollenliste eine Fehlermeldung aus: „Wir konnten die für diese Aufgabe spezifizierte IAM-Wartungsfensterrolle nicht finden. Sie wurde möglicherweise gelöscht oder noch nicht erstellt.“](#maintenance-window-role-troubleshooting)
+ [Nicht alle Wartungsfensterziele werden aktualisiert](#targets-not-updated)
+ [Die Aufgabe schlägt mit dem Aufrufstatus der Aufgabe fehl: „Die bereitgestellte Rolle enthält nicht die richtigen SSM-Berechtigungen.“](#incorrect-ssm-permissions)
+ [Aufgabe schlägt mit der Fehlermeldung „Step fails when it is validating and resolving the step inputs (Schritt schlägt fehl, wenn die Schritteingaben überprüft und gelöst werden)“ fehl.](#step-fails)
+ [Fehlermeldungen: „Wartungsfensteraufgaben ohne Ziele unterstützen keine MaxConcurrency Werte“ und „Wartungsfensteraufgaben ohne Ziele unterstützen keine MaxErrors Werte“](#maxconcurrency-maxerrors-not-supported)

## Aufgabenfehler bearbeiten: Auf der Seite zur Bearbeitung einer Wartungsfensteraufgabe gibt die IAM-Rollenliste eine Fehlermeldung aus: „Wir konnten die für diese Aufgabe spezifizierte IAM-Wartungsfensterrolle nicht finden. Sie wurde möglicherweise gelöscht oder noch nicht erstellt.“
<a name="maintenance-window-role-troubleshooting"></a>

**Problem 1**: Die ursprünglich angegebene AWS Identity and Access Management (IAM-) Wartungsfensterrolle wurde gelöscht, nachdem Sie die Aufgabe erstellt haben.

**Mögliche Lösung**: 1) Wählen Sie eine andere IAM-Wartungsfenster-Rolle aus, falls eine solche in Ihrem Konto vorhanden ist, oder erstellen Sie eine neue und wählen Sie sie für die Aufgabe aus. 

**Problem 2**: Wenn die Aufgabe mit dem AWS Command Line Interface (AWS CLI), oder einem AWS SDK erstellt wurde AWS Tools for Windows PowerShell, hätte ein Rollenname für das IAM-Wartungsfenster angegeben werden können, der nicht existiert. Beispielsweise könnte die IAM-Wartungsfensterrolle gelöscht worden sein, bevor Sie die Aufgabe erstellt haben, oder der Rollenname könnte falsch eingegeben worden sein, z. B. **myrole** anstelle von **my-role**.

**Mögliche Lösung**: Wählen Sie den richtigen Namen der IAM-Wartungsfensterrolle aus, die Sie verwenden möchten, oder erstellen Sie eine neue, die Sie für die Aufgabe angeben können. 

## Nicht alle Wartungsfensterziele werden aktualisiert
<a name="targets-not-updated"></a>

**Problem:** Sie stellen fest, dass die Wartungsfensteraufgaben nicht auf allen Ressourcen ausgeführt wurden, auf die Ihr Wartungsfenster abzielt. Beispiel: In den Ausführungsergebnissen des Wartungsfensters wird die Aufgabe für diese Ressource beispielsweise als fehlgeschlagen oder zeitlich abgelaufen markiert.

**Lösung:** Die häufigsten Gründe für das Nicht-Ausführen einer Wartungsfensteraufgabe auf einer Zielressource, sind Konnektivität und Verfügbarkeit. Zum Beispiel:
+ Systems Manager hat die Verbindung zur Ressource vor oder während des Wartungsfenstervorgangs unterbrochen.
+ Die Ressource war offline oder wurde während des Wartungsfenstervorgangs beendet.

Sie können warten, bis die Zeit der nächsten geplanten Wartungsfensteraufgabe für die Ressourcen ausgeführt wird. Sie können die Wartungsfensteraufgabe manuell für die Ressourcen ausführen, die nicht verfügbar waren oder offline waren.

## Die Aufgabe schlägt mit dem Aufrufstatus der Aufgabe fehl: „Die bereitgestellte Rolle enthält nicht die richtigen SSM-Berechtigungen.“
<a name="incorrect-ssm-permissions"></a>

**Problem**: Sie haben eine Wartungsfenster-Servicerolle für eine Aufgabe angegeben, aber die Aufgabe wird nicht erfolgreich ausgeführt, und der Aufgabenaufrufstatus meldet, dass „die bereitgestellte Rolle nicht die richtigen SSM-Berechtigungen enthält.“ 
+ **Solution** (Lösung): In [Aufgabe 1: Erstellen einer benutzerdefinierten Servicerolle für Wartungsfenster-Aufgaben](configuring-maintenance-window-permissions-console.md#create-custom-policy-console) stellen wir eine grundlegende Richtlinie zur Verfügung, die Sie an Ihre [benutzerdefinierte Wartungsfenster-Servicerolle](configuring-maintenance-window-permissions-console.md#create-custom-role-console) anhängen können. Die Richtlinie enthält die für viele Aufgabenszenarien erforderlichen Berechtigungen. Aufgrund der Vielzahl von Aufgaben, die Sie ausführen können, müssen Sie jedoch möglicherweise zusätzliche Berechtigungen in der Richtlinie für Ihre Wartungsfenster-Rolle angeben.

  Beispielsweise funktionieren einige Automatisierungsaktionen mit AWS CloudFormation Stacks. Daher müssen Sie möglicherweise die zusätzlichen Berechtigungen `cloudformation:CreateStack`, `cloudformation:DescribeStacks` und `cloudformation:DeleteStack` in die Richtlinie für Ihre Wartungsfenster-Servicerolle aufnehmen. 

  Als weiteres Beispiel benötigt das Automation-Runbook `AWS-CopySnapshot` Berechtigungen zum Erstellen eines Amazon Elastic Block Store (Amazon EBS)-Snapshots. Daher müssen Sie möglicherweise die `ec2:CreateSnapshot`-Berechtigung hinzufügen.

  Informationen zu den Rollenberechtigungen, die für ein AWS verwaltetes Automation-Runbook erforderlich sind, finden Sie in den Runbook-Beschreibungen in der [AWS Systems Manager Automation](https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-runbook-reference.html) Runbook Reference.

  Informationen zu den Rollenberechtigungen, die für ein AWS verwaltetes SSM-Dokument erforderlich sind, finden Sie im Inhalt des Dokuments im Bereich [Dokumente](https://console.aws.amazon.com//systems-manager/documents) in der Systems Manager Manager-Konsole.

  Informationen zu den Rollenberechtigungen, die für Step-Functions-Aufgaben, Lambda-Aufgaben, benutzerdefinierte Automation-Runbooks und SSM-Dokumente erforderlich sind, erhalten Sie beim Autor dieser Ressourcen über die Berechtigungsanforderungen.

## Aufgabe schlägt mit der Fehlermeldung „Step fails when it is validating and resolving the step inputs (Schritt schlägt fehl, wenn die Schritteingaben überprüft und gelöst werden)“ fehl.
<a name="step-fails"></a>

**Problem**: Ein Automation-Runbook oder Systems Manager-Befehlsdokument, das Sie in einer Aufgabe verwenden, erfordert, dass Sie Eingaben wie `InstanceId` oder `SnapshotId` angeben, aber ein Wert wird nicht angegeben oder nicht korrekt angegeben.
+ **Lösung 1**: Wenn Ihr Vorgang auf eine einzelne Ressource ausgerichtet ist, z. B. ein einzelner Knoten oder ein einzelner Snapshot, geben Sie die ID in die Eingabeparameter für die Aufgabe ein.
+ **Lösung 2**: Wenn Ihre Aufgabe auf mehrere Ressourcen abzielt, z. B. das Erstellen von Bildern aus mehreren Knoten, wenn Sie das Runbook verwenden`AWS-CreateImage`, können Sie in den Eingabeparametern einen der Pseudoparameter verwenden, die für Wartungsfensteraufgaben unterstützt werden, um den Knoten IDs im Befehl darzustellen. 

  Die folgenden Befehle registrieren eine Systems Manager Automation-Aufgabe mit einem Wartungsfenster unter Verwendung der Option AWS CLI. Der `--targets`-Wert gibt eine Ziel-ID für das Wartungsfenster an. Auch wenn der `--targets`-Parameter eine Ziel-ID des Fensters angibt, erfordern Parameter des Automatisierung-Runbooks, dass eine Knoten-ID angegeben wird. In diesem Fall verwendet der Befehl den Pseudo-Parameter `{{RESOURCE_ID}}` als `InstanceId` Wert.

  **AWS CLI Befehl:**

------
#### [ Linux & macOS ]

  Der folgende Beispielbefehl startet Amazon Elastic Compute Cloud (Amazon EC2)-Instances neu, die zur Zielgruppe des Wartungsfensters mit der ID e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE gehören.

  ```
  aws ssm register-task-with-maintenance-window \
      --window-id "mw-0c50858d01EXAMPLE" \
      --targets Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE \
      --task-arn "AWS-RestartEC2Instance" \
      --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole \
      --task-type AUTOMATION \
      --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" \
      --priority 0 --max-concurrency 10 --max-errors 5 --name "My-Restart-EC2-Instances-Automation-Task" \
      --description "Automation task to restart EC2 instances"
  ```

------
#### [ Windows ]

  ```
  aws ssm register-task-with-maintenance-window ^
      --window-id "mw-0c50858d01EXAMPLE" ^
      --targets Key=WindowTargetIds,Values=e32eecb2-646c-4f4b-8ed1-205fbEXAMPLE ^
      --task-arn "AWS-RestartEC2Instance" ^
      --service-role-arn arn:aws:iam::123456789012:role/MyMaintenanceWindowServiceRole ^
      --task-type AUTOMATION ^
      --task-invocation-parameters "Automation={DocumentVersion=5,Parameters={InstanceId='{{RESOURCE_ID}}'}}" ^
      --priority 0 --max-concurrency 10 --max-errors 5 --name "My-Restart-EC2-Instances-Automation-Task" ^
      --description "Automation task to restart EC2 instances"
  ```

------

  Weitere Informationen zur Arbeit mit Pseudoparametern für Wartungsfensteraufgaben finden Sie unter [Verwendung von Pseudo-Parametern bei der Registrierung von Aufgaben im Wartungsfenster](maintenance-window-tasks-pseudo-parameters.md) und [Beispiele der Aufgabenregistrierung](mw-cli-register-tasks-examples.md#task-examples).

## Fehlermeldungen: „Wartungsfensteraufgaben ohne Ziele unterstützen keine MaxConcurrency Werte“ und „Wartungsfensteraufgaben ohne Ziele unterstützen keine MaxErrors Werte“
<a name="maxconcurrency-maxerrors-not-supported"></a>

**Problem:** Wenn Sie eine Run Command-Typ-Aufgabe registrieren, müssen Sie mindestens ein Ziel angeben, auf dem die Aufgabe ausgeführt werden soll. Bei anderen Aufgabentypen (Automatisierung AWS Lambda, und AWS Step Functions) sind Ziele je nach Art der Aufgabe optional. Die Optionen `MaxConcurrency` (die Anzahl der Ressourcen, auf denen eine Aufgabe gleichzeitig ausgeführt werden soll) und `MaxErrors` (die Anzahl der Fehlschläge, nach denen die Aufgabe auf den Zielressourcen ausgeführt werden soll, bevor die Aufgabe fehlschlägt) sind für Wartungsfensteraufgaben, die keine Ziele angeben, nicht erforderlich oder werden nicht unterstützt. Das System generiert diese Fehlermeldungen, wenn für eine dieser Optionen Werte angegeben werden, wenn kein Aufgabenziel angegeben ist.

**Lösung**: Wenn einer dieser Fehler angezeigt wird, entfernen Sie die Werte für Parallelität und Fehlerschwellenwert, bevor Sie mit der Registrierung oder Aktualisierung der Wartungsfensteraufgabe fortfahren.

Weitere Informationen zur Ausführung von Aufgaben, die keine Ziele angeben, finden Sie unter [Wartungsfenster-Tasks ohne Ziele registrieren](maintenance-windows-targetless-tasks.md) im *AWS Systems Manager -Benutzerhandbuch*.

# AWS Systems Manager Quick Setup
<a name="systems-manager-quick-setup"></a>

Verwenden SieQuick Setup, ein Tool in AWS Systems Manager, um häufig verwendete Amazon Web Services und -Funktionen schnell mit empfohlenen Best Practices zu konfigurieren. Quick Setupvereinfacht die Einrichtung von Diensten, einschließlich Systems Manager, durch die Automatisierung häufiger oder empfohlener Aufgaben. Zu diesen Aufgaben gehören beispielsweise die Erstellung der erforderlichen Instanzprofilrollen AWS Identity and Access Management (IAM) und die Einrichtung betrieblicher Best Practices wie regelmäßige Patchscans und Inventarerfassung. Bei der Nutzung des Quick Setup-Service fallen keine Kosten an. Abhängig von der Art der von Ihnen eingerichteten Services und den Nutzungsbeschränkungen können jedoch Kosten anfallen, ohne dass Gebühren für die Services anfallen, die für die Einrichtung Ihres Services verwendet werden. Um mit Quick Setup zu beginnen, öffnen Sie die [Systems-Manager-Konsole](https://console.aws.amazon.com/systems-manager/quick-setup). Wählen Sie im Navigationsbereich **Quick Setup** aus.

**Anmerkung**  
Wenn Sie zu Quick Setup weitergeleitet wurden, um Ihre Instances für die Verwaltung durch Systems Manager zu konfigurieren, führen Sie das Verfahren in [Amazon-EC2-Host-Verwaltung mit Quick Setup einrichten](quick-setup-host-management.md) aus.

## Was sind die Vorteile von Quick Setup?
<a name="quick-setup-features"></a>

Quick Setup bietet folgende Vorteile:
+ **Vereinfachte Service- und Featurekonfiguration**

  Quick Setup führt Sie durch die Konfiguration betrieblicher bewährter Methoden und stellt diese Konfigurationen automatisch bereit. Das Quick Setup-Dashboard zeigt eine Echtzeitansicht Ihres Konfigurationsbereitstellungsstatus an. 
+ **Automatisches Bereitstellen von Konfigurationen über mehrere Konten hinweg**

  Sie können es einzeln AWS-Konto oder Quick Setup in mehreren verwenden AWS-Konten und AWS-Regionen durch Integration mit AWS Organizations. Durch Verwenden von Quick Setup über mehrere Konten hinweg können Sie sicherstellen, dass Ihre Organisation konsistente Konfigurationen aufrechterhält.
+ **Beseitigen von Konfigurationsabweichungen**

  Die Konfigurationsabweichung tritt auf, wenn ein Benutzer Änderungen an einem Service oder Feature vornimmt, die mit der Auswahl über Quick Setup im Konflikt stehen. Quick Setup überprüft regelmäßig auf Konfigurationsabweichung und versucht, diese zu beheben.

## An wen richtet sich Quick Setup?
<a name="quick-setup-audience"></a>

Quick Setup ist besonders vorteilhaft für Kunden, die bereits Erfahrung mit den von ihnen eingerichteten Services und Features haben und ihren Einrichtungsprozess vereinfachen möchten. Wenn Sie mit dem, mit dem AWS-Service Sie die Konfiguration durchführen, nicht vertraut sindQuick Setup, empfehlen wir Ihnen, mehr über den Service zu erfahren. Überprüfen Sie den Inhalt im entsprechenden Benutzerhandbuch, bevor Sie eine Konfiguration mit Quick Setuperstellen.

## Verfügbarkeit von in Quick Setup AWS-Regionen
<a name="quick-setup-getting-started-regions"></a>

Im Folgenden AWS-Regionen können Sie alle Quick Setup Konfigurationstypen für eine gesamte Organisation verwenden, wie unter konfiguriert AWS Organizations, oder nur für die von Ihnen ausgewählten Organisationskonten und Regionen. Sie können Quick Setup in diesen Regionen auch mit nur einem einzigen Konto verwenden.
+ US East (Ohio)
+ USA Ost (Nord-Virginia)
+ USA West (Nordkalifornien)
+ USA West (Oregon)
+ Asia Pacific (Mumbai)
+ Asia Pacific (Seoul)
+ Asien-Pazifik (Singapur)
+ Asien-Pazifik (Sydney)
+ Asien-Pazifik (Tokio)
+ Canada (Central)
+ Europa (Frankfurt)
+ Europa (Stockholm)
+ Europa (Irland)
+ Europa (London)
+ Europa (Paris)
+ Südamerika (São Paulo)

In den folgenden Regionen ist nur der Konfigurationstyp [Host-Verwaltung](quick-setup-host-management.md) für einzelne Konten verfügbar:
+ Europa (Milan)
+ Asien-Pazifik (Hongkong)
+ Middle East (Bahrain)
+ China (Peking)
+ China (Ningxia)
+ AWS GovCloud (USA-Ost)
+ AWS GovCloud (US-West)

 Eine Liste aller von Systems Manager unterstützten Regionen finden Sie im *Allgemeine Amazon Web Services-Referenz* unter [Service-Endpunkte von Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) in der Spalte **Region**.

# Erste Schritte mit Quick Setup
<a name="quick-setup-getting-started"></a>

Verwenden Sie die Informationen in diesem Thema, um sich auf die Verwendung von Quick Setup vorzubereiten.

**Topics**
+ [IAM-Rollen und -Berechtigungen für das Quick Setup-Onboarding](#quick-setup-getting-started-iam)
+ [Manuelles Onboarding für die programmatische Arbeit mit der Quick Setup API](#quick-setup-api-manual-onboarding)

## IAM-Rollen und -Berechtigungen für das Quick Setup-Onboarding
<a name="quick-setup-getting-started-iam"></a>

Quick Setup hat ein neues Konsolenerlebnis und eine neue API eingeführt. Jetzt können Sie mit dieser API über die Konsole, AWS CLI CloudFormation, und interagieren SDKs. Wenn Sie sich für das neue Erlebnis entscheiden, werden Ihre vorhandenen Konfigurationen mithilfe der neuen API neu erstellt. Je nach Anzahl der vorhandenen Konfigurationen in Ihrem Konto kann dieser Vorgang einige Minuten dauern.

Um die neue Quick Setup-Konsole verwenden zu können, müssen Sie über Berechtigungen für die folgenden Aktionen verfügen:

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm-quicksetup:*",
                "cloudformation:DescribeStackSetOperation",
                "cloudformation:ListStacks",
                "cloudformation:DescribeStacks",
                "cloudformation:DescribeStackResources",
                "cloudformation:ListStackSetOperations",
                "cloudformation:ListStackInstances",
                "cloudformation:DescribeStackSet",
                "cloudformation:ListStackSets",
                "cloudformation:DescribeStackInstance",
                "cloudformation:DescribeOrganizationsAccess",
                "cloudformation:ActivateOrganizationsAccess",
                "cloudformation:GetTemplate",
                "cloudformation:ListStackSetOperationResults",
                "cloudformation:DescribeStackEvents",
                "cloudformation:UntagResource",
                "ec2:DescribeInstances",
                "ssm:DescribeAutomationExecutions",
                "ssm:GetAutomationExecution",
                "ssm:ListAssociations",
                "ssm:DescribeAssociation",
                "ssm:GetDocument",
                "ssm:ListDocuments",
                "ssm:DescribeDocument",
                "ssm:ListResourceDataSync",
                "ssm:DescribePatchBaselines",
                "ssm:GetPatchBaseline",
                "ssm:DescribeMaintenanceWindows",
                "ssm:DescribeMaintenanceWindowTasks",
                "ssm:GetOpsSummary",
                "organizations:DeregisterDelegatedAdministrator",
                "organizations:DescribeAccount",
                "organizations:DescribeOrganization",
                "organizations:ListDelegatedAdministrators",
                "organizations:ListRoots",
                "organizations:ListParents",
                "organizations:ListOrganizationalUnitsForParent",
                "organizations:DescribeOrganizationalUnit",
                "organizations:ListAWSServiceAccessForOrganization",
                "s3:GetBucketLocation",
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "resource-groups:ListGroups",
                "iam:ListRoles",
                "iam:ListRolePolicies",
                "iam:GetRole",
                "iam:CreatePolicy",
                "organizations:RegisterDelegatedAdministrator",
                "organizations:EnableAWSServiceAccess",
                "cloudformation:TagResource"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:RollbackStack",
                "cloudformation:CreateStack",
                "cloudformation:UpdateStack",
                "cloudformation:DeleteStack"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:*:stack/StackSet-AWS-QuickSetup-*",
                "arn:aws:cloudformation:*:*:stack/AWS-QuickSetup-*",
                "arn:aws:cloudformation:*:*:type/resource/*",
                "arn:aws:cloudformation:*:*:stack/StackSet-SSMQuickSetup"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "cloudformation:CreateStackSet",
                "cloudformation:UpdateStackSet",
                "cloudformation:DeleteStackSet",
                "cloudformation:DeleteStackInstances",
                "cloudformation:CreateStackInstances",
                "cloudformation:StopStackSetOperation"
            ],
            "Resource": [
                "arn:aws:cloudformation:*:*:stackset/AWS-QuickSetup-*",
                "arn:aws:cloudformation:*:*:stackset/SSMQuickSetup",
                "arn:aws:cloudformation:*:*:type/resource/*",
                "arn:aws:cloudformation:*:*:stackset-target/AWS-QuickSetup-*:*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateRole",
                "iam:DeleteRole",
                "iam:AttachRolePolicy",
                "iam:DetachRolePolicy",
                "iam:GetRolePolicy",
                "iam:PutRolePolicy"
            ],
            "Resource": [
                "arn:aws:iam::*:role/AWS-QuickSetup-*",
                "arn:aws:iam::*:role/service-role/AWS-QuickSetup-*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::111122223333:role/AWS-QuickSetup-*",
            "Condition": {
                "StringEquals": {
	            "iam:PassedToService": [
	                "ssm-quicksetup.amazonaws.com",
	                "cloudformation.amazonaws.com"
	            ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DeleteAssociation",
                "ssm:CreateAssociation",
                "ssm:StartAssociationsOnce"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ssm:StartAutomationExecution",
            "Resource": [
                "arn:aws:ssm:*:*:document/AWS-EnableExplorer",
                "arn:aws:ssm:*:*:automation-execution/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetOpsSummary",
                "ssm:CreateResourceDataSync",
                "ssm:UpdateResourceDataSync"
            ],
            "Resource": "arn:aws:ssm:*:*:resource-data-sync/AWS-QuickSetup-*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole"
            ],
            "Condition": {
                "StringEquals": {
                    "iam:AWSServiceName": [
                        "accountdiscovery.ssm.amazonaws.com",
                        "ssm.amazonaws.com",
                        "ssm-quicksetup.amazonaws.com",
                        "stacksets.cloudformation.amazonaws.com"
                    ]
                }
            },
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole"
            ],
            "Resource": "arn:aws:iam::*:role/aws-service-role/stacksets.cloudformation.amazonaws.com/AWSServiceRoleForCloudFormationStackSetsOrgAdmin"
        }
    ]
}
```

------

Um Benutzern schreibgeschützte Berechtigungen zu gewähren, erlauben Sie nur `ssm-quicksetup:List*`- und `ssm-quicksetup:Get*`-Operationen für die Quick Setup-API.

Quick SetupErstellt während des Onboardings die folgenden AWS Identity and Access Management (IAM-) Rollen in Ihrem Namen:
+ `AWS-QuickSetup-LocalExecutionRole` – Erteilt CloudFormation Berechtigungen zur Verwendung beliebiger Vorlagen, mit Ausnahme der Patch-Richtlinienvorlage, und zur Erstellung der erforderlichen Ressourcen.
+ `AWS-QuickSetup-LocalAdministrationRole`— Erteilt Berechtigungen AWS CloudFormation zur Übernahme. `AWS-QuickSetup-LocalExecutionRole`
+ `AWS-QuickSetup-PatchPolicy-LocalExecutionRole`— Erteilt Berechtigungen AWS CloudFormation zur Verwendung der Patch-Richtlinienvorlage und zur Erstellung der erforderlichen Ressourcen.
+ `AWS-QuickSetup-PatchPolicy-LocalAdministrationRole`— Erteilt Berechtigungen AWS CloudFormation zum Übernehmen`AWS-QuickSetup-PatchPolicy-LocalExecutionRole`.

Wenn Sie ein Verwaltungskonto einrichten — das Konto, mit dem Sie eine Organisation erstellen AWS Organizations— werden in Ihrem Quick Setup Namen auch die folgenden Rollen erstellt:
+ `AWS-QuickSetup-SSM-RoleForEnablingExplorer`— Erteilt Berechtigungen dem `AWS-EnableExplorer`-Automation-Runbook. Das `AWS-EnableExplorer` Runbook konfiguriertExplorer, ein Tool in Systems Manager, um Informationen für mehrere AWS-Konten und anzuzeigen. AWS-Regionen
+ `AWSServiceRoleForAmazonSSM`— Eine dienstbezogene Rolle, die Zugriff auf AWS Ressourcen gewährt, die von Systems Manager verwaltet und verwendet werden.
+ `AWSServiceRoleForAmazonSSM_AccountDiscovery`— Eine serviceverknüpfte Rolle, die Systems Manager berechtigt, beim Synchronisieren von Daten anzurufen AWS-Services , um AWS-Konto Informationen zu ermitteln. Weitere Informationen finden Sie unter [Verwenden von Rollen zum Sammeln von AWS-Konto Informationen für OpsCenter und Explorer](using-service-linked-roles-service-action-2.md).

Quick SetupErmöglicht beim Onboarding eines Verwaltungskontos den vertrauenswürdigen Zugriff zwischen AWS Organizations und CloudFormation die Bereitstellung von Quick Setup Konfigurationen im gesamten Unternehmen. Um vertrauenswürdigen Zugriff zu aktivieren, muss Ihr Verwaltungskonto über Administratorberechtigungen verfügen. Nach dem Onboarding benötigen Sie keine Administratorberechtigungen mehr. Weitere Informationen finden Sie unter [Enable trusted access with Organizations (Aktivieren des vertrauenswürdigen Zugriffs mit Organizations)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-enable-trusted-access.html).

Informationen zu AWS Organizations Kontotypen finden Sie unter [AWS Organizations Terminologie und Konzepten](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_getting-started_concepts.html) im *AWS Organizations Benutzerhandbuch*.

**Anmerkung**  
Quick Setupverwendet CloudFormation StackSets , um Ihre Konfigurationen AWS-Konten regionsübergreifend bereitzustellen. Wenn die Anzahl der Zielkonten multipliziert mit der Anzahl der Regionen 10 000 übersteigt, kann die Konfiguration nicht bereitgestellt werden. Wir empfehlen Ihnen, Ihren Anwendungsfall zu überprüfen und Konfigurationen zu erstellen, die weniger Ziele verwenden, um dem Wachstum Ihres Unternehmens Rechnung zu tragen. Stack-Instances werden nicht für das Verwaltungskonto Ihrer Organisation bereitgestellt. Weitere Informationen finden Sie unter [Considerations when creating a stack set with service-managed permissions (Überlegungen beim Erstellen eines Stack-Sets mit service-verwalteten Berechtigungen)](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-getting-started-create.html?icmpid=docs_cfn_console#stacksets-orgs-considerations). 

## Manuelles Onboarding für die programmatische Arbeit mit der Quick Setup API
<a name="quick-setup-api-manual-onboarding"></a>

Wenn Sie die Konsole zum Arbeiten mit Quick Setup verwenden, übernimmt der Service die Onboarding-Schritte für Sie. Wenn Sie planen, die Quick Setup API AWS CLI zu verwenden SDKs oder mit ihr zu arbeiten, können Sie die Konsole trotzdem verwenden, um die Onboarding-Schritte für Sie abzuschließen, sodass Sie sie nicht manuell durchführen müssen. Einige Kunden müssen die Onboarding-Schritte für Quick Setup jedoch programmgesteuert durchführen, ohne mit der Konsole zu interagieren. Wenn diese Methode zu Ihrem Anwendungsfall passt, müssen Sie die folgenden Schritte ausführen. All diese Schritte müssen von Ihrem AWS Organizations Verwaltungskonto aus abgeschlossen werden.

**Um das manuelle Onboarding abzuschließen für Quick Setup**

1. Aktivieren Sie den vertrauenswürdigen Zugriff für CloudFormation mit Organizations. Dadurch erhält das Verwaltungskonto die Berechtigungen, die StackSets für die Erstellung und Verwaltung Ihrer Organisation erforderlich sind. Sie können die `ActivateOrganizationsAccess` API-Aktion verwenden CloudFormation, um diesen Schritt abzuschließen. Weitere Informationen finden Sie unter [ActivateOrganizationsAccess](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_ActivateOrganizationsAccess.html) in der *AWS CloudFormation -API-Referenz*.

1. Ermöglichen Sie die Integration von Systems Manager mit Organizations. Auf diese Weise kann Systems Manager eine serviceverknüpfte Rolle für alle Konten Ihrer Organisation erstellen. Auf diese Weise kann Systems Manager auch Vorgänge in Ihrem Namen in Ihrer Organisation und deren Konten ausführen. Sie können die `EnableAWSServiceAccess` API-Aktion verwenden AWS Organizations, um diesen Schritt abzuschließen. Der Dienstprinzipal für Systems Manager ist`ssm.amazonaws.com`. Weitere Informationen finden Sie unter [Enable AWSService Access](https://docs.aws.amazon.com/organizations/latest/APIReference/API_EnableAWSServiceAccess.html) in der *AWS Organizations API-Referenz.*

1. Erstellen Sie die erforderliche IAM-Rolle für Explorer. Dadurch kann Quick Setup Dashboards für Ihre Konfigurationen erstellen, sodass Sie Bereitstellungs- und Zuordnungsstatus anzeigen können. Erstellen Sie eine IAM-Rolle und fügen Sie ihr die von `AWSSystemsManagerEnableExplorerExecutionPolicy` verwaltete Richtlinie hinzu. Ändern Sie die Vertrauensrichtlinie für die Rolle so, dass sie den folgenden Anforderungen entspricht. Ersetzen Sie jede *account ID* durch Ihre Informationen.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "ssm.amazonaws.com"
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "111122223333"
                   },
                   "ArnLike": {
                       "aws:SourceArn": "arn:*:ssm:*:111122223333:automation-execution/*"
                   }
               }
           }
       ]
   }
   ```

------

1. Aktualisieren Sie die Quick Setup-Serviceeinstellung für Explorer. Sie können die `UpdateServiceSettings`-API-Aktion von Quick Setup verwenden, um diesen Schritt abzuschließen. Geben Sie den ARN für die IAM-Rolle an, die Sie im vorherigen Schritt für den `ExplorerEnablingRoleArn`-Anforderungsparameter erstellt haben. Weitere Informationen finden Sie unter [UpdateServiceSettings](https://docs.aws.amazon.com/quick-setup/latest/APIReference/API_UpdateServiceSettings.html) in der *Quick Setup-API-Referenz*.

1. Erstellen Sie die erforderlichen IAM-Rollen für CloudFormation StackSets die Verwendung. Sie müssen eine *Ausführungsrolle* und eine *Administratorrolle erstellen.*

   1. Erstellen Sie die Ausführungsrolle. Der Ausführungsrolle sollte mindestens eine der `AWSQuickSetupDeploymentRolePolicy` oder `AWSQuickSetupPatchPolicyDeploymentRolePolicy` verwalteten Richtlinien zugeordnet sein. Wenn Sie nur Konfigurationen für Patch-Richtlinien erstellen, können Sie `AWSQuickSetupPatchPolicyDeploymentRolePolicy` verwaltete Richtlinien verwenden. Alle anderen Konfigurationen verwenden die `AWSQuickSetupDeploymentRolePolicy`-Richtlinie. Ändern Sie die Vertrauensrichtlinie für die Rolle so, dass sie den folgenden Anforderungen entspricht. Ersetzen Sie jedes *account ID* Feld *administration role name* durch Ihre Informationen.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "AWS": "arn:aws:iam::111122223333:role/administration role name"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. Erstellen Sie die Administratorrolle. Die Berechtigungsrichtlinie muss wie folgt übereinstimmen. Ersetzen Sie jedes *account ID* und *execution role name* durch Ihre Informationen.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Action": [
                      "sts:AssumeRole"
                  ],
                  "Resource": "arn:*:iam::111122223333:role/execution role name",
                  "Effect": "Allow"
              }
          ]
      }
      ```

------

      Ändern Sie die Vertrauensrichtlinie für die Rolle so, dass sie den folgenden Anforderungen entspricht. Ersetzen Sie jedes *account ID* durch Ihre Informationen.

------
#### [ JSON ]

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "cloudformation.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole",
                  "Condition": {
                      "StringEquals": {
                          "aws:SourceAccount": "111122223333"
                      },
                      "ArnLike": {
                          "aws:SourceArn": "arn:aws:cloudformation:*:111122223333:stackset/AWS-QuickSetup-*"
                      }
                  }
              }
          ]
      }
      ```

------

# Konfiguration für „Rolle übernehmen“ für Systems Manager
<a name="quick-setup-assume-role"></a>

## So erstellen Sie eine Rolle „Übernehmen“ für Systems Manager Quick Setup:
<a name="create-assume-role"></a>

Systems Manager Quick Setup erfordert eine Rolle, die es Systems Manager ermöglicht, Aktionen in Ihrem Konto sicher durchzuführen. Diese Rolle gewährt Systems Manager die erforderlichen Berechtigungen, um Befehle auf Ihren Instances auszuführen und EC2 Instanzen, IAM-Rollen und andere Systems Manager Manager-Ressourcen in Ihrem Namen zu konfigurieren.

1. Öffnen Sie unter [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) die IAM-Konsole.

1. Wählen Sie im Navigationsbereich **Richtlinien** und anschließend Richtlinie **erstellen** aus

1. Fügen Sie die `SsmOnboardingInlinePolicy` Richtlinie mithilfe der folgenden JSON-Datei hinzu. (Diese Richtlinie ermöglicht Aktionen, die erforderlich sind, um Instanzprofilberechtigungen an von Ihnen angegebene Instanzen anzuhängen. Ermöglicht zum Beispiel die Erstellung von Instanzprofilen und deren Zuordnung zu EC2 Instanzen).

1. Wenn Sie fertig sind, wählen Sie im Navigationsbereich **Rollen** und dann **Rolle erstellen** aus.

1. Behalten Sie für den **Entitätstyp Vertrauenswürdig** die Standardeinstellung (Dienst) bei.

1. Wählen **Sie unter Anwendungsfall** die Option **Systems Manager** und dann **Weiter** aus.

1. Gehen Sie auf der Seite „**Berechtigungen hinzufügen**“ wie folgt vor:

1. Fügen Sie die `SsmOnboardingInlinePolicy` Richtlinie hinzu

1. Wählen Sie **Weiter**

1. Geben Sie **unter Rollenname** einen aussagekräftigen Namen ein (z. B.`AmazonSSMRoleForAutomationAssumeQuickSetup`).

1. (Optional) Fügen Sie Tags hinzu, um die Rolle leichter identifizieren und organisieren zu können.

1. Wählen Sie **Rolle erstellen** aus.

**Wichtig**  
Die Rolle muss eine Vertrauensbeziehung mit beinhalten`ssm.amazonaws.com`. Dies wird automatisch konfiguriert, wenn Sie in Schritt 4 Systems Manager als Dienst auswählen.

Nachdem Sie die Rolle erstellt haben, können Sie sie bei der Konfiguration von Quick Setup auswählen. Diese Rolle ermöglicht es Systems Manager, EC2 Instanzen, IAM-Rollen und andere Systems Manager Manager-Ressourcen zu verwalten und Befehle in Ihrem Namen auszuführen und gleichzeitig die Sicherheit durch spezifische, eingeschränkte Berechtigungen aufrechtzuerhalten.

## Berechtigungsrichtlinien
<a name="permissions-policies"></a>

**`SsmOnboardingInlinePolicy`**  
Die folgende Richtlinie definiert die Berechtigungen für Systems Manager Quick Setup:

```
{
    "Version": "2012-10-17" 		 	 	 ,
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "iam:CreateInstanceProfile",
                "iam:ListInstanceProfilesForRole",
                "ec2:DescribeIamInstanceProfileAssociations",
                "iam:GetInstanceProfile",
                "iam:AddRoleToInstanceProfile"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:AssociateIamInstanceProfile"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "Null": {
                    "ec2:InstanceProfile": "true"
                },
                "ArnLike": {
                    "ec2:NewInstanceProfile": "arn:aws:iam::*:instance-profile/[INSTANCE_PROFILE_ROLE_NAME]"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/[INSTANCE_PROFILE_ROLE_NAME]",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "ec2.amazonaws.com"
                }
            }
        }
    ]
        }
```

**Vertrauensstellung**  
*Dies wird automatisch über die obigen Schritte hinzugefügt*

```
{
    "Version": "2012-10-17" 		 	 	 ,
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ssm.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
     ]
        }
```

# Verwendung eines delegierten Administrators für Quick Setup
<a name="quick-setup-delegated-administrator"></a>

Nachdem Sie ein delegiertes Administratorkonto für registriert habenQuick Setup, können Benutzer mit den entsprechenden Berechtigungen für dieses Konto Konfigurationsmanager erstellen, aktualisieren, anzeigen und löschen, die auf Organisationseinheiten innerhalb Ihrer AWS Organizations Struktur abzielen. Über dieses delegierte Administratorkonto können Sie auch Konfigurationsmanager verwalten, die mit dem Verwaltungskonto Ihrer Organisation erstellt wurden.

Über das Verwaltungskonto in Organizations kann ein Konto innerhalb Ihrer Organisation als delegierter Administrator festgelegt werden. Wenn Sie ein Konto als delegierter Administrator für registrierenQuick Setup, wird dieses Konto automatisch auch zu einem delegierten Administrator für AWS CloudFormation StackSets und Systems Manager Explorer, da diese Dienste für die Bereitstellung und Überwachung Quick Setup von Konfigurationen erforderlich sind.

**Anmerkung**  
Derzeit wird der Konfigurationstyp der Patch-Richtlinie vom delegierten Administrator für Quick Setup nicht unterstützt. Patch-Richtlinienkonfigurationen für eine Organisation müssen im Verwaltungskonto einer Organisation erstellt und verwaltet werden. Weitere Informationen finden Sie unter [Erstellen einer Patch-Richtlinie](quick-setup-patch-manager.md#create-patch-policy).

In den folgenden Themen wird beschrieben, wie Sie einen delegierten Administrator für Quick Setup registrieren und die Registrierung aufheben.

**Topics**
+ [So registrieren Sie einen delegierten Administrator für Quick Setup](quick-setup-register-delegated-administrator.md)
+ [So heben Sie die Registrierung eines delegierten Administrators Quick Setup auf](quick-setup-deregister-delegated-administrator.md)

# So registrieren Sie einen delegierten Administrator für Quick Setup
<a name="quick-setup-register-delegated-administrator"></a>

Gehen Sie wie folgt vor, um einen delegierten Administrator für Quick Setup zu registrieren.

**Registrieren Sie einen delegierten Administrator Quick Setup wie folgt**

1. Loggen Sie sich in Ihr AWS Organizations Verwaltungskonto ein.

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

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

1. Überprüfen Sie im Abschnott **Delegierter Administrator für Quick Setup**, ob Sie die erforderlichen dienstverknüpften Rollen- und Servicezugriffsoptionen konfiguriert haben. Wählen Sie bei Bedarf die Schaltflächen **Create role (Rolle erstellen)** und **Enable access (Zugriff gewähren)** aus, um diese Optionen zu konfigurieren.

1. Geben Sie als **Konto-ID** die AWS-Konto ID ein. Bei diesem Konto muss es sich um ein Mitgliedskonto in handeln AWS Organizations.

1. Wählen Sie **Register delegated administrator (Delegierten Administrator registrieren)**.

# So heben Sie die Registrierung eines delegierten Administrators Quick Setup auf
<a name="quick-setup-deregister-delegated-administrator"></a>

Gehen Sie wie folgt vor, um die Registrierung eines delegierten Administrators für Quick Setup aufzuheben.

**Heben Sie die Registrierung eines delegierten Administrators Quick Setup auf wie folgt**

1. Loggen Sie sich in Ihr AWS Organizations Verwaltungskonto ein.

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

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

1. Wählen Sie im Abschnitt **Delegierter Administrator für Quick Setup** aus der Dropdown-Liste **Aktionen** die Option **Abmelden** aus.

1. Wählen Sie **Bestätigen** aus.

# Lernen Sie Quick Setup-Terminologie und Details
<a name="quick-setup-using"></a>

Quick Setup, ein Tool in AWS Systems Manager, zeigt die Ergebnisse aller von Ihnen erstellten Konfigurationsmanager AWS-Regionen in der Tabelle **Configuration Manager** auf der Quick Setup Startseite an. Auf dieser Seite können Sie über **View details ** (Details anzeigen) die Details jeder Konfiguration anzeigen, Konfigurationen über das Dropdown-Menü **Actions** (Aktionen) löschen oder über **Create** (Erstellen) Konfigurationen erstellen. Die Tabelle **Konfigurationsmanager** enthält die folgenden Informationen:
+ **Name** – Der Name des Konfigurationsmanagers, sofern er bei der Erstellung angegeben wurde.
+ **Configuration type** (Konfigurationstyp) – Der Konfigurationstyp, der beim Erstellen der Konfiguration ausgewählt wurde. 
+ **Version** – Die Version des aktuell bereitgestellten Konfigurationstyps.
+ **Organisationseinheiten** — Zeigt die Organisationseinheiten (OUs) an, für die die Konfiguration bereitgestellt wird, wenn Sie eine **benutzerdefinierte** Gruppe von Zielen ausgewählt haben. Organisationseinheiten und benutzerdefinierte Ziele stehen nur im Verwaltungskonto Ihrer Organisation zur Verfügung. Das Verwaltungskonto ist das Konto, das Sie zum Erstellen einer Organisation in AWS Organizations verwenden.
+ **Bereitstellungstyp** – Gibt an, ob die Bereitstellung für die gesamte Organisation (`Organizational`) oder nur für Ihr Konto (`Local`) gilt.
+ **Regions** (Regionen) – Die Regionen, in denen die Konfiguration bereitgestellt wird, wenn Sie **Custom** (benutzerdefinierte) Ziele oder Ziele in Ihrem **Current account** (aktuellem Konto) auswählen. 
+ **Bereitstellungsstatus** — Der Bereitstellungsstatus gibt an, ob die Ziel- oder Stack-Instance AWS CloudFormation erfolgreich bereitgestellt wurde. Die Ziel- und Stack-Instances enthalten die Konfigurationsoptionen, die Sie bei der Erstellung der Konfiguration ausgewählt haben.
+ **Association status** (Zuordnungsstatus) – Der Zuordnungsstatus ist der Status aller Zuordnungen, die durch die von Ihnen erstellte Konfiguration generiert wurden. Die Zuordnungen für alle Ziele müssen erfolgreich ausgeführt werden, andernfalls lautet der Status **Failed** (Fehlgeschlagen).

  Quick Setup erstellt und führt eine State Manager-Zuordnung für jedes Konfigurationsziel aus. State Manager ist ein Tool in AWS Systems Manager.

Um die Konfigurationen anzuzeigen, die für die Region bereitgestellt wurden, die Sie gerade durchsuchen, wählen Sie den Tab **Konfigurationen**.

## Konfigurationsdetails
<a name="quick-setup-details"></a>

Die Seite **Configuration details** (Konfigurationsdetails) zeigt Informationen über die Bereitstellung der Konfiguration und die entsprechenden Zuordnungen. Auf dieser Seite können Sie Konfigurationsoptionen bearbeiten, Ziele aktualisieren oder die Konfiguration löschen. Außerdem können Sie die Details der einzelnen Konfigurationsbereitstellungen anzeigen, um weitere Informationen über die Zuordnungen zu erhalten. 

Je nach Art der Konfiguration wird eines oder mehrere der folgenden Statusdiagramme angezeigt:

**Configuration deployment status** (Status der Konfigurationsbereitstellungen)  
Zeigt die Anzahl der Bereitstellungen, die erfolgreich waren, fehlgeschlagen sind, ausgeführt werden oder noch ausstehen. Die Bereitstellungen erfolgen in den angegebenen Zielkonten und Regionen, die von der Konfiguration betroffene Knoten enthalten. 

**Configuration association status** (Status der Konfigurationszuordnung)  
Zeigt die Anzahl der State Manager-Zuordnungen, die erfolgreich waren, fehlgeschlagen sind oder noch ausstehen. Quick Setup erstellt für die ausgewählten Konfigurationsoptionen eine Zuordnung in jeder Bereitstellung.

**Einrichtung des Status**  
Zeigt die Anzahl der vom Konfigurationstyp durchgeführten Aktionen und ihren aktuellen Status an. 

**Ressourcen-Compliance**  
Zeigt die Anzahl der Ressourcen an, die mit der angegebenen Konfigurationsrichtlinie konform sind.

Die Seite **Configuration details** (Konfigurationsdetails) zeigt Informationen über die Bereitstellung Ihrer Konfiguration. Weitere Details zu den einzelnen Bereitstellungen können Sie anzeigen, indem Sie eine Bereitstellung auswählen und dann auf **View details** (Details anzeigen) klicken. Auf der Detailseite werden die Zuordnungen angezeigt, die für die Knoten in der jeweiligen Bereitstellung bereitgestellt wurden.

## Bearbeiten und Löschen Ihrer Konfiguration
<a name="quick-setup-edit-delete"></a>

Die Konfigurationsoptionen einer Konfiguration können Sie auf der Seite **Configuration details** (Konfigurationsdetails) bearbeiten. Dazu wählen Sie **Actions** (Aktionen) und dann **Edit configuration options** (Konfigurationsoptionen bearbeiten) aus. Wenn Sie der Konfiguration neue Optionen hinzufügen, führt Quick Setup Ihre Bereitstellungen aus und erstellt neue Zuordnungen. Wenn Sie Optionen aus einer Konfiguration entfernen, führt Quick Setup die Bereitstellungen aus und entfernt alle entsprechenden Zuordnungen.

**Anmerkung**  
Die Quick Setup-Konfigurationen für Ihr Konto können Sie jederzeit ändern. Um die Konfiguration einer **Organisation** zu bearbeiten, muss **Configuration status** (Konfigurationsstatus) entweder **Success** (Erfolg) oder **Failed** (Fehlgeschlagen) lauten. 

Sie können auch die in Ihren Konfigurationen enthaltenen Ziele aktualisieren, indem Sie **Aktionen** und **Hinzufügen OUs**, **Regionen hinzufügen** OUs, **Entfernen** oder **Regionen entfernen** auswählen. Wenn Ihr Konto nicht als Verwaltungskonto konfiguriert ist oder Sie die Konfiguration nur für das aktuelle Konto erstellt haben, können Sie die Zielorganisationseinheiten (OUs) nicht aktualisieren. Durch das Entfernen einer Region oder Organisationseinheit werden die Verknüpfungen aus diesen Regionen oder entfernt OUs. 

Veröffentlicht regelmäßig neue Quick Setup-Versionen von Konfigurationen. Sie können die Option **Konfiguration aktualisieren** auswählen, um Ihre Konfiguration auf die neueste Version zu aktualisieren.

Sie können eine Konfiguration aus Quick Setup löschen, indem Sie die Konfiguration, danach **Actions** (Aktionen) und dann **Delete configuration** (Konfiguration löschen) auswählen. Oder Sie können die Konfiguration auf der Seite mit den **Konfigurationsdetails** im Dropdownmenü **Aktionen** und dann **Konfiguration löschen löschen**. Quick Setupfordert Sie dann auf, **alle OUs und Regionen entfernen**, was einige Zeit in Anspruch nehmen kann. Beim Löschen einer Konfiguration werden alle entsprechenden Zuordnungen ebenfalls gelöscht. Bei diesem zweistufigen Löschvorgang werden alle bereitgestellten Ressourcen aus allen Konten und Regionen entfernt. Anschließend wird die Konfiguration gelöscht.

## Compliance von Konfigurationen
<a name="quick-setup-compliance"></a>

Sie können anzeigen, ob Ihre Instances den von Ihren Konfigurationen erstellten Zuordnungen entsprechen, und zwar in Explorer oder Compliance, die beide Tools in AWS Systems Manager sind. Weitere Informationen zur Compliance finden Sie unter [Erfahren Sie mehr über Compliance](compliance-about.md). Weitere Informationen zum Anzeigen der Compliance in Explorer finden Sie unter [AWS Systems Manager Explorer](Explorer.md).

# Verwenden der Quick Setup-API zur Verwaltung von Konfigurationen und Bereitstellungen
<a name="quick-setup-api"></a>

Sie können die von bereitgestellte API verwendenQuick Setup, um Konfigurationen und Bereitstellungen mit dem AWS CLI oder Ihrem bevorzugten SDK zu erstellen und zu verwalten. Sie können sie auch verwenden CloudFormation , um eine Configuration Manager-Ressource zu erstellen, die Konfigurationen bereitstellt. Mithilfe der API erstellen Sie Konfigurationsmanager, die *Konfigurationsdefinitionen* bereitstellen. Konfigurationsdefinitionen enthalten alle erforderlichen Informationen, um einen bestimmten Konfigurationstyp bereitzustellen. Weitere Informationen zur Quick Setup-API finden Sie in der [Quick-Setup-API-Referenz](https://docs.aws.amazon.com/quick-setup/latest/APIReference/).

Die folgenden Beispiele zeigen, wie Konfigurationsmanager mithilfe von AWS CLI und CloudFormation erstellt werden.

------
#### [ AWS CLI ]

```
aws ssm-quicksetup create-configuration-manager \
--name configuration manager name \
--description Description of your configuration manager
--configuration-definitions JSON string containing configuration defintion
```

Im Folgenden finden Sie ein Beispiel für eine JSON-Zeichenfolge, die eine Konfigurationsdefinition für die Patch-Richtlinie enthält.

```
'{"Type":"AWSQuickSetupType-PatchPolicy","LocalDeploymentAdministrationRoleArn":"arn:aws:iam::123456789012:role/AWS-QuickSetup-StackSet-Local-AdministrationRole","LocalDeploymentExecutionRoleName":"AWS-QuickSetup-StackSet-Local-ExecutionRole","Parameters":{"ConfigurationOptionsInstallNextInterval":"true","ConfigurationOptionsInstallValue":"cron(0 2 ? * SAT#1 *)","ConfigurationOptionsPatchOperation":"ScanAndInstall","ConfigurationOptionsScanNextInterval":"false","ConfigurationOptionsScanValue":"cron(0 1 * * ? *)","HasDeletedBaseline":"false","IsPolicyAttachAllowed":"true","OutputBucketRegion":"","OutputLogEnableS3":"false","OutputS3BucketName":"","OutputS3KeyPrefix":"","PatchBaselineRegion":"us-east-1","PatchBaselineUseDefault":"custom","PatchPolicyName":"dev-patch-policy","RateControlConcurrency":"5","RateControlErrorThreshold":"0%","RebootOption":"RebootIfNeeded","ResourceGroupName":"","SelectedPatchBaselines":"{\"ALMA_LINUX\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-0cb0c4966f86b059b\",\"label\":\"AWS-AlmaLinuxDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Alma Linux Provided by AWS.\",\"disabled\":false},\"AMAZON_LINUX_2\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-0be8c61cde3be63f3\",\"label\":\"AWS-AmazonLinux2DefaultPatchBaseline\",\"description\":\"Baseline containing all Security and Bugfix updates approved for Amazon Linux 2 instances\",\"disabled\":false},\"AMAZON_LINUX_2023\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-05c9c9bf778d4c4d0\",\"label\":\"AWS-AmazonLinux2023DefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Amazon Linux 2023 Provided by AWS.\",\"disabled\":false},\"DEBIAN\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-09a5f8eb62bde80b1\",\"label\":\"AWS-DebianDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Debian Provided by AWS.\",\"disabled\":false},\"MACOS\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-0ee4f94581368c0d4\",\"label\":\"AWS-MacOSDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for MacOS Provided by AWS.\",\"disabled\":false},\"ORACLE_LINUX\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-06bff38e95fe85c02\",\"label\":\"AWS-OracleLinuxDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Oracle Linux Server Provided by AWS.\",\"disabled\":false},\"REDHAT_ENTERPRISE_LINUX\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-0cbb3a633de00f07c\",\"label\":\"AWS-RedHatDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Redhat Enterprise Linux Provided by AWS.\",\"disabled\":false},\"ROCKY_LINUX\":{\"value\":\"arn:aws:ssm:us-east-1:123456789012:patchbaseline/pb-03ec98bc512aa3ac0\",\"label\":\"AWS-RockyLinuxDefaultPatchBaseline\",\"description\":\"Default Patch Baseline for Rocky Linux Provided by AWS.\",\"disabled\":false},\"UBUNTU\":{\"value\":\"pb-06e3563bd35503f2b\",\"label\":\"custom-UbuntuServer-Blog-Baseline\",\"description\":\"Default Patch Baseline for Ubuntu Provided by AWS.\",\"disabled\":false},\"WINDOWS\":{\"value\":\"pb-016889927b2bb8542\",\"label\":\"custom-WindowsServer-Blog-Baseline\",\"disabled\":false}}","TargetInstances":"","TargetOrganizationalUnits":"ou-9utf-example","TargetRegions":"us-east-1,us-east-2","TargetTagKey":"Patch","TargetTagValue":"true","TargetType":"Tags"}}' \
```

------
#### [ CloudFormation ]

```
AWSTemplateFormatVersion: '2010-09-09'
Resources:
SSMQuickSetupTestConfigurationManager:
Type: "AWS::SSMQuickSetup::ConfigurationManager"
Properties:
    Name: "MyQuickSetup"
    Description: "Test configuration manager"
    ConfigurationDefinitions:
    - Type: "AWSQuickSetupType-CFGRecording"
      Parameters:
        TargetAccounts:
            Ref: AWS::AccountId
        TargetRegions:
            Ref: AWS::Region
        LocalDeploymentAdministrationRoleArn: !Sub "arn:aws:iam::${AWS::AccountId}:role/AWS-QuickSetup-StackSet-ContractTest-AdministrationRole"
        LocalDeploymentExecutionRoleName: "AWS-QuickSetup-StackSet-ContractTest-ExecutionRole"
    Tags:
        foo1: "bar1"
```

------

# Unterstützte Quick Setup-Konfigurationstypen
<a name="quick-setup-config-types"></a>

**Unterstützte Konfigurationstypen**  
Quick Setupführt Sie durch die Konfiguration betrieblicher Best Practices für eine Reihe von Systems Manager und anderen AWS-Services und führt Sie automatisch durch die Implementierung dieser Konfigurationen. Das Quick Setup-Dashboard zeigt eine Echtzeitansicht Ihres Konfigurationsbereitstellungsstatus an. 

Sie können es einzeln AWS-Konto oder über mehrere AWS-Konten Regionen hinweg verwendenQuick Setup, indem Sie es integrieren AWS Organizations. Durch Verwenden von Quick Setup über mehrere Konten hinweg können Sie sicherstellen, dass Ihre Organisation konsistente Konfigurationen aufrechterhält.

Quick Setup bietet Unterstützung für die folgenden Konfigurationstypen.
+ [Amazon-EC2-Host-Verwaltung mit Quick Setup einrichten](quick-setup-host-management.md)
+ [Die Standardkonfiguration für die Host-Verwaltung für eine Organisation mit Quick Setup einrichten](quick-setup-default-host-management-configuration.md)
+ [Erstellen Sie einen AWS Config-Konfigurationsrekorder mit Quick Setup](quick-setup-config.md)
+ [Stellen Sie das AWS Config Conformance Pack bereit mit Quick Setup](quick-setup-cpack.md)
+ [Das Patchen für Instances in einer Organisation mithilfe einer Patch-Richtlinie für Quick Setup konfigurieren](quick-setup-patch-manager.md)
+ [Einrichtung der Organisation durch Change Manager](change-manager-organization-setup.md)
+ [DevOps-Guru einrichten mit Quick Setup](quick-setup-devops.md)
+ [Bereitstellen von Distributor-Paketen mit Quick Setup](quick-setup-distributor.md)
+ [Automatisches Stoppen und Starten von EC2-Instances nach einem Zeitplan mit Quick Setup](quick-setup-scheduler.md)
+ [Einrichtung der Organisation durch OpsCenter](OpsCenter-quick-setup-cross-account.md)
+ [Konfiguration AWS Resource Explorer mit Quick Setup](Resource-explorer-quick-setup.md)

# Amazon-EC2-Host-Verwaltung mit Quick Setup einrichten
<a name="quick-setup-host-management"></a>

Verwenden SieQuick Setup, ein Tool in AWS Systems Manager, um schnell erforderliche Sicherheitsrollen und häufig verwendete Systems Manager Manager-Tools auf Ihren Amazon Elastic Compute Cloud (Amazon EC2) -Instances zu konfigurieren. Sie können es Quick Setup in einem einzelnen Konto oder über mehrere Konten hinweg und AWS-Regionen durch Integration mit AWS Organizations verwenden. Diese Tools helfen Ihnen, den Zustand Ihrer Instances zu verwalten und zu überwachen und gleichzeitig das Minimum an erforderlichen Berechtigungen für den Einstieg bereitzustellen. 

Wenn Sie mit den Services und Features von Systems Manager nicht vertraut sind, empfehlen wir, das *AWS Systems Manager -Benutzerhandbuch* zu lesen, bevor Sie eine Konfiguration mit Quick Setup erstellen. Weitere Informationen zur Systems Manager finden Sie unter [Was ist AWS Systems Manager?](what-is-systems-manager.md).

**Wichtig**  
Quick Setup ist möglicherweise nicht das richtige Tool für das EC2-Management, wenn einer der folgenden Punkte auf Sie zutrifft:  
Sie versuchen zum ersten Mal, eine EC2-Instance zu erstellen, um AWS Funktionen auszuprobieren.
Sie haben noch nicht viel Erfahrung mit EC2-Instance-Management.
Stattdessen empfehlen wir Ihnen, die folgenden Inhalte zu untersuchen:   
[Erste Schritte mit Amazon EC2](https://aws.amazon.com/ec2/getting-started)
[Eine Instance mit dem neuen Launch Instance Wizard](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-launch-instance-wizard.html) im *Benutzerhandbuch zu Amazon EC2 starten*
[Tutorial: Erste Schritte mit Amazon-EC2-Linux-Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html) im *Amazon-EC2-Benutzerhandbuch*
Wenn Sie bereits mit dem EC2-Instance-Management vertraut sind und die Konfiguration und Verwaltung für mehrere EC2-Instances optimieren möchten, verwenden Sie Quick Setup. Unabhängig davon, ob Ihr Unternehmen über Dutzende, Tausende oder Millionen von EC2-Instances verfügt, verwenden Sie das folgende Quick Setup-Verfahren, um mehrere Optionen gleichzeitig für sie zu konfigurieren.

**Anmerkung**  
Mit diesem Konfigurationstyp können Sie mehrere Optionen für eine gesamte Organisation festlegen, die in AWS Organizations, nur für einige Organisationskonten und Regionen oder für ein einzelnes Konto definiert ist. Eine dieser Optionen besteht darin, alle zwei Wochen nach Updates für SSM Agent zu suchen und diese anzuwenden. Organisationsadministratoren können auch *alle* EC2-Instances in ihrer Organisation alle zwei Wochen mit Agenten-Updates aktualisieren, indem sie die Standardkonfiguration für die Host-Verwaltung verwenden. Weitere Informationen finden Sie unter [Die Standardkonfiguration für die Host-Verwaltung für eine Organisation mit Quick Setup einrichten](quick-setup-default-host-management-configuration.md).

## Konfiguration der Host-Management-Optionen für EC2-Instances
<a name="host-management-configuration"></a>

Um die Hostverwaltung einzurichten, führen Sie die folgenden Aufgaben in der AWS Systems Manager Quick Setup Konsole aus.

**So öffnen Sie die Host-Management-Konfigurationsseite**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

1. Wählen Sie auf der Karte **Host-Verwaltung** die Option **Erstellen** aus.
**Tipp**  
Wenn Sie bereits eine oder mehrere Konfigurationen in Ihrem Konto haben, wählen Sie zunächst die Registerkarte **Bibliothek** oder die Schaltfläche **Erstellen** im Abschnitt **Konfigurationen**, um die Karten anzuzeigen.

**So konfigurieren Sie die Hostverwaltungsoptionen von Systems Manager**
+ Um die Systems-Manager-Funktionalität zu konfigurieren, wählen Sie im Abschnitt **Konfigurationsoptionen** die Optionen in der **Systems-Manager-Gruppe** aus, die Sie für Ihre Konfiguration aktivieren möchten:

     
**Aktualisieren Sie den Systems Manager (SSM)-Agenten alle zwei Wochen**  
Ermöglicht Systems Manager, alle zwei Wochen nach einer neuen Version des Agenten zu suchen. Wenn es eine neue Version gibt, aktualisiert Systems Manager den Agenten auf Ihrem verwalteten Knoten automatisch auf die neueste freigegebene Version. Quick Setup installiert den Agenten nicht auf Instances, auf denen er nicht bereits vorhanden ist. Informationen darüber, welche AMIs SSM Agent vorinstalliert haben, finden Sie unter [Finden Sie AMIs mit dem vorinstallierten SSM Agent](ami-preinstalled-agent.md).  
Wir empfehlen Ihnen, diese Option zu wählen, um sicherzustellen, dass auf Ihren Knoten immer die neueste up-to-date Version von ausgeführt wirdSSM Agent. Weitere Informationen zu SSM Agent, einschließlich Informationen zur manuellen Installation des Agenten, finden Sie unter [Arbeiten mit SSM Agent](ssm-agent.md).  
**Erfassen von Beständen aus Ihren Instances alle 30 Minuten**  
Quick Setup konfiguriert die Sammlung der folgenden Metadatentypen:  
  + **AWS Komponenten** — EC2-Treiber, Agenten, Versionen und mehr.
  + **Anwendungen** – Anwendungsnamen, Publisher, Versionen und mehr.
  + **Knoten-Details** – Systemname, Name des Betriebssystems (OS), OS-Version, letzter Boot-Vorgang, DNS, Domain, Arbeitsgruppe, OS-Architektur und mehr.
  + **Netzwerkkonfiguration** – IP-Adresse, MAC-Adresse, DNS, Gateway, Subnetzmaske und mehr. 
  + **Services** – Name, Anzeigename, Status, abhängige Services, Servicetyp, Starttyp und mehr (nur Windows Server-Knoten).
  + **Windows-Rollen** – Name, Anzeigename, Pfad, Featuretyp, Installationsstatus und mehr (nur Windows Server-Knoten).
  + **Windows-Updates** – Hotfix-ID, installiert von, Installationsdatum und mehr (nur Windows Server-Knoten).
Weitere Informationen zu Inventory, einem Tool in AWS Systems Manager, finden Sie unter[AWS Systems Manager-Bestand](systems-manager-inventory.md).  
Die **Bestandserfassungs**-Option kann bis zu 10 Minuten dauern, auch wenn Sie nur wenige Knoten ausgewählt haben.  
**Tägliches Scannen von Instances nach fehlenden Patches**  
Ermöglicht Patch Manager, einem Tool in Systems Manager, die Knoten täglich zu scannen und einen Bericht auf der Seite **Compliance** zu erstellen. Der Bericht zeigt, wie viele Knoten entsprechend der *Standard-Patch-Baseline* patchkompatibel sind. Der Bericht enthält eine Liste der einzelnen Knoten und deren Compliance-Status.   
Informationen zu Patching-Vorgängen und Patch-Baselines finden Sie unter [AWS Systems Manager Patch Manager](patch-manager.md).   
Informationen zur Patch-Compliance finden Sie auf der Seite Systems-Manager-[Compliance](https://console.aws.amazon.com/systems-manager/compliance).  
Informationen zum Patchen verwalteter Knoten in mehreren Konten und Regionen in einer Konfiguration finden Sie unter [Patch-Richtlinienkonfigurationen in Quick Setup](patch-manager-policies.md) und [Das Patchen für Instances in einer Organisation mithilfe einer Patch-Richtlinie für Quick Setup konfigurieren](quick-setup-patch-manager.md).  
Systems Manager unterstützt mehrere Methoden zum Scannen verwalteter Knoten auf Patch-Compliance. Wenn Sie mehr als eine dieser Methoden gleichzeitig implementieren, sind die angezeigten Patch-Compliance-Informationen immer das Ergebnis des letzten Scans. Ergebnisse früherer Scans werden überschrieben. Wenn die Scan-Methoden unterschiedliche Patch-Baselines mit unterschiedlichen Genehmigungsregeln verwenden, können sich die Informationen zur Patch-Compliance unerwartet ändern. Weitere Informationen finden Sie unter [Identifizieren der Ausführung, die Patch-Compliance-Daten erstellt hat](patch-manager-compliance-data-overwrites.md).

**So konfigurieren Sie CloudWatch Amazon-Host-Management-Optionen**
+ Um die CloudWatch Funktionalität zu konfigurieren, wählen Sie im Abschnitt **Konfigurationsoptionen** die Optionen in der ** CloudWatchAmazon-Gruppe** aus, die Sie für Ihre Konfiguration aktivieren möchten:

     
**Installieren und konfigurieren Sie den CloudWatch Agenten**  
Installiert die Basiskonfiguration des Unified CloudWatch Agents auf Ihren Amazon EC2 EC2-Instances. Der Agent sammelt Metriken und Protokolldateien von Ihren Instances für Amazon CloudWatch. Diese Informationen werden zusammengefasst, damit Sie den Zustand Ihrer Instances schnell bestimmen können. Weitere Informationen zur Basiskonfiguration des CloudWatch Agenten finden Sie unter [Vordefinierte Metriksätze für CloudWatch Agenten](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-preset-metrics). Es können zusätzliche Kosten anfallen. Weitere Informationen finden Sie unter [ CloudWatchAmazon-Preise](https://aws.amazon.com/cloudwatch/pricing/).  
**Aktualisieren Sie den CloudWatch Agenten einmal alle 30 Tage**  
Ermöglicht Systems Manager, alle 30 Tage nach einer neuen Version des CloudWatch Agenten zu suchen. Wenn es eine neue Version gibt, aktualisiert Systems Manager den Agent automatisch auf Ihrer Instance. Wir empfehlen Ihnen, diese Option zu wählen, um sicherzustellen, dass auf Ihren Instances immer die neueste up-to-date Version des CloudWatch Agenten ausgeführt wird.

**So konfigurieren Sie die Hostverwaltungsoptionen für Amazon-EC2-Launch-Agent**
+ Um die Funktion von Amazon-EC2-Launch-Agent zu konfigurieren, wählen Sie im Abschnitt **Konfigurationsoptionen** die Optionen in der **Gruppe von Amazon EC2 Launch Agent** aus, die Sie für Ihre Konfiguration aktivieren möchten:

     
**Den EC2-Launch-Agent einmal alle 30 Tage aktualisieren**  
Ermöglicht Systems Manager, alle 30 Tage zu prüfen, ob auf Ihrer Instance eine neue Version des Startagenten installiert ist. Wenn eine neue Version verfügbar ist, aktualisiert Systems Manager den Agenten auf Ihrer Instance. Wir empfehlen Ihnen, diese Option zu wählen, um sicherzustellen, dass auf Ihren Instances immer die neueste up-to-date Version des jeweiligen Launch-Agents ausgeführt wird. Für Amazon-EC2-Windows-Instances unterstützt diese Option EC2Launch, EC2Launch v2 und EC2Config. Für Amazon-EC2-Linux-Instances unterstützt diese Option `cloud-init`. Für Amazon EC2 Mac-Instances unterstützt `ec2-macos-init` diese Option. Quick Setupunterstützt nicht die Aktualisierung von Launch-Agenten, die auf Betriebssystemen installiert sind, die vom Launch-Agent nicht unterstützt werden, oder auf AL2023.  
Weitere Informationen zu diesen Initialisierungsagenten finden Sie in den folgenden Themen:  
  +  [Konfigurieren Sie eine Windows-Instanz mit EC2 Launch v2](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch-v2.html) 
  +  [Konfigurieren Sie eine Windows-Instanz mithilfe von EC2 Launch](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html) 
  +  [Konfigurieren Sie eine Windows-Instanz mithilfe des EC2 Config-Dienstes](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2config-service.html) 
  +  [Cloud-Init-Dokumentation](https://cloudinit.readthedocs.io/en/22.2.2/index.html) 
  +  [ec2-macos-init](https://github.com/aws/ec2-macos-init) 

**Um die EC2-Instances auszuwählen, die durch die Host-Management-Konfiguration aktualisiert werden sollen**
+ Wählen Sie im Abschnitt **Ziele** die Methode aus, um die Konten und Regionen zu bestimmen, in denen die Konfiguration bereitgestellt werden soll:
**Anmerkung**  
Sie können nicht mehrere Quick Setup Host Management-Konfigurationen erstellen, die auf dieselbe AWS-Region abzielen.

------
#### [ Entire organization ]

  Ihre Konfiguration wird in allen Organisationseinheiten (OUs) und AWS-Regionen in Ihrer Organisation bereitgestellt.

**Anmerkung**  
Die Option **Entire organization (Gesamte Organisation)** ist nur verfügbar, wenn Sie die Hostverwaltung über das Verwaltungskonto Ihrer Organisation konfigurieren.

------
#### [ Custom ]

  1. Wählen Sie im OUs Abschnitt **Ziel** den OUs Ort aus, an dem Sie diese Host-Management-Konfiguration bereitstellen möchten.

  1. Wählen Sie im Abschnitt **Zielregionen** die Regionen aus, in denen Sie diese Host-Management-Konfiguration bereitstellen möchten.

------
#### [ Current account ]

  Wählen Sie eine der Regionsoptionen und folgen Sie den Anweisungen für diese Option.

   

**Aktuelle Region**  
Wählen Sie aus, wie Sie nur auf Instances in der aktuellen Region abzielen möchten:  
  + **Alle Instances** – Die Host-Verwaltungskonfiguration zielt automatisch auf alle EC2 in der aktuellen Region ab.
  + **Tag** – Wählen Sie **Hinzufügen** und geben Sie den Schlüssel und den optionalen Wert ein, der den Instances hinzugefügt wird, auf die abgezielz werden soll.
  + **Ressourcengruppe** – Wählen Sie unter **Ressourcengruppe** eine bestehende Ressourcengruppe aus, die die EC2-Instances enthält, auf die abgezielt werden soll.
  + **Manuell** – Aktivieren Sie im Abschnitt **Instances** das Kontrollkästchen jeder EC2-Instance, auf die Sie abzielen möchten.

**Regionen auswählen**  
Wählen Sie aus, wie Instances in der von Ihnen angegebenen Region ins Visier genommen werden sollen, indem Sie eine der folgenden Optionen wählen:  
  + **Alle Instances** – Auf alle Instances in den von Ihnen angegebenen Regionen wird abgezielt.
  + **Tag** – Wählen Sie **Hinzufügen** und geben Sie den Schlüssel und den optionalen Wert ein, der den Instances hinzugefügt wurde, auf die abgezielt wird.
Wählen Sie im Abschnitt **Zielregionen** die Regionen aus, in denen Sie diese Host-Management-Konfiguration bereitstellen möchten.

------

**Um eine Instance-Profiloption anzugeben**
+ Nur die ***gesamte Organisation** und **benutzerdefinierte Ziele.***

  Wählen Sie im Abschnitt **Instance-Profiloptionen** aus, ob Sie die erforderlichen IAM-Richtlinien zu den vorhandenen Instance-Profilen hinzufügen möchten, die Ihren Instances zugeordnet sind, oder ob Sie Quick Setup die Erstellung der IAM-Richtlinien und Instance-Profile mit den für die von Ihnen gewählte Konfiguration erforderlichen Berechtigungen zulassen möchten.

Nachdem Sie alle Ihre Konfigurationsoptionen angegeben haben, wählen Sie **Erstellen**.

# Die Standardkonfiguration für die Host-Verwaltung für eine Organisation mit Quick Setup einrichten
<a name="quick-setup-default-host-management-configuration"></a>

Mit Quick Setup einem Tool in AWS Systems Manager können Sie die Standard-Host-Management-Konfiguration für alle Konten und Regionen aktivieren, die Ihrer Organisation in AWS Organizations hinzugefügt wurden. Dadurch wird sichergestellt, dass SSM Agent über alle EC2-Instances (Amazon Elastic Compute Cloud) in der Organisation auf dem Laufenden gehalten wird und dass diese sich mit dem Systems Manager verbinden können.

**Bevor Sie beginnen**  
Stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind, bevor Sie diese Einstellung aktivieren.
+ Die neueste Version von SSM Agent ist bereits auf allen EC2-Instances installiert, die in Ihrer Organisation verwaltet werden sollen.
+ Ihre zu verwaltenden EC2-Instances verwenden Instance Metadata Service Version 2 (IMDSv2).
+ Sie sind mit einer AWS Identity and Access Management (IAM-) Identität (Benutzer, Rolle oder Gruppe) mit Administratorrechten beim Verwaltungskonto Ihrer Organisation angemeldet, wie unter angegeben. AWS Organizations

**Verwenden der standardmäßigen EC2-Instance-Verwaltungsrolle**  
Die Standardkonfiguration für die Host-Verwaltung verwendet die `default-ec2-instance-management-role`-Diensteinstellung für Systems Manager. Dies ist eine Rolle mit Berechtigungen, die Sie allen Konten in Ihrer Organisation zur Verfügung stellen möchten, um die Kommunikation zwischen SSM Agent auf der Instance und dem Systems-Manager-Dienst in der Cloud zu ermöglichen.

Wenn Sie diese Rolle bereits mit dem CLI-Befehl [https://docs.aws.amazon.com/cli/latest/reference/ssm/update-service-setting.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/update-service-setting.html) festgelegt haben, verwendet die Standardkonfiguration für die Host-Verwaltung diese Rolle. Wenn Sie diese Rolle noch nicht festgelegt haben, erstellt Quick Setup sie und wendet sie für Sie an. 

Überprüfen Sie mit dem [https://docs.aws.amazon.com/cli/latest/reference/ssm/get-service-setting.html](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-service-setting.html)-Befehl, ob diese Rolle bereits für Ihre Organisation festgelegt wurde.

## Aktivieren Sie automatische 14-tägige Updates von SSM Agent.
<a name="dhmc-enable-automatic-updates"></a>

Gehen Sie wie folgt vor, um die Option „Standard-Host-Management-Konfiguration“ für Ihre gesamte AWS Organizations Organisation zu aktivieren.

**So aktivieren Sie automatische 14-tägige Updates von SSM Agent**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

1. Wählen Sie auf der Karte **Standardkonfiguration für die Host-Verwaltung** die Option **Erstellen** aus.
**Tipp**  
Wenn Sie bereits eine oder mehrere Konfigurationen in Ihrem Konto haben, wählen Sie zunächst die Registerkarte **Bibliothek** oder die Schaltfläche **Erstellen** im Abschnitt **Konfigurationen**, um die Karten anzuzeigen.

1. Wählen Sie im Abschnitt **Konfigurationsoptionen** die Option **Automatische Updates von SSM Agent alle zwei Wochen aktivieren** aus.

1. Wählen Sie **Create (Erstellen)** aus.

# Erstellen Sie einen AWS Config-Konfigurationsrekorder mit Quick Setup
<a name="quick-setup-config"></a>

Mit Quick Setup einem Tool in können Sie schnell einen Konfigurationsrekorder erstellen AWS Systems Manager, der auf folgenden Geräten basiert: AWS Config Verwenden Sie den Konfigurations-Recorder zur Erkennung von Änderungen an Ihren Ressourcenkonfigurationen und zur Erfassung der Änderungen als Konfigurationselemente. Wenn Sie mit dem Service nicht vertraut sind AWS Config, empfehlen wir Ihnen, mehr über den Service zu erfahren, indem Sie den Inhalt des *AWS Config Entwicklerhandbuchs lesen*, bevor Sie eine Konfiguration mit Quick Setup erstellen. Weitere Informationen zu finden Sie AWS Config unter [Was ist AWS Config?](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) im *AWS Config Entwicklerhandbuch*.

Standardmäßig zeichnet der Konfigurationsrekorder alle unterstützten Ressourcen in dem Bereich auf, in AWS-Region dem er ausgeführt AWS Config wird. Sie können die Konfiguration so anpassen, dass nur die von Ihnen angegebenen Ressourcentypen aufgezeichnet werden. Weitere Informationen finden Sie im *AWS Config Entwicklerhandbuch* unter [Auswahl der AWS Config Ressourceneinträge](https://docs.aws.amazon.com/config/latest/developerguide/select-resources.html).

Wenn Sie mit der Aufzeichnung von Konfigurationen AWS Config beginnen, werden Ihnen Gebühren für die Nutzung des Dienstes berechnet. Preisinformationen finden Sie unter [AWS Config Preise](https://aws.amazon.com/config/pricing/).

**Anmerkung**  
Wenn Sie bereits einen Konfigurationsrekorder erstellt haben, stoppt Quick Setup die Aufzeichnung nicht und nimmt auch keine Änderungen an den Ressourcentypen vor, die Sie bereits aufzeichnen. Wenn Sie zusätzliche Ressourcentypen mit Quick Setup aufzeichnen möchten, hängt der Service sie an Ihre vorhandenen Rekordergruppen an. Durch das Löschen des Konfigurationstyps Quick Setup **Config recording (Config-Aufzeichnung)** wird der Konfigurations-Recorder nicht gestoppt. Änderungen werden weiterhin aufgezeichnet, und die Servicenutzungsgebühren fallen an, bis Sie den Konfigurations-Recorder beenden. Weitere Informationen zur Verwaltung des Konfigurations-Recorders finden Sie unter [Managing the Configuration Recorder (Verwalten des Konfigurations-Recorders)](https://docs.aws.amazon.com/config/latest/developerguide/stop-start-recorder.html) im *AWS Config Developer Guide*.

Führen Sie die folgenden Aufgaben in der AWS Systems Manager Konsole aus, um die AWS Config Aufzeichnung einzurichten.

**Um die AWS Config Aufnahme einzurichten mit Quick Setup**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

1. Wählen Sie auf der Karte **Konfigurationsaufnahme** die Option **Erstellen** aus.
**Tipp**  
Wenn Sie bereits eine oder mehrere Konfigurationen in Ihrem Konto haben, wählen Sie zunächst die Registerkarte **Bibliothek** oder die Schaltfläche **Erstellen** im Abschnitt **Konfigurationen**, um die Karten anzuzeigen.

1. Führen Sie im Abschnitt **Cluster-Optionen** Folgendes aus:

   1. Geben Sie unter **Wählen Sie die aufzuzeichnenden AWS Ressourcentypen** an, ob alle unterstützten Ressourcen oder nur die von Ihnen ausgewählten Ressourcentypen aufgezeichnet werden sollen.

   1. Geben Sie unter **Übermittlungseinstellungen an, ob ein neuer Amazon Simple Storage Service (Amazon S3)-Bucket erstellt werden soll, oder wählen Sie einen vorhandenen Bucket aus, an den Konfigurations-Snapshots gesendet werden sollen.**

   1. Wählen Sie **unter Benachrichtigungsoptionen** die von Ihnen bevorzugte Benachrichtigungsoption aus. AWS Config verwendet Amazon Simple Notification Service (Amazon SNS), um Sie über wichtige AWS Config Ereignisse im Zusammenhang mit Ihren Ressourcen zu informieren. Wenn Sie die Option **Bestehende SNS-Themen verwenden** wählen, müssen Sie die AWS-Konto ID und den Namen des vorhandenen Amazon SNS SNS-Themas in dem Konto angeben, das Sie verwenden möchten. Wenn Sie mehrere AWS-Regionen anvisieren, müssen die Themennamen in jeder Region identisch sein.

1. Wählen Sie im Abschnitt **Schedule** aus, wie häufig Quick Setup Änderungen an Ressourcen, die von Ihrer Konfiguration abweichen, beheben soll. Die **Standard**-Option wird einmal ausgeführt. Wenn Sie nicht möchten, dass Quick Setup Änderungen an Ressourcen, die von Ihrer Konfiguration abweichen, wiederherstellt, wählen Sie unter **Custom (Benutzerdefiniert)** die Option **Disable remediation (Wiederherstellung deaktivieren)**.

1. Wählen Sie im Abschnitt **Ziele** eine der folgenden Optionen aus, um die Konten und Regionen für die Aufzeichnung zu identifizieren.
**Anmerkung**  
Wenn Sie mit einem einzigen Konto arbeiten, sind Optionen für die Arbeit mit Organisationen und Organisationseinheiten (OUs) nicht verfügbar. Sie können wählen, ob Sie diese Konfiguration auf alle AWS-Regionen in Ihrem Konto oder nur auf die von Ihnen ausgewählten Regionen anwenden möchten.
   + **Gesamte Organisation** – Alle Konten und Regionen in Ihrer Organisation.
   + **Benutzerdefiniert** — Nur die Regionen OUs und Regionen, die Sie angeben.
     + Wählen Sie im OUs Bereich **Ziel** den OUs Ort aus, an dem Sie die Aufnahme zulassen möchten. 
     + Wählen Sie im Abschnitt **Zielregionen** die Regionen aus, in denen Sie die Aufzeichnung zulassen möchten. 
   + **Aktuelles Konto** – Nur die Regionen, die Sie in dem Konto angeben, bei dem Sie derzeit angemeldet sind, werden als Ziel ausgewählt. Wählen Sie eine der folgenden Optionen:
     + **Aktuelle Region** – Nur verwaltete Knoten in der Region, die in der Konsole ausgewählt wurde, werden als Ziel ausgewählt. 
     + **Regionen auswählen** – Wählen Sie die einzelnen Regionen aus, auf die die Aufnahmekonfiguration angewendet werden soll.

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

# Stellen Sie das AWS Config Conformance Pack bereit mit Quick Setup
<a name="quick-setup-cpack"></a>

Ein Konformitätspaket ist eine Sammlung von AWS Config Regeln und Abhilfemaßnahmen. Mit Quick Setup können Sie ein Konformitätspaket als einzelne Entität in einem Konto und einer AWS-Region oder organisationsweit in einem AWS Organizations bereitstellen. Auf diese Weise können Sie mithilfe eines gemeinsamen Framework- und Paketmodells die Einhaltung der Konfiguration Ihrer AWS Ressourcen in großem Umfang verwalten, von der Richtliniendefinition über die Prüfung bis hin zur aggregierten Berichterstattung. 

Um Conformance Packs bereitzustellen, führen Sie die folgenden Aufgaben in der AWS Systems Manager Quick Setup Konsole aus.

**Anmerkung**  
Sie müssen die AWS Config Aufzeichnung aktivieren, bevor Sie diese Konfiguration bereitstellen können. Weitere Informationen finden Sie unter [Konformitätspakete](https://docs.aws.amazon.com/config/latest/developerguide/conformance-packs.html) im *AWS Config Developer Guide*.

**Bereitstellen von Konformitätspaketen mit Quick Setup**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

1. Wählen Sie auf der Karte **Konformitätspakete** die Option **Erstellen**.
**Tipp**  
Wenn Sie bereits eine oder mehrere Konfigurationen in Ihrem Konto haben, wählen Sie zunächst die Registerkarte **Bibliothek** oder die Schaltfläche **Erstellen** im Abschnitt **Konfigurationen**, um die Karten anzuzeigen.

1. Wählen Sie im Abschnitt **Konformitätspakete auswählen** die Konformitätspakete aus, die Sie einsetzen möchten.

1. Wählen Sie im Abschnitt **Schedule** aus, wie häufig Quick Setup Änderungen an Ressourcen, die von Ihrer Konfiguration abweichen, beheben soll. Die **Standard**-Option wird einmal ausgeführt. Wenn Sie nicht möchten, dass Quick Setup Änderungen an Ressourcen, die von Ihrer Konfiguration abweichen, wiederherstellt, wählen Sie unter **Benutzerdefiniert** die Option **Deaktiviert**.

1. Wählen Sie im Bereich **Ziele** aus, ob Sie Conformance Packs für Ihre gesamte Organisation, für einige oder für das Konto bereitstellen möchten AWS-Regionen, mit dem Sie derzeit angemeldet sind.

   Fahren Sie mit Schritt 8 fort, wenn Sie **Ganze Organisation** wählen.

   Fahren Sie mit Schritt 7 fort, wenn Sie **Benutzerdefiniert** wählen.

1. Aktivieren Sie im Abschnitt **Target Regions (Zielregionen)** die Kontrollkästchen der Regionen, für die Sie Konformitätspakete bereitstellen möchten.

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

# Das Patchen für Instances in einer Organisation mithilfe einer Patch-Richtlinie für Quick Setup konfigurieren
<a name="quick-setup-patch-manager"></a>

Mit Quick Setup einem Tool in können Sie Patch-Richtlinien erstellen AWS Systems Manager, die auf folgenden Komponenten basieren: Patch Manager Eine Patch-Richtlinie definiert den Zeitplan und die Baseline, die beim automatischen Patchen Ihrer Amazon Elastic Compute Cloud (Amazon EC2)-Instances und anderer verwalteter Knoten verwendet werden sollen. Mit einer einzelnen Patch-Richtlinienkonfiguration können Sie Patches für alle Konten in mehreren AWS-Regionen in Ihrer Organisation, nur für die von Ihnen ausgewählten Konten und Regionen oder für ein einzelnes Konto-Region-Paar definieren. Weitere Informationen zu Patch-Richtlinien finden Sie unter [Patch-Richtlinienkonfigurationen in Quick Setup](patch-manager-policies.md).

**Voraussetzung**  
Um eine Patch-Richtlinie für einen Knoten mit Quick Setup zu definieren, muss es sich bei dem Knoten um einen *verwalteten Knoten* handeln. Weitere Informationen zum Verwalten Ihrer Knoten finden Sie unter [Einrichten der einheitlichen Systems-Manager-Konsole für eine Organisation](systems-manager-setting-up-organizations.md).

**Wichtig**  
**Methoden zum Scannen der Patch-Compliance** – Systems Manager unterstützt mehrere Methoden zum Scannen verwalteter Knoten auf Patch-Compliance. Wenn Sie mehr als eine dieser Methoden gleichzeitig implementieren, sind die angezeigten Patch-Compliance-Informationen immer das Ergebnis des letzten Scans. Ergebnisse früherer Scans werden überschrieben. Wenn die Scan-Methoden unterschiedliche Patch-Baselines mit unterschiedlichen Genehmigungsregeln verwenden, können sich die Informationen zur Patch-Compliance unerwartet ändern. Weitere Informationen finden Sie unter [Identifizieren der Ausführung, die Patch-Compliance-Daten erstellt hat](patch-manager-compliance-data-overwrites.md).  
**Konformitätsstatus der Zuordnungen und Patch-Richtlinien** – Der Patching-Status für einen verwalteten Knoten, für den eine Quick Setup-Patch-Richtlinie gilt, entspricht dem Status der State Manager-Zuordnungsausführung für diesen Knoten. Wenn der Status der Zuordnungsausführung `Compliant` lautet, wird der Patching-Status für den verwalteten Knoten ebenfalls als `Compliant` markiert. Wenn der Status der Zuordnungsausführung `Non-Compliant` lautet, wird der Patching-Status für den verwalteten Knoten ebenfalls als `Non-Compliant` markiert. 

## Unterstützte Regionen für Patch-Richtlinienkonfigurationen
<a name="patch-policies-supported-regions"></a>

Patch-Richtlinien-Konfigurationen in Quick Setup werden derzeit in den folgenden Regionen unterstützt:
+ USA Ost (Ohio): (us-east-2)
+ USA Ost (Nord-Virginia): (us-east-1)
+ USA West (Nordkalifornien) (us-west-1)
+ USA West (Oregon): (us-west-2)
+ Asien-Pazifik (Mumbai): (ap-south-1)
+ Asien-Pazifik (Seoul): (ap-northeast-2)
+ Asien-Pazifik (Singapur): (ap-southeast-1)
+ Asien-Pazifik (Sydney): (ap-southeast-2)
+ Asien-Pazifik (Tokyo) (ap-northeast-1)
+ Kanada (Zentral): (ca-central-1)
+ Europa (Frankfurt) (eu-central-1)
+ Europa (Irland) (eu-west-1)
+ Europa (London) (eu-west-2)
+ Europa (Paris) (eu-west-3)
+ Europa (Stockholm) (eu-north-1)
+ Südamerika (São Paulo) (sa-east-1)

## Berechtigungen für den S3-Bucket mit der Patch-Richtlinie
<a name="patch-policy-s3-bucket-permissions"></a>

Wenn Sie eine Patch-Richtlinie erstellen, erstellt Quick Setup einen Amazon-S3-Bucket, der eine Datei mit dem Namen `baseline_overrides.json` enthält. In dieser Datei werden Informationen zu den Patch-Baselines gespeichert, die Sie für Ihre Patch-Richtlinie angegeben haben.

Der S3-Bucket-Name hat das folgende Format `aws-quicksetup-patchpolicy-account-id-quick-setup-configuration-id`. 

Beispiel: `aws-quicksetup-patchpolicy-123456789012-abcde`

Wenn Sie eine Patch-Richtlinie für eine Organisation erstellen, wird der Bucket im Verwaltungskonto Ihrer Organisation erstellt. 

Es gibt zwei Anwendungsfälle, in denen Sie anderen AWS Ressourcen die Erlaubnis erteilen müssen, mithilfe von AWS Identity and Access Management (IAM-) Richtlinien auf diesen S3-Bucket zuzugreifen:
+ [Fall 1: Verwenden Sie Ihr eigenes Instance-Profil oder Ihre eigene Servicerolle mit Ihren verwalteten Knoten, anstatt eines von Quick Setup bereitgestellten](#patch-policy-instance-profile-service-role)
+ [Fall 2: Verwenden Sie VPC-Endpunkte, um eine Verbindung zu Systems Manager herzustellen](#patch-policy-vpc)

Die Richtlinien für die Berechtigungen, die Sie in beiden Fällen benötigen, finden Sie im folgenden Abschnitt, [Richtlinienberechtigungen für Quick Setup-S3-Buckets](#patch-policy-bucket-permissions).

### Fall 1: Verwenden Sie Ihr eigenes Instance-Profil oder Ihre eigene Servicerolle mit Ihren verwalteten Knoten, anstatt eines von Quick Setup bereitgestellten
<a name="patch-policy-instance-profile-service-role"></a>

Patch-Richtlinienkonfigurationen enthalten eine Option zum **Hinzufügen erforderlicher IAM-Richtlinien zu bestehenden Instance-Profilen, die mit Ihren Instances verbunden sind**. 

Wenn Sie diese Option nicht wählen, aber möchten, dass Quick Setup Ihre verwalteten Knoten mit dieser Richtlinie patcht, müssen Sie sicherstellen, dass Folgendes implementiert ist:
+ Die von IAM verwaltete Richtlinie `AmazonSSMManagedInstanceCore` muss an das [IAM-Instance-Profil](setup-instance-permissions.md) oder die [IAM-Servicerolle](hybrid-multicloud-service-role.md) angehängt werden, die verwendet wird, um Systems-Manager-Berechtigungen für Ihre verwalteten Knoten bereitzustellen.
+ Sie müssen dem IAM-Instance-Profil oder der IAM-Servicerolle Berechtigungen für den Zugriff auf Ihren Patch-Richtlinien-Bucket als Inline-Richtlinie hinzufügen. Sie können Wildcard-Zugriff auf alle `aws-quicksetup-patchpolicy`-Buckets oder nur auf den spezifischen Bucket gewähren, der für Ihre Organisation oder Ihr Konto erstellt wurde, wie in den früheren Codebeispielen gezeigt.
+ Sie müssen Ihr IAM-Instance-Profil oder Ihre IAM-Servicerolle mit dem folgenden Schlüssel-Wert-Paar taggen.

  `Key: QSConfigId-quick-setup-configuration-id, Value: quick-setup-configuration-id`

  *quick-setup-configuration-id*stellt den Wert des Parameters dar, der auf den AWS CloudFormation Stack angewendet wird und der bei der Erstellung Ihrer Patch-Richtlinienkonfiguration verwendet wird. Gehen Sie wie nachfolgend beschrieben vor, um diese ID abzurufen:

  1. Öffnen Sie die CloudFormation Konsole unter [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

  1. Wählen Sie den Namen des Stacks aus, der zur Erstellung Ihrer Patch-Richtlinie verwendet wird. Der Name hat ein Format wie `StackSet-AWS-QuickSetup-PatchPolicy-LA-q4bkg-52cd2f06-d0f9-499e-9818-d887cEXAMPLE`.

  1. Wählen Sie die Registerkarte **Parameters** aus.

  1. **Suchen Sie in der **Parameterliste** in der Spalte **Schlüssel** nach der QSConfiguration Schlüssel-ID.** Suchen Sie in der Spalte **Wert** für die entsprechende Zeile nach der Konfigurations-ID, z. B. `abcde`

     In diesem Beispiel lautet der Schlüssel für das Tag, das auf Ihr Instance-Profil oder Ihre Servicerolle angewendet werden soll `QSConfigId-abcde`, und der Wert lautet `abcde`.

Informationen zum Hinzufügen von Tags zu einer IAM-Rolle finden Sie unter [Taggen von IAM-Rollen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_roles.html#id_tags_roles_procs-console) und [Verwalten von Tags in Instanzprofilen (AWS CLI oder AWS APIs)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags_instance-profiles.html#id_tags_instance-profile_procs-cli-api) im *IAM-Benutzerhandbuch*.

### Fall 2: Verwenden Sie VPC-Endpunkte, um eine Verbindung zu Systems Manager herzustellen
<a name="patch-policy-vpc"></a>

Wenn Sie VPC-Endpunkte für die Verbindung zu Systems Manager verwenden, muss Ihre VPC-Endpunktrichtlinie für S3 den Zugriff auf Ihren S3-Bucket für Quick Setup-Patch-Richtlinien erlauben.

Informationen zum Hinzufügen von Berechtigungen zu einer VPC-Endpunkt-Richtlinie für S3 finden Sie unter [Steuerung des Zugriffs von VPC-Endpunkten mit Bucket-Richtlinien](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-bucket-policies-vpc-endpoint.html) im *Amazon S3-Benutzerhandbuch*.

### Richtlinienberechtigungen für Quick Setup-S3-Buckets
<a name="patch-policy-bucket-permissions"></a>

Sie können Wildcard-Zugriff auf alle `aws-quicksetup-patchpolicy`-Buckets oder nur auf den speziellen Bucket gewähren, der für Ihre Organisation oder Ihr Konto erstellt wurde. Verwenden Sie eines der beiden Formate, um die erforderlichen Berechtigungen für die beiden unten beschriebenen Fälle bereitzustellen.

------
#### [ All patch policy buckets ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AccessToAllPatchPolicyRelatedBuckets",
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::aws-quicksetup-patchpolicy-*"
    }
  ]
}
```

------

------
#### [ Specific patch policy bucket ]

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AccessToMyPatchPolicyRelatedBucket",
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::aws-quicksetup-patchpolicy-111122223333-quick-setup-configuration-id"
    }
  ]
}
```

------

**Anmerkung**  
Nachdem die Konfiguration der Patch-Richtlinie erstellt wurde, können Sie den vollständigen Namen Ihres Buckets in der S3-Konsole finden. Beispiel: `aws-quicksetup-patchpolicy-123456789012-abcde`

------

## Zufällige Patch-Baseline bei Patch-Policy-Vorgängen IDs
<a name="qs-patch-baselines-and-compliance"></a>

Patching-Operationen für Patch-Richtlinien verwenden den `BaselineOverride`-Parameter im `AWS-RunPatchBaseline`-SSM-Befehlsdokument. 

Wenn Sie `AWS-RunPatchBaseline` zum Patchen *außerhalb* einer Patch-Richtlinie verwenden, können Sie mit `BaselineOverride` eine Liste von Patch-Baselines angeben, die während des Vorgangs verwendet werden sollen und sich von den angegebenen Standardwerten unterscheiden. Sie erstellen diese Liste in einer Datei mit dem Namen `baseline_overrides.json` und fügen sie manuell zu einem Amazon-S3-Bucket hinzu, den Sie besitzen, wie in [Verwenden des BaselineOverride Parameters](patch-manager-baselineoverride-parameter.md) erklärt.

Für Patching-Operationen, die auf Patch-Richtlinien basieren, erstellt Systems Manager jedoch automatisch ein S3 Bucket und fügt diesem eine `baseline_overrides.json`-Datei hinzu. Jedes Mal, wenn Quick Setup einen Patching-Vorgang durchführt (unter Verwendung des Run Command-Tools), erzeugt das System eine zufällige ID für jede Patch-Baseline. Diese ID ist für jeden Patch-Vorgang der Richtlinie unterschiedlich, und die Patch-Baseline, die sie repräsentiert, ist in Ihrem Konto weder gespeichert noch für Sie zugänglich. 

Daher wird die ID der in Ihrer Konfiguration ausgewählten Patch-Baseline in den Patching-Protokollen nicht angezeigt. Dies gilt sowohl für AWS verwaltete Patch-Baselines als auch für benutzerdefinierte Patch-Baselines, die Sie möglicherweise ausgewählt haben. Die im Protokoll angegebene Baseline-ID ist stattdessen diejenige, die für diesen speziellen Patching-Vorgang erzeugt wurde.

Wenn Sie außerdem versuchen, in Patch Manager Details zu einer Patch-Baseline anzuzeigen, die mit einer zufälligen ID erstellt wurde, meldet das System, dass die Patch-Baseline nicht existiert. Dieses Verhalten ist zu erwarten und kann ignoriert werden.

## Erstellen einer Patch-Richtlinie
<a name="create-patch-policy"></a>

Führen Sie zum Erstellen einer Patch-Richtlinie die folgenden Aufgaben in der Systems-Manager-Konsole aus.

**So erstellen Sie eine Patch-Richtlinie mit Quick Setup**

1. Öffnen Sie die Konsole unter. AWS Systems Manager [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

   Wenn Sie das Patchen für eine Organisation einrichten, stellen Sie sicher, dass Sie beim Verwaltungskonto der Organisation angemeldet sind. Sie können die Richtlinie nicht mit dem delegierten Administratorkonto oder einem Mitgliedskonto einrichten.

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

1. Wählen Sie auf der Karte **Patch Manager** (Patch-Manager) die Option **Create** (Erstellen) aus.
**Tipp**  
Wenn Sie bereits eine oder mehrere Konfigurationen in Ihrem Konto haben, wählen Sie zunächst die Registerkarte **Bibliothek** oder die Schaltfläche **Erstellen** im Abschnitt **Konfigurationen**, um die Karten anzuzeigen.

1. Geben Sie für **Configuration name** (Konfigurationsname) einen Namen ein, um die Patch-Richtlinie zu identifizieren.

1. Wählen Sie im Abschnitt **Scanning and installation** (Scannen und Installation) unter **Patch operation** (Patching-Vorgang) aus, ob die Patch-Richtlinie die angegebenen Ziele **Scan** (Scannen) oder Patches auf den angegebenen Zielen **Scan and install** (Scannen und installieren) soll.

1. Wählen Sie unter **Scanning schedule** (Scan-Zeitplan) die Option **Use recommended defaults** (Empfohlene Standardwerte verwenden) oder **Custom scan schedule** (Benutzerdefinierter Scan-Zeitplan) aus. Der standardmäßige Scan-Zeitplan scannt Ihre Ziele täglich um 01:00 Uhr UTC.
   + Wenn Sie **Custom scan schedule** (Benutzerdefinierten Scan-Zeitplan) auswählen, wählen Sie die **Scanning frequency** (Scan-Frequenz) aus.
   + Wenn Sie **Daily** (Täglich) auswählen, geben Sie die Zeit in UTC ein, zu der Sie Ihre Ziele scannen möchten. 
   + Wenn Sie **Custom CRON Expression** (Benutzerdefinierter CRON-Ausdruck) wählen, geben Sie den Zeitplan als **CRON expression** (CRON-Ausdruck) ein. Weitere Informationen zum Formatieren von CRON-Ausdrücken für Systems Manager finden Sie unter [Referenz: Cron- und Rate-Ausdrücke für System Manager](reference-cron-and-rate-expressions.md).

     Wählen Sie außerdem **Wait to scan targets until first CRON interval** (Mit dem Scannen von Zielen bis zum ersten CRON-Intervall warten). Standardmäßig scannt Patch Manager Knoten sofort, sobald diese zu Zielen werden.

1. Wenn Sie **Scan and install** (Scannen und installieren) gewählt haben, wählen Sie den **Installation schedule** (Installationszeitplan) aus, der beim Installieren von Patches auf den angegebenen Zielen verwendet werden soll. Wenn Sie die Option **Use recommended defaults** (Empfohlene Standardeinstellungen verwenden) auswählen, installiert Patch Manager die wöchentlichen Patches am Sonntag um 02:00 Uhr UTC.
   + Wenn Sie **Custom install schedule** (Benutzerdefinierter Installationszeitplan) auswählen, wählen Sie die **Installation Frequency** (Installationsfrequenz).
   + Wenn Sie **Daily** (Täglich) auswählen, geben Sie die Zeit in UTC ein, zu der Sie Updates auf Ihren Zielen installieren möchten.
   + Wenn Sie **Custom CRON expression** (Benutzerdefinierter CRON-Ausdruck) auswählen, geben Sie den Zeitplan als **CRON expression** (CRON-Ausdruck) ein. Weitere Informationen zum Formatieren von CRON-Ausdrücken für Systems Manager finden Sie unter [Referenz: Cron- und Rate-Ausdrücke für System Manager](reference-cron-and-rate-expressions.md).

     Deaktivieren Sie außerdem **Wait to install updates until first CRON interval** (Mit der Installation von Updates bis zum ersten CRON-Intervall warten), um Updates sofort auf Knoten zu installieren, sobald diese zu Zielen werden. Patch Manager wartet standardmäßig mit der Installation von Updates bis zum ersten CRON-Intervall.
   + Wählen Sie **Reboot if needed** (Bei Bedarf neu starten), um die Knoten nach der Patch-Installation neu zu starten. Ein Neustart nach der Installation wird empfohlen, kann jedoch zu Verfügbarkeitsproblemen führen.

1. Wählen Sie im Abschnitt **Patch baseline** (Patch-Baseline) die Patch-Baselines aus, die beim Scannen und Aktualisieren Ihrer Ziele verwendet werden sollen. 

   Patch Manager verwendet standardmäßig die vordefinierten Patch-Baselines. Weitere Informationen finden Sie unter [Vordefinierte Baselines](patch-manager-predefined-and-custom-patch-baselines.md#patch-manager-baselines-pre-defined).

   Wenn Sie **Benutzerdefinierte Patch-Baseline** wählen, ändern Sie die ausgewählte Patch-Baseline für Betriebssysteme, für die Sie keine vordefinierte AWS Patch-Baseline verwenden möchten.
**Anmerkung**  
Wenn Sie VPC-Endpunkte für die Verbindung zu Systems Manager verwenden, stellen Sie sicher, dass Ihre VPC-Endpunktrichtlinie für S3 den Zugriff auf diesen S3-Bucket zulässt. Weitere Informationen finden Sie unter [Berechtigungen für den S3-Bucket mit der Patch-Richtlinie](#patch-policy-s3-bucket-permissions). 
**Wichtig**  
Wenn Sie eine [Patch-Richtlinienkonfiguration](patch-manager-policies.md) in Quick Setup verwenden, werden Aktualisierungen, die Sie an benutzerdefinierten Patch-Baselines vornehmen, einmal pro Stunde mit Quick Setup synchronisiert.   
Wenn eine benutzerdefinierte Patch-Baseline gelöscht wird, auf die in einer Patch-Richtlinie verwiesen wurde, wird auf der Seite mit den Quick Setup-**Konfigurationsdetails** ein Banner für Ihre Patch-Richtlinie angezeigt. Das Banner informiert Sie darüber, dass die Patch-Richtlinie auf eine nicht mehr vorhandene Patch-Baseline verweist und nachfolgende Patching-Vorgänge fehlschlagen werden. Kehren Sie in diesem Fall zur Seite Quick Setup-**Konfigurationen** zurück, wählen Sie die Patch Manager-Konfiguration aus und wählen Sie **Aktionen**, **Konfiguration bearbeiten**. Der Name der gelöschten Patch-Baseline wird hervorgehoben, und Sie müssen eine neue Patch-Baseline für das betroffene Betriebssystem auswählen.

1. (Optional) Wählen Sie im Abschnitt **Patching log storage** (Patching-Protokollspeicherung) die Option **Write output to S3 bucket** (Ausgabe in S3-Bucket schreiben) aus, um Patch-Vorgangsprotokolle in einem Amazon-S3-Bucket zu speichern. 
**Anmerkung**  
Wenn Sie eine Patch-Richtlinie für eine Organisation einrichten, muss das Verwaltungskonto Ihrer Organisation mindestens über schreibgeschützte Berechtigungen für diesen Bucket verfügen. Alle in der Richtlinie enthaltenen Organisationseinheiten müssen über Schreibzugriff auf den Bucket verfügen. Informationen zum Gewähren von Bucket-Zugriff auf verschiedene Konten finden Sie unter [Beispiel 2: Bucket-Besitzer, der kontoübergreifende Bucket-Berechtigungen gewährt](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html) im *Benutzerhandbuch zu Amazon Simple Storage Service*.

1. Wählen Sie **S3 durchsuchen**, um den Bucket auszuwählen, in dem Sie die Patch-Protokoll-Ausgabe speichern möchten. Das Verwaltungskonto muss über Lesezugriff auf diesen Bucket verfügen. Alle Nicht-Verwaltungskonten und Ziele, die im Abschnitt **Targets** (Ziele) konfiguriert sind, müssen für die Protokollierung über Schreibzugriff auf den bereitgestellten S3-Bucket verfügen.

1. Wählen Sie im Abschnitt **Targets** (Ziele) eine der folgenden Optionen aus, um die Konten und Regionen für diesen Patch-Richtlinienvorgang zu identifizieren.
**Anmerkung**  
Wenn Sie mit einem einzigen Konto arbeiten, sind Optionen für die Arbeit mit Organisationen und Organisationseinheiten (OUs) nicht verfügbar. Sie können auswählen, ob Sie diese Konfiguration auf alle AWS-Regionen in Ihrem Konto oder nur auf die von Ihnen ausgewählten Regionen anwenden möchten.  
Wenn Sie zuvor eine Heimatregion für Ihr Konto angegeben haben und das neue Quick Setup-Konsolenerlebnis noch nicht genutzt haben, können Sie diese Region nicht aus der **Ziel**-Konfiguration ausschließen.
   + **Gesamte Organisation** – Alle Konten und Regionen in Ihrer Organisation.
   + **Benutzerdefiniert** — Nur die Regionen OUs und, die Sie angeben.
     + Wählen Sie im OUs Bereich **Ziel** den OUs Ort aus, an dem Sie die Patch-Richtlinie einrichten möchten. 
     + Wählen Sie im Abschnitt **Target Regions** (Zielregionen) die Regionen aus, in denen Sie die Patch-Richtlinie anwenden möchten. 
   + **Current account** (Aktuelles Konto) – Nur die Regionen, die Sie in dem Konto angeben, bei dem Sie derzeit angemeldet sind, werden als Ziel ausgewählt. Wählen Sie eine der folgenden Optionen:
     + **Current Region** (Aktuelle Region) – Nur verwaltete Knoten in der Region, die in der Konsole ausgewählt wurde, werden als Ziel ausgewählt. 
     + **Choose Regions** (Regionen auswählen) – Wählen Sie die einzelnen Regionen aus, auf die die Patch-Richtlinie angewendet werden soll.

1. Wählen Sie unter **Choose how you want to target instances** (Wählen Sie, wie Sie Instances anvisieren möchten) eine der folgenden Möglichkeiten, um die Knoten zu identifizieren, die gepatcht werden sollen: 
   + **Alle verwalteten Knoten** — Alle verwalteten Knoten in den ausgewählten OUs und Regionen.
   + **Specify the resource group** (Angabe der Ressourcengruppe) – Wählen Sie den Namen einer Ressourcengruppe aus der Liste, um die ihr zugeordneten Ressourcen anzuvisieren.
**Anmerkung**  
Derzeit wird die Auswahl von Ressourcengruppen nur für Einzelkontokonfigurationen unterstützt. Um Ressourcen in mehreren Konten zu patchen, wählen Sie eine andere Zieloption.
   + **Specify a node tag** (Angabe eines Knoten-Tags) – Nur Knoten, die mit dem von Ihnen angegebenen Schlüssel-Wert-Paar gekennzeichnet sind, werden in allen von Ihnen ausgewählten Konten und Regionen gepatcht. 
   + **Manual** (Manuell) – Wählen Sie verwaltete Knoten aus allen angegebenen Konten und Regionen manuell aus einer Liste aus.
**Anmerkung**  
Diese Option unterstützt derzeit nur Amazon-EC2-Instances. Sie können maximal 25 Instances manuell in einer Patch-Richtlinien-Konfiguration hinzufügen.

1. Gehen Sie im Abschnitt **Rate control** (Ratensteuerung) wie folgt vor:
   + Geben Sie für **Concurrency** (Gleichzeitigkeit) eine Anzahl oder einen Prozentsatz von Knoten ein, auf denen die Patch-Richtlinie gleichzeitig ausgeführt werden soll.
   + Geben Sie für **Error threshold** (Fehlerschwellenwert) die Anzahl oder den Prozentsatz der Knoten ein, bei denen ein Fehler auftreten kann, bevor die Patch-Richtlinie fehlschlägt.

1. (Optional) Aktivieren Sie das Kontrollkästchen **Erforderliche IAM-Richtlinien zu bestehenden Instance-Profilen hinzufügen, die mit Ihren Instances verbunden sind**.

   Diese Auswahl wendet die durch diese Quick Setup-Konfiguration erstellten IAM-Richtlinien auf Knoten an, denen bereits ein Instance-Profil (EC2 Instances) oder eine Servicerolle (hybrid-aktivierte Knoten) zugeordnet ist. Wir empfehlen diese Auswahl, wenn Ihre verwalteten Knoten bereits über ein Instance-Profil oder eine Servicerolle verfügen, die jedoch nicht alle Berechtigungen enthalten, die für die Arbeit mit Systems Manager erforderlich sind.

   Ihre Auswahl hier wird auf verwaltete Knoten angewendet, die später in den Konten und Regionen erstellt werden, für die diese Patch-Richtlinienkonfiguration gilt.
**Wichtig**  
Wenn Sie dieses Kontrollkästchen nicht aktivieren, aber möchten, dass Quick Setup Ihre verwalteten Knoten mit dieser Richtlinie patcht, müssen Sie Folgendes tun:  
Fügen Sie Ihrem [IAM-Instance-Profil](setup-instance-permissions.md) oder Ihrer [IAM-Servicerolle](hybrid-multicloud-service-role.md) Berechtigungen für den Zugriff auf den S3-Bucket hinzu, der für Ihre Patch-Richtlinie erstellt wurde  
Taggen Sie Ihr IAM-Instance-Profil oder Ihre IAM-Servicerolle mit einem bestimmten Schlüssel-Wert-Paar.  
Weitere Informationen finden Sie unter [Fall 1: Verwenden Sie Ihr eigenes Instance-Profil oder Ihre eigene Servicerolle mit Ihren verwalteten Knoten, anstatt eines von Quick Setup bereitgestellten](#patch-policy-instance-profile-service-role).

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

   Um den Patch-Status zu überprüfen, nachdem die Patch-Richtlinie erstellt wurde, können Sie über die [https://console.aws.amazon.com/systems-manager/quick-setup](https://console.aws.amazon.com/systems-manager/quick-setup)-Seite auf die Konfiguration zugreifen.

# DevOps-Guru einrichten mit Quick Setup
<a name="quick-setup-devops"></a>

Sie können DevOps Guru-Optionen schnell konfigurieren, indem Sie Quick Setup verwenden. Amazon DevOps Guru ist ein Machine Learning (ML)-gestützter Service, der es leicht macht, die betriebliche Leistung und Verfügbarkeit einer Anwendung zu verbessern. DevOps Guru erkennt Verhaltensweisen, die sich von normalen Betriebsmustern unterscheiden, sodass Sie Betriebsprobleme erkennen können, bevor sie sich auf Ihre Kunden auswirken. DevOps Guru erfasst automatisch Betriebsdaten aus Ihren AWS-Anwendungen und bietet ein einziges Dashboard, um Probleme in Ihren Betriebsdaten zu visualisieren. Sie können mit DevOps Guru beginnen, um die Anwendungsverfügbarkeit und Zuverlässigkeit ohne manuelle Einrichtung oder Machine Learning-Erfahrung zu verbessern.

Konfigurieren von DevOps Guru mit Quick Setup ist in den folgenden AWS-Regionen verfügbar:
+ USA Ost (Nord-Virginia)
+ USA Ost (Ohio)
+ USA West (Oregon)
+ Europe (Frankfurt)
+ Europa (Irland)
+ Europa (Stockholm)
+ Asien-Pazifik (Singapur)
+ Asien-Pazifik (Sydney)
+ Asien-Pazifik (Tokio)

Information zu den Preisen finden auf der Seite [Amazon DevOps Guru-Preise](https://aws.amazon.com/devops-guru/pricing/).

Führen Sie zur Einrichtung von DevOps Guru die folgenden Aufgaben in der AWS Systems Manager Quick Setup-Konsole aus.

**Einrichten von DevOps Guru mit Quick Setup**

1. Öffnen Sie die AWS Systems Manager-Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

1. Wählen Sie auf der Karte **DevOps Guru** die Option **Erstellen** aus.
**Tipp**  
Wenn Sie bereits eine oder mehrere Konfigurationen in Ihrem Konto haben, wählen Sie zunächst die Registerkarte **Bibliothek** oder die Schaltfläche **Erstellen** im Abschnitt **Konfigurationen**, um die Karten anzuzeigen.

1. Wählen Sie im Abschnitt **Configuration options (Konfigurationsoptionen)** die AWS-Ressourcentypen, die Sie analysieren möchten, und Ihre Benachrichtigungseinstellungen.

   Wenn Sie die Option **Analyze all AWS resources in all the accounts in my organization** (Alle -Ressourcen in allen Konten in meiner Organisation analysieren) nicht auswählen, können Sie später in der DevOps-Guru-Konsole AWS-Ressourcen zur Analyse auswählen. DevOps Guru analysiert verschiedene AWS-Ressourcentypen (wie Amazon Simple Storage Service (Amazon S3-)Buckets und Amazon Elastic Compute Cloud (Amazon EC2)-Instances, die in zwei Preisgruppen unterteilt sind. Sie zahlen für die analysierten AWS-Ressourcenstunden, für jede aktive Ressource. Eine Ressource ist nur aktiv, wenn sie Metriken, Ereignisse oder Protokolleinträge innerhalb einer Stunde erzeugt. Der Preis, den Sie für einen bestimmten AWS-Ressourcentyp zahlen, ist von der Preisgruppe abhängig.

   Wenn Sie die Option **Enable SNS notifications (SNS-Benachrichtigungen aktivieren)** auswählen, wird ein Amazon Simple Notification Service (Amazon SNS)-Thema in jedem AWS-Konto in den Organisationseinheiten (OUs) erstellt, auf die Sie mit Ihrer Konfiguration abzielen. DevOps Guru verwendet dieses Thema, um Sie über wichtige DevOps Guru-Ereignisse zu informieren, wie z. B. die Erstellung einer neuen Erkenntnis. Wenn Sie diese Option nicht aktivieren, können Sie später in der DevOps Guru-Konsole ein Thema hinzufügen.

   Wenn Sie die Option **Enable AWS Systems Manager OpsItems** wählen, werden operationale Arbeitselemente (OpsItems) für zugehörige Amazon EventBridge-Ereignisse und Amazon CloudWatch-Alarme erstellt.

1. Wählen Sie im Abschnitt **Schedule** aus, wie häufig Quick Setup Änderungen an Ressourcen, die von Ihrer Konfiguration abweichen, beheben soll. Die **Standard**-Option wird einmal ausgeführt. Wenn Sie nicht möchten, dass Quick Setup Änderungen an Ressourcen, die von Ihrer Konfiguration abweichen, wiederherstellt, wählen Sie unter **Custom (Benutzerdefiniert)** die Option **Disabled (deaktiviert)**.

1. Wählen Sie im Abschnitt **Targets (Ziele)**, ob DevOps Guru die Analyse von Ressourcen in einigen Organisationseinheiten (OUs) oder in dem Konto, bei dem Sie gerade angemeldet sind, gestatten soll.

   Fahren Sie mit Schritt 8 fort, wenn Sie **Benutzerdefiniert** wählen.

   Fahren Sie mit Schritt 9 fort, wenn Sie **Custom account (Benutzerdefiniertes Konto)** wählen.

1. Aktivieren Sie im Abschnitt **Target OUs (Ziel-OUs)** und **Target Regions (Zielregionen)** die Kontrollkästchen der OUs und Regionen, in denen Sie DevOps Guru verwenden möchten.

1. Wählen Sie die Regionen aus, in denen Sie DevOps Guru im aktuellen Konto verwenden möchten.

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

# Bereitstellen von Distributor-Paketen mit Quick Setup
<a name="quick-setup-distributor"></a>

Distributorist ein Tool in AWS Systems Manager. Ein Distributor-Paket ist eine Sammlung installierbarer Software oder Komponenten, das als einzelne Einheit bereitgestellt werden kann. Mit Quick Setup können Sie ein Distributor Paket in einer AWS-Konto und einer Organisation AWS-Region oder unternehmensweit in bereitstellen AWS Organizations. Derzeit können nur der EC2 Launch v2-Agent, das Amazon Elastic File System (Amazon EFS) -Dienstprogrammpaket und der CloudWatch Amazon-Agent bereitgestellt werdenQuick Setup. Mehr über Distributor erfahren Sie unter [AWS Systems Manager Distributor](distributor.md).

Um Distributor Pakete bereitzustellen, führen Sie die folgenden Aufgaben in der AWS Systems Manager Quick Setup Konsole aus.

**Bereitstellen von Distributor-Paketen mit Quick Setup**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

1. Wählen Sie auf der Karte **Distributor** die Option **Erstellen** aus.
**Tipp**  
Wenn Sie bereits eine oder mehrere Konfigurationen in Ihrem Konto haben, wählen Sie zunächst die Registerkarte **Bibliothek** oder die Schaltfläche **Erstellen** im Abschnitt **Konfigurationen**, um die Karten anzuzeigen.

1. Wählen Sie im Abschnitt **Configuration options (Konfigurationsoptionen)** das Paket aus, die Sie bereitstellen wollen.

1. Wählen Sie im Abschnitt **Ziele** aus, ob das Paket für Ihre gesamte Organisation, einige Ihrer Organisationseinheiten (OUs) oder für das Konto bereitgestellt werden soll, mit dem Sie derzeit angemeldet sind.

   Fahren Sie mit Schritt 8 fort, wenn Sie **Ganze Organisation** wählen.

   Fahren Sie mit Schritt 7 fort, wenn Sie **Benutzerdefiniert** wählen.

1. Wählen Sie im OUs Abschnitt **Ziel** die Kontrollkästchen der Regionen OUs und Regionen aus, in denen Sie das Paket bereitstellen möchten.

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

# Automatisches Stoppen und Starten von EC2-Instances nach einem Zeitplan mit Quick Setup
<a name="quick-setup-scheduler"></a>

MitQuick Setup, einem Tool in AWS Systems Manager, können Sie Resource Scheduler so konfigurieren, dass das Starten und Stoppen von Amazon Elastic Compute Cloud (Amazon EC2) -Instances automatisiert wird.

Diese Quick Setup-Konfiguration unterstützt Sie bei der Senkung der Betriebskosten, indem Instances gemäß dem von Ihnen festgelegten Zeitplan gestartet und beendet werden. Dieses Tool hilft Ihnen, unnötige Kosten für die Ausführung von Instances zu vermeiden, wenn diese nicht benötigt werden. 

So kann es beispielsweise sein, dass Sie Ihre Instances ständig ausführen lassen, obwohl sie nur 10 Stunden pro Tag und 5 Tage pro Woche verwendet werden. Stattdessen können Sie Ihre Instances so planen, dass sie jeden Tag nach den Geschäftszeiten beendet werden. Das Ergebnis wäre eine Einsparung von 70 Prozent für diese Instances, da die Ausführung von 168 Stunden auf 50 Stunden reduziert wird. Bei der Nutzung des Quick Setup-Service fallen keine Kosten an. Kosten können jedoch durch die von Ihnen eingerichteten Ressourcen und die Nutzungsbeschränkungen entstehen, wobei keine Gebühren für die Dienste anfallen, die zur Einrichtung Ihrer Konfiguration verwendet werden.

Mithilfe von Resource Scheduler können Sie festlegen, dass Instances automatisch über mehrere Instanzen hinweg und AWS-Konten nach einem von Ihnen definierten Zeitplan gestoppt AWS-Regionen und gestartet werden. Die Quick Setup-Konfiguration verwendet den von Ihnen angegebenen Tag-Schlüssel und Wert für Amazon-EC2-Instances. Nur die Instances mit einem Tag, das mit dem Wert übereinstimmt, den Sie in Ihrer Konfiguration angeben, werden vom Resource Scheduler beendet oder gestartet. Beachten Sie, dass Sie, wenn die an die Instance angehängten Amazon EBS-Volumes verschlüsselt sind, der IAM-Rolle die erforderlichen Berechtigungen für den AWS KMS Schlüssel hinzufügen müssen, damit Resource Scheduler die Instance starten kann.

**Maximale Anzahl von Instances pro Konfiguration**  
Eine individuelle Konfiguration unterstützt die Zeitplanung von bis zu 5 000 Instances pro Region. Wenn in Ihrem Fall mehr als 5 000 Instances in einer bestimmten Region geplant werden müssen, müssen Sie mehrere Konfigurationen erstellen. Kennzeichnen Sie Ihre Instances entsprechend, damit jede Konfiguration bis zu 5 000 Instances verwalten kann. Beim Erstellen mehrerer Quick Setup-Konfigurationen für Resource Scheduler müssen Sie verschiedene Tag-Schlüsselwerte angeben. Beispielsweise kann eine Konfiguration den Tag-Schlüssel `Environment` mit dem Wert `Production` verwenden, während eine andere `Environment` und `Development` verwendet.

**Verhaltensweisen bei der Zeitplanung**  
In den folgenden Punkten werden bestimmte Verhaltensweisen von Zeitplankonfigurationen beschrieben:
+ Resource Scheduler startet die gekennzeichneten Instances nur, wenn sich diese im `Stopped`-Status befinden. Ebenso werden Instances nur dann beendet, wenn sie sich im `running`-Status befinden. Resource Scheduler arbeitet nach einem ereignisgesteuerten Modell und startet oder beendet Instances nur zu den von Ihnen festgelegten Zeiten. Sie erstellen beispielsweise einen Zeitplan, der Instances um 9:00 Uhr startet. Resource Scheduler startet alle Instances, die dem von Ihnen angegebenen Tag zugeordnet sind und sich im `Stopped`-Status befinden, um 09:00 Uhr. Wenn die Instances zu einem späteren Zeitpunkt manuell angehalten werden, startet Resource Scheduler diese nicht erneut, um den `Running`-Status beizubehalten. Wenn eine Instance manuell gestartet wird, nachdem sie gemäß Ihrem Zeitplan angehalten wurde, wird Resource Scheduler die Instance nicht erneut anhalten.
+ Wenn Sie einen Zeitplan mit einer Startzeit erstellen, die an einem 24-stündigen Tag nach der Anhaltezeit liegt, geht Resource Scheduler davon aus, dass Ihre Instances über Nacht ausgeführt werden. Sie erstellen beispielsweise einen Zeitplan, der Instances um 21:00 Uhr startet und Instances um 07:00 Uhr beendet. Resource Scheduler startet alle Instances, die dem von Ihnen angegebenen Tag zugeordnet sind und sich im `Stopped`-Status befinden, um 21:00 Uhr und beendet sie um 07:00 Uhr am nächsten Tag. Bei Nachtplänen gilt die Startzeit für die Tage, die Sie für Ihren Zeitplan auswählen. Die Anhaltezeit gilt jedoch für den folgenden Tag in Ihrem Zeitplan.
+ Wenn Sie eine Zeitplankonfiguration erstellen, kann der aktuelle Status Ihrer Instances an die Anforderungen des Zeitplans angepasst werden.

  Angenommen, heute ist ein Mittwoch und Sie geben einen Zeitplan an, nach dem Ihre verwalteten Instances *nur* dienstags und donnerstags um 9 Uhr beginnen und um 17 Uhr enden. Da Sie sich aktuell außerhalb der vorgeschriebenen Ausführungszeiten für die Instances befinden, werden sie nach der Erstellung der Konfiguration gestoppt. Die Instances werden erst zur nächsten vorgeschriebenen Stunde, am Donnerstag um 9 Uhr, wieder ausgeführt. 

  Wenn sich Ihre Instances derzeit in einem `Stopped`-Status befinden und Sie einen Zeitplan angeben, nach dem sie zum aktuellen Zeitpunkt ausgeführt werden sollen, startet Resource Scheduler sie, nachdem die Konfiguration erstellt wurde.

Wenn Sie Ihre Konfiguration löschen, werden Instances nicht mehr gemäß dem zuvor definierten Zeitplan beendet und gestartet. In seltenen Fällen werden Instances aufgrund von API-Operationsfehlern möglicherweise nicht erfolgreich beendet oder gestartet.

Um die Planung für Amazon EC2 EC2-Instances einzurichten, führen Sie die folgenden Aufgaben in der AWS Systems Manager Quick Setup Konsole aus.

**So richten Sie die Instance-Zeitplanung mit Quick Setup ein**

1. Öffnen Sie die AWS Systems Manager Konsole unter. [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/)

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

1. Wählen Sie auf der Karte **Resource Scheduler** die Option **Erstellen** aus.
**Tipp**  
Wenn Sie bereits eine oder mehrere Konfigurationen in Ihrem Konto haben, wählen Sie zunächst die Registerkarte **Bibliothek** oder die Schaltfläche **Erstellen** im Abschnitt **Konfigurationen**, um die Karten anzuzeigen.

1. Geben Sie im Abschnitt **Instance tag** (Instance-Tag) den Tag-Schlüssel und den Wert für die Instances an, die Sie Ihrem Zeitplan zuordnen möchten.

1. Geben Sie im Abschnitt **Schedule options** (Zeitplanoptionen) die Zeitzone, die Tage und die Uhrzeiten an, zu denen Sie Ihre Instances starten und beenden möchten.

1. Wählen Sie im Bereich **Ziele** aus, ob Sie die Planung für eine **benutzerdefinierte** Gruppe von Organisationseinheiten (OUs) oder für das **Girokonto**, bei dem Sie angemeldet sind, festlegen möchten:
   + **Benutzerdefiniert** — Wählen Sie im OUs Bereich **Target** den OUs Bereich aus, für den Sie die Terminplanung einrichten möchten. Wählen Sie als Nächstes im Abschnitt **Target Regions** (Zielregionen) die Regionen aus, in denen Sie die Zeitplanung einrichten möchten.
   + **Current account (aktuelles Konto)**— Wählen Sie **Current Region (aktuelle Region)** oder **Choose Regions (Regionen wählen)**. Wenn Sie **Choose Regions** (Regionen auswählen) ausgewählt haben, wählen Sie die **Target Regions** (Zielregionen) aus, in denen Sie die Zeitplanung einrichten möchten.

1. Überprüfen Sie die Informationen zum Zeitplan im Abschnitt **Summary** (Zusammenfassung).

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

# Konfiguration AWS Resource Explorer mit Quick Setup
<a name="Resource-explorer-quick-setup"></a>

Mit Quick Setup einem Tool in können Sie schnell konfigurieren AWS Systems Manager, AWS Resource Explorer um Ressourcen in Ihrer Organisation AWS-Konto oder in einer gesamten AWS Organisation zu suchen und zu finden. Sie können mithilfe von Metadaten wie Namen, Tags und nach Ihren Ressourcen suchen IDs. AWS Resource Explorer bietet mithilfe von *Indizes* schnelle Antworten auf Ihre Suchanfragen. Resource Explorer erstellt und verwaltet Indizes mithilfe einer Vielzahl von Datenquellen, um Informationen über Ressourcen in Ihrem AWS-Konto zu sammeln. 

Quick Setup für Resource Explorer automatisiert den Indexkonfigurationsprozess. Weitere Informationen zu finden Sie AWS Resource Explorer unter [Was ist AWS Resource Explorer?](https://docs.aws.amazon.com/resource-explorer/latest/userguide/welcome.html) im AWS Resource Explorer Benutzerhandbuch.

Während des Quick Setup führt Resource Explorer die folgenden Schritte aus: 
+ Erstellt AWS-Region in jedem von Ihnen einen Index AWS-Konto.
+ Aktualisiert den Index in der Region, die Sie als Aggregatorindex für das Konto angeben.
+ Erstellt eine Standardansicht in der Aggregator-Index-Region. Diese Ansicht hat keine Filter und gibt daher alle im Index gefundenen Ressourcen zurück.

**Mindestberechtigungen**

Um die Schritte im folgenden Verfahren auszuführen, müssen Sie über die folgenden Berechtigungen verfügen:
+ **Aktion**: `resource-explorer-2:*` – **Ressource**: keine spezifische Ressource (`*`)
+ **Aktion**: `iam:CreateServiceLinkedRole` – **Ressource**: keine spezifische Ressource (`*`)

**So konfigurieren Sie Resource Explorer**

1. Öffnen Sie die AWS Systems Manager Konsole unter [https://console.aws.amazon.com/systems-manager/](https://console.aws.amazon.com/systems-manager/).

1. Wählen Sie im Navigationsbereich **Quick Setup** aus.

1. Wählen Sie auf der Karte **Resource Explorer** die Option **Erstellen** aus.

1. Wählen Sie im Abschnitt **Aggregator-Index-Region** aus, welche Region der **Aggregatorindex** enthalten soll. Sie sollten die Region auswählen, die für den geografischen Standort Ihrer Benutzer geeignet ist.

1. (Optional) Aktivieren Sie das Kontrollkästchen **Vorhandene Aggregatorindizes in anderen als den oben ausgewählten Regionen ersetzen**. 

1. Wählen Sie im Abschnitt **Ziele** die **Zielorganisation** oder bestimmte **Organisationseinheiten (OUs)** aus, die die Ressourcen enthalten, die Sie ermitteln möchten. 

1. Wählen Sie im Abschnitt **Regionen** aus, welche **Regionen** in die Konfiguration aufgenommen werden sollen. 

1. Überprüfen Sie die Konfigurationszusammenfassung, und wählen Sie dann **Erstellen**. 

Auf der **Resource-Explorer-Seite** können Sie den Konfigurationsstatus überwachen.

# Fehlerbehebung von Quick Setup-Ergebnissen
<a name="quick-setup-results-troubleshooting"></a>

Im Folgenden finden Sie Informationen zur Behandlung von Problemen mit Quick Setup, einem Tool in AWS Systems Manager. Dieses Thema umfasst je nach Art des Problems spezifische Aufgaben zur Lösung von Quick Setup-Problemen.

**Problem: Fehlgeschlagene Bereitstellung**  
Eine Bereitstellung schlägt fehl, wenn das CloudFormation Stack-Set bei der Erstellung fehlgeschlagen ist. Gehen Sie wie folgt vor, um einen Bereitstellungsfehler zu untersuchen.

1. Navigieren Sie zur [AWS CloudFormation -Konsole](https://console.aws.amazon.com/cloudformation). 

1. Wählen Sie den Stack aus, der von der Quick Setup-Konfiguration erstellt wurde. Der **Stack name** (Stack-Name) beinhaltet `QuickSetup`, gefolgt von der Art der ausgewählten Konfiguration, wie etwa `SSMHostMgmt`. 
**Anmerkung**  
CloudFormation löscht manchmal fehlgeschlagene Stack-Bereitstellungen. Wenn der Stack in der Tabelle **Stacks** nicht verfügbar ist, wählen Sie **Gelöscht** in der Filterliste aus.

1. Zeigen Sie den **Status** und den **Statusgrund** an. Weitere Informationen zum Stack-Status finden Sie unter [Stack-Statuscodes](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-view-stack-data-resources.html#cfn-console-view-stack-data-resources-status-codes) im *Benutzerhandbuch von AWS CloudFormation *. 

1. Um nachzuvollziehen, welcher Schritt genau fehlgeschlagen ist, sehen Sie sich auf der Registerkarte **Events** (Ereignisse) den **Status** der einzelnen Ereignisse an. 

1. Lesen Sie den Abschnitt [Fehlerbehebung](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html) im *Benutzerhandbuch von AWS CloudFormation *.

1. Wenn Sie den Bereitstellungsfehler nicht mithilfe der Schritte CloudFormation zur Fehlerbehebung beheben können, löschen Sie die Konfiguration und konfigurieren Sie sie neu.

**Problem: Fehlgeschlagene Zuordnung**  
Die Tabelle **Configuration details** (Konfigurationsdetails) auf der Seite **Configuration details** Ihrer Konfiguration zeigt als **Configuration status** (Konfigurationsstatus) **Failed** (Fehlgeschlagen) an, wenn eine der Zuordnungen bei der Einrichtung fehlgeschlagen ist. Gehen Sie zur Fehlerbehebung einer fehlgeschlagenen Zuordnung wie folgt vor.

1. Wählen Sie in der Tabelle **Configuration details** (Konfigurationsdetails) die fehlgeschlagene Konfiguration und dann **View Details** (Details anzeigen) aus.

1. Kopieren Sie den **Association name** (Zuordnungsnamen).

1. Navigieren Sie zu **State Manager** und fügen Sie den Zuordnungsnamen in das Suchfeld ein. 

1. Wählen Sie die Zuordnung und dann die Registerkarte **Execution history** (Ausführungsverlauf) aus.

1. Wählen Sie unter **Execution ID (Ausführungs-ID)** die Zuordnungsausführung aus, die fehlgeschlagen ist.

1. Auf der Seite **Association execution targets** (Zuordnungs-Ausführungsziele) werden alle Knoten aufgelistet, auf denen die Zuordnung ausgeführt wurde. Wählen Sie die Schaltfläche **Output (Ausgabe** ) für eine fehlgeschlagene Ausführung aus.

1. Wählen Sie auf der Seite **Output (Ausgabe)** **Step – Output (Schritt – Ausgabe)** aus, um die Fehlermeldung für diesen Schritt in der Befehlsausführung anzuzeigen. Jeder Schritt kann eine andere Fehlermeldung anzeigen. Überprüfen Sie die Fehlermeldungen für alle Schritte, um das Problem zu beheben.
Wenn sich das Problem durch die Anzeige der Schrittausgabe nicht beheben lässt, können Sie versuchen, die Zuordnung neu zu erstellen. Um die Zuordnung neu zu erstellen, löschen Sie zunächst die fehlgeschlagene Zuordnung in State Manager. Bearbeiten Sie anschließend die Konfiguration, wählen Sie die von Ihnen gelöschte Option aus und klicken Sie auf **Update** (Aktualisieren).  
Um **fehlgeschlagene** Zuordnungen für die Konfiguration einer **Organisation** zu untersuchen, müssen Sie sich bei dem Konto mit der fehlgeschlagenen Zuordnung anmelden und das zuvor beschriebene Verfahren für fehlgeschlagene Zuordnungen anwenden. Die **Association ID (Zuordnungs-ID)** ist kein Hyperlink zum Zielkonto beim Anzeigen von Ergebnissen vom Verwaltungskonto.

**Problem: Drift-Status**  
Auf der Detailseite einer Konfiguration können Sie den Abweichungsstatus der einzelnen Bereitstellungen anzeigen. Eine Konfigurationsabweichung tritt auf, wenn Benutzer Änderungen an einem Service oder einer Funktion vornehmen, die mit der Auswahl in Quick Setup im Konflikt stehen. Wenn sich eine Zuordnung nach der Erstkonfiguration geändert hat, zeigt die Tabelle ein Warnsymbol, das die Anzahl der abweichenden Elemente angibt. Sie können die Ursache der Abweichung feststellen, indem Sie den Mauszeiger über das Symbol bewegen. 
Wenn eine Zuordnung in State Manager gelöscht wird, zeigen die zugehörigen Bereitstellungen eine Abweichungswarnung an. Bearbeiten Sie zur Behebung dieses Problems die Konfiguration und wählen Sie die Option aus, die beim Löschen der Zuordnung entfernt wurde. Wählen Sie **Update** (Aktualisieren) aus und warten Sie, bis die Bereitstellung abgeschlossen ist.