terraform-provider-aws 6.16.0 版本深度解读:Transcribe Action、Transfer Web App、ODB 数据源与框架层修复全解析
2026/9/15 15:42:59 网站建设 项目流程

terraform-provider-aws 6.16.0 版本深度解读:Transcribe Action、Transfer Web App、ODB 数据源与框架层修复全解析

【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws

本篇文章以 .changes/6.x/6.16.0.md 变更记录为核心,结合 terraform-provider-aws 仓库源码,系统解读 6.16.0 版本的三大类变更:新增的 9 个功能(含 1 个 Action、2 个新资源系列与 6 个数据源)、5 项资源增强,以及覆盖 Provider 核心与多个服务的缺陷修复。读完本文,你将掌握这批新资源的参数用法、底层实现原理,以及框架层身份(Identity)修复对 Plugin Framework 资源的影响边界。

一、版本概览与变更结构

6.16.0 发布于 2025 年 10 月 9 日,属于 6.x 主版本线的常规功能迭代。本仓库当前代码版本为 6.64.1(见 version/VERSION),6.16.0 作为更早的历史版本,其变更记录完整保存在 .changes/6.x/6.16.0.md 中,遵循该仓库的 changelog-process 规范按FEATURESENHANCEMENTSBUG FIXES三类组织。

本版本变更覆盖面广,概括如下:

类别数量涉及服务
FEATURES(新功能)9 项Transcribe、ODB、Prometheus(AMP)、Transfer
ENHANCEMENTS(增强)5 项CodeBuild、EMR Serverless、Lambda、SSM Contacts、VPC Lattice
BUG FIXES(修复)13 项Provider 核心、DataZone、DynamoDB、IVS Chat、Launch Template、Service Catalog

二、FEATURES:新增 Action、资源与数据源

1. 全新 Action:aws_transcribe_start_transcription_job

这是 6.16.0 中最具代表性的新能力——Terraform Plugin Framework 的Action类型。与 Resource/Data Source 不同,Action 用于执行一次性操作而不维护持久状态,适合"提交任务、等待完成"的场景。

其核心实现位于 internal/service/transcribe/start_transcription_job_action.go,通过@Action(aws_transcribe_start_transcription_job, name="Start Transcription Job")注解注册到 Provider。从源码模型可确认以下参数:

