Cloud Assistant が提供する操作内容と結果配信機能を使用すると、タスク実行レコードを Object Storage Service (OSS) または Simple Log Service に配信して永続的に保存できます。 このトピックでは、特定の OSS バケットまたは Simple Log Service Logstore にタスク実行レコードを配信するための配信設定を構成する方法と、配信された実行レコードをクエリする方法について説明します。
背景情報
Cloud Assistant では実行レコードを保持できますが、保持される実行レコードの最大数と保持期間に制限があります。 詳細については、「制限」トピックのCloud Assistant セクションをご参照ください。 多数の実行レコードを保持する場合、または実行レコードを長期間保持する場合は、操作内容と結果配信機能を使用することをお勧めします。 操作内容と結果配信機能を使用すると、実行レコードの配信とクエリ、およびセキュリティ分析、リソース変更追跡、動作コンプライアンス監査などのレコードに対する操作の実行が可能になります。
課金
セッションレコード配信機能は無料です。 ただし、この機能を使用すると、以下の項目に対して課金される場合があります。
ステップ 1: 操作内容と結果配信機能を構成する
ECS コンソール - ECS Cloud Assistant に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。
説明タスク実行レコードはリージョンをまたいで配信することはできません。 複数のリージョンでタスク実行レコードを配信するには、各リージョンの配信設定を構成します。
[ECS クラウドアシスタント] ページの右上隅にある [設定] をクリックします。
[Cloud Assistant Agent の設定] ダイアログボックスで、[コマンド実行設定] タブをクリックして配信設定を構成します。
タスク実行レコードを Simple Log Service に配信します。
[Log Service に配信] を選択します。
既存の Simple Log Service プロジェクトと Logstore を選択します。
選択したリージョンに Simple Log Service プロジェクトまたは Logstore がない場合は、[Log Service コンソール] または [Logstore] をクリックして、Simple Log Service コンソールでプロジェクトまたは Logstore を作成します。 プロジェクトまたは Logstore を作成したら、ECS コンソールの [Cloud Assistant Agent の設定] ダイアログボックスに戻り、
アイコンをクリックして Simple Log Service プロジェクトまたは Logstore の最新リストを取得します。 Simple Log Service プロジェクトの作成方法と Simple Log Service Logstore の作成方法については、「プロジェクトの管理」および「Logstore の管理」をご参照ください。説明Simple Log Service でログをクエリおよび分析するには、インデックス作成機能が必要です。 インデックス作成機能が有効になると、インデックストラフィック転送とストレージの料金が発生します。 課金の詳細については、Simple Log Service の料金計算ツールページにアクセスしてください。 ビジネス要件に基づいてログインデックス作成機能を有効にすることができます。
タスク実行レコードを OSS に配信します。
[OSS に配信] をクリックします。
既存の OSS バケットを選択し、セッションレコードを保存するルートディレクトリを入力します。
選択したリージョンに OSS バケットがない場合は、[OSS コンソール] をクリックして、OSS コンソールでバケットを作成します。 バケットを作成したら、ECS コンソールのダイアログボックスに戻り、
アイコンをクリックして OSS バケットの最新リストを取得します。 OSS バケットの作成方法については、「バケットの作成」をご参照ください。
説明OSS は、静的データを保護するためのサーバ側暗号化メカニズムを提供しています。 このメカニズムは、高いセキュリティまたはコンプライアンスが求められるシナリオで使用できます。 サーバ側暗号化方式を指定すると、セッションレコードを含むオブジェクトはその方式を使用して暗号化されます。 詳細については、「サーバ側暗号化」をご参照ください。
[OK] をクリックします。
配信設定を初めて構成すると、システムは Cloud Assistant に Simple Log Service および OSS リソースへのアクセス権を付与するサービスロールを作成します。 これにより、セッションレコードを特定の Simple Log Service Logstore または OSS バケットに配信できます。 サービスロールがすでに存在する場合は、システムはロールを再作成しません。 ビジネス要件に基づいて Cloud Assistant のロールを管理できます。 詳細については、「ECS Cloud Assistant のサービスロールの管理」をご参照ください。

