

• 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.

# 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 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.

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-z A-Z0-9 \_] \+$  
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 \| Continue \| step: {{step\_name}}  
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 \| Schritt: {{step\_name}}  
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: Boolescher Wert  
Zulässige Werte: true \| 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: Boolescher Wert  
Zulässige Werte: true \| 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 }}"
```