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

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

最終更新日:Aug 26, 2024

クラウドアシスタントイベントには、タスクステータスイベントとファーストハートビートイベントが含まれます。 イベントをサブスクライブして、クラウドリソースの管理とモニタリングを容易にすることができます。 このトピックでは、Cloud Assistantイベントと、EventBridgeとCloudMonitorを使用してイベントをサブスクライブする方法について説明します。

Cloud Assistantイベント

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

説明

非同期RunCommandまたはInvokeCommand操作を呼び出してCloud Assistantタスクを実行した後、DescribeInvocationsまたはDescribeInvocationResults操作をポーリングして、タスクが完了しているかどうかを確認する必要があります。

Cloud Assistantのタスクステータスイベントは、Cloud Assistantタスクの進行状況を最新の状態に保つように設計されています。 イベントには次の利点があります。

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

  • API操作のポーリングと比較して、Cloud Assistantイベントを使用すると、APIクォータの消費を減らすことができます。

  • ポーリングプロセスは、アプリケーションのリリースによって中断されやすい。 代わりにCloud Assistantイベントを使用すると、中断を防ぎ、複雑さを軽減できます。

トリガー条件と制限

トリガー条件: RunCommandまたはInvokeCommand操作を呼び出してCloud Assistantタスクを実行すると、Cloud Assistantはタスクのステータスを監視し、タスクの完了時にタスクステータスイベントをトリガーします。

制限:

  • Cloud Assistantタスクステータスイベントは、Cloud AssistantタスクがElastic Compute Service (ECS) インスタンスで次のいずれかの状態 (InvocationStatus) になった場合にのみトリガーされます。

    • Aborted: タスクの発行に失敗しました。

    • Success: タスクは完了です。

    • Failed: タスクの実行に失敗しました。

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

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

    • キャンセル: タスクがキャンセルされました。

    • Terminated: タスクは完了前に終了します。

  • DescribeInvocationsおよびDescribeInvocationResults操作を使用して、複数のCloud Assistantタスクのステータスを照会できます。 ただし、Cloud Assistantタスクステータスイベントは、単一のECSインスタンス上の単一のCloud Assistantタスクのステータスのみを報告します。

Parameters

パラメーター

説明

instanceId

インスタンスの ID です。

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

invokeId

Cloud AssistantタスクのID。

t-hz045 **********

commandId

コマンドのID。

c-hz045 **********

commandName

コマンドの名前。

ACS-ECS-ResetPassword-for-linux.sh

ownerUid

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

158 *************

playerUid

コマンドを実行するためにリソースアクセス管理 (RAM) ロールを引き受けたID。

256 ***************

repeat_Mode

コマンドの実行モード。 このパラメーターとInstanceIdパラメーターの両方が指定されている場合、このパラメーターは有効になりません。 有効な値:

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

  • Period: スケジュールに基づいて定期的にコマンドを実行します。

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

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

一度

繰り返し

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

  • repeatModeパラメーターがOnceに設定されている場合、値は0または1です。

    • 0: コマンドの実行に失敗しました。

    • 1: コマンドの実行を開始しました。

  • repeatModeパラメーターがPeriodに設定されている場合、値はコマンドが実行された回数になります。

0

invocationStatus

コマンドの実行状態。

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

  • Aborted: インスタンスへのコマンドの送信に失敗しました。 インスタンスがRunning状態でないか、コマンドの送信処理が1分以内に完了できないためです。

  • 成功:

    • repeatModeパラメーターがOnceに設定されている場合、値はコマンドタスクが完了し、終了コードが0であったことを示します。

    • repeatModeパラメーターがPeriodに設定されている場合、値は最後のコマンド実行が終了コード0で完了し、指定された実行サイクルが終了したことを示します。

  • 失敗:

    • repeatModeパラメーターがOnceに設定されている場合、値はコマンドタスクが完了したことを示しますが、終了コードは0ではありません。

    • repeatModeパラメーターがPeriodに設定されている場合、この値は、最後のコマンド実行がゼロ以外の終了コードで完了し、指定された実行サイクルがほぼ終了したことを示します。

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

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

  • 終了: コマンドの実行が完了する前に終了しました。