ステップ 2: コマンドを実行するか、ファイルを転送する
コマンドを実行するかファイルを転送すると、対応するタスク実行レコードは指定された Simple Log Service Logstore または OSS バケットに自動的に配信されます。
詳細については、「即時実行機能の使用」、「コマンドの実行」、および「オンプレミスファイルを ECS インスタンスにアップロードする」をご参照ください。
ステップ 3: タスク実行レコードを表示する
Simple Log Service コンソールでタスク実行レコードを表示する
このセクションでは、Elastic Compute Service (ECS) コンソールから Logstore にアクセスして、Logstore に配信されたタスク実行レコードのログを表示する方法について説明します。 または、Simple Log Service コンソールにログインして Logstore にアクセスすることもできます。
ECS コンソール - ECS Cloud Assistant に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。

[ECS Cloud Assistant] ページの右上隅にある [設定] をクリックします。
[Cloud Assistant Agent の設定] ダイアログボックスで、[コマンド実行設定] タブをクリックし、[Log Service に配信] を選択します。
[プロジェクト] フィールドの右側にある [Logstore] をクリックします。
ログをクエリおよび分析する方法については、「ログのクエリと分析」をご参照ください。
次の図は、タスク実行レコードのサンプルログを示しています。 ログのパラメータについては、このトピックのタスク実行レコードのパラメータセクションをご参照ください。
1 回限りのコマンド実行レコードのサンプルログ

スケジュールされたコマンド実行レコードのサンプルログ
繰り返し回数 パラメータの値は、コマンドが実行された回数を示します。

ファイル送信レコードのサンプルログ

OSS コンソールでタスク実行レコードを表示する
このセクションでは、ECS コンソールから OSS バケットにアクセスして、バケットに配信されたタスク実行レコードのオブジェクトを表示する方法について説明します。 または、OSS コンソールにログインしてバケットにアクセスすることもできます。
ECS コンソール - ECS Cloud Assistant に移動します。
上部のナビゲーションバーで、管理するリソースのリージョンとリソースグループを選択します。

[ECS Cloud Assistant] ページの右上隅にある [設定] をクリックします。
[Cloud Assistant Agent の設定] ダイアログボックスで、[コマンド実行設定] タブをクリックし、[OSS に配信] を選択します。
[バケット] フィールドの右側にある [OSS コンソール] をクリックします。
タスクの実行レコードを含むオブジェクトが保存されているディレクトリに移動します。
OSS コンソールにログインすると、タスク実行レコードを配信するための配信設定を構成したときに指定したルートディレクトリに自動的に移動します。 タスクタイプに基づいて自動的に生成されるサブディレクトリにアクセスできます。
[コマンドタスク] の場合は、invocationResults/<タスク ID> サブディレクトリに移動します。 このサブディレクトリには、ECS インスタンス ID とコマンドのスクリプトの名前が付けられたディレクトリが表示されます。 スクリプトには、次のいずれかの名前が付いている場合があります。
commandContent.bat: Windows ECS インスタンスで実行できるバッチコマンド。
commandContent.ps1: Windows ECS インスタンスで実行できる PowerShell コマンド。
commandContent.sh: Linux ECS インスタンスで実行できるシェルコマンド。
[ファイル送信タスク] の場合は、sendFileResults/<タスク ID> サブディレクトリに移動します。 このサブディレクトリには、ECS インスタンス ID と fileContent.txt ファイルの名前が付けられたディレクトリが表示されます。 ファイルには、送信された内容が含まれています。
次の図は、Linux ECS インスタンスでシェルコマンドを実行するタスクに対して生成されたサンプルサブディレクトリを示しています。

インスタンスで実行されたタスクの実行レコードを含むオブジェクトをクエリするには、ECS インスタンスの ID の名前が付けられたディレクトリに移動します。
次の図は、タスク実行レコードを含む JSON 形式のサンプルオブジェクトを示しています。
1 回限りのコマンド実行レコードを含むサンプルオブジェクト

スケジュールされたコマンド実行レコードを含むサンプルオブジェクト
各オブジェクト名に含まれる数字は、指定されたインスタンスでコマンドが実行された回数を示します。

ファイル送信レコードを含むサンプルオブジェクト

