查找使用适用于 Java 的 AWS SDK 1.x 客户端的应用程序
在迁移到AWS SDK for Java 2.x 之前,您需要确定您环境中的哪些应用程序使用版本 1.x 客户端。您可以在 AWS CloudTrail 事件中查询“userAgent”字段来查找这些应用程序。
使用 CloudTrail Lake 查找具有 1.x 客户端的应用程序
借助 AWS CloudTrail Lake,您可以查询 CloudTrail 记录的事件。按照以下步骤来创建数据湖,用于识别应用程序使用的 SDK 版本:
-
创建 CloudTrail 数据湖。要创建事件数据存储,请参阅用户指南。
-
创建数据存储后,检查记录内容。记录正文包含用于确定请求的操作、计时和位置的字段。有关详细信息,请参阅 CloudTrail 记录内容的用户指南。
-
对您的数据运行查询。按照用户指南来查询和保存查询结果。
每条记录中的 userAgent 字段包含发出请求的 SDK 版本。使用此字段来识别使用 Java SDK 版本 1.x 的应用程序。
以下示例查询用于查找从 2025 年 6 月 17 日起,针对 EventDatastoreID sample-Data-Store-Id 使用 Java SDK 1.x 发起的所有请求:
select userIdentity, eventSource, awsRegion, eventName, eventType, eventTime, userAgent, requestParameters, sourceIPAddress from sample-Data-Store-Id where eventTime > '2025-06-17 00:00:00' and userAgent like '%aws-sdk-java/1.%' order by eventTime desc
查询结果中的事件内容类似于以下示例:
{ "userIdentity": "{ "type": "IAMUser", "principalId": "AIDAJ45Q7YFFAREXAMPLE", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "", "userName": "Alice" }", "eventSource": "dynamodb.amazonaws.com", "awsRegion": "us-west-2", "eventName": "ListTables", "eventType": "AwsApiCall", "eventTime": "2025-07-01 02:23:52.000", "userAgent": "aws-sdk-java/1.12.746 Linux/5.10.240 OpenJDK/11.0.25+9-LTS ...", "requestParameters": "", "sourceIPAddress": "12.345.6.78" }
您可以使用此信息来帮助确定何时何地发出请求。
在示例中,使用名为 Alice 的 IAM 用户的凭证,在 2025-07-01
02:23:52 (UTC) 从 IP 地址 12.345.6.78 发出 DynamoDB ListTables 请求。userAgent 字段的值表明,请求是使用适用于 Java 的 AWS SDK 版本 1.12.746 从装有 JDK 11 的 Linux 系统发出。
有关 AWS CloudTrail 事件记录中各字段的描述,请参阅 CloudTrail 记录管理、数据和网络活动事件的内容。