View a markdown version of this page

Configurazione di input e output per le tue operazioni - AWS Systems Manager

• La AWS Systems Manager CloudWatch dashboard non sarà più disponibile dopo il 30 aprile 2026. I clienti possono continuare a utilizzare la CloudWatch console Amazon per visualizzare, creare e gestire le proprie CloudWatch dashboard Amazon, proprio come fanno oggi. Per ulteriori informazioni, consulta la documentazione di Amazon CloudWatch Dashboard.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione di input e output per le tue operazioni

Ogni operazione di automazione risponde in base all'input che riceve. Nella maggior parte dei casi, si passa quindi l'output alle operazioni successive. Nell'esperienza di progettazione visiva, puoi configurare i dati di input e output di un'azione nelle schede Input e Output del riquadro Modulo.

Per informazioni dettagliate su come definire e usare l'output per le operazioni di automazione, consulta Utilizzo degli output delle operazioni come input.

Specifica dei dati di input per un'operazione

Ogni operazione di automazione ha uno o più input per i quali è necessario fornire un valore. Il valore fornito per l'input di un'azione è determinato dal tipo e dal formato di dati accettati dall'azione. Ad esempio, le operazioni aws:sleep richiedono un valore di stringa in formato ISO 8601 per l'input Duration.

In genere, si utilizzano operazioni nel flusso di lavoro del runbook che restituiscono l'output che si desidera utilizzare nelle operazioni successive. È importante assicurarsi che i valori di input siano corretti per evitare errori nel flusso di lavoro del runbook. I valori di input sono importanti anche perché determinano se l'azione restituisce l'output previsto. Ad esempio, quando usi l'aws:executeAwsApiazione, vuoi assicurarti di fornire il valore giusto per l'operazione API.

Definizione dei dati di output per un'azione

Alcune operazioni di automazione restituiscono l'output dopo aver eseguito le operazioni definite. Le operazioni che restituiscono un output hanno output predefiniti o consentono di definire gli output autonomamente. Ad esempio, l'operazione aws:createImage ha output predefiniti che restituiscono un ImageId e ImageState. Comparativamente, con l'operazione aws:executeAwsApi è possibile definire gli output desiderati dall'operazione API specificata. Di conseguenza, è possibile restituire uno o più valori da una singola operazione API da utilizzare nelle azioni successive.

Per definire i propri output per un'operazione di automazione è necessario specificare un nome dell'output, il tipo di dati e il valore dell'output. Per continuare a utilizzare l'operazione aws:executeAwsApi come esempio, supponiamo che tu stia chiamando l'operazione API DescribeInstances da Amazon EC2. In questo esempio, vuoi restituire, o emettere, lo State di un'istanza Amazon EC2 e ramificare il flusso di lavoro del runbook in base all'output. Scegli di assegnare un nome all'output InstanceState e utilizza il tipo di dati String.

Il modo in cui definisci il valore di output dipende dall'azione. Ad esempio, conaws:executeScript, utilizza return le istruzioni nelle tue funzioni per fornire dati agli output. Con azioni come aws:executeAwsApiaws:waitForAwsResourceProperty, eaws:assertAwsResourceProperty, a Selector è richiesto. La Selector (chiamata anchePropertySelector) è una JSONPath stringa che elabora la risposta JSON di un'operazione API. È necessario comprendere come è strutturata la risposta JSON in modo da poter selezionare il valore corretto. Utilizzando l'operazione DescribeInstances API, vedi il seguente esempio di risposta:

{ "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 } } } } } }

Nell'oggetto di risposta JSON, l'istanza State è nidificata in un oggetto Instances, che è nidificato nell'oggetto Reservations. Per restituire il valore dell'istanza State, usa la seguente stringa per il Selector in modo che il valore possa essere utilizzato nel nostro output: $.Reservations[0].Instances[0].State.Name.

Per fare riferimento a un valore di output nelle operazioni successive del flusso di lavoro del runbook, viene utilizzato il seguente formato: {{ StepName.NameOfOutput }}. Ad esempio, {{ GetInstanceState.InstanceState }}. Nell'esperienza di progettazione visiva, puoi scegliere i valori di output da utilizzare nelle operazioni successive utilizzando il menu a discesa per l'input. Quando si utilizzano gli output in operazioni successive, il tipo di dati dell'output deve corrispondere al tipo di dati per l'input. In questo esempio, l'output InstanceState è una String. Pertanto, per utilizzare il valore nell'input di un'azione successiva, l'input deve accettare un String.