Mengkonfigurasi input dan output untuk tindakan Anda - AWS Systems Manager

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengkonfigurasi input dan output untuk tindakan Anda

Setiap tindakan otomatisasi merespons berdasarkan masukan yang diterimanya. Dalam kebanyakan kasus, Anda kemudian meneruskan output ke tindakan selanjutnya. Dalam pengalaman desain visual, Anda dapat mengonfigurasi data input dan output tindakan di tab Input dan Output pada panel Formulir.

Untuk informasi rinci tentang cara mendefinisikan dan menggunakan output untuk tindakan otomatisasi, lihatMenggunakan output tindakan sebagai input.

Menyediakan data masukan untuk suatu tindakan

Setiap tindakan otomatisasi memiliki satu atau lebih input yang harus Anda berikan nilainya. Nilai yang Anda berikan untuk input tindakan ditentukan oleh tipe data dan format yang diterima oleh tindakan. Misalnya, aws:sleep tindakan memerlukan nilai string berformat ISO 8601 untuk input. Duration

Umumnya, Anda menggunakan tindakan dalam alur kerja runbook yang mengembalikan output yang ingin Anda gunakan dalam tindakan selanjutnya. Penting untuk memastikan nilai input Anda benar untuk menghindari kesalahan dalam alur kerja runbook Anda. Nilai input juga penting karena menentukan apakah tindakan mengembalikan output yang diharapkan. Misalnya, saat menggunakan aws:executeAwsApi tindakan, Anda ingin memastikan bahwa Anda memberikan nilai yang tepat untuk operasi API.

Tentukan data keluaran untuk suatu tindakan

Beberapa tindakan otomatisasi mengembalikan output setelah melakukan operasi yang ditentukan. Tindakan yang mengembalikan output memiliki output yang telah ditentukan sebelumnya, atau memungkinkan Anda untuk menentukan output sendiri. Misalnya, aws:createImage tindakan memiliki output yang telah ditentukan sebelumnya yang ImageId mengembalikan dan. ImageState Secara komparatif, dengan aws:executeAwsApi tindakan, Anda dapat menentukan output yang Anda inginkan dari operasi API yang ditentukan. Akibatnya, Anda dapat mengembalikan satu atau beberapa nilai dari satu operasi API untuk digunakan dalam tindakan selanjutnya.

Mendefinisikan output Anda sendiri untuk tindakan otomatisasi mengharuskan Anda menentukan nama output, tipe data, dan nilai output. Untuk terus menggunakan aws:executeAwsApi tindakan sebagai contoh, katakanlah Anda memanggil operasi DescribeInstances API dari Amazon EC2. Dalam contoh ini, Anda ingin mengembalikan, atau mengeluarkan, instans Amazon EC2 dan cabang alur kerja runbook Anda berdasarkan output. State Anda memilih untuk memberi nama outputInstanceState, dan menggunakan tipe String data.

Proses untuk menentukan nilai aktual dari output berbeda, tergantung pada tindakan. Misalnya, jika Anda menggunakan aws:executeScript tindakan, Anda harus menggunakan return pernyataan dalam fungsi Anda untuk memberikan data ke output Anda. Dengan tindakan lain sepertiaws:executeAwsApi,aws:waitForAwsResourceProperty, danaws:assertAwsResourceProperty, a Selector diperlukan. TheSelector, atau PropertySelector sebagai beberapa tindakan merujuk padanya, adalah JSONPath string yang digunakan untuk memproses respons JSON dari operasi API. Penting untuk memahami bagaimana objek respons JSON dari operasi API terstruktur sehingga Anda dapat memilih nilai yang benar untuk output Anda. Menggunakan operasi DescribeInstances API yang disebutkan sebelumnya, lihat contoh respons JSON berikut:

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

Dalam objek respons JSON, instance State bersarang di Instances objek, yang bersarang di objek. Reservations Untuk mengembalikan nilai instanceState, gunakan string berikut untuk Selector sehingga nilai dapat digunakan dalam output kami:$.Reservations[0].Instances[0].State.Name.

Untuk mereferensikan nilai output dalam tindakan selanjutnya dari alur kerja runbook Anda, format berikut digunakan:. {{ StepName.NameOfOutput }} Sebagai contoh, {{ GetInstanceState.InstanceState }}. Dalam pengalaman desain visual, Anda dapat memilih nilai output untuk digunakan dalam tindakan selanjutnya menggunakan dropdown untuk input. Saat menggunakan output dalam tindakan selanjutnya, tipe data output harus cocok dengan tipe data untuk input. Dalam contoh ini, InstanceState outputnya adalah aString. Oleh karena itu, untuk menggunakan nilai dalam input tindakan selanjutnya, input harus menerima aString.