ALIYUN::ROS::WaitConditionHandle は、シグナルを受信するために使用されます。ALIYUN::ROS::WaitConditionHandle を ALIYUN::ROS::WaitCondition と共に使用して、スタックの実行プロセスを管理できます。Elastic Compute Service (ECS) インスタンスを作成すると、ユーザーデータの実行中にシグナルが送信されます。
構文
{
"Type": "ALIYUN::ROS::WaitConditionHandle",
"Properties": {
"Mode": String,
"Count": Integer
}
}プロパティ
プロパティ | タイプ | 必須 | 編集可能 | 説明 | 制約 |
Mode | String | いいえ | はい | リソースが更新される前に、システムが既存のシグナルを削除するモード。 | 有効な値:
|
Count | Integer | いいえ | はい | Mode プロパティを Full に設定すると、システムはリソースが更新される前に、ID が Count プロパティの値より大きい整数である既存のシグナルを削除します。 | デフォルト値: -1。 Count プロパティは、次の条件が満たされた場合に有効になります。
Count プロパティが有効な場合、システムはリソースが更新される前に、ID が Count プロパティの値より大きい整数である既存のシグナルを削除します。 ID が整数ではないシグナルが存在する場合、リソースの更新は失敗します。 説明 スタックを更新することでエラステック スケーリングを実行するシナリオでは、ALIYUN::ROS::WaitConditionHandle の Count プロパティを ALIYUN::ROS::WaitCondition の Count プロパティの値に設定することをお勧めします。 |
戻り値
Fn::GetAtt
CurlCli: ALIYUN::ROS::WaitConditionHandle で指定されたリソースから生成された cURL コマンド。 cURL コマンドを実行して、ユーザーデータの実行結果またはステータスを Resource Orchestration Service (ROS) に送信できます。
WindowsCurlCli: Windows 用に提供される cURL コマンドプレフィックス。 cURL コマンドを実行して、実行が成功したか失敗したかを示すシグナルを送信できます。 Windows は cURL コマンドをサポートしていません。そのため、コマンドを実行する前に curl.exe をインストールし、PATH に追加する必要があります。
-d "{\"status\": \" SUCCESS \"}を追加して実行が成功したことを示し、-d "{\"status\": \" FAILURE \"}を追加して実行が失敗したことを示すことができます。PowerShellCurlCli: PowerShell 用に提供される cURL コマンドプレフィックス。 cURL コマンドを実行して、実行が成功したか失敗したかを示すシグナルを送信できます。 cmdlet は PowerShell 3.0 で導入されました。そのため、PowerShell 3.0 以後を使用する必要があります。
$PSVersionTable.PSVersionを使用して、PowerShell のバージョン番号を照会できます。-Body '{"status": " SUCCESS "}を追加して実行が成功したことを示し、-Body '{"status": " FAILURE "}を追加して実行が失敗したことを示すことができます。Headers: HTTP POST リクエストヘッダー。ヘッダーを使用して、実行が成功したか失敗したかを示すシグナルをプログラムに送信できます。
URL: HTTP POST リクエスト URL。 URL を使用して、実行が成功したか失敗したかを示すシグナルをプログラムに送信できます。
CurlCli、WindowsCurlCli、および PowerShellCurlCli のリクエスト本文では、STRING 形式の id パラメーターを使用してシグナル ID を指定できます。
例:
-d "{\"status\": \" SUCCESS \", \"id\": \"test\"。シグナルの ID が同じ場合、最後に受信したシグナルが前のシグナルを上書きします。
シグナル ID を指定しない場合、ROS はシグナル ID として整数を使用します。シグナル ID は、次の式に基づいて計算されます。シグナル ID = 既存のシグナルの数 + 1。
CurlCli、WindowsCurlCli、および PowerShellCurlCli のリクエスト本文では、STRING 形式の
reasonパラメーターを使用して、シグナルの実行が成功または失敗した理由を指定できます。理由は、シグナル通知を記録するスタックイベントに表示されます。例:
-d "{\"status\": \" SUCCESS \", \"reason\": \"nginx is installed successfully.\"}"。reasonフィールドを指定すると、リクエストされたコンテンツがシグナル通知を記録するスタックイベントに表示されます。CurlCli、WindowsCurlCli、および PowerShellCurlCli のリクエスト本文では、STRING 形式の
dataパラメーターを使用して、シグナルに関連付けられたデータを指定できます。 ALIYUN::ROS::WaitCondition の戻り値の Data、ErrorData、または JoinedErrorData プロパティを使用して、データを照会できます。例:
-d "{\"id\" : \"ssh_pub_key\", \"data\" : \"$pub_key\"}"。statusパラメーターを使用して、SUCCESS、FAILURE、WARNINGなどのシグナルタイプを指定できます。シグナルタイプとリソースに対する操作結果の関係については、以下で優先順位の高い順に説明します。受信したシグナルが
FAILUREタイプの場合、リソースに対する操作は失敗しました。受信したシグナルの数が指定された時間範囲内で Count プロパティの値より少ない場合、リソースに対する操作はタイムアウトしました。
受信したシグナルの数が Count プロパティの値以上で、すべてのシグナルが
WARNINGタイプの場合、リソースに対する操作は失敗しました。その他の場合、リソースに対する操作は成功です。