

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# を使用した CloudTrail Lake クエリの実行と管理 AWS CLI
<a name="lake-queries-cli"></a>

を使用して AWS CLI CloudTrail Lake クエリを実行および管理できます。を使用する場合 AWS CLI、コマンドはプロファイル用に AWS リージョン 設定された で実行されることに注意してください。別のリージョンでコマンドを実行する場合は、プロファイルのデフォルトのリージョンを変更するか、コマンドに **--region** パラメータを使用します。

## CloudTrail Lake クエリで使用できるコマンド
<a name="lake-queries-cli-commands"></a>

CloudTrail Lake でクエリを実行および管理するためのコマンドは次のとおりです。
+ `start-query` はクエリを実行します。
+ `describe-query` はクエリに関するメタデータを返します。
+ `generate-query` は、英語の言語プロンプトからクエリを生成します。詳細については、「[自然言語プロンプトから CloudTrail Lake クエリを作成する](lake-query-generator.md)」を参照してください。
+ `get-query-results` は、指定されたクエリ ID のクエリ結果を返します。
+ `list-queries` は、指定されたイベントデータストアのリストクエリを取得します。
+ `cancel-query` は実行中のクエリをキャンセルします。

CloudTrail Lake イベントデータストアで使用できるコマンドのリストについては、「[イベントデータストアで使用できるコマンド](lake-eds-cli.md#lake-eds-cli-commands)」を参照してください。

CloudTrail Lake ダッシュボードで使用できるコマンドのリストについては、「[ダッシュボードで使用できるコマンド](lake-dashboard-cli.md#lake-dashboard-cli-commands)」を参照してください。

CloudTrail Lake 統合で使用できるコマンドのリストについては、「[CloudTrail Lake 統合で使用できるコマンド](lake-integrations-cli.md#lake-integrations-cli-commands)」を参照してください。

## を使用して自然言語プロンプトからクエリを生成する AWS CLI
<a name="lake-cli-generate-query"></a>

`generate-query` コマンドを実行して、英語のプロンプトからクエリを生成します。`--event-data-stores` には、クエリを行うイベントデータストア ARN (または ARN の ID サフィックス) を指定します。指定できるイベントデータストアは 1 つだけです。`--prompt` の場合、プロンプトを英語で指定します。

```
aws cloudtrail generate-query 
--event-data-stores arn:aws:cloudtrail:us-east-1:123456789012:eventdatastore/EXAMPLE-ee54-4813-92d5-999aeEXAMPLE \
--prompt "Show me all console login events for the past week?"
```

成功すると、コマンドは SQL ステートメントを出力し、イベントデータストアに対してクエリを実行するために `start-query` コマンドで使用する `QueryAlias` を提供します。

```
{
  "QueryStatement": "SELECT * FROM $EDS_ID WHERE eventname = 'ConsoleLogin' AND eventtime >= timestamp '2024-09-16 00:00:00' AND eventtime <= timestamp '2024-09-23 00:00:00' AND eventSource = 'signin.amazonaws.com'",
  "QueryAlias": "AWSCloudTrail-UUID"
}
```

## を使用してクエリを開始する AWS CLI
<a name="lake-cli-start-query"></a>

次のコマンド例では AWS CLI **start-query**、クエリステートメントで ID として指定されたイベントデータストアに対してクエリを実行し、クエリ結果を指定された S3 バケットに配信します。`--query-statement` パラメータは、一重引用符で囲まれた SQL クエリを提供します。オプションのパラメータには、指定された S3 バケットにクエリ結果を配信するための `--delivery-s3-uri` が含まれます。CloudTrail Lake で使用できるクエリ言語の詳細については、「[CloudTrail Lake SQL の制約](query-limitations.md)」を参照してください。

```
aws cloudtrail start-query
--query-statement 'SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10'
--delivery-s3-uri "s3://aws-cloudtrail-lake-query-results-123456789012-us-east-1"
```

レスポンスは `QueryId` 文字列です。クエリのステータスを取得するには、**start-query** によって返された `QueryId` 値を使用して **describe-query** を実行します。クエリが成功した場合は、**get-query-results** を実行して結果を取得できます。

**出力**

```
{
    "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE"
}
```

**注記**  
1 時間以上実行するクエリは、タイムアウトすることがあります。クエリがタイムアウトする前に、処理済みの部分的な結果を取得することはできます。  
オプションの `--delivery-s3-uri` パラメータを使用してクエリ結果を S3 バケットに配信する場合、バケットポリシーはクエリ結果をバケットに配信するアクセス権限を CloudTrail に付与する必要があります。バケットポリシーを手動で編集する方法については、[CloudTrail Lake クエリ結果の Amazon S3 バケットポリシー](s3-bucket-policy-lake-query-results.md) を参照してください。

## を使用してクエリに関するメタデータを取得する AWS CLI
<a name="lake-cli-describe-query"></a>

次のコマンド例では AWS CLI **describe-query**、ミリ秒単位のクエリ実行時間、スキャンおよび一致したイベントの数、スキャンされた合計バイト数、クエリステータスなど、クエリに関するメタデータを取得します。`BytesScanned` 値は、クエリが実行中でない限り、ユーザーのアカウントがクエリに対して請求されるバイト数と一致します。クエリ結果が S3 バケットに配信された場合、応答では S3 URI と配信ステータスも提供されます。

`--query-id` または `--query-alias` パラメータのいずれかの値を指定する必要があります。`--query-alias` パラメータを指定すると、エイリアスに対して最後に実行されたクエリに関する情報が返されます。

```
aws cloudtrail describe-query --query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE
```

以下に、応答の例を示します。

```
{
    "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", 
    "QueryString": "SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10", 
    "QueryStatus": "RUNNING",
    "QueryStatistics": {
        "EventsMatched": 10,
        "EventsScanned": 1000,
        "BytesScanned": 35059,
        "ExecutionTimeInMillis": 3821,
        "CreationTime": "1598911142"
    }
}
```

## を使用してクエリ結果を取得する AWS CLI
<a name="lake-cli-get-query-results"></a>

以下のサンプル AWS CLI **get-query-results** コマンドは、クエリのイベントデータ結果を取得します。**start-query** コマンドによって返される `--query-id` 値を指定します。`BytesScanned` 値は、クエリが実行中でない限り、ユーザーのアカウントがクエリに対して請求されるバイト数と一致します。オプションのパラメータには、コマンドが単一のページに返す結果の最大数を指定する `--max-query-results` が含まれます。指定した `--max-query-results` 値よりも多くの結果がある場合は、返された `NextToken` 値を追加してコマンドを再度実行し、結果の次のページを取得します。

```
aws cloudtrail get-query-results
--query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE
```

**出力**

```
{
    "QueryStatus": "RUNNING",
    "QueryStatistics": {
        "ResultsCount": 244,
        "TotalResultsCount": 1582,
        "BytesScanned":27044
    },
    "QueryResults": [
      {
        "key": "eventName",
        "value": "StartQuery",
      }
   ],
    "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", 
    "QueryString": "SELECT eventID, eventTime FROM EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE LIMIT 10",
    "NextToken": "20add42078135EXAMPLE"
}
```

## を使用してイベントデータストアのすべてのクエリを一覧表示する AWS CLI
<a name="lake-cli-list-queries"></a>

以下のサンプル AWS CLI **list-queries** コマンドは、指定されたイベントデータストアについて、過去 7 日間のクエリとクエリステータスのリストを返します。`--event-data-store` には、ARN、または ARN 値の ID サフィックスを指定する必要があります。オプションで、結果のリストを短くするために、`--start-time` と `--end-time` パラメータ、および `--query-status` 値を追加することで、タイムスタンプとしてフォーマットされた時間範囲を指定できます。`QueryStatus` に有効な値には、`QUEUED`、`RUNNING`、`FINISHED`、`FAILED`、または `CANCELLED` が含まれます。

**list-queries** には、オプションのページ分割パラメータもあります。`--max-results` を使用して、コマンドが単一のページに返す結果の最大数を指定します。指定した `--max-results` 値よりも多くの結果がある場合は、返された `NextToken` 値を追加してコマンドを再度実行し、結果の次のページを取得します。

```
aws cloudtrail list-queries
--event-data-store EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE
--query-status CANCELLED
--start-time 1598384589
--end-time 1598384602
--max-results 10
```

**出力**

```
{
    "Queries": [
        {
          "QueryId": "EXAMPLE2-0add-4207-8135-2d8a4EXAMPLE", 
          "QueryStatus": "CANCELLED",
          "CreationTime": 1598911142
        },
        {
          "QueryId": "EXAMPLE2-4e89-9230-2127-5dr3aEXAMPLE", 
          "QueryStatus": "CANCELLED",
          "CreationTime": 1598296624
        }
     ],
    "NextToken": "20add42078135EXAMPLE"
}
```

## を使用して実行中のクエリをキャンセルする AWS CLI
<a name="lake-cli-cancel-query"></a>

次のコマンド例では AWS CLI **cancel-query**、ステータスが のクエリをキャンセルします`RUNNING`。`--query-id` に値を指定する必要があります。**cancel-query** を実行すると、**cancel-query** 操作がまだ終了していない場合でも、クエリのステータスに `CANCELLED` が表示されることがあります。

**注記**  
キャンセルされたクエリには、料金が発生する可能性があります。アカウントには、クエリをキャンセルする前にスキャンされたデータ量に対する料金が請求されます。

以下は CLI の例です。

```
aws cloudtrail cancel-query
--query-id EXAMPLEd-17a7-47c3-a9a1-eccf7EXAMPLE
```

**出力**

```
QueryId -> (string)
QueryStatus -> (string)
```