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

Elastic Compute Service:Cloud Assistant イベントのサブスクライブ

最終更新日:Aug 26, 2026

Cloud Assistant のイベントをサブスクライブすることで、運用とメンテナンスの自動応答ワークフローを構築できます。たとえば、ソフトウェアのインストールや検査スクリプトの実行といった自動化されたタスクが失敗した場合に、即座にアラートを受信できます。これにより、コストがかかり、高レイテンシーの手動ポーリングが不要になります。

操作手順

次の手順では、例として Cloud Assistant タスクステータスイベント のサブスクリプションについて説明します。 詳細については、「Cloud Assistant イベントの説明」をご参照ください。

EventBridge の使用

作業を開始する前に、 EventBridge を有効化し、必要な権限が付与されている ことを確認してください。

  1. EventBridge コンソールにログインします。左側のナビゲーションペインで、[イベントバス] をクリックします。

  2. 上部メニューで、リージョンを選択します。

  3. [イベントバス] ページで、[デフォルト] をクリックします。

  4. [イベントバス] ページで、左側のナビゲーションバーの イベントルール をクリックし、次に ルールの作成 をクリックします。

  5. [基本情報の設定] タブで、[名前] フィールドにルールの名前を、[説明] フィールドに説明を入力し、次へ をクリックします。

  6. [イベントパターンの設定] タブで、以下の設定を行い、次へ をクリックします。

    1. イベントソース ドロップダウンリストから、acs.ecs を選択します。

    2. [イベントタイプ] ドロップダウンリストから、目的の Cloud Assistant イベントタイプを選択します。

      [クラウドアシスタントのタスクステータスのイベント]: ecs:CloudAssistant:TaskCompleted

    3. [イベントパターンデバッグ] セクションには、サブスクライブされたイベントタイプのサンプルが表示されます。

      {
          "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": ""
          }
      }
    4. サンプルの下で、テスト をクリックしてイベントをシミュレートします。メッセージ [照合に成功しました。イベントは想定どおりにトリガーされます。] が表示された場合、イベントをトリガーできることが確認されます。

  7. イベントターゲットを設定します。サービスタイプ を選択し、プッシュシナリオを設定します。

    プッシュシナリオの詳細については、「プッシュシナリオの設定」をご参照ください。

CloudMonitor の使用

  1. CloudMonitor コンソール にログインします。

  2. 左側のナビゲーションペインで、[イベントセンター] > イベントサブスクリプションを選択します。

  3. サブスクリプションポリシー タブで、[サブスクリプションポリシーの作成] をクリックします。

  4. [サブスクリプションポリシーの作成] ページで、Cloud Assistant のイベントにサブスクライブするためのパラメーターを設定します。

    この例では、 Cloud Assistant イベントに関連するパラメーターのみを示します。 詳細については、「サブスクリプションポリシーのパラメーター」をご参照ください。
    • [サブスクリプションタイプ]:[システムイベント] を選択します。

    • [サブスクリプション範囲]:

      • [サービス]: ECS を選択します。

      • [イベントタイプ][通知] を選択します。

      • [イベント名]:CloudAssistant:TaskCompletedを選択します。

  5. [送信] をクリックします。

    関連するイベントがトリガーされると、通知が届きます。 また、 DescribeSystemEventAttribute オペレーション を呼び出して、システムイベントの詳細をクエリすることもできます。

Cloud Assistant のイベントの説明

Cloud Assistant のタスクステータスイベント

イベントの説明

コマンドやスクリプトの実行には時間がかかります。Cloud Assistant のタスクステータスイベントを使用すると、タスクの完了状況を追跡できます。このイベントは、以下の目的で使用できます。

  • Cloud Assistant のタスクが失敗または完了したときに通知を受信できます。通知をアラートや後続の操作に使用できます。

  • ポーリングは API 呼び出しのクォータを消費します。これを回避するために、イベントサブスクリプションを使用します。

  • ロングポーリングプロセス中に発生する可能性のあるアプリケーションのリリースによる中断を防ぎます。イベントを使用すると、ワークフローが簡素化されます。

トリガー条件と制限

トリガー条件: RunCommand または InvokeCommand API を呼び出してタスクを実行すると、Cloud Assistant はタスクのステータスを監視します。タスクが完了すると、タスクステータスイベントが送信されます。

制限:

  • Cloud Assistant のタスクステータスイベントは、ECS インスタンス上のタスクが以下のいずれかの最終状態 (InvocationStatus) になったときにのみ送信されます。

    • Aborted: タスクの送信に失敗しました。

    • Success: タスクは成功しました。

    • Failed: タスクは失敗しました。

    • Invalid: タスクの内容が無効です。

    • Timeout: タスクはタイムアウトしました。

    • Cancelled: タスクはキャンセル済みです。

    • Terminated: タスクは終了しました。

  • DescribeInvocations および DescribeInvocationResults API は、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: コマンドを即座に実行します。

  • Period: スケジュールに従ってコマンドを実行します。

  • NextRebootOnly: 次回のインスタンス起動時にコマンドを実行します。

  • EveryReboot: インスタンスが起動するたびにコマンドを実行します。

Once

repeats

インスタンスでコマンドが実行された回数。

  • repeatMode が Once の場合、値は 0 または 1 です。

    • 0: コマンドの送信に失敗し、スクリプトが開始されませんでした。

    • 1: コマンドが正常に送信されました。これはインスタンスでの最初の実行です。

  • repeatMode が Period の場合、値はコマンドが実行された回数です。

0

invocationStatus

コマンドの実行ステータス。

  • Invalid: コマンドタイプまたはパラメーターが無効です。

  • Aborted: コマンドをインスタンスに送信できません。インスタンスは実行中の状態である必要があり、コマンドは 1 分以内に送信される必要があります。

  • Success:

    • 1 回限りの実行コマンド:コマンドが完了し、終了コードが 0 です。

    • スケジュールされたコマンド:前回の実行が終了コード 0 で成功し、指定された実行時間が終了しました。

  • Failed:

    • 1 回限りの実行コマンド:コマンドは完了しましたが、終了コードが 0 ではありません。

    • スケジュールされたコマンド:前回の実行がゼロ以外の終了コードで完了し、指定された実行スケジュールは中止されます。

  • Timeout: コマンドの実行がタイムアウトします。

  • Cancelled: コマンドの実行が開始前にキャンセルされます。

  • Terminated: コマンドが実行中に終了します。

Success

exitCode

コマンドプロセスの終了コード。

0

startTime

タスクの開始時刻。

2023-12-20T06:15:55Z

finishTime

タスクの終了時刻。

2023-12-20T06:15:59Z

errorCode

コマンドの送信または実行に失敗した場合に返されるエラーコード。

0

errorDesc

コマンドの送信または実行の失敗の詳細。

-

Cloud Assistant の初回ハートビートイベント

イベントの説明

Cloud Assistant のハートビートは、インスタンスのオペレーティングシステムのステータスを判断する方法の 1 つです。初回ハートビートは、オペレーティングシステムが起動したタイミングを示します。この情報を使用して、インスタンスの正常性を確認したり、Cloud Assistant コマンドを送信するタイミングを決定したりできます。

DescribeCloudAssistantStatus API をポーリングする代わりに初回ハートビートイベントを使用すると、以下の問題が解決されます。

  • DescribeCloudAssistantStatus をポーリングしてステータスが true に変更されたかどうかを確認するのは複雑です。不適切なポーリング間隔は、リクエストが過多になり、スロットリングをトリガーしたり、システムに負担をかけたりする可能性があります。

  • インスタンスのオペレーティングシステムの起動時間は大きく異なる場合があります。一部の Windows インスタンスは起動に最大 5 分かかる場合があり、ポーリングの合計期間を制御することが困難です。

  • DescribeCloudAssistantStatus が返すステータスには遅延が発生する可能性があります。ハートビートが停止してからステータスが変更されるまでに 2 分の遅延が生じます。これにより、DescribeCloudAssistantStatus がインスタンスの再起動を検出することが困難になります。

