クラウドアシスタント イベントをサブスクライブすることで、自動化された運用・保守(O&M)応答ワークフローを構築できます。たとえば、ソフトウェアのインストールや検査スクリプトの実行などの自動化タスクが失敗した場合に即時アラートを受信できます。これにより、コストがかかりかつ遅延の大きい手動ポーリングを排除できます。
操作手順
以下の操作手順では、クラウドアシスタント タスクステータスイベントへのサブスクライブを例として説明します。詳細については、「クラウドアシスタント イベントの説明」をご参照ください。
EventBridge を使用した クラウドアシスタント イベントのサブスクライブ
開始する前に、EventBridge の有効化および必要な権限の付与が完了していることを確認してください。
EventBridge コンソールにログインします。左側のナビゲーションウィンドウで、イベントバスをクリックします。
上部のメニューバーからリージョンを選択します。
イベントバスページで、defaultをクリックします。
イベントバスページの左側ナビゲーションウィンドウで、イベントルールをクリックし、その後 ルールの作成をクリックします。
基本情報の設定タブで、名前テキストボックスに名前を入力し、説明テキストボックスに説明を入力します。その後、次へをクリックします。
イベントパターンの設定タブで、以下の設定を完了し、次へをクリックします。
イベントソースドロップダウンリストから、acs.ecsを選択します。
イベントタイプドロップダウンリストから、サブスクライブするクラウドアシスタント イベントのタイプを選択します。
クラウドアシスタント タスクステータスイベント:
ecs:CloudAssistant:TaskCompletedイベントパターンのデバッグセクションで、サブスクライブ対象のイベントタイプのサンプルを表示します。
{ "id": "45ef4dewdwe1-7c35-447a-bd93-fab****", "source": "acs.ecs", "specversion": "1.0", "subject": "acs.ecs:cn-hangzhou:123456789098****:215672", "time": "2020-11-19T21:04:41+08:00", "type": "ecs:CloudAssistant:TaskCompleted", "aliyunaccountid": "123456789098****", "aliyunpublishtime": "2020-11-19T21:04:42Z", "aliyuneventbusname": "default", "aliyunregionid": "cn-hangzhou", "aliyunpublishaddr": "172.25.XX.XX", "data": { "commandId": "c-hz045**********", "commandName": "hello-linux.sh", "exitCode": "0", "finishTime": "2023-12-14T07:39:48Z", "instanceId": "i-bp114***************", "invocationStatus": "Success", "invokeId": "t-hz045**********", "ownerId": "158*************", "playerUid": "256***************", "repeatMode": "Once", "repeats": "1", "startTime": "2023-12-14T07:39:48Z", "errorCode": "0", "errorDesc": "" } }サンプルの下にある テスト をクリックして、イベントトリガーをシミュレートします。「一致しました。イベントは想定通りにトリガーされます」というメッセージが表示された場合、イベントは想定通りにトリガーされるように設定されています。
イベントターゲットを構成します。サービスタイプを選択し、プッシュシナリオを構成します。
プッシュシナリオの詳細については、「プッシュシナリオの設定」をご参照ください。
Cloud Monitor を使用した クラウドアシスタント イベントのサブスクライブ
Cloud Monitor コンソールにログインします。
左側のナビゲーションウィンドウで、を選択します。
サブスクリプションポリシータブで、サブスクリプションポリシーの作成をクリックします。
サブスクリプションポリシーの作成ページで、クラウドアシスタント イベントのサブスクライブに必要なパラメーターを構成します。
この例では、クラウドアシスタント イベントに関連するパラメーターのみを示しています。その他のパラメーターについては、「サブスクリプションポリシーのパラメーター」をご参照ください。
サブスクリプションタイプ: システムイベントを選択します。
サブスクリプション範囲:
プロダクト: Elastic Compute Service (ECS)を選択します。
イベントタイプ: 通知を選択します。
イベント名: クラウドアシスタント タスクステータスイベントを選択します。
構成を完了したら、送信をクリックします。
関連するイベントがトリガーされると、通知を受信します。また、DescribeSystemEventAttribute 操作を呼び出して、システムイベントの詳細を照会することもできます。
クラウドアシスタント イベントの説明
クラウドアシスタント タスクステータスイベント
イベントの説明
コマンドおよびスクリプトの実行には時間がかかります。クラウドアシスタント タスクステータスイベントは、タスクの完了状況を追跡するのに役立ちます。これらのイベントは、以下のような目的で利用できます。
クラウドアシスタント タスクの失敗または完了時に通知を受信します。この通知はアラートや後続処理に利用できます。
ポーリングは API 呼び出しのクォータを消費します。これを回避するため、イベントサブスクリプションを利用してください。
長時間のポーリング処理中にアプリケーションのリリースによって中断が発生する可能性があります。イベントを利用することで、ワークフローを簡素化できます。
トリガー条件および制限事項
トリガー条件: RunCommand または InvokeCommand 操作を呼び出してタスクを実行すると、クラウドアシスタントがタスクのステータスを監視します。タスクが完了すると、タスクステータスイベントが送信されます。
制限事項:
ECS インスタンス上のタスクが以下のいずれかの最終状態(InvocationStatus)に遷移した場合にのみ、クラウドアシスタント タスクステータスイベントが送信されます。
Aborted:タスクの送信に失敗しました。
Success:タスクは正常に完了しました。
Failed:タスクは失敗しました。
Invalid:タスクの内容が無効です。
Timeout:タスクがタイムアウトしました。
Cancelled:タスクはキャンセルされました。
Terminated:タスクは終了されました。
DescribeInvocations および DescribeInvocationResults 操作は
array<object>形式でデータを返します。ただし、タスクステータスイベントは単一のインスタンス上の単一のタスクのステータスのみを報告し、複数のタスクを報告しません。
イベントフィールド
フィールド | 説明 | 例 |
instanceId | インスタンス ID。 | i-bp114*************** |
invokeId | コマンド実行 ID。 | t-hz045********** |
commandId | コマンド ID。 | c-hz045********** |
commandName | コマンド名。 | ACS-ECS-ResetPassword-for-linux.sh |
ownerUid | コマンドが実行されるインスタンスの所有者アカウント。 | 158************* |
playerUid | ロールを引き受けてコマンドを実行するアカウントの ID。 | 256*************** |
repeatMode | コマンドの実行モード。`InstanceId` も指定されている場合は、このパラメーターは無視されます。有効な値:
| Once |
repeats | インスタンス上でコマンドが実行された回数。
| 0 |
invocationStatus | コマンドの実行ステータス。
| Success |
exitCode | コマンドプロセスの終了コード。 | 0 |
startTime | タスクの開始時刻。 | 2023-12-20T06:15:55Z |
finishTime | タスクの終了時刻。 | 2023-12-20T06:15:59Z |
errorCode | コマンドの送信または実行に失敗した場合に返されるエラーコード。 | 0 |
errorDesc | コマンドの送信または実行に失敗した際の詳細情報。 | - |
クラウドアシスタント 初回ハートビートイベント
イベントの説明
クラウドアシスタント ハートビートは、インスタンスのオペレーティングシステムのステータスを判断する手段の 1 つです。初回ハートビートは、オペレーティングシステムが起動したタイミングを示します。この情報を使用して、インスタンスの健全性を確認したり、クラウドアシスタント コマンドを送信するタイミングを決定したりできます。
DescribeCloudAssistantStatus 操作をポーリングする代わりに、初回ハートビートイベントを使用すると、以下の問題を解決できます。
DescribeCloudAssistantStatus をポーリングしてステータスが `true` に変更されたかどうかを確認するのは複雑です。不適切なポーリング間隔を設定すると、過剰なリクエストが生成され、速度制限が発生したり、システムに負荷がかかる可能性があります。
インスタンスのオペレーティングシステムの起動時間は大きく異なります。一部の Windows インスタンスでは、起動に最大 5 分かかる場合があります。そのため、ポーリングの総実行時間を制御することが困難です。
DescribeCloudAssistantStatus が返すステータスには遅延があります。ハートビートが停止してからステータスが変更されるまでの遅延は 2 分です。このため、DescribeCloudAssistantStatus ではインスタンスの再起動を検出することが困難です。
トリガー条件および制限事項
トリガー条件: クラウドアシスタントがハートビートを報告すると、クラウドアシスタント クライアントの起動後に初回ハートビートを検出した場合に初回ハートビートイベントが送信されます。
クラウドアシスタントのバージョン制限:
Windows インスタンス:クラウドアシスタントエージェントのバージョンは 1.0.0.149 より新しい必要があります。
Linux インスタンス:クラウドアシスタントエージェントのバージョンは 1.0.2.569 より新しい必要があります。
古いバージョンのクラウドアシスタントでは、ハートビートが毎分報告されない、またはインデックスフィールドが報告されないため、起動後の初回ハートビートを正確に識別できません。これらの古いバージョンはサポートされていません。
イベントフィールド
フィールド | 説明 | 例 |
bizEventId | イベント ID。 | ea33c3e2-aaf0-****-****-5d49b1ecce99 |
vmName | イベントに関連付けられたインスタンスの ID。 | i-bp19**************** |
extensions | ビジネス拡張に関する情報。 | - |
azone | ゾーン。 | cn-shenzhen-e |
region | リージョン。 | cn-shenzhen |
agentVersion | クラウドアシスタントエージェント のバージョン。 | 2.2.3.529 |
uptime | オペレーティングシステムが実行中の時間(ミリ秒単位)。 | 19000 |
クラウドアシスタント タスク実行出力配信結果イベント
イベントの説明
コマンドを実行すると、最大 24 KB のコマンド出力が保持されます。この制限を超える出力は切り捨てられます。
完全な出力を取得したり、出力を永続化したりする場合は、コマンド実行が最終状態に達した際に、出力を Object Storage Service (OSS) のパスに配信するよう構成できます。
このイベントは、以下のような目的で利用できます。
出力配信に関する通知および詳細情報を受信します。成功通知を受信した場合、対応する OSS バケットから出力ファイルをダウンロードできます。これにより、DescribeInvocations 操作をポーリングして結果を取得する必要がなくなり、効率が向上します。
配信が失敗した場合、イベントから失敗の詳細な原因を取得できます。
トリガー条件および制限事項
トリガー条件: RunCommand または InvokeCommand を使用してタスクを実行し、有効な OssOutputDelivery パラメーターを指定した場合、タスクが最終状態に達するとこのイベントが送信されます。
制限事項:
インスタンス上のタスクが以下のいずれかの最終状態(InvocationStatus)に遷移した場合にのみ、イベントが送信されます。
Aborted:タスクの送信に失敗しました。
Success:タスクは正常に完了しました。
Failed:タスクは失敗しました。
Invalid:タスクの内容が無効です。
Timeout:タスクがタイムアウトしました。
Cancelled:タスクはキャンセルされました。
Terminated:タスクは終了されました。
クラウドアシスタントのバージョン制限:
Windows インスタンス:クラウドアシスタントエージェントのバージョンは 2.1.4.1007 より新しい必要があります。
Linux インスタンス:クラウドアシスタントエージェントのバージョンは 2.2.4.1007 より新しい必要があります。
イベントフィールド
フィールド | 説明 |
instanceId | インスタンス ID。 |
invokeId | コマンド実行 ID。 |
ownerUid | コマンドが実行されるインスタンスの所有者アカウント。 |
playerUid | ロールを引き受けてコマンドを実行するアカウントの ID。 |
repeatMode | コマンドの実行モード。有効な値:
|
repeats | インスタンス上でコマンドが実行された回数。
|
ossOutputDelivery | コマンド出力配信の OSS 構成。 |
ossOutputUri | コマンド出力が配信される OSS ファイルの URI。 |
status | 配信ステータス。
|
statusCode | 配信ステータスコード。ステータスが `Failed` の場合にのみ返されます。 |
errorCode | 配信失敗のエラーコード。ステータスが `Failed` の場合にのみ返されます。可能な値:
|
errorInfo | 配信失敗のエラー詳細。ステータスが `Failed` の場合にのみ返されます。 |
クラウドアシスタントエージェント アップグレード失敗通知イベント
イベントの説明
クラウドアシスタントエージェントは、デフォルトで 30 分ごとにバージョンアップグレードを自動的にチェックします。
アップグレード失敗通知イベントをサブスクライブすることで、失敗の原因と解決策を迅速に把握でき、トラブルシューティングが簡素化されます。
イベントフィールドの説明
フィールド | 説明 | 例 |
instanceId | インスタンス ID。 | i-bp114*************** |
currentVersion | クラウドアシスタントエージェントの現在のバージョン。 | 2.2.3.529 |
expectedVersion | アップグレード先のクラウドアシスタントエージェントのバージョン。 | 2.2.4.1007 |
errorCode | アップグレード失敗のエラーコード。エラーコードの詳細については、以下の「エラーコードの説明」をご参照ください。 | AgentUpdateFailure:DownloadPackageFailed:NetworkTimeout |
errorInfo | アップグレード失敗の理由。 | Alibaba Cloud サービスのネットワークがブロックされています。 |
occurrenceTime | アップグレード失敗の発生時刻。 | 2026-02-28T03:30:00Z |
エラーコードの説明
エラーコードはプレフィックス AgentUpdateFailure: で始まります。以下の表にエラーコードを示します。
失敗の原因 | エラーの説明 | errorCode |
ダウンロード失敗 | アクセスが拒否されました。 | DownloadPackageFailed:AccessDenied |
ネットワークタイムアウト。 | DownloadPackageFailed:NetworkTimeout | |
ディスク領域が不足しています。 | DownloadPackageFailed:NoEnoughSpace | |
予期しないファイル終端(不完全なデータまたは接続が途中で終了)。 | DownloadPackageFailed:UnexpectedEOF | |
MD5 検証失敗 | MD5 検証に失敗しました。 | CheckMD5Failed |
パッケージ展開失敗 | パッケージ展開に失敗しました。 | ExtractPackageFailed |
実行可能ファイル検証失敗 | 実行可能ファイルの検証に失敗しました。 | ValidateExecutableFailed |
アップグレードスクリプト実行タイムアウト | スクリプトファイルが存在しません。 | ExecuteUpdateScriptRunnerTimeout:FileNotExist |
プロセスがシグナル(SIGKILL や SIGTERM など)によって終了しました。 | ExecuteUpdateScriptRunnerTimeout:ExitedBySignal | |
プロセスが強制終了されました。 | ExecuteUpdateScriptRunnerTimeout:Killed | |
異常なプロセス終了ステータス(予期しない終了コード)。 | ExecuteUpdateScriptRunnerTimeout:UnexpectedExitStatus | |
アップグレードスクリプト実行失敗 | スクリプトファイルが存在しません。 | ExecuteUpdateScriptRunnerFailed:FileNotExist |
プロセスがシグナル(SIGKILL や SIGTERM など)によって終了しました。 | ExecuteUpdateScriptRunnerFailed:ExitedBySignal | |
プロセスが強制終了されました。 | ExecuteUpdateScriptRunnerFailed:Killed | |
異常なプロセス終了ステータス(予期しない終了コード)。 | ExecuteUpdateScriptRunnerFailed:UnexpectedExitStatus |
イベント JSON サンプル
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234****",
"source": "acs.ecs",
"specversion": "1.0",
"subject": "acs.ecs:cn-hangzhou:123456789098****:215672",
"time": "2026-02-28T03:30:00+08:00",
"type": "ecs:CloudAssistant:UpdateFailed",
"aliyunaccountid": "123456789098****",
"aliyunpublishtime": "2026-02-28T03:30:01Z",
"aliyuneventbusname": "default",
"aliyunregionid": "cn-hangzhou",
"aliyunpublishaddr": "172.25.XX.XX",
"data": {
"instanceId": "i-bp114***************",
"currentVersion": "2.2.3.529",
"expectedVersion": "2.2.4.1007",
"errorCode": "AgentUpdateFailure:DownloadPackageFailed:NetworkTimeout",
"errorInfo": "The aliyun service network is blocked.",
"occurrenceTime": "2026-02-28T03:30:00Z"
}
}クラウドアシスタントエージェント アップグレード成功通知イベント
イベントの説明
クラウドアシスタントエージェントは、デフォルトで 30 分ごとにバージョンアップグレードを自動的にチェックします。
アップグレード成功通知イベントをサブスクライブすることで、アップグレードのステータスを常に把握でき、トラブルシューティングが簡素化されます。
イベントフィールドの説明
フィールド | 説明 | 例 |
instanceId | インスタンス ID。 | i-bp114*************** |
currentVersion | クラウドアシスタントエージェントの現在のバージョン。 | 2.2.4.1007 |
occurrenceTime | アップグレード成功の発生時刻。 | 2026-02-28T03:30:00Z |
イベント JSON サンプル
{
"id": "f1e2d3c4-b5a6-7890-abcd-123456****",
"source": "acs.ecs",
"specversion": "1.0",
"subject": "acs.ecs:cn-hangzhou:123456789098****:215672",
"time": "2026-02-28T03:30:00+08:00",
"type": "ecs:CloudAssistant:UpdateCompleted",
"aliyunaccountid": "123456789098****",
"aliyunpublishtime": "2026-02-28T03:30:01Z",
"aliyuneventbusname": "default",
"aliyunregionid": "cn-hangzhou",
"aliyunpublishaddr": "172.25.XX.XX",
"data": {
"instanceId": "i-bp114***************",
"currentVersion": "2.2.4.1007",
"occurrenceTime": "2026-02-28T03:30:00Z"
}
}本番環境に適用する際の推奨事項
冪等性:ネットワーク障害やリトライなどにより、イベントシステムが同一のイベントを複数回配信する可能性があります。そのため、処理ロジックは冪等である必要があります。つまり、同一のイベントを複数回処理しても、1 回だけ処理した場合と同じ結果が得られる必要があります。イベント内の
idまたはdata.bizEventIdを一意の識別子として利用できます。イベントを処理する前に、この ID が既に処理済みかどうかを確認してください。リトライおよびデッドレターキュー:EventBridge のイベントターゲットを構成する際は、リトライポリシー および デッドレターキュー の構成を強く推奨します。処理関数が一時的に失敗した場合、EventBridge が自動的にリトライを実行します。リトライが失敗した場合、イベントは Message Service (MNS) キューなどのデッドレターキューに送信されます。その後、手動で調査および復旧を行い、データ損失を防止できます。
モニタリングおよびアラート:イベント処理関数自体をモニタリングします。実行成功率、実行時間、エラーログを監視し、アラートを設定します。これにより、処理ロジックが継続的に失敗した場合に即座に対応できます。
よくある質問
EventBridge を使用して クラウドアシスタント イベントをサブスクライブした後、イベント通知が受信できないのはなぜですか?
前提条件の確認:クラウドアシスタントエージェントのバージョンが要件を満たしているか確認します。
EventBridge ルールの確認:
EventBridge コンソールにログインします。ルールの イベントパターン が正しいか確認します。
sourceはacs.ecsである必要があり、typeは正しいイベントタイプである必要があります。イベントパターンのデバッグ 機能を使用して、ルールが実際のイベント JSON サンプルと一致するかどうかをテストします。
イベントターゲットの健全性の確認:
EventBridge コンソールのイベントルール詳細ページで、イベントターゲット の呼び出し記録およびエラーログを確認します。
Function Compute や Webhook などのターゲットサービスが正常に稼働しており、ネットワーク経由で到達可能であることを確認します。