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
Diese Referenz beschreibt die Automation-Aktionen, die Sie in einem Runbook angeben können. Automation ist eine Funktion von 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-Plug-ins.
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 Automation-Runbooks (AWS-*
-Runbooks), wie zum Beispiel AWS-ConfigureS3BucketLogging
, AWS-CreateDynamoDBBackup
und AWS-RestartEC2Instance
-Runbooks, um nur einige zu nennen. Diese Anforderung gilt auch für alle von Ihnen erstellten benutzerdefinierten Automation-Runbooks, die andere AWS-Services mithilfe von Aktionen aufrufen, die andere Services 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.
Themen
- Von allen Aktionen gemeinsam genutzte Eigenschaften
- aws:approve - Unterbrechen einer Automatisierung zur manuellen Genehmigung
- aws:assertAwsResourceProperty— Bestätigt einen AWS Ressourcen- oder Ereignisstatus
- aws:branch - Ausführen bedingter Automatisierungsschritte
- aws:changeInstanceState – Instance-Status ändern oder geltend machen
- aws:copyImage - Kopieren oder Verschlüsseln eines Amazon Machine Image
- aws:createImage - Erstellen eines Amazon Machine Image
- aws:createStack— Einen AWS CloudFormation Stapel erstellen
- aws:createTags - Erstellen von Tags für AWS-Ressourcen
- aws:deleteImage - Löschen eines Amazon Machine Image
- aws:deleteStack – Löschen Sie ein AWS CloudFormation-Stack
- aws:executeAutomation - Führen Sie eine weitere Automatisierung durch
- aws:executeAwsApi— AWS API Operationen aufrufen und ausführen
- aws:executeScript - Führen Sie ein Skript aus
- aws:executeStateMachine – Führen Sie eine AWS Step Functions-State Machine aus.
- aws:invokeWebhook – Automation-Webhook-Integration aufrufen
- aws:invokeLambdaFunction – Aufrufen einer AWS Lambda-Funktion
- aws:loop – Über Schritte in einer Automatisierung iterieren
- aws:pause - Pausieren einer Automatisierung
- aws:runCommand - Führt einen Befehl auf einer verwalteten Instance aus
- aws:runInstances - So starten Sie eine Amazon-EC2-Instance
- aws:sleep - Verzögerung einer Automatisierung
- aws:updateVariable – Aktualisiert einen Wert für eine Runbook-Variable
- aws:waitForAwsResourceProperty - Warten Sie auf eine AWS-Ressourceneigenschaft
- Systemvariablen für Automation
Von allen Aktionen gemeinsam genutzte Eigenschaften
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
-
Informationen, die Sie angeben, um den Zweck eines Runbooks oder eines Schritts zu beschreiben.
Typ: Zeichenfolge
Required: No
- name
-
Ein Bezeichner, der für alle Schrittnamen im Runbook eindeutig sein muss.
Typ: Zeichenfolge
Zulässiges Muster: [a-zA-Z0-9_]+$
Erforderlich: Ja
- action
-
Der Name der Aktion, die der Schritt ausführt. aws:runCommand - Führt einen Befehl auf einer verwalteten Instance aus 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
-
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 lautet 1.
Typ: Ganzzahl
Required: No
- timeoutSeconds
-
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
Required: No
- onFailure
-
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:
Schritt-Name
Required: No
- onCancel
-
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 | Continue | step:
step_name
Required: No
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
-
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 | false
Required: No
- nextStep
-
Gibt an, welcher Schritt in einer Automatisierung nach dem erfolgreichem Abschluss eines Schritts als nächster auszuführen ist.
Typ: Zeichenfolge
Required: No
- isCritical
-
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 aufContinue
in einem Schritt gesetzt ist, lautet der Standardwert „false“. Der Standardwert für diese Option ist sonst „true“.Typ: Boolesch
Zulässige Werte: true | false
Required: No
- inputs
-
Die für die Aktivität spezifischen Eigenschaften.
Typ: Zuordnung
Erforderlich: Ja
Beispiel
--- 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 }}"