本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用运行和管理 CloudTrail Lake 查询 AWS CLI
您可以使用 AWS CLI 来运行和管理您的 CloudTrail Lake 查询。使用时 AWS CLI,请记住您的命令在 AWS 区域 配置文件中运行。如果您想要在不同的区域中运行命令,可以为配置文件更改默认区域,或者与命令一起使用 --region 参数。
可用于 L CloudTrail ake 查询的命令
用于在 L CloudTrail ake 中运行和管理查询的命令包括:
-
start-query
来运行查询。 -
describe-query
返回有关查询的元数据。 -
get-query-results
返回指定查询 ID 的查询结果。 -
list-queries
以获取指定事件数据存储的查询列表。 -
cancel-query
取消正在运行的查询。
有关 La CloudTrail ke 事件数据存储的可用命令列表,请参阅事件数据存储的可用命令。
有关 La CloudTrail ke 集成的可用命令列表,请参阅L CloudTrail ake 集成的可用命令。
使用开始查询 AWS CLI
以下示例 AWS CLI start-query命令对在查询语句中指定为 ID 的事件数据存储运行查询,并将查询结果传送到指定的 S3 存储桶。该--query-statement
参数提供用单引号括起来的SQL查询。可选参数包括 --delivery-s3-uri
,用于将查询结果传送到指定的 S3 存储桶。有关您可以在 La CloudTrail ke 中使用的查询语言的更多信息,请参阅CloudTrail 湖泊SQL限制。
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" }
注意
运行时间超过一小时的查询可能会超时。您仍可获得在查询超时之前处理的部分结果。
如果您使用可选--delivery-s3-uri
参数将查询结果传送到 S3 存储桶,则存储桶策略必须授予将查询结果传送到该存储桶的 CloudTrail权限。有关手动编辑存储桶策略的信息,请参阅适用于 CloudTrail Lake 查询结果的 Amazon S3 存储桶策略。
使用获取有关查询的元数据 AWS CLI
以下示例 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
以下示例 AWS CLI get-query-results 命令获取查询的事件数据结果。您必须指定 --query-id
返回的 start-query 命令。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
以下示例 AWS CLI list-queries 命令返回过去七天内指定事件数据存储中的查询和查询状态的列表。必须为的ARN值指定ARN或 ID 后缀。--event-data-store
或者,要缩短结果列表,您可以通过添加 --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
以下示例 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)