
AWS SDK for Java v2 2.49.x 版本更新详解协议演进、CRT 事件循环与并发可靠性修复【免费下载链接】aws-sdk-java-v2The official AWS SDK for Java - Version 2项目地址: https://gitcode.com/GitHub_Trending/aw/aws-sdk-java-v2本篇技术指南以 changelogs/2.49.x-CHANGELOG.md 为骨架系统梳理 AWS SDK for Java v2 2.49.x 系列2.49.0 ~ 2.49.6发布于 2026 年 7 月的全部变更涵盖 SDK 内核的元数据刷新与生成代码优化、Smithy RPC v2 CBOR 协议在多个服务上的落地、AWS CRT HTTP Client 新增的numEventLoopThreads配置以及 S3 分片上传、S3 Transfer Manager 暂停上传等并发场景的 Bug 修复。读完本文你将掌握 2.49.x 每个补丁版本的能力变化、底层实现原理与升级时的注意事项。版本发布总览2.49.x 系列共发布 7 个版本时间跨度约一周半节奏与 AWS 各服务的日常发布保持同步。除 SDK 内核自身更新外每个补丁版本还携带大量 AWS 服务模型变更新 API、新参数、新文档说明并由代码生成管道见 codegen自动转化为客户端代码。版本发布日期SDK 内核亮点2.49.02026-07-21Netty 升级至 4.1.136消除端点/认证方案解析的每操作 lambda修复大型服务常量池溢出2.49.12026-07-22CRT 客户端不再同时设置 Content-Length 与 Transfer-Encoding修复 S3 分片上传竞态2.49.22026-07-23CRT 客户端新增numEventLoopThreads配置多服务接入 Smithy RPC v2 CBOR2.49.32026-07-24修复ResponseInputStream.available()语义与委托型AsyncRequestBody的 user-agent 业务指标2.49.42026-07-27端点和分区元数据刷新S3 Transfer Manager 暂停上传 NPE 修复2.49.52026-07-28端点和分区元数据刷新2.49.62026-07-29修复重复 signing-region 端点键导致的ServiceMetadata静态初始化失败SDK 内核更新元数据、代码生成与依赖升级端点和分区元数据持续刷新2.49.1、2.49.3、2.49.4、2.49.5、2.49.6 五个版本均包含 Updated endpoint and partition metadata.。这类变更是 SDK 跟随 AWS 全球基础设施演进新区域上线、分区划分调整、服务端点规则变化的常规动作最终落地为core/regions模块中的分区/端点数据与代码生成模板的同步更新直接影响客户端对目标区域与服务端点的解析行为。生成代码优化消除每操作 lambda修复常量池溢出2.49.0 修复了一个对大型服务影响显著的生成代码问题Eliminate per-operation lambdas for endpoint and auth scheme resolution in generated clients, permanently fixing constant pool overflow for large services like EC2 Internal.此前代码生成器codegen 与 codegen-lite在生成客户端时会为每个操作生成独立的 lambda 用于端点解析与认证方案auth scheme解析。对于操作数量庞大的服务如 EC2 Internal海量 lambda 会撑爆 JVM 类的常量池constant pool上限 65535 项导致类加载失败。修复后将解析逻辑收敛为共享实现从根本上消除了这类溢出。从源码结构看这与core/sdk-core中端点解析、core/auth中认证方案解析的运行时抽象SdkClientOption与各 SPI 接口相配合属于代码生成层面的结构性优化。Netty 依赖升级2.49.0 将 Netty 升级到 4.1.136。作为 http-clients/netty-nio-client 的底层传输框架Netty 的升级主要带来上游稳定性与性能改进。当前仓库 bom-internal/pom.xml 中netty.version已进一步推进到4.1.137.Final同时注释要求升级 Netty 时必须同步核对netty-open-ssl-version当前为2.0.81.Final读者可据此判断后续版本的依赖基线。修复重复 signing-region 端点键导致的服务元数据初始化失败2.49.6 修复了一个代码生成侧的健壮性问题Fixed an issue where duplicate signing-region endpoint keys in service metadata caused ServiceMetadata static initialization to fail with Duplicate keys are provided. The generated SIGNING_REGIONS_BY_REGION map now tolerates duplicate keys.SIGNING_REGIONS_BY_REGION是由代码生成器依据服务模型产出的静态映射表用于按区域解析签名区域。当服务元数据中出现重复键时Map.of风格的不可变集合构造会抛出IllegalArgumentException: Duplicate keys are provided进而使ServiceMetadata的静态初始化整体失败。修复后生成的映射表对重复键采取容忍策略后者覆盖前者避免整个服务客户端因元数据小瑕疵而无法加载。该修复位于代码生成逻辑中所有使用生成ServiceMetadata的服务客户端都会受益。user-agent 业务指标委托型 AsyncRequestBody 类型识别修复2.49.3 修复了委托型delegatingAsyncRequestBody实现包括 S3 Transfer Manager 上传所用的实现在 user-agent 业务指标中把请求体类型误报为 unknown 的问题修复后能正确上报 file、bytes、stream 等真实类型。该指标用于 AWS 侧的业务数据统计参见 docs/user-agent.md 中关于 user-agent 组成与指标语义的说明此修复提升了遥测数据的准确性。ResponseInputStream.available() 语义修正2.49.3 还修改了ResponseInputStream的available()语义这是本次发布中一个容易被忽视但影响真实代码的修复UpdateResponseInputStream, to only return0fromavailable()if the stream is closed; in other cases, if the wrapped stream returns 0 fromavailable(),1is returned instead. This is to avoid cases where other classes such asjava.util.zip.GZIPInputStreammisinterpret this as meaning the stream is closed.ResponseInputStream位于 core/sdk-core/src/main/java/software/amazon/awssdk/core/ResponseInputStream.java是 SDK 提供给用户访问响应体字节流的公共 APISdkPublicApi。它继承自SdkFilterInputStream见 core/sdk-core/src/main/java/software/amazon/awssdk/core/io/SdkFilterInputStream.javaavailable()默认直接委托给被包装的底层流。当底层流如某些 HTTP 客户端实现在数据可读时也返回0GZIPInputStream等标准库类会将其误判为流已关闭而提前结束解压。修复后ResponseInputStream保证只有流确实关闭时才返回0其余情况至少返回1。结合该类的源码还可以看到相关设计背景ResponseInputStream内置 60 秒默认读超时DEFAULT_TIMEOUT Duration.ofSeconds(60)一旦流就绪后未在超时内调用read()会自动abort()连接防止资源泄漏超时可通过构造参数传入Duration自定义传Duration.ZERO或负值可完全禁用。这是使用该流做流式下载时必须注意的行为。协议演进Smithy RPC v2 CBOR 大规模落地2.49.2 与 2.49.3 中一批服务宣布新增Smithy RPC v2 CBOR协议作为既有协议AWS JSON 1.0 / 1.1之外的补充且 SDK 会优先选用性能最佳的协议2.49.3Amazon CloudWatch Application Insights新增于 AWS JSON 1.1 之外2.49.2AWS Backup Gateway、AWS Billing and Cost Management Pricing Calculator、AWS Billing and Cost Management Recommended Actions、Amazon AppStream、Amazon Kendra Intelligent Ranking、Amazon Workspaces Instances均为 AWS JSON 1.0/1.1 之外的新增协议CBOR 是一种紧凑的二进制数据格式相比 JSON 文本协议在序列化体积与解析性能上更有优势。仓库中 core/protocols/smithy-rpcv2-protocol 与 core/protocols/aws-cbor-protocol 等模块即为这类二进制协议的运行时支撑第三方 CBOR 编解码由 third-party/third-party-jackson-dataformat-cbor 提供。对使用这些服务的用户而言升级到 2.49.2 即可自动获得协议优选带来的性能收益无需改动业务代码。AWS CRT HTTP Client事件循环线程可配置与请求头合规修复新增 numEventLoopThreads(Integer)2.49.2 为 CRT 客户端http-clients/aws-crt-client新增了事件循环线程数配置AddnumEventLoopThreads(Integer)toAwsCrtAsyncHttpClient.BuilderandAwsCrtHttpClient.Builderto configure the number of CRT event-loop (IO) threads. When set, the client owns a privateEventLoopGroupof that size (must be greater than 1); when unset, it shares the process-wide default group.从 http-clients/aws-crt-client/src/main/java/software/amazon/awssdk/http/crt/AwsCrtHttpClientBase.java 的构建流程可以看到具体实现若numEventLoopThreads未设置客户端复用进程级默认的EventLoopGroup与系统其他 CRT 组件共享资源开销最小若设置则创建该线程数必须大于 1的私有EventLoopGroup客户端成为其唯一持有者并在关闭时释放构建方法还包含告警逻辑warnIfNumEventLoopThreadsIsExcessive当配置的线程数达到可用处理器数的数倍NUM_EVENT_LOOP_THREADS_WARN_MULTIPLIER时输出日志提示每个配置了该参数的客户端都会独占一个私有事件循环组线程数过高可能造成资源浪费。典型用法同步或异步构建器一致AwsCrtAsyncHttpClient.builder() .numEventLoopThreads(4) .build();适用场景包括需要将 IO 线程与其他 CRT 组件如基于 CRT 的 SigV4 签名器、AWS CRT S3 客户端隔离、或需要为高吞吐场景显式预留 IO 并行度的部署。请求头合规Content-Length 与 Transfer-Encoding 互斥2.49.1 修复了 CRT 客户端的请求头冲突Do not set the Content-Length header on a request that already carries Transfer-Encoding. Emitting both violates RFC 7230 and was rejected by the underlying CRT layer; this aligns the CRT client with the Netty clients existing behavior for chunked requests.RFC 7230 规定Content-Length与Transfer-Encoding不能同时出现在同一请求中。修复前 CRT 客户端在分块chunked请求上可能同时携带二者被底层 CRT 层拒绝修复后行为与 http-clients/netty-nio-client 保持一致已带Transfer-Encoding的请求不再追加Content-Length。并发与可靠性修复S3 与 S3 Transfer ManagerS3 分片上传竞态2.49.1Fix a race condition in multipart upload with low maxInFlightParts where CompleteMultipartUpload could be initiated while the final part was still uploading.当maxInFlightParts最大在途分片数配置得较小时存在一种竞态最后一个分片尚未上传完成CompleteMultipartUpload就被触发导致上传失败。修复保证完成请求只在所有分片含最后一片上传结束后才发起。这对通过S3Configuration调低在途分片数以控制内存/并发连接的场景尤为重要。S3 Transfer Manager 暂停上传 NPE2.49.4Fix race condition when invoking pausing upload that can cause aNullPointerException.services-custom/s3-transfer-manager 的暂停pause上传流程存在竞态特定时序下会抛出NullPointerException2.49.4 修复了该问题。暂停/恢复上传是 S3 Transfer Manager 面向大文件传输的关键能力涉及断点续传状态持久化参见其模块内的持久化传输 API此修复提升了该场景的健壮性。服务侧更新亮点按主题归类2.49.x 的服务变更覆盖数十个 AWS 服务以下按主题归纳核心内容全部条目均可在 changelogs/2.49.x-CHANGELOG.md 中按版本逐一核对。生成式 AI 与机器学习Amazon Bedrock AgentCore / AgentCore Control2.49.2新增 Bring Your Own StorageBYOS能力AgentCore Browser 与 Code Interpreter 可通过访问点挂载 S3Files 与 EFS 文件系统。Amazon Bedrock AgentCore Control2.49.5支持 Private Key JWT 客户端认证OAuth 2.0Agent 可用客户自管的 AWS KMS 非对称密钥签名的 JWT 断言访问身份提供商令牌端点无需客户端密钥。Amazon SageMaker2.49.2、2.49.4HyperPod 新增 c6a、m6a、m6g、m7g、m8g 实例类型推理优化新增 LoRA 适配器、训练计划CreateAIRecommendationJob接受可选AdapterSourceCreateOptimizationJob接受可选TrainingPlanArns及 ml.g7e、ml.p6-b200 实例族。Amazon Bedrock 生态运维CloudWatch Observability Admin2.49.1支持为 ALB 与 Bedrock Knowledge Base 日志启用账户级/组织级遥测规则。Amazon Kendra Intelligent Ranking2.49.2新增 Smithy RPC v2 CBOR 协议。数据与分析Amazon DynamoDB2.49.3端点测试标准化SDK 侧测试基础设施调整不改变 API 语义。Amazon Redshift2.49.0新增 Query Editor V2 IAM Identity Center 应用管理 APICreateQev2IdcApplication、DescribeQev2IdcApplications、ModifyQev2IdcApplication、DeleteQev2IdcApplication。Redshift Data API2.49.0、2.49.2workgroupArn支持 EUSC 分区新增长轮询参数wait-time-seconds应用于 5 个 API、新 APIListSessions以及BatchExecuteStatement的新参数execution-mode。AWS Glue2.49.4、2.49.6新增BatchGetDataQualityRulesetEvaluationRunAPI 批量获取多次运行结果异常检测新增ObservationScope与ObservationMode参数、评估结果可写入 Data Catalog 表、推荐运行支持自定义日志组路径REST API connector 新增过滤、分区与 VPC 支持。Amazon EMR Containers2.49.0、2.49.4新增DeleteSecurityConfigurationAPI安全配置结构体新增authenticationConfiguration虚拟集群支持设置并发 job 上限精细控制同时执行与排队等待的 job 数量。Amazon QuickSight2.49.2、2.49.4自定义权限配置文件新增对浏览器扩展及 Word、Outlook、Excel、PowerPoint 插件访问的控制Custom Permissions API 新增 Governance 字段以支持 Deny By Default。Amazon DataZone2.49.2支持与 S3 ipynb 文件的 notebook 同步。Amazon Timestream for InfluxDB2.49.0InfluxDB 3 Core/Enterprise 参数组支持插件仓库 URL 与可选 Secrets Manager secret ARNProcessing Engine 可从公开或私有仓库加载 Python 插件。网络、存储与边缘Amazon EC22.49.6AWS Transit Gateway 支持基于策略的路由policy-based routing按五元组源 IP、目的 IP、源端口、目的端口、协议匹配流量并指向目标路由表新增 policy table entry API。Amazon S32.49.1见上文分片上传竞态修复。AWS DataSync2.49.5EFS 与 FSx Lustre 位置支持无 Agent 的 Enhanced 模式HDFSTDE、Azure Blob 与对象存储位置支持有 Agent 的 Enhanced 模式HDFS Enhanced 模式支持多 NameNode 高可用Enhanced 模式 Agent 可部署于 Microsoft Hyper-V。AWS Elemental MediaPackage v22.49.2频道支持非 epoch-locked CMAF ingest。Amazon GameLift Streams2.49.2、2.49.6支持按流会话自定义宽高比横屏、竖屏、方形无信箱效应/裁切新增ListApplicationShaderCaches、CreateStreamUrl、GetStreamUrl、ListStreamUrls、RevokeStreamUrl等操作向终端用户提供临时、免认证的浏览器流会话访问。AWS Parallel Computing Service2.49.1新增 Node Lifecycle Actions可在计算节点生命周期的定义节点上通过 PCS 计算节点组 API 运行自定义脚本。安全、身份与合规AWS WAFV22.49.6支持 pre-parse 文本转换在解析前规范化原始查询字符串适用于以 SingleQueryArgument 或 AllQueryArguments 为 FieldToMatch 的规则语句另新增 10 种文本转换含 ModSecurity v3 对齐选项。Amazon Cognito Identity Provider2.49.3用户池支持AdminGetUserAuthFactors操作管理员可检索指定用户已配置的认证因子密码、短信、邮件、TOTP。IAM Roles Anywhere2.49.5提高 trust anchor 源数据证书字符串长度上限以支持新的可调 trust anchor 限额。Amazon GuardDuty2.49.1GetFilter响应返回过滤器生命周期元数据createdAt、updatedAt及随更新递增的版本号。AWS Account2.49.4新增GetPrimaryEmailUpdateStatusAPI查询主邮箱地址更新请求的状态pending / completed / failed。AWS Artifact2.49.3新增PutComplianceInquiryFeedbackAPI客户可对合规质询响应反馈 helpful / not helpful 评分及可选原因码与评论。AWS Invoicing2.49.0新增SendProcurementPortalValidation与VerifyProcurementPortalValidationAPI配合一次性口令OTP自助激活采购门户偏好。Amazon Security Agent2.49.4新增 task hours 字段反映任务实际工作时长。Amazon CloudWatch2.49.1为 CloudWatch Log Alarm 定时查询配置字段补充取值约束并允许日志告警省略LogGroupIdentifiers。TrustedAdvisor Public API2.49.5新增ListRecommendationsForResourceAPI 与 4 个 CheckSummary 字段resourceArnQueryable、awsResourceTypes、checkGranularity、recommendationId可按资源 ARN 检索建议。其他服务更新Amazon Connect2.49.5SearchRules、AssociateRoutingProfileQueues、CreateRoutingProfile、AssociateContactWithUser、CreateTaskTemplate、UpdateTaskTemplate 文档更新。AWS Clean Rooms / Clean Rooms ML2.49.4SQL 支持 CR.8X worker 类型32 vCPU。AWS Billing Data Exports2.49.4数据导出支持 CSV 报告的 ZIP 压缩格式。AWS EntityResolution2.49.0匹配工作流支持高级规则集的实时匹配。Amazon Neptune Graph2.49.3更新 Tag Key 与 KMS Key ARN 校验。Amazon Prometheus2.49.1托管 Prometheus collector 新增 CloudWatch dataset 目标。Amazon SES2.49.1DEED 与 MREP 在 US Gov 区域上线。Elastic Load Balancing2.49.1为SourceIpConfig的IpAddressType字段补充 CLI 示例NLB 监听规则可按源 IP 为 IPv4 或 IPv6 匹配流量。ARC Region Switch2.49.1StartPlanExecution支持客户端令牌使计划执行请求可安全重试幂等。Amazon AppStream2.49.2新增 Smithy RPC v2 CBOR 协议。Amazon Workspaces Instances、Amazon SageMaker 相关运行时2.49.2协议/实例类型更新见上文。Partner Central Account2.49.1、2.49.4新增 Qualifications Association API子公司资质与主账户关联、统一计分卡StartProfileUpdateTask支持可选总部位置ISO 3166 国家与细分代码需同时提供。AWS Database Migration Service2.49.6更新 DMS Schema Conversion 相关操作文档。AWS IoT SiteWise2.49.6发布 Scenario Discover 功能对应的新 API 集合。Inspector22.49.0GA 日期 2026-07-21ListCodeSecurityIntegration与ListCodeSecurityScanConfiguration移除 Tags 字段。Amazon SSM2.49.0Automation 新增WarningMessage字段及对应公开文档。RTBFabric2.49.3GetResponderGateway响应移除已废弃的inboundLinksCount字段改用linksRequestedCount。odb2.49.3文档更新澄清externalIdType字段按操作区分的合法值。升级建议与注意事项优先升级到 2.49.62.49.x 中 SDK 内核的关键修复常量池溢出、ServiceMetadata重复键、ResponseInputStream.available()、CRT 请求头冲突均属于运行期可能直接触发的缺陷建议直接采用该系列最新补丁版本。二进制协议收益使用 Backup Gateway、Pricing Calculator、AppStream、Kendra Intelligent Ranking、Workspaces Instances、CloudWatch Application Insights 等服务的应用升级后会自动启用性能更优的 Smithy RPC v2 CBOR 协议无需改动调用代码。CRT 客户端升级检查升级前如自定义了请求头需确认没有同时设置Content-Length与Transfer-Encoding修复后 SDK 不再代为规避需要 IO 线程隔离时可通过numEventLoopThreads(Integer)配置私有事件循环组注意线程数须大于 1且每个配置的客户端都会独占一组线程。流式读取注意ResponseInputStream的 60 秒默认读超时与available()语义变化意味着——务必及时消费响应流、用close()或abort()显式结束若依赖available()0判断流结束需改为以read()返回 -1 为准。历史版本查阅更早版本的变更记录位于 changelogs 目录下按主版本命名的各2.x.x-CHANGELOG.md文件中本文聚焦的 2.49.x 全部条目以 changelogs/2.49.x-CHANGELOG.md 为准。【免费下载链接】aws-sdk-java-v2The official AWS SDK for Java - Version 2项目地址: https://gitcode.com/GitHub_Trending/aw/aws-sdk-java-v2创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考