全部產品
Search
文件中心

:ALIYUN::ROS::WaitCondition

更新時間:Feb 05, 2024

ALIYUN::ROS::WaitCondition類型用於等待訊號,與ALIYUN::ROS::WaitConditionHandle配合使用以控制資源棧的執行流程。建立ECS執行個體時,在自訂資料執行過程中發送訊號。

文法

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

屬性

屬性名稱

類型

必須

允許更新

描述

約束

Handle

String

引用ALIYUN::ROS::WaitConditionHandle建立的執行個體。

Timeout

Number

接收UserData訊息的逾時時間。

取值範圍:1~43,200。

單位:秒。

Count

Number

接收UserData訊息的總數。

ShowProgressEvent

String

是否顯示接收UserData訊息的進度事件。

取值:

  • Disabled(預設值):不顯示進度事件。

  • Enabled:顯示進度事件。

  • EnabledIfCreateStack(不推薦):在建立資源棧時顯示進度事件。

傳回值

Fn::GetAtt

  • Data:JSON格式字串,最近一次建立或更新後的訊號資料。

  • JoinedErrorData:字串,ErrorData訊號內容的拼接。

  • ErrorData:JSON格式字串,最近一次建立或更新後的錯誤訊號資料。

樣本

  • YAML格式

    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格式

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