terraform-provider-aws 6.25.0 版本解读:CloudWatch Log Transformer 与 EKS Capability 新资源及关键能力增强
terraform-provider-aws 6.25.0 版本解读CloudWatch Log Transformer 与 EKS Capability 新资源及关键能力增强【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws导读本文基于 terraform-provider-aws 官方变更日志 .changes/6.x/6.25.0.md发布于 2025 年 12 月 4 日深度解读 6.25.0 版本的技术增量新增aws_cloudwatch_log_transformerCloudWatch Logs 日志处理器与aws_eks_capabilityEKS 集群能力两个资源同时为 8 个数据源与 18 个资源引入新属性覆盖日志处理、KMS 明文写入保护、ALB Target Optimizer、VPC Lattice 连接、恶意软件扫描等多个领域。读完本文你将掌握该版本全部新增/增强项的适用场景、配置写法与底层实现线索可直接对照仓库源码验证与落地。一、版本概览6.25.0 改了什么6.25.0 是 AWS Provider 6.x 系列的一个功能增量版本变更日志结构为标准三段式分类数量内容新资源New Resource2aws_cloudwatch_log_transformer、aws_eks_capability数据源增强data-source8覆盖 Backup、CloudWatch Logs、EC2 Transit Gateway、Lambda、ELB、Route 53、Transfer、WorkSpaces资源增强resource18覆盖 API Gateway、Athena、Backup、Bedrock Agent Core、CloudWatch Logs、EC2 Transit Gateway、Flow Logs、KMS、Lambda、ELB、Roles Anywhere、Route 53、SSM、Transfer、WorkSpaces该版本没有包含 Bug Fix 与 Breaking Changes 条目整体属于纯增量发布。所有变更条目均以 GitHub issue/PR 编号如 #44300、#45326追溯仓库根目录的 CHANGELOG.md 会随版本发布同步合并这些片段。若你想查看其他版本的同期变更可浏览 .changes/6.x 目录下的全部版本文件。二、新资源aws_cloudwatch_log_transformer — CloudWatch Logs 日志转换器2.1 功能定位CloudWatch Logs Transformer 是 CloudWatch Logs 的日志处理能力在日志进入 Log Group 后通过一系列**处理器processor**实时转换日志添加字段、重命名字段、复制字段、删除字段、解析、掩码、类型转换等便于后续查询与告警。aws_cloudwatch_log_transformer让 Terraform 用户能够以声明式配置管理这一处理链路。从源码看该资源定义在 internal/service/logs/transformer.go基于 Terraform Plugin Framework 实现通过FrameworkResource(aws_cloudwatch_log_transformer, nameTransformer)注解注册transformer.go资源以log_group_arn作为标识ArnIdentity并支持按该 ARN 导入WithImportByIdentity。2.2 核心 Schema 与约束log_group_arn必填、RequiresReplace()。指定要绑定 Transformer 的目标 Log Group ARN。注意该资源是一个 Log Group 一个 Transformer的模型变更 ARN 会触发重建。transformer_config必填的处理器列表块校验规则为SizeBetween(1, 20)即至少配置 1 个、最多 20 个处理器。处理链路顺序即列表顺序。处理器子块包括add_keys添加键、parse、move_keys、rename_keys、copy_keys、delete_keys、grok、mask、type_conversion、trim_string、split_string、lowercase_string、uppercase_string、substitute_string、datetime_converter等 AWS CloudWatch Logs Transformer API 所支持的类型。以add_keys为例源码中可见其约束细节transformer.goentry必填数量 15每条entry的key长度 1128value长度 1256overwrite_if_exists可选控制键已存在时是否覆盖。2.3 配置示例resource aws_cloudwatch_log_group example { name app/backend } resource aws_cloudwatch_log_transformer example { log_group_arn aws_cloudwatch_log_group.example.arn transformer_config { add_keys { entry { key env value production overwrite_if_exists false } } parse { source message type JSON } mask { mask **** } } }提示处理器子块的可用类型与字段以 CloudWatch Logs Transformer APIPutTransformer/GetTransformer为准仓库中的 schema 定义transformer.go是最直接的参照物。2.4 源码与测试佐证资源生命周期创建时调用 CloudWatch LogsPutTransformer读取时通过GetTransformer验证状态源码中的existsType注解即指向cloudwatchlogs.GetTransformerOutput。验收测试transformer_test.go 覆盖基本创建、更新与导入测试配置模板见 testdata/Transformer/basic/main_gen.tf由于该资源无既有资源可依赖Testing(hasNoPreExistingResourcetrue)测试会自行创建配套的 Log Group。三、新资源aws_eks_capability — EKS 集群能力管理3.1 功能定位aws_eks_capability用于在 EKS 集群上启用/管理特定能力Capability。当前版本支持的能力围绕 Argo CD 集成展开详见下文configuration块例如为集群启用 Argo CD 管控平面并配置 IAM Identity CenterIDC身份、网络访问与 RBAC 角色映射。实现文件为 internal/service/eks/capability.go同样基于 Plugin Framework注册注解FrameworkResource(aws_eks_capability, nameCapability)capability.go以cluster_namecapability_name双属性作为资源身份IdentityAttribute双注解导入时需组合二者支持标签Tags(identifierAttributearn)自带 create/update/delete 超时默认均为20 分钟capability.go。3.2 属性一览属性必填/计算说明cluster_name必填RequiresReplace目标 EKS 集群名称capability_name必填RequiresReplace能力名称如argo_cdtype必填RequiresReplace能力类型枚举awstypes.CapabilityType如eks_v1role_arn必填承载能力运行的角色 ARNdelete_propagation_policy必填删除时的传播策略枚举awstypes.CapabilityDeletePropagationPolicyversion计算能力版本由 AWS 返回用UseStateForUnknown保持稳定arn计算能力 ARN标签标识configuration可选能力配置块最多 1 个见下3.3 configuration 块Argo CD 集成configuration为ListNestedBlock当前仅支持argo_cd子块capability.goargo_cd.namespace可选Argo CD 部署命名空间argo_cd.server_url计算属性由 AWS 返回的 Argo CD 服务地址argo_cd.aws_idc必填块配置 IAM Identity Center 集成idc_instance_arn必填RequiresReplaceIDC 实例 ARNidc_managed_application_arn计算AWS 自动创建的受管应用 ARNidc_region可选IDC 所在区域带 AWS Region 校验器argo_cd.network_access.vpce_ids可选用于网络访问控制的 VPC Endpoint ID 集合argo_cd.rbac_role_mapping可选RBAC 角色映射集合每个映射包含role枚举ArgoCdRole与identity必填集合含id与typetype为SsoIdentityType枚举。3.4 配置示例resource aws_eks_cluster example { name example role_arn aws_iam_role.example.arn # ... 省略网络与节点配置 } resource aws_eks_capability example { cluster_name aws_eks_cluster.example.name capability_name argo_cd type eks_v1 role_arn aws_iam_role.capability.arn delete_propagation_policy DELETE configuration { argo_cd { aws_idc { idc_instance_arn aws_ssoadmin_permission_set.example.instance_arn } } } }3.5 源码与测试佐证创建流程调用 EKSCreateCapabilityAPI并携带幂等令牌ClientRequestToken create.UniqueId(ctx)与资源标签capability.go随后通过waitCapabilityCreated等待能力就绪超时即上文所述的 20 分钟删除传播delete_propagation_policy决定能力被删除时其下层资源如 Argo CD 应用的清理策略创建后仍可更新验收测试capability_test.go 及生成式测试数据 testdata/Capability/basic/main_gen.tf 覆盖基础场景与区域覆盖场景导入时按cluster_name,capability_name组合解析。四、数据源增强8 项以下属性均来自 6.25.0 变更日志用于让数据源输出与对应资源能力对齐数据源新增属性说明aws_backup_planrule.scan_action、scan_setting暴露备份计划的恶意软件扫描配置与下文的资源增强配套aws_cloudwatch_log_groupdeletion_protection_enabled日志组删除保护开关状态aws_ec2_transit_gatewayencryption_support中转网关的加密支持状态aws_lambda_functiondurable_configLambda 持久化配置如 S3 桶与日志配置aws_lbhealth_check_logs负载均衡器的健康检查日志配置aws_lb_target_grouptarget_control_port目标组控制端口配合 ALB Target Optimizeraws_route53_zoneenable_accelerated_recovery是否启用加速恢复aws_transfer_connectoregress_config暴露 VPC Lattice 出站连接配置aws_workspaces_directorytenancy目录的租期模式Dedicated/Shared例如读取已有 Lambda 函数的持久化配置data aws_lambda_function existing { function_name my-func } output durable_s3_bucket { value data.aws_lambda_function.existing.durable_config[0].s3_bucket }这些数据源属性多与资源侧新参数一一对应详见下一节保证资源写什么、数据源就能读什么。五、资源增强18 项重点解读5.1 KMS 密文写入保护plaintext_woWrite-Only 特性aws_kms_ciphertext新增plaintext_wo与plaintext_wo_version参数支持write-only只写输入明文仅在 apply 期间传入不会进入 Terraform 状态文件从而避免敏感数据落盘。源码实现在 internal/service/kms/ciphertext.goplaintext与plaintext_wo通过ExactlyOneOf互斥二选一plaintext_wo标记WriteOnly: trueplaintext_wo与plaintext_wo_version相互RequiredWith绑定——使用 write-only 明文时必须同时提供一个版本号用于在下次 apply 时判断明文是否发生变化。resource aws_kms_ciphertext example { key_id aws_kms_key.example.key_id plaintext_wo var.secret_payload # 敏感变量仅运行期使用 plaintext_wo_version sha256(var.secret_payload) }对应实现细节可进一步阅读 internal/flex/write_only.go 与 internal/framework/flex 下的 write-only 展开逻辑。5.2 ALB Target Optimizeraws_lb_target_group 的 target_control_portaws_lb_target_group新增target_control_port用于支持ALB Target Optimizer。控制端口用于负载均衡器与控制平面通信与业务流量端口相互独立典型场景下可通过该端口实现更细粒度的目标健康与路由控制。该参数同时被aws_lb_target_group数据源以同名字段暴露。5.3 Transfer Connector 的 VPC Lattice 支持aws_transfer_connector两项相关变更新增egress_config参数支持为 SFTP Connector 配置VPC Lattice 出站连接访问 VPC Lattice 服务网络url参数由必填改为可选——当使用 VPC Lattice 连接时不再需要显式填写 URL。这使得 Transfer Family Connector 可以完全走 VPC Lattice 内部网络而非公网访问端点。配套的数据源aws_transfer_connector同步新增egress_config属性。5.4 Backup 恶意软件扫描rule.scan_action 与 scan_settingaws_backup_plan新增对恶意软件扫描的支持rule.scan_action为备份规则指定扫描动作scan_setting扫描设置块如是否扫描已恢复的恢复点。数据源aws_backup_plan同步输出rule.scan_action与scan_setting。典型形态resource aws_backup_plan example { name example rule { rule_name daily target_vault_name aws_backup_vault.example.name schedule cron(0 12 * * ? *) scan_action { scan_action_type backup } } scan_setting { scan_vault true } }5.5 其余资源增强速览资源新增内容说明aws_api_gateway_integrationintegration_target、response_transfer_mode集成目标与响应传输模式如BINARYaws_athena_workgroupconfiguration.managed_query_results_configuration受管查询结果配置如 S3 桶前缀、加密aws_bedrockagentcore_gatewayinterceptor_configuration网关拦截器配置aws_cloudwatch_log_groupdeletion_protection_enabled防止日志组被误删的删除保护开关aws_ec2_transit_gatewayencryption_support指定中转网关的加密支持如enableaws_flow_logregional_nat_gateway_id支持为区域级 NAT 网关创建流日志aws_lambda_functiondurable_configLambda 持久化配置S3 桶、日志配置aws_lbhealth_check_logs负载均衡器健康检查日志配置aws_rolesanywhere_profileaccept_role_session_name是否接受来自角色的会话名称aws_rolesanywhere_profile计划期校验对managed_policy_arns、role_arns增加 plan-time 校验aws_route53_zoneenable_accelerated_recovery启用 Route 53 加速恢复aws_ssm_associationcalendar_names关联的维护窗口日历名称用于调度约束aws_workspaces_directorytenancy目录租期模式Dedicated/Shared值得注意的两点实现细节aws_rolesanywhere_profile的校验是plan-time计划期校验即terraform plan阶段就会报错而非等到 apply 时才由 AWS API 拒绝属于体验性改进aws_flow_log的regional_nat_gateway_id意味着流日志目标类型扩展到了REGIONAL_NAT_GATEWAY此前仅支持 NAT 网关实例级 ID。六、升级与验证建议升级路径6.25.0 为纯增量发布无破坏性变更与 Bug Fix从 6.24.0 或更早 6.x 版本升级风险较低。标准升级流程先terraform init -upgrade更新 provider 锁定版本再terraform plan观察 diff。若启用新参数请先在小环境验证。验证新资源CloudWatch Log Transformer创建后可在 AWS 控制台 Log Group 的 Transformations 页签查看处理器链路或用GetTransformerAPI 核对EKS Capability创建后terraform state list确认aws_eks_capability进入状态标签与 Argo CD 集成状态可通过terraform show检查。KMS write-only 使用前提plaintext_wo依赖 provider 的 write-only 支持Terraform 1.10 的 write-only 参数机制使用前确认你的 Terraform 版本满足要求plaintext_wo_version用于触发变更检测务必选择能反映明文内容变化的版本值如哈希。查阅源码所有新功能的 schema 与生命周期实现均可直接在仓库中追溯——日志转换器见 internal/service/logs/transformer.goEKS 能力见 internal/service/eks/capability.goKMS 只写参数见 internal/service/kms/ciphertext.go其余增强项可到 internal/service 下对应服务的资源文件与测试文件中进一步确认。【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →