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

Elastic Compute Service:EventBridge と Cloud Monitor を使用して Cloud Assistant イベントをサブスクライブする

最終更新日:Dec 24, 2025

クラウドアシスタントイベントをサブスクライブして、自動化された運用保守 (O&M) の応答フローを構築します。たとえば、ソフトウェアのインストールや検査スクリプトの実行などの自動化タスクが失敗した場合に、即座にアラートを受け取ることができます。これにより、コストと遅延の大きい手動ポーリングが不要になります。

操作手順

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

EventBridge を使用したクラウドアシスタントイベントのサブスクライブ

開始する前に、EventBridge をアクティベートし、必要な権限を付与していることを確認してください。

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

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

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

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

  5. [基本情報の構成] タブで、[名前] テキストボックスに名前を入力し、[説明] テキストボックスに説明を入力します。次に、[次へ] をクリックします。

  6. [イベントパターンの構成] タブで、以下のパラメーターを構成し、[次へ] をクリックします。

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

    2. [イベントタイプ] ドロップダウンリストから、サブスクライブしたいクラウドアシスタントのイベントタイプを選択します。

      クラウドアシスタントのタスクステータスイベント: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. イベントターゲットを構成します。[サービスタイプ] を選択し、プッシュシナリオを構成します。

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

Cloud Monitor を使用したクラウドアシスタントイベントのサブスクライブ

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

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

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

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

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

    • サブスクリプションの範囲

      • [プロダクト][Elastic Compute Service (ECS)] を選択します。

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

      • イベント名: [クラウドアシスタント タスクステータスイベント] を選択します。

  5. 構成が完了したら、[送信] をクリックします。

    関連するイベントがトリガーされると、通知が届きます。また、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:コマンドを即時実行します。

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

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

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

Once

repeats

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

  • 実行メソッドが即時実行の場合、値は 0 または 1 です。

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

    • 1:コマンドは正常に送信されました。これは、インスタンス上でコマンドが初めて実行される場合です。

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

0

invocationStatus

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

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

  • Aborted:インスタンスへのコマンド送信に失敗しました。インスタンスは `Running` 状態である必要があり、コマンドは 1 分以内に送信される必要があります。

  • Success:

    • 一回実行コマンド:コマンドは完了し、終了コードは 0 です。

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

  • Failed:

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

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

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

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

  • Terminated:コマンドは実行中に終了されました。

Success

exitCode

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

0

startTime

タスクの開始時刻。

2023-12-20T06:15:55Z

finishTime

タスクの終了時刻。

2023-12-20T06:15:59Z

errorCode

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

0

errorDesc

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

-

クラウドアシスタントの初回ハートビートイベント

イベントの説明

クラウドアシスタントのハートビートは、インスタンスのオペレーティングシステムのステータスを判断する方法の 1 つです。初回のハートビートは、オペレーティングシステムが起動したタイミングを示します。この情報を使用して、インスタンスのヘルスチェックを行ったり、クラウドアシスタントのコマンドを送信するタイミングを決定したりできます。

初回ハートビートイベントを使用することで、DescribeCloudAssistantStatus 操作をポーリングする代わりに、以下の問題を解決できます:

  • ステータスが `true` に変わったかを確認するために DescribeCloudAssistantStatus をポーリングするのは複雑です。不適切なポーリング間隔は、過剰なリクエストを生成し、速度制限をトリガーしたり、システムに負荷をかけたりする可能性があります。

  • インスタンスのオペレーティングシステムの起動時間は大きく異なる場合があります。一部の 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 が保持されます。この制限を超える出力は切り捨てられます。

  • 完全な出力を取得したり、出力を永続化したりしたい場合は、コマンド実行が最終状態に達したときに、出力が 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

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

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

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

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

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

repeats

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

  • 実行モードが即時実行の場合、値は 0 または 1 です。

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

    • 1:コマンドは正常に送信されました。これは、インスタンス上でコマンドが初めて実行される場合です。

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

ossOutputDelivery

コマンド出力配信のための OSS 構成。

ossOutputUri

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

status

配信ステータス。

  • InProgress:配信中です。

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

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

statusCode

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

errorCode

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

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

  • ClientNeedUpgrade:クラウドアシスタントエージェントのバージョンが配信機能をサポートしていません。

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

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

errorInfo

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

本番環境に関する推奨事項

  • べき等性:イベントシステムは、ネットワークの問題やリトライにより、同じイベントを複数回配信することがあります。処理ロジックはべき等性を持つ必要があります。これは、同じイベントを複数回処理しても、一度だけ処理した場合と同じ結果になることを意味します。イベントの id または data.bizEventId を一意の識別子として使用できます。イベントを処理する前に、この ID がすでに処理済みかどうかを確認してください。

  • リトライとデッドレターキュー:EventBridge のイベントターゲットを構成する際には、リトライポリシーデッドレターキューを構成することを強く推奨します。処理関数が一時的に失敗した場合、EventBridge は自動的にリトライします。リトライが失敗した場合、イベントは MNS キューなどのデッドレターキューに送信されます。その後、手動で調査してイベントを回復し、データ損失を防ぐことができます。

  • モニタリングとアラート:イベント処理関数自体をモニターします。その実行成功率、持続時間、エラーログをモニターし、アラートを設定します。これにより、処理ロジックが一貫して失敗した場合に即座に介入できます。

よくある質問

EventBridge を使用してクラウドアシスタントイベントをサブスクライブした後、イベント通知が届かないのはなぜですか?

  1. 前提条件の確認:クラウドアシスタントエージェントのバージョンが要件を満たしていることを確認します。

  2. EventBridge ルールの確認

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

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

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

    • EventBridge コンソールのイベントルール詳細ページで、イベントターゲットの呼び出しレコードとエラーログを表示します。

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