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:. {{
Sebagai contoh, StepName
.NameOfOutput
}}{{ 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
.