全部产品
Search
文档中心

CloudOps Orchestration Service:ACS::CheckFor

更新时间:Jun 28, 2025

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