トリガー条件と制限

トリガー条件: Cloud Assistant がハートビートを報告するとき、Cloud Assistant クライアントの起動後の最初のハートビートであることを検出すると、最初のハートビートイベントを送信します。

Cloud Assistant のバージョンの制限:

  • Windows インスタンス:Cloud Assistant Agent のバージョンは 1.0.0.149 より新しい必要があります。

  • Linux インスタンス:Cloud Assistant Agent のバージョンは 1.0.2.569 より新しい必要があります。

古いバージョンの Cloud Assistant は、毎分ハートビートを報告しないか、index フィールドを報告しません。その結果、起動後の最初のハートビートを正確に識別できません。これらの古いバージョンはサポートされていません。

イベントフィールド

フィールド

説明

bizEventId

イベント ID。

ea33c3e2-aaf0-****-****-5d49b1ecce99

vmName

イベントに関連付けられたインスタンスの ID。

i-bp19****************

extensions

ビジネス拡張に関する情報。

-

azone

ゾーン。

cn-shenzhen-e

region

リージョン。

cn-shenzhen

agentVersion

Cloud Assistant Agent のバージョン。

2.2.3.529

uptime

オペレーティングシステムが実行されている時間 (ミリ秒単位)。

19000

Cloud Assistant のタスク実行出力の配信結果イベント

イベントの説明

  • コマンドを実行すると、最大 24 KB のコマンド出力が保持されます。この制限を超える出力は切り捨てられます。

  • 完全な出力を取得したり、出力を永続化したりする場合は、コマンドの実行が最終状態に達したときに出力をObject Storage Service (OSS) パスに配信するように設定できます。

  • このイベントは、以下の目的で使用できます。

    • 出力の配信に関する通知と詳細を受信できます。成功通知を受信すると、対応する OSS バケットから出力ファイルをダウンロードできます。これにより、DescribeInvocations API をポーリングして結果を取得する必要がなくなり、効率が向上します。

    • 配信が失敗した場合、イベントから失敗の詳細な理由を取得できます。

トリガー条件と制限

トリガー条件: RunCommand または InvokeCommand API を使用してタスクを実行し、有効な OssOutputDelivery パラメーターを指定すると、タスクが最終状態に達したときにこのイベントが送信されます。

制限:

  • イベントは、インスタンス上のタスクが以下のいずれかの最終状態 (InvocationStatus) になったときにのみ送信されます。

    • Aborted: タスクの送信に失敗しました。

    • Success: タスクは成功しました。

    • Failed: タスクは失敗しました。

    • Invalid: タスクの内容が無効です。

    • Timeout: タスクはタイムアウトしました。

    • Cancelled: タスクはキャンセル済みです。

    • Terminated: タスクは終了しました。

Cloud Assistant のバージョンの制限:

  • Windows インスタンス:Cloud Assistant Agent のバージョンは 2.1.4.1007 より新しい必要があります。

  • Linux インスタンス:Cloud Assistant Agent のバージョンは 2.2.4.1007 より新しい必要があります。

イベントフィールド

フィールド

説明

instanceId

インスタンス ID。

invokeId

コマンド実行 ID。

ownerUid

コマンドが実行されるインスタンスを所有するアカウント。

playerUid

コマンドを実行するためにロールを引き受けるアカウントの ID。

repeatMode

コマンドの実行モード。有効値:

  • Once: コマンドを即座に実行します。

  • Period: スケジュールに従ってコマンドを実行します。

  • NextRebootOnly: 次回のインスタンス起動時にコマンドを実行します。

  • EveryReboot: インスタンスが起動するたびにコマンドを実行します。

