すべてのプロダクト
Search
ドキュメントセンター

Resource Orchestration Service:ALIYUN::ROS::WaitCondition

最終更新日:Jan 16, 2025

ALIYUN::ROS::WaitCondition は、シグナルを待機するために使用されます。ALIYUN::ROS::WaitCondition を ALIYUN::ROS::WaitConditionHandle と共に使用して、スタックの実行プロセスを管理できます。Elastic Compute Service (ECS) インスタンスを作成すると、ユーザーデータの実行中にシグナルが送信されます。

構文

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

プロパティ

プロパティ

タイプ

必須

編集可能

説明

制約

Handle

String

はい

いいえ

ALIYUN::ROS::WaitConditionHandle を使用して作成されたインスタンスへの参照。

なし。

Timeout

Number

はい

いいえ

UserData メッセージの受信が許可されるタイムアウト期間。

有効な値: 1 ~ 43200。

単位: 秒。

Count

Number

いいえ

はい

Resource Orchestration Service (ROS) が受信する 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:  # ros-notify を置き換えます
                  'Fn::GetAtt':
                    - InstallNginxWaitConditionHandle
                    - CurlCli
              - |
                #!/bin/sh
                yum install -y nginx
                systemctl restart nginx
                if [[ $? -eq 0 ]];  # 終了コードが 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": {  // 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": {}
    }