タスク実行レコードを含むオブジェクトに対応する [アクション] 列の [詳細の表示] をクリックします。 次に、オブジェクトをダウンロードするか、オブジェクト URL をコピーしてオブジェクトの内容を表示します。
次のコードは、シェルコマンドの 1 回限りの実行レコードを含むサンプルオブジェクトを示しています。 実行レコードに含まれるパラメータについては、このトピックのタスク実行レコードのパラメータセクションをご参照ください。
{ "RegionId":"cn-hangzhou", // リージョンID "InstanceId":"i-bp1hd5ztmab9cgc0****", // インスタンスID "InvokeId":"t-hz01x7rtjfy****", // コマンドタスクID "CommandId":"c-hz01x7cn5aj****", // スクリプトID "CommandName":"cmd-hostname", // コマンド名 "CommandType":"RunShellScript", // コマンドタイプ "CommandContent":"hostname", // コマンドのプレーンテキストコンテンツ "ResourceOwnerUid":160998252992****, // コマンド呼び出し元のAlibaba CloudアカウントID "CallerUid":160998252992****, // コマンド呼び出し元のアカウントID "CallerType":"customer", // コマンド呼び出し元の呼び出しモード "Timeout":60, // コマンドタスクのタイムアウト期間(秒単位) "Frequency":"", // コマンドを実行するスケジュール。このパラメータの値はCron式です。 "Parameters":"{}", // カスタムパラメータがコマンドに含まれている場合に渡されるカスタムパラメータのキーと値のペア。 "Username":"", // ECSインスタンスでコマンドを実行するために使用されるユーザー名。 "RepeatMode":"Once", // コマンドの実行方法を示します。 "Repeats":1, // ECSインスタンスでコマンドが実行された回数。 "InvocationStatus":"Success", // 単一のECSインスタンスでのコマンドステータス。 "Dropped":0, // Outputレスポンスパラメータの値のサイズが24 KBを超えた場合に切り捨てられて破棄されたテキストのサイズ。 "Output":"iZbp1hd5ztmab9cgc0****\n", // コマンド出力。 "ExitCode":0, // コマンドの終了コード。 "CreationTime":"2021-09-26T05:47:20Z", // コマンドタスクが作成された時刻。 "StartTime":"2021-09-26T05:47:20Z", // ECSインスタンスでコマンドの実行が開始された時刻。 "UpdateTime":"2021-09-26T05:47:20Z", // コマンドタスクのステータスが更新された時刻。 "FinishedTime":"2021-09-26T05:47:20Z", // コマンドタスクが完了した時刻。 "StopTime":"" // ECSインスタンスでコマンドの実行が停止された時刻。StopInvocation操作を呼び出して手動で実行を停止した場合、値は操作が呼び出された時刻です。 }
タスク実行レコードのパラメータ
次の表は、タスク実行レコードに含まれるパラメータについて説明しています。 有効な値など、パラメータの使用方法の詳細については、「DescribeCommands」および「DescribeInvocationResults」をご参照ください。
パラメータ | 例 | 説明 |
RegionId | cn-hangzhou | コマンドが実行された ECS インスタンスのリージョン ID。 |
InstanceId | i-bp1hd5ztmab9cgc0**** | インスタンスの ID |
InvokeId | t-hz01x7rtjfy**** | コマンドタスクの ID。 |
CommandId | c-hz01x7cn5aj**** | スクリプト ID。 |
CommandName | cmd-hostname | コマンドの名前。 |
CommandType | RunShellScript | コマンドのタイプ。 |
CommandContent | hostname | コマンドのプレーンテキストコンテンツ。 |
ResourceOwnerUid | 160998252992**** | コマンド呼び出し元の Alibaba Cloud アカウント ID。 |
CallerUid | 160998252992**** | コマンド呼び出し元のアカウント ID。 |
CallerType | customer | コマンド呼び出し元の呼び出しモード。 |
Timeout | 60 | コマンドタスクのタイムアウト期間。単位: 秒。 |
Frequency | 0 * 14 * * ? | コマンドを実行するスケジュール。 このパラメータの値は Cron 式です。 詳細については、「Cron 式」をご参照ください。 |
Parameters | {} | カスタムパラメータがコマンドに含まれている場合に渡されるカスタムパラメータのキーと値のペア。 |
Username | root | ECS インスタンスでコマンドを実行するために使用されるユーザー名。 |
RepeatMode | Period | コマンドの実行方法を示します。 |
Repeats | 2 | ECS インスタンスでコマンドが実行された回数。 |
InvocationStatus | Success | 単一の ECS インスタンスでのコマンドステータス。 |
ErrorCode | InstanceNotExists | コマンドを送信または実行できないときに返されるエラーコード。 |
ErrorInfo | the specified instance does not exists | コマンドを送信または実行できないときに返されるエラーメッセージ。 |
Dropped | 0 | Output レスポンスパラメータの値のサイズが 24 KB を超えた場合に切り捨てられて破棄されたテキストのサイズ。 |
Output | iZbp1hd5ztmab9cgc0****\n | コマンド出力。 |
ExitCode | 0 | コマンドの終了コード。 |
CreationTime | 2021-09-26T05:47:20Z | コマンドタスクが作成された時刻。 |
StartTime | 2021-09-26T05:47:20Z | ECS インスタンスでコマンドの実行が開始された時刻。 |
UpdateTime | 2021-09-26T06:53:00Z | コマンドタスクのステータスが更新された時刻。 |
FinishedTime | 2021-09-26T06:53:00Z | コマンドタスクが完了した時刻。 |
StopTime | 2021-09-26T06:53:00Z | ECS インスタンスでコマンドの実行が停止された時刻。 StopInvocation 操作を呼び出して手動で実行を停止した場合、値は操作が呼び出された時刻です。 |
次の表は、ファイル送信レコードに含まれるパラメータについて説明しています。 有効な値など、パラメータの使用方法の詳細については、「DescribeSendFileResults」をご参照ください。
パラメータ | 例 | 説明 |
RegionId | cn-hangzhou | ファイルが送信された ECS インスタンスのリージョン ID。 |
InstanceId | i-bp1hd5ztmab9cgc0**** | インスタンスの ID |
InvokeId | f-hz01xeva44**** | ファイル送信タスクの ID。 |
FileName | sendfile-test.txt | ファイルの名前 |
ContentType | Base64 | ファイルのコンテンツタイプ。 |
Description | Used for test | ファイルの説明。 |
FileContent | c2VuZCBmaWxlIHRlc3Q= | ファイルのコンテンツ。 |
FileGroup | root | ファイルのグループ。 |
FileMode | 0644 | リモートファイルの権限。 |
FileOwner | root | リモートファイルの所有者。 |
ResourceOwnerUid | 16099825299**** | ファイル送信元の Alibaba Cloud アカウント ID。 |
CallerUid | 16099825299**** | ファイル送信元のアカウント ID。 |
CallerType | customer | ファイル送信元の呼び出しモード。 |
Overwrite | true | 送信されたファイルと同じ名前のファイルが宛先ディレクトリに存在する場合に、ファイルを上書きするかどうかを示します。 |
TargetDir | /root | ファイルが送信された宛先ディレクトリ。 |
Timeout | 60 | ファイル送信タスクのタイムアウト期間。単位: 秒。 |
InvocationStatus | Success | ファイル送信タスクのステータス。 |
ErrorCode | FileAlreadyExists | ファイルが ECS インスタンスに送信できなかったときに返されるエラーコード |
ErrorInfo | File already exists: sendfile-test.txt | ファイルが ECS インスタンスに送信できなかったとき、またはファイル送信タスクが ECS インスタンスで実行できなかったときに返されるエラーメッセージ。 |
CreationTime | 2021-09-28T05:31:04Z | ファイル送信タスクの作成時刻。 |
StartTime | 2021-09-28T05:31:04Z | ECS インスタンスでファイル送信タスクの実行が開始された時刻。 |
UpdateTime | 2021-09-28T05:31:04Z | ファイル送信タスクのステータスが更新された時刻。 |
FinishTime | 2021-09-28T05:31:04Z | ファイル送信タスクが完了した時刻。 |
関連情報
DescribeCloudAssistantSettings: Cloud Assistant の構成をクエリします。
ModifyCloudAssistantSettings: Cloud Assistant 機能の構成を変更します。