全部产品
Search
文档中心

Resource Orchestration Service:ALIYUN::ROS::WaitCondition

更新时间:Jun 26, 2025

ALIYUN::ROS::WaitCondition digunakan untuk menunggu sinyal. Anda dapat menggunakan ALIYUN::ROS::WaitCondition bersama dengan ALIYUN::ROS::WaitConditionHandle untuk mengelola proses eksekusi suatu stack. Saat membuat instance Elastic Compute Service (ECS), sebuah sinyal dikirim selama eksekusi data pengguna.

Sintaksis

{
  "Type": "ALIYUN::ROS::WaitCondition",
  "Properties": {
    "Count": Number,
    "Handle": String,
    "Timeout": Number,
    "ShowProgressEvent": String
  }
}

Properti

Properti

Tipe

Diperlukan

Dapat Diedit

Deskripsi

Kendala

Handle

String

Ya

Tidak

Referensi ke instance yang dibuat menggunakan ALIYUN::ROS::WaitConditionHandle.

Tidak ada.

Timeout

Number

Ya

Tidak

Jangka waktu timeout yang diizinkan untuk menerima pesan UserData.

Nilai valid: 1 hingga 43200.

Satuan: detik.

Count

Number

Tidak

Ya

Jumlah total pesan UserData yang diterima oleh Resource Orchestration Service (ROS).

Tidak ada.

ShowProgressEvent

String

Tidak

Tidak

Menentukan apakah akan menampilkan peristiwa kemajuan yang mewakili kemajuan penerimaan pesan UserData.

Nilai valid:

  • Disabled (default): tidak menampilkan peristiwa kemajuan.

  • Enabled: menampilkan peristiwa kemajuan.

  • EnabledIfCreateStack (tidak direkomendasikan): menampilkan peristiwa kemajuan saat Anda membuat stack.

Nilai kembali

Fn::GetAtt

  • Data: String JSON yang berisi data sinyal terakhir dibuat atau diperbarui.

  • JoinedErrorData: String yang berisi konten ErrorData.

  • ErrorData: String JSON yang berisi data sinyal kesalahan terakhir dibuat atau diperbarui.

Contoh

  • YAML Format

    ROSTemplateFormatVersion: '2015-09-01'
    Description: ''
    Parameters: {}
    Outputs: {}
    Resources:
      InstallNginx:
        Type: 'ALIYUN::ECS::RunCommand'
        Properties:
          Type: RunShellScript
          CommandContent:
            'Fn::Replace':
              - ros-notify:
                  'Fn::GetAtt':
                    - InstallNginxWaitConditionHandle
                    - CurlCli
              - |
                #!/bin/sh
                yum install -y nginx
                systemctl restart nginx
                if [[ $? -eq 0 ]];
                then
                ros-notify -d "{\"status\" : \"SUCCESS\"}"
                else
                ros-notify -d "{\"status\" : \"FAILURE\"}"
                fi
          Name: InstallNginxScript
          InstanceIds:
            - i-wz995r4yn8njthoq****
          Timeout: 60
      InstallNginxWaitConditionHandle:
        Type: 'ALIYUN::ROS::WaitConditionHandle'
      InstallNginxWaitCondition:
        Type: 'ALIYUN::ROS::WaitCondition'
        Properties:
          Handle:
            Ref: InstallNginxWaitConditionHandle
          Timeout: 60
    Metadata: {}
  • JSON Format

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Description": "",
      "Parameters": {},
      "Outputs": {},
      "Resources": {
        "InstallNginx": {
          "Type": "ALIYUN::ECS::RunCommand",
          "Properties": {
            "Type": "RunShellScript",
            "CommandContent": {
              "Fn::Replace": [
                {
                  "ros-notify": {
                    "Fn::GetAtt": [
                      "InstallNginxWaitConditionHandle",
                      "CurlCli"
                    ]
                  }
                },
                "#!/bin/sh\nyum install -y nginx\nsystemctl restart nginx\nif [[ $? -eq 0 ]];\nthen \nros-notify -d \"{\\\"status\\\" : \\\"SUCCESS\\\"}\" \nelse \nros-notify -d \"{\\\"status\\\" : \\\"FAILURE\\\"}\" \nfi \n"
              ]
            },
            "Name": "InstallNginxScript",
            "InstanceIds": [
              "i-wz995r4yn8njthoq****"
            ],
            "Timeout": 60
          }
        },
        "InstallNginxWaitConditionHandle": {
          "Type": "ALIYUN::ROS::WaitConditionHandle"
        },
        "InstallNginxWaitCondition": {
          "Type": "ALIYUN::ROS::WaitCondition",
          "Properties": {
            "Handle": {
              "Ref": "InstallNginxWaitConditionHandle"
            },
            "Timeout": 60
          }
        }
      },
      "Metadata": {}
    }