参数类型必填说明
transcription_job_nameString账户内唯一的转录任务名称
media_file_uriString待转录媒体文件的 S3 位置(如s3://bucket-name/file.mp3
language_codeString 枚举媒体文件语言代码;当identify_languageidentify_multiple_languages均为 false 时必填
identify_languageBool单语言文件自动语言识别,不能与identify_multiple_languages同时使用
identify_multiple_languagesBool多语言文件自动语言识别
media_formatString 枚举媒体格式
media_sample_rate_hertzInt64媒体采样率
output_bucket_nameString输出结果 S3 桶
output_keyString输出对象键
timeoutInt64任务超时控制

源码还定义了轮询节奏常量:transcriptionJobPollInterval = 5 * time.Second(普通轮询间隔)与transcriptionJobProgressInterval = 30 * time.Second(进度上报间隔),配合 internal/actionwait 实现任务完成的等待逻辑,对应测试见 internal/service/transcribe/start_transcription_job_action_test.go。

2. AWS Transfer 三连:aws_transfer_web_appaws_transfer_web_app_customizationaws_transfer_host_key

本版本为 AWS Transfer Family 一次性新增三个资源,实现在internal/service/transfer目录下。

aws_transfer_web_app(源码 internal/service/transfer/web_app.go):基于@FrameworkResource注解注册,核心 schema 包括:

  • access_endpoint:可选,长度 1–1024,与endpoint_details下的vpc块互斥(ConflictsWith);
  • web_app_endpoint_policy:枚举类型,配置后触发RequiresReplace(重建);
  • web_app_units:嵌套对象列表,最多 1 个;
  • endpoint_details.vpc:VPC 接入详情块,其中subnet_idsvpc_id为必填,security_group_ids可选,vpc_endpoint_id由系统计算;
  • 支持标准tags体系(identifierAttribute="arn")。

aws_transfer_web_app_customization(源码 internal/service/transfer/web_app_customization.go):用于定制 Web App 界面外观,确认存在favicon_file(长度 1–20960)与logo_file(长度 1–51200)两个可选+计算属性。源码注释特别说明:调用 UpdateWebAppCustomization API 时若未指定faviconFile,现有图标保持不变,因此这两个字段被标记为Optional + Computed并使用UseStateForUnknown

aws_transfer_host_key(源码 internal/service/transfer/host_key.go):管理服务器主机密钥,值得关注的是其写专用(WriteOnly)属性设计:

  • host_key_body:敏感字符串,长度 0–4096,带RequiresReplace
  • host_key_body_wo:同样的敏感字段但标记为WriteOnly: true,并通过PreferWriteOnlyAttribute校验器与host_key_body构成二选一(ExactlyOneOf),这是仓库 internal/framework/planmodifiers/stringplanmodifier 中RequiresReplaceWO机制的典型应用;
  • description:长度 0–200;
  • host_key_fingerprint:计算属性,用于校验密钥指纹;
  • server_id:必填,变更触发重建。

3. 新资源:aws_prometheus_resource_policy

为 Amazon Managed Prometheus(AMP)新增的资源策略管理能力,实现在 internal/service/amp/resource_policy.go,配套测试见 internal/service/amp/resource_policy_test.go。它允许以 Terraform 方式声明工作区的资源策略,将权限策略纳入 IaC 版本管理。

4. ODB 数据源五连发:aws_odb_*

ODB(Oracle Database@AWS)服务在本版本集中补齐了 5 个列表型数据源,均位于 internal/service/odb 目录:

  • aws_odb_cloud_autonomous_vm_clusters(cloud_autonomous_vm_clusters_data_source.go)
  • aws_odb_cloud_exadata_infrastructures(cloud_exadata_infrastructures_data_source.go)
  • aws_odb_cloud_vm_clusters(cloud_vm_clusters_data_source.go)
  • aws_odb_network_peering_connections(network_peering_connections_data_source.go)
  • aws_odb_networks(networks_data_source.go)

aws_odb_cloud_autonomous_vm_clusters为例,数据源只实现Read方法,内部调用ListCloudAutonomousVmClusters并通过 SDK 分页器(NewListCloudAutonomousVmClustersPaginator)聚合所有页数据,返回cloud_autonomous_vm_clusters列表属性。单个摘要对象包含arnidcloud_exadata_infrastructure_idodb_network_idoci_resource_anchor_nameoci_urlociddisplay_name等字段,可与已存在的单例数据源(如 cloud_autonomous_vm_cluster_data_source.go)配合使用,先查列表再定位具体资源。

三、ENHANCEMENTS:五项资源能力增强

1.aws_codebuild_project:新增auto_retry_limit

为 CodeBuild 项目增加自动重试上限参数(#40035),允许用户在构建失败场景下配置自动重试次数,减少手工重新触发构建的运维负担。

2.aws_emrserverless_application:新增scheduler_configuration

为 EMR Serverless 应用引入调度配置块(#44589),使应用可以按预定计划执行任务,扩展了 Serverless 作业的自动化能力。

3.aws_lambda_event_source_mapping:新增schema_registry_config

amazon_managed_kafka_event_source_configself_managed_kafka_event_source_config两个块内新增schema_registry_config配置块(#44540),让 MSK / 自管理 Kafka 事件源可以绑定 Schema Registry,支撑 Avro 等带 Schema 的消息格式处理。

4.aws_ssmcontacts_contact:资源身份支持

为 SSM Contacts 联系人资源补齐resource identity能力(#44548 与 docs/add-resource-identity-support.md,核心思路是以规范化 Identity 替代传统 ID 字符串,为import、状态校验与一致性检查提供统一入口。

5.aws_vpclattice_resource_gateway:新增ipv4_addresses_per_eni

为 VPC Lattice 资源网关增加ipv4_addresses_per_eni参数(#44560),用于控制每个弹性网络接口(ENI)上分配的 IPv4 地址数量,细化网关的 IP 资源配置。

四、BUG FIXES:Provider 核心与多服务修复

1. Provider 核心修复

本版本最重要的修复集中在 Provider 层:

  • AWS 欧洲主权云区域 ARN 校验(#44573 与 docs/arn.md(如存在)中的区域扩展说明。
  • 修复 Plugin Framework 资源的Missing Resource Identity After Update(#44518 的身份处理机制直接相关。
  • 修复Unexpected Identity Change(#44518):当 state 中全空(fully-null)的 identity 值被更新为合法值时,不再误报"意外身份变更"。这两个修复对大量基于 Plugin Framework 的存量资源都有正面影响,升级后若曾受此类报错困扰,可重点回归验证相关资源的 update 流程。

2. DataZone 环境与项目修复

针对aws_datazone_environmentaws_datazone_project的修复多达 8 条(#44491):

  • aws_datazone_environment:正确更新glossary_terms;可选参数account_identifieraccount_region未指定时不再报unknown value;更新时不再报错;删除时不再偶发unexpected state;创建时正确传递blueprint_identifier;导入时正确设置user_parameters的值;user_parameters中的值不再允许被更新(只读语义修正)。
  • aws_datazone_project:删除时不再忽略错误;资源已在删除中时不再重复报错。

这批修复说明 6.16.0 对 DataZone 资源的创建、导入、更新、删除全生命周期做了系统性打磨,使用 DataZone 的团队升级后应重点验证现有 environment/project 的terraform planapply行为是否与预期一致。

3. 其他资源修复

  • aws_dynamodb_table(#44576):不再对LimitExceededException进行重试,避免在限流错误上做无效的指数退避等待;
  • aws_ivschat_room(#44572):将maximum_message_rate_per_second的校验上限修正为100,与此前实际 API 约束对齐;
  • aws_launch_template(#44505):kms_key_id校验放宽为同时接受 Key ID、别名、别名 ARN 以及 Key ARN 四种形式,与 KMS 参数的常见传值习惯保持一致;
  • aws_servicecatalog_portfolio_share(#24730 等基础设施支撑。

五、升级建议与影响评估

综合以上变更,升级到 6.16.0 时可参考以下要点:

  1. 新功能开箱即用:Transcribe Action、Transfer 三件套与 ODB 数据源均为新增能力,不改变既有资源配置,可安全引入;Transfer 的host_key_body_wo展示了本仓库对 WriteOnly 敏感属性的推荐用法,新增资源建议直接采用该模式。
  2. 框架层修复收益面广Missing Resource Identity After UpdateUnexpected Identity Change两个 Provider 级修复影响所有 Plugin Framework 资源,若此前升级过程中遇到过上述报错,6.16.0 是值得优先验证的版本。
  3. 行为变更需回归:DataZone 的user_parameters只读语义修正、DynamoDB 表对LimitExceededException停止重试、Launch Template 的kms_key_id校验放宽,均可能改变既有配置的 plan 结果或运行行为,建议在升级环境中先行回归。
  4. 并发与限流优化:Service Catalog Portfolio Share 的全局锁与 DynamoDB 的重试策略调整,面向的都是真实场景中的限流/并发问题,对大规模账户运营场景尤为相关。

如需继续深入,可阅读仓库内的 docs/changelog-process.md 了解变更记录维护规范、docs/breaking-changes.md 评估破坏性变更边界,或直接查阅上文列出的各资源源码与测试文件,掌握每个新增参数的精确约束与实现细节。

【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询