Success

exitCode

コマンドタスクの終了コード。

0

startTime

コマンドタスクの開始時刻。

2023-12-20T06:15:55Z

finishTime

コマンドタスクの終了時刻。

2023-12-20T06:15:59Z

errorCode

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

0

errorDesc

コマンドの送信または実行に失敗した場合の説明。

-

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

説明

Cloud Assistantは、ハートビートを使用して、ECSインスタンス上のオペレーティングシステムのステータスを判断します。 Cloud Assistantの最初のハートビートを使用して、ECSインスタンスのオペレーティングシステムが起動された時点を特定できます。 Cloud Assistantの最初のハートビートを使用して、ECSインスタンスのヘルスステータスを確認したり、Cloud Assistantタスクを発行できるかどうかを判断したりできます。

DescribeCloudAssistantStatus操作のポーリングと比較して、Cloud Assistantの最初のハートビートイベントを使用すると、次の問題が解決されます。

  • DescribeCloudAssistantStatus操作をポーリングしてインスタンスのCloud Assistantのステータスを照会するのは複雑なプロセスです。 不適切な間隔は、要求の急増を引き起こす可能性があり、システムを抑制または圧倒する可能性があります。

  • ECSインスタンスのオペレーティングシステムは、ブートプロセスを完了するために長時間を必要とする場合があります。 たとえば、Windowsインスタンスの起動には5分かかる場合があります。 ポーリングプロセスが完了するのに必要な時間は様々である。

  • DescribeCloudAssistantStatus操作によって返される結果は、2分遅れている場合があります。 これにより、インスタンスの再起動などのシナリオで不正確になります。DescribeCloudAssistantStatus

トリガー条件と制限

トリガー条件: Cloud Assistantがハートビートを報告すると、内部でインデックスをチェックし、最初のハートビートの最初のハートビートイベントをトリガーします。 その後、イベントはクラウドアシスタントサーバーからクラウドアシスタントエージェントに送信されます。

制限事項: Cloud Assistantのバージョンは、次の要件を満たす必要があります。

  • Windows: Cloud Assistantのバージョンは1.0.0.149以降である必要があります。

  • Linux: Cloud Assistantのバージョンは1.0.2.569以降である必要があります。

説明

以前のバージョンのCloud Assistantは、1分間隔でハートビートを報告したり、インデックスのフィールドを報告したりしません。 その結果、以前のバージョンのCloud Assistantは、起動後に最初のハートビートを識別できず、Cloud Assistantの最初のハートビートイベントをサポートしていません。

Parameters

パラメーター

説明

bizEventId

イベントの ID。

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

vmName

イベントに関連付けられているECSインスタンスのID。

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

エクステンション

追加のビジネス情報。

-

azone

ゾーンです。

cn-shenzhen-e

region

地域

cn-shenzhen

agentVersion

Cloud Assistant Agentのバージョン。

2.2.3.529

アップタイム

オペレーティングシステムの起動から経過した時間。 単位:ミリ秒。

19000

Cloud Assistantイベントの購読

  • イベントのサブスクリプションと受信を確実に成功させるために、APIの操作とサービスのドキュメントをよく理解しておくことをお勧めします。

  • サブスクリプションが失敗した場合、またはイベントが期待どおりに受信されなかった場合は、Cloud Assistantのバージョンが要件を満たしているかどうか、またはEventBridgeまたはCloudMonitorが適切に設定されているかどうかを確認します。

  • システムがイベント通知を適切に処理できるように、再試行ポリシーと例外処理メカニズムが設定されていることを確認してください。

EventBridgeを使用したCloud Assistantイベントのサブスクライブ

