Deskripsi
Aksi ACS::CheckFor digunakan untuk memeriksa apakah sumber daya cloud berada dalam keadaan yang diharapkan. Jika sumber daya berada dalam keadaan yang ditentukan, tugas berhasil; jika tidak, tugas gagal. Aksi ini umumnya digunakan untuk melakukan pemeriksaan awal. Sebagai contoh, sebelum menghentikan instance Elastic Compute Service (ECS), Anda dapat memeriksa apakah instance tersebut berada dalam keadaan Running. Instance hanya dapat dihentikan jika berada dalam keadaan tersebut.
Sintaksis
Kecuali atribut Action disetel ke ACS::CheckFor, semua atribut lain dari aksi ACS::CheckFor sama dengan atribut dari aksi ACS::WaitFor. Untuk informasi lebih lanjut, lihat deskripsi sintaksis dari aksi ACS::WaitFor.
Tasks:
- Name: checkForTaskExample
Action: ACS::CheckFor
Properties:
# Atribut berikut sama dengan atribut dari aksi ACS::ExecuteAPI. Untuk informasi lebih lanjut, lihat deskripsi sintaksis dari aksi ACS::ExecuteAPI.
Service: ECS
API: DescribeInstances
Parameters:
InstanceId: i-12345678abcedfg
# Atribut berikut spesifik untuk aksi ACS::CheckFor:
PropertySelector: "jq selector" # Diperlukan. Pemilih untuk memilih hasil API yang akan ditunggu. Dalam contoh ini, pemilih jQuery digunakan. Untuk informasi lebih lanjut, lihat deskripsi atribut ValueSelector dalam aksi ACS::ExecuteAPI.
DesiredValues: # Nilai-nilai yang diharapkan. Jika nilai yang dipilih oleh atribut PropertySelector cocok dengan salah satu nilai yang ditentukan dari atribut DesiredValues, tugas berhasil. Jika nilai yang dipilih oleh atribut PropertySelector tidak cocok dengan salah satu nilai yang ditentukan dari atribut DesiredValues, tugas habis waktu dan gagal. Anda harus menentukan salah satu atribut DesiredValues atau NotDesiredValues.
- value1
- value2
NotDesiredValues: # Nilai-nilai yang tidak diharapkan. Jika nilai yang dipilih oleh atribut PropertySelector tidak cocok dengan salah satu nilai yang ditentukan dari atribut NotDesiredValues, tugas berhasil. Jika nilai yang dipilih oleh atribut PropertySelector cocok dengan salah satu nilai yang ditentukan dari atribut NotDesiredValues, tugas habis waktu dan gagal. Anda harus menentukan salah satu atribut DesiredValues atau NotDesiredValues.
- value3
- value4
Outputs: # Parameter keluaran dari tugas tempat aksi ACS::CheckFor berada. Jika kondisi NotDesiredValues atau DesiredValues terpenuhi, tugas berhasil, dan parameter keluaran dikembalikan.
OutputParameter1:
ValueSelector: 'jq selector' # Pemilih jQuery untuk memilih data yang akan dikembalikan. Pemilih jQuery mengekstrak informasi dari data JSON yang dikembalikan oleh operasi API. Untuk informasi lebih lanjut tentang sintaks jq, kunjungi https://stedolan.github.io/jq/.
Type: String/Boolean/List(Array)/Number/Object{
"Tasks": [
{
"Name": "checkForTaskExample",
"Action": "ACS::CheckFor",
"Properties": {
"Service": "ECS",
"API": "DescribeInstances",
"Parameters": {
"InstanceId": "i-12345678abcedfg"
},
"PropertySelector": "jq selector",
"DesiredValues": [
"value1",
"value2"
],
"NotDesiredValues": [
"value3",
"value4"
]
},
"Outputs": {
"OutputParameter1": {
"ValueSelector": "jq selector",
"Type": "String/Boolean/List(Array)/Number/Object"
}
}
}
]
}Contoh
Kode sampel berikut menunjukkan cara membuat snapshot untuk disk yang ditentukan. Dalam contoh ini, aksi ACS::CheckFor digunakan untuk memeriksa apakah instance Elastic Compute Service (ECS) yang ditentukan berada dalam keadaan Running atau Stopped.
FormatVersion: OOS-2019-06-01
Parameters:
DiskId:
Description: id disk dari snap shot yang akan dicopy
Type: String
InstanceId:
Description: id instance dari snap shot yang akan dicopy
Type: String
SnapshotName:
Description: nama snap shot baru
Type: String
Tasks:
- Name: checkInstanceReady
Action: ACS::CheckFor
Properties:
Service: ECS
API: DescribeInstances
DesiredValues:
- Running
- Stopped
Parameters:
InstanceIds:
- '{{ InstanceId }} '
PropertySelector: Instances.Instance[].Status
- Name: createSnapshot
Action: ACS::ExecuteAPI
Properties:
Service: ECS
API: CreateSnapshot
Parameters:
DiskId: '{{ DiskId }}'
SnapshotName: '{{ SnapshotName }}'
Outputs:
SnapshotId:
Type: String
ValueSelector: SnapshotId
- Name: waitSnapshotsReady
Action: ACS::WaitFor
Properties:
Service: ECS
API: DescribeSnapshots
DesiredValues:
- accomplished
Parameters:
SnapshotIds:
- '{{ createSnapshot.SnapshotId }}'
PropertySelector: Snapshots.Snapshot[].Status
Outputs:
SnapshotId:
Type: String
Value: '{{ createSnapshot.SnapshotId }}'{
"FormatVersion": "OOS-2019-06-01",
"Parameters": {
"DiskId": {
"Description": "id disk dari snap shot yang akan dicopy ",
"Type": "String"
},
"InstanceId": {
"Description": "id instance dari snap shot yang akan dicopy ",
"Type": "String"
},
"SnapshotName": {
"Description": "nama snap shot baru",
"Type": "String"
}
},
"Tasks": [
{
"Name": "checkInstanceReady",
"Action": "ACS::CheckFor",
"Properties": {
"Service": "ECS",
"API": "DescribeInstances",
"DesiredValues": ["Running", "Stopped"],
"Parameters": {
"InstanceIds": ["{{ InstanceId }} "]
},
"PropertySelector": "Instances.Instance[].Status"
}
},
{
"Name": "createSnapshot",
"Action": "ACS::ExecuteAPI",
"Properties": {
"Service": "ECS",
"API": "CreateSnapshot",
"Parameters": {
"DiskId": "{{ DiskId }}",
"SnapshotName": "{{ SnapshotName }}"
}
},
"Outputs": {
"SnapshotId": {
"Type": "String",
"ValueSelector": "SnapshotId"
}
}
},
{
"Name": "waitSnapshotsReady",
"Action": "ACS::WaitFor",
"Properties": {
"Service": "ECS",
"API": "DescribeSnapshots",
"DesiredValues": ["accomplished"],
"Parameters": {
"SnapshotIds": ["{{ createSnapshot.SnapshotId }}"]
},
"PropertySelector": "Snapshots.Snapshot[].Status"
}
}
],
"Outputs": {
"SnapshotId": {
"Type": "String",
"Value": "{{ createSnapshot.SnapshotId }}"
}
}
}