クラウドアシスタントイベントには、タスクステータスイベントとファーストハートビートイベントが含まれます。 イベントをサブスクライブして、クラウドリソースの管理とモニタリングを容易にすることができます。 このトピックでは、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パラメーターの両方が指定されている場合、このパラメーターは有効になりません。 有効な値:
| 一度 |
繰り返し | インスタンスでコマンドが実行された回数。
| 0 |
invocationStatus | コマンドの実行状態。
| 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ユーザーへの権限付与」をご参照ください。
EventBridgeコンソールにログインします。 左側のナビゲーションウィンドウで、[イベントバス] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。
[イベントバス] ページで、既定のイベントバスを見つけ、イベントバスの名前をクリックします。
デフォルトのイベントバスの詳細ページの左側のナビゲーションウィンドウで、[イベントルール] をクリックし、[ルールの作成] をクリックします。
ウィザードの [基本情報の設定] ステップで、[名前] フィールドにルールの名前を入力し、[説明] フィールドにルールの説明を入力して、[次のステップ] をクリックします。
ウィザードの [イベントパターンの設定] ステップで、パラメーターを設定し、[次のステップ] をクリックします。
[イベントソースタイプ] パラメーターに Alibaba Cloud サービスイベントソース を選択します。
[イベントソース] ドロップダウンリストで、[acs.ecs] を選択します。
[イベントタイプ] ドロップダウンリストで、購読するクラウドアシスタントイベントのタイプを選択します。
クラウドアシスタントの最初のハートビートイベント:
ecs:CloudAssistant:FirstHeartbeat
Cloud Assistantタスクステータスイベント:
ecs:CloudAssistant:TaskCompleted
[イベントパターンのデバッグ] セクションで、サブスクライブされたイベントタイプのサンプルコードを表示します。
コードブロックの下にある [テスト] をクリックして、イベントのトリガーをシミュレートします。 マッチが成功した場合。 イベントは期待どおりにトリガーできます。 が表示されると、イベントは期待どおりにトリガーされます。
[ターゲットの設定] ステップで、サービスタイプを選択し、プッシュシナリオを設定します。
プッシュシナリオの詳細については、「EventBridgeを使用してECSイベントをすばやくサブスクライブする」をご参照ください。
CloudMonitorを使用したCloud Assistantイベントのサブスクライブ
CloudMonitorコンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
説明[システムイベント] メニューを使用して、次の手順を実行してサブスクリプションポリシーを作成することもできます。
左側のナビゲーションウィンドウで、
を選択します。[新しいイベントセンターへようこそ] セクションで、[すぐに作成] をクリックしてサブスクリプションポリシーを作成します。
On theサブスクリプションポリシータブをクリックします。サブスクリプションポリシーの作成.
[サブスクリプションポリシーの作成] ページで、パラメーターを設定します。
ここでは、Cloud Assistantイベントに関連するパラメーターについてのみ説明します。 その他のパラメーターについては、「イベント購読ポリシーの管理 (推奨) 」トピックの購読ポリシーパラメーターセクションをご参照ください。
サブスクリプションタイプ: [システムイベント] を選択します。
サブスクリプションスコープ:
製品: ドロップダウンリストから [Elastic Compute Service (ECS)] を選択します。
イベントタイプ: [通知] を選択します。
イベント名: [CloudAssistant:FirstHeartbeat] または [CloudAssistant:TaskCompleted] を選択します。
[送信] をクリックします。
関連するイベントがトリガーされたときに通知されます。 DescribeSystemEventAttributeを呼び出して、システムイベントの詳細を照会することもできます。