EventBridgeが有効化され、認証が完了していることを確認します。 詳細については、「EventBridgeの有効化とRAMユーザーへの権限付与」をご参照ください。

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

  2. 上部のナビゲーションバーで、リージョンを選択します。

  3. [イベントバス] ページで、既定のイベントバスを見つけ、イベントバスの名前をクリックします。

  4. デフォルトのイベントバスの詳細ページの左側のナビゲーションウィンドウで、[イベントルール] をクリックし、[ルールの作成] をクリックします。

  5. ウィザードの [基本情報の設定] ステップで、[名前] フィールドにルールの名前を入力し、[説明] フィールドにルールの説明を入力して、[次のステップ] をクリックします。

  6. ウィザードの [イベントパターンの設定] ステップで、パラメーターを設定し、[次のステップ] をクリックします。

    1. [イベントソースタイプ] パラメーターに Alibaba Cloud サービスイベントソース を選択します。

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

    3. [イベントタイプ] ドロップダウンリストで、購読するクラウドアシスタントイベントのタイプを選択します。

      1. クラウドアシスタントの最初のハートビートイベント: ecs:CloudAssistant:FirstHeartbeat

      2. Cloud Assistantタスクステータスイベント: ecs:CloudAssistant:TaskCompleted

    4. [イベントパターンのデバッグ] セクションで、サブスクライブされたイベントタイプのサンプルコードを表示します。

      Cloud Assistantイベントのサンプルコードの表示

      Cloud Assistantタスク状況イベント

      {
          "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 Assistantの最初のハートビートイベント

      {
          "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:FirstHeartbeat",
          "aliyunaccountid": "123456789098****",
          "aliyunpublishtime": "2020-11-19T21:04:42Z",
          "aliyuneventbusname": "default",
          "aliyunregionid": "cn-hangzhou",
          "aliyunpublishaddr": "172.25.XX.XX",
          "data": {
              "bizEventId": "ea33c3e2-aaf0-****-****-5d49b1ecce99",
              "extensions": {
                  "agentVersion": "2.2.3.529",
                  "region": "cn-hangzhou",
                  "azone": "cn-hangzhou-k",
                  "uptime": "19000"
              },
              "impact": "Alert",
              "opsCode": "InstanceStatusChange",
              "vmName": "i-bp19****************"
          }
      }

    5. コードブロックの下にある [テスト] をクリックして、イベントのトリガーをシミュレートします。 マッチが成功した場合。 イベントは期待どおりにトリガーできます。 が表示されると、イベントは期待どおりにトリガーされます。

  7. [ターゲットの設定] ステップで、サービスタイプを選択し、プッシュシナリオを設定します。

    プッシュシナリオの詳細については、「EventBridgeを使用してECSイベントをすばやくサブスクライブする」をご参照ください。

CloudMonitorを使用したCloud Assistantイベントのサブスクライブ

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

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

    説明

    [システムイベント] メニューを使用して、次の手順を実行してサブスクリプションポリシーを作成することもできます。

    1. 左側のナビゲーションウィンドウで、[イベントセンター] > [システムイベント] を選択します。

    2. [新しいイベントセンターへようこそ] セクションで、[すぐに作成] をクリックしてサブスクリプションポリシーを作成します。

  3. On theサブスクリプションポリシータブをクリックします。サブスクリプションポリシーの作成.

  4. [サブスクリプションポリシーの作成] ページで、パラメーターを設定します。

    ここでは、Cloud Assistantイベントに関連するパラメーターについてのみ説明します。 その他のパラメーターについては、「イベント購読ポリシーの管理 (推奨) 」トピックの購読ポリシーパラメーターセクションをご参照ください。

    • サブスクリプションタイプ: [システムイベント] を選択します。

    • サブスクリプションスコープ:

      • 製品: ドロップダウンリストから [Elastic Compute Service (ECS)] を選択します。

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

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

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

    関連するイベントがトリガーされたときに通知されます。 DescribeSystemEventAttributeを呼び出して、システムイベントの詳細を照会することもできます。