repeats

インスタンスでコマンドが実行された回数。

  • repeatMode が Once の場合、値は 0 または 1 です。

    • 0: コマンドの送信に失敗し、スクリプトが開始されませんでした。

    • 1: コマンドが正常に送信されました。これはインスタンスでの最初の実行です。

  • repeatMode が Period の場合、値はコマンドが実行された回数です。

ossOutputDelivery

コマンド出力を配信するための OSS 設定。

ossOutputUri

コマンド出力が配信される OSS ファイルの URI。

status

配信ステータス。

  • InProgress: 配信中です。

  • Finished: 配信は完了しました。

  • Failed: 配信は失敗しました。

statusCode

配信ステータスコード。このパラメーターは、ステータスが Failed の場合にのみ返されます。

errorCode

配信失敗のエラーコード。このパラメーターは、ステータスが Failed の場合にのみ返されます。有効値:

  • UnsupportedInvocationStatus: コマンドの送信または検証に失敗しました。

  • ClientNeedUpgrade: Cloud Assistant Agent のバージョンが配信機能をサポートしていません。

  • OSS 配信の失敗。詳細については、「PutObject」をご参照ください。

  • ネットワークが切断されている場合、対応するネットワークライブラリのエラーコードが返されます。

errorInfo

配信失敗のエラー詳細。このパラメーターは、ステータスが Failed の場合にのみ返されます。

Cloud Assistant Agent のアップグレード失敗通知イベント

イベントの説明

  • Cloud Assistant Agent は、デフォルトで 30 分ごとにバージョンのアップグレードを自動的にチェックします。

  • アップグレード失敗通知イベントをサブスクライブして、失敗の理由と解決策を迅速に把握できます。これにより、トラブルシューティングが簡素化されます。

イベントフィールドの説明

フィールド

説明

instanceId

インスタンス ID。

i-bp114***************

currentVersion

Cloud Assistant Agent の現在のバージョン。

2.2.3.529

expectedVersion

アップグレード先の Cloud Assistant Agent のバージョン。

2.2.4.1007

errorCode

アップグレード失敗のエラーコード。エラーコードの詳細については、以下の「エラーコードの説明」をご参照ください。

AgentUpdateFailure:DownloadPackageFailed:NetworkTimeout

errorInfo

アップグレード失敗の理由。

The Alibaba Cloud service network is blocked.

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

Cloud Assistant Agent のアップグレード成功通知イベント

イベントの説明

  • Cloud Assistant Agent は、デフォルトで 30 分ごとにバージョンのアップグレードを自動的にチェックします。

  • アップグレード成功通知イベントをサブスクライブして、アップグレードのステータスを常に把握できます。これにより、トラブルシューティングが簡素化されます。

イベントフィールドの説明

フィールド

説明

instanceId

インスタンス ID。

i-bp114***************

currentVersion

Cloud Assistant Agent の現在のバージョン。

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 で Cloud Assistant イベントをサブスクライブしても、イベント通知が届かないのはなぜですか?

  1. 前提条件の確認: Cloud Assistant Agent のバージョンが要件を満たしていることを確認してください。

  2. EventBridge ルールの確認

    • EventBridge コンソールにログインします。ルールの イベントパターン が正しいことを確認してください。sourceacs.ecs であり、type は正しいイベントタイプである必要があります。

    • イベントパターンデバッグ 機能を使用して、ルールが実際のイベントの JSON サンプルと一致するかどうかをテストしてください。

  3. イベントターゲットの健全性の確認

    • EventBridge コンソール のイベントルール詳細ページで、イベントターゲット の呼び出しレコードとエラーログを確認してください。

    • Function Compute や Webhook などのターゲットサービスが正常に実行されており、ネットワーク経由で到達可能であることを確認してください。