Terraform AWS Provider 6.13.0 版本深度解读:新增能力、资源身份支持与关键修复全解析 📅 发布时间:2026/9/15 15:48:10 👁 浏览次数: Terraform AWS Provider 6.13.0 版本深度解读新增能力、资源身份支持与关键修复全解析【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws本文以 .changes/6.x/6.13.0.md 变更记录为主体结合仓库内源码实现系统梳理 AWS Provider 6.13.02025 年 9 月 11 日发布带来的 29 项增强与 9 项缺陷修复并针对 DynamoDB 温吞吐、App Auto Scaling 预测性扩缩容、VPC 资源身份支持等核心能力给出可直接落地的配置示例与底层实现剖析。版本概览6.13.0 是一个以「增强」为主的版本未引入新资源或新数据源焦点集中在对既有resource与data-source的能力补齐上。其变化可以归纳为四条主线存储与数据类服务DynamoDB 表与全局二级索引GSI新增warm_throughput温吞吐配置预算新增billing_view_arnGlue 表优化器支持更细粒度的运行频率控制。弹性伸缩与计算Application Auto Scaling 策略新增predictive_scaling_policy_configuration预测性扩缩容CloudFront 分发源站新增响应完成超时EC2 安全组规则、VPC Endpoint 等资源开始支持 Terraform 1.12 引入的Resource Identity。网络能力Network Firewall 规则组支持 IPv6 地址段Network Manager VPC Attachment 新增 DNS 与安全组引用支持选项。可靠性修复修复多个升级路径上的状态解码错误、空指针 panic 以及若干 AWS 侧幂等性兼容问题。版本发布信息与全部条目见变更文件 .changes/6.x/6.13.0.md该文件的格式规范与分类约定ENHANCEMENTS/BUG FIXES等由仓库的 docs/changelog-process.md 定义本文按此分类逐一展开。一、DynamoDBwarm_throughput温吞吐能力1.1 新增的配置能力6.13.0 为aws_dynamodb_table资源与aws_dynamodb_table数据源同时引入了warm_throughput并且global_secondary_index块内也支持warm_throughput。该功能面向 DynamoDB 的按需计费On-Demand场景通过为表与 GSI 配置温吞吐容量缓解冷启动带来的访问延迟为读/写请求提供更稳定的性能表现此语义来自 AWS 侧能力变更记录仅描述参数面。一个同时配置表级与 GSI 级温吞吐的完整示例resource aws_dynamodb_table example { name ExampleTable billing_mode PAY_PER_REQUEST hash_key id attribute { name id type S } warm_throughput { read_units_per_second 1000 write_units_per_second 1000 } global_secondary_index { name ExampleGSI hash_key gsi_key projection_type ALL warm_throughput { read_units_per_second 500 write_units_per_second 500 } } }数据源侧同样新增了warm_throughput与global_secondary_index.warm_throughput只读属性便于引用既有表来获取其温吞吐配置。1.2 源码级实现细节在 internal/service/dynamodb/table.go 中可以完整还原该特性的实现链路Schema 定义warm_throughput通过warmThroughputSchema()table.go复用同时挂在表的顶层table.go与global_secondary_index内table.go字段为read_units_per_second与write_units_per_secondtable.go。写路径UpdateTable请求通过expandWarmThroughputtable.go构造awstypes.WarmThroughput更新完成后调用waitTableWarmThroughputActive/waitGSIWarmThroughputActive等待 AWS 侧收敛table.go。递减保护通过CustomizeDiff强制约束——warm_throughput的读/写单位只能增加不能减少否则直接报错table.go。这是 AWS 侧限制在 Provider 层的提前校验。默认值抑制suppressTableWarmThroughputDefaultstable.go会在用户未显式配置时抑制 AWS 自动回填的温吞吐值避免产生无意义的 Plan 差异。对应的测试覆盖见 internal/service/dynamodb/table_test.go 与 internal/service/dynamodb/global_secondary_index_test.go。二、Application Auto Scaling预测性扩缩容与规划校验2.1 新增predictive_scaling_policy_configurationaws_appautoscaling_policy新增predictive_scaling_policy_configuration参数块使资源策略支持基于历史负载数据的预测性伸缩AWS 侧通过机器学习预测未来流量并提前调整容量。变更记录同时为policy_type以及步进策略中的adjustment_type、metric_aggregation_type增加了 Plan 阶段的合法性校验。一个基于预定义指标的最小配置示例resource aws_appautoscaling_policy example { name PredictiveScalingPolicy service_namespace ecs resource_id service/my-cluster/my-service scalable_dimension ecs:service:DesiredCount policy_type PredictiveScaling predictive_scaling_policy_configuration { max_capacity_breach_behavior IncreaseMaxCapacity mode ForecastAndScale metric_specification { predefined_scaling_metric_specification { predefined_metric_type ECSServiceAverageCPUUtilization } } } }2.2 源码实现要点在 internal/service/appautoscaling/policy.go 中Schemapredictive_scaling_policy_configuration下包含max_capacity_breach_behavior校验枚举PredictiveScalingMaxCapacityBreachBehavior、mode校验枚举PredictiveScalingMode与metric_specificationpolicy.go。展开/扁平化请求构造走expandPredictiveScalingPolicyConfigurationpolicy.go递归展开customized_*/predefined_*三组指标规格负载、容量、伸缩指标与指标对读路径通过flattenPredictiveScalingPolicyConfigurationpolicy.go回写状态。Bug 修复同源本次同时修复了step_scaling_policy_configuration为空时触发interface conversion: interface {} is nil, not map[string]interface {}panic 的问题实现在空块判空保护上。三、网络与安全组Resource Identity 支持批量落地3.1 什么是 Resource IdentityTerraform 1.12 引入了 Resource Identity 概念以结构化数据而非单一字符串 ID 唯一标识远端资源。AWS Provider 为此定义了 ARN Identity、Singleton Identity 与 Parameterized Identity 三种形式完整规范见 docs/resource-identity.md对既有资源启用该能力的操作指南见 docs/add-resource-identity-support.md。6.13.0 为aws_vpc_endpoint、aws_vpc_security_group_egress_rule、aws_vpc_security_group_ingress_rule三个资源添加了 Resource Identity 支持。3.2 注解驱动的实现方式资源身份支持几乎完全由代码注解与生成代码驱动对现有实现侵入极小。以aws_vpc_endpoint为例internal/service/ec2/vpc_endpoint.go 中的注解// SDKResource(aws_vpc_endpoint, nameVPC Endpoint) // Tags(identifierAttributeid) // Testing(tagsTestfalse) // IdentityAttribute(id) // Testing(existsTypegithub.com/aws/aws-sdk-go-v2/service/ec2/types;types.VpcEndpoint) // Testing(preIdentityVersionv6.12.0) func resourceVPCEndpoint() *schema.Resource {关键点解读IdentityAttribute(id)声明该资源采用以id属性为核心的 Parameterized IdentityTesting(preIdentityVersionv6.12.0)标注「上一个不支持 Resource Identity 的版本」供测试生成器构造跨版本升级/导入场景依据 docs/add-resource-identity-support.mdTesting(existsType...)指定测试中Exists函数返回的 AWS API 类型。安全组入站/出站规则资源同样通过IdentityAttribute注解启用见 internal/service/ec2 目录下vpc_security_group_ingress_rule.go与vpc_security_group_egress_rule.go。四、其他值得关注的能力增强4.1 网络与负载均衡Network Firewall 规则组 IPv6aws_networkfirewall_rule_group中无状态规则match_attributes的source/destination地址定义address_definition开始支持 IPv6 CIDR 段变更条目。Network Manager VPC Attachmentaws_networkmanager_vpc_attachment新增options.dns_support与options.security_group_referencing_support参数同时options由 Optional 调整为Optional Computed便于读取 AWS 回填的默认值。CloudFront 源站响应超时aws_cloudfront_distribution的origin块新增response_completion_timeout可显式控制等待源站完成响应的时长。4.2 托管区域 ID 与新区数据源aws_elastic_beanstalk_hosted_zone新增ap-southeast-5、ap-southeast-7、eu-south-2、me-central-1的托管区域 ID数据源aws_elb_hosted_zone_id、aws_lb_hosted_zone_id、aws_s3_bucket新增ap-southeast-6的托管区域 ID。4.3 其他服务ECS 账户设置aws_ecs_account_setting_default的name支持dualStackIPv6可管理 ECS 的 IPv6 双栈账户级默认设置。CodeBuild Webhookaws_codebuild_webhook新增pull_request_build_policy配置块用于控制拉取请求的构建策略。OpenSearch 包aws_opensearch_package新增engine_version参数并加入等待器waiter确保包校验流程完成后再返回。Synthetics Canaryaws_synthetics_canary的schedule块新增retry_config支持失败重试策略。Glue 表优化器aws_glue_catalog_table_optimizer的iceberg_configuration内retention_configuration与orphan_file_deletion_configuration块新增run_rate_in_hours可独立控制两类优化任务的运行频率。预算aws_budgets_budget资源与数据源同时新增billing_view_arn允许将预算绑定到 AWS 账单视图Billing View维度。Bedrock Guardrailaws_bedrock_guardrail的word_policy_config下managed_word_lists_config与words_config新增input_action、output_action、input_enabled、output_enabled四个参数支持对输入/输出方向分别启用词策略。五、关键 Bug 修复详解5.1 升级路径兼容性最重要Flow Log修复从 v6.0.0 之前版本升级时出现的Error decoding ... from prior state: unsupported attribute log_group_name错误——旧状态中的废弃字段导致解码失败。Launch Template修复升级时unsupported attribute elastic_gpu_specifications的解码错误变更条目。这两个修复提醒用户升级 Provider 时若曾使用过上述废弃参数需关注状态迁移的兼容处理。5.2 空值/空块导致的 panicaws_appautoscaling_policystep_scaling_policy_configuration为空时不再 panic。aws_eks_cluster关闭 Auto Mode 或内置节点池时compute_config.node_role_arn支持显式置空null。5.3 幂等性与误报aws_s3_bucket_lifecycle_configuration删除不存在的生命周期配置时忽略 AWS 返回的MethodNotAllowed错误避免删除操作因竞态而失败。aws_secretsmanager_secret当远端策略非法时改为返回warning诊断而非硬失败让计划/应用流程可以继续。aws_cognito_managed_login_branding修复用户池包含多个客户端应用时couldnt find resource的读取错误。5.4 参数与能力回退aws_rds_cluster_role_associationfeature_name改为可选适配不再要求该参数的 API 场景。aws_servicecatalog_provisioned_product恢复 v6.12.0 中意外移除的timeouts.read参数确保读超时可控。六、升级建议与验证方法关注升级前状态兼容如果此前使用了aws_flow_log的log_group_name或aws_launch_template的elastic_gpu_specifications升级 6.13.0 前先确认旧状态可被正确迁移本次已修复相关解码错误。善用新校验aws_appautoscaling_policy的 Plan 期校验能在terraform plan阶段提前暴露非法枚举值建议在 CI 中加入terraform validate/terraform plan环节。利用 Resource Identity升级至 Terraform 1.12 后aws_vpc_endpoint与安全组规则资源可享受结构化身份带来的更可靠导入与更细粒度的变更跟踪相关注解与测试规范可参考 docs/resource-identity.md。温吞吐的不可递减约束配置aws_dynamodb_table的warm_throughput时注意只能上调不能下调见 internal/service/dynamodb/table.go调整前先规划好目标容量。总结Terraform AWS Provider 6.13.0 在既有资源面上完成了一次高质量的能力补齐DynamoDB 温吞吐与 App Auto Scaling 预测性扩缩容直击成本与冷启动痛点Resource Identity 的批量落地为 VPC 网络资源带来更好的导入与变更体验而一组针对升级解码与空值 panic 的修复则显著降低了版本跃迁风险。结合 .changes/6.x/6.13.0.md 的条目与仓库源码如 internal/service/dynamodb/table.go、internal/service/appautoscaling/policy.go、internal/service/ec2/vpc_endpoint.go运维与开发人员可以精确评估该版本对自己配置的影响并平滑完成升级。【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考