Konfigurieren von Eingaben und Ausgaben für Ihre Aktionen - AWS Systems Manager

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.

Konfigurieren von Eingaben und Ausgaben für Ihre Aktionen

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.

Eingabedaten für eine Aktion angeben

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, möchten Sie beispielsweise sicherstellen, dass Sie den richtigen Wert für den API-Vorgang angeben.

Die Ausgabedaten für eine Aktion definieren

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 die Daten einer Amazon-EC2-Instance zurückgeben oder ausgeben und den State-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 State ist die Instance 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: $.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 }}. Zum Beispiel {{ GetInstanceState.InstanceState }}. 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.