Terraform AWS Provider 数据源 `aws_s3_bucket_object_lock_configuration` 使用指南
IaC云原生基础设施【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址https://gitcode.com/GitHub_Trending/te/terraform-provider-aws点击查看免费下载本篇技术指南以 关联文档 为核心系统讲解 Terraform AWS Provider 中数据源aws_s3_bucket_object_lock_configuration的完整用法从基本查询示例、全部参数与导出属性到其基于 terraform-plugin-framework 的源码实现原理并结合仓库内的实现与测试代码bucket_object_lock_configuration_data_source.go、bucket_object_lock_configuration.go深入说明其底层调用链。读完本文你将能熟练使用该数据源读取 S3 桶的 Object Lock 配置状态并理解其与aws_s3_bucket_object_lock_configuration资源、S3 版本控制、目录桶S3 Express之间的协作关系。数据源概述aws_s3_bucket_object_lock_configuration是一个只读数据源用于获取 AWS S3Simple Storage桶的Object Lock对象锁定配置详细信息。它适用于以下典型场景在配置管理、合规审计或自动化脚本中读取某个桶是否开启了 Object Lock读取桶上配置的默认保留规则default_retention包括保留模式和保留期限在多个 Terraform 配置或模块之间共享桶的 Object Lock 状态作为其他资源的输入。该数据源由 S3 服务包注册通过FrameworkDataSource注解声明数据源名称为aws_s3_bucket_object_lock_configuration实现位于 bucket_object_lock_configuration_data_source.go。示例用法基本用法在 Terraform 配置中声明该数据源仅需指定桶名即可读取其 Object Lock 配置data aws_s3_bucket_object_lock_configuration example { bucket example-bucket }查询结果可随后通过属性引用使用例如读取object_lock_enabled、rule块中的默认保留配置等。参数参考Argument Reference必填参数参数类型说明bucket字符串桶的名称。可选参数参数类型说明expected_bucket_owner字符串预期桶所有者的账户 ID。当桶属于其他 AWS 账户时使用用于校验桶的实际所有者。region字符串该数据源所管理资源的区域。默认使用 Provider 配置中设置的区域。从源码实现看Schema 定义bucket被标记为Requiredexpected_bucket_owner为Optionalobject_lock_enabled与rule为只读计算属性Computed。属性参考Attribute Reference该数据源除参数外还导出以下属性属性类型说明object_lock_enabled字符串该桶是否已启用 Object Lock 配置值为Enabled。rule块指定对象的 Object Lock 规则详见下方 Rule 小节。Rulerule块支持以下属性属性说明default_retention针对放置到桶中的新对象的默认 Object Lock 保留设置详见下方 Default Retention。Default Retentiondefault_retention块支持以下属性属性类型说明days整数默认保留期限天数。mode字符串默认 Object Lock 保留模式合法值为GOVERNANCE和COMPLIANCE。years整数默认保留期限年数。源码实现原理基于 terraform-plugin-framework 的数据源该数据源采用 HashiCorp 的 terraform-plugin-framework 实现数据源结构体bucketObjectLockConfigurationDataSource内嵌了framework.DataSourceWithModel其模型字段定义如下源码Bucket、ExpectedBucketOwner用户输入的参数ObjectLockEnabled只读计算结果RuleListNestedObjectValueOf[dataBucketObjectLockConfigRuleModel]嵌套列表其中DefaultRetention进一步嵌套Days、Mode、Years三个字段。Read 流程与底层 API 调用链数据源读取的核心逻辑位于Read方法源码从配置中解析bucket与expected_bucket_owner调用findObjectLockConfiguration定义于 bucket_object_lock_configuration.go该函数构造GetObjectLockConfigurationInput并调用 S3 APIGetObjectLockConfiguration将expected_bucket_owner若提供一并传入请求将 API 返回的ObjectLockConfiguration通过flex.Flatten扁平化为数据源模型并写入状态当桶不存在errCodeNoSuchBucket或 Object Lock 配置不存在errCodeObjectLockConfigurationNotFoundError时会包装为retry.NotFoundError抛出这也是测试中期望 couldnt find resource 报错的来源。目录桶S3 Express的特殊处理Read方法中有一个值得注意的细节源码当桶名满足目录桶命名规则时会切换到 S3 Express 专用客户端S3ExpressClient发起请求。目录桶的判断逻辑定义于 directory_bucket.go其命名后缀匹配--x-s3模式。也就是说该数据源同时兼容普通 S3 桶与目录桶的查询场景。与aws_s3_bucket_object_lock_configuration资源配合使用数据源通常与同名资源配合先用 资源文档 中的aws_s3_bucket_object_lock_configuration创建/管理 Object Lock 配置再用本数据源读取验证。仓库中的验收测试给出了一个完整协作示例bucket_object_lock_configuration_data_source_test.goresource aws_s3_bucket test { bucket example object_lock_enabled true } resource aws_s3_bucket_object_lock_configuration test { bucket aws_s3_bucket.test.id rule { default_retention { mode COMPLIANCE days 3 } } } data aws_s3_bucket_object_lock_configuration test { bucket aws_s3_bucket_object_lock_configuration.test.bucket }几点实践提醒结合资源侧文档Object Lock 依赖桶版本控制对已有桶启用 Object Lock 前需先通过aws_s3_bucket_versioning资源启用版本控制必要时使用资源侧的token参数完成授权数据源读取的是桶上当前生效的 Object Lock 配置若桶仅开启object_lock_enabled而未配置任何rule则返回的rule列表为空rule.# 0object_lock_enabled仍为Enabled若桶既未开启 Object Lock 也未配置规则则读取会报错测试中表现为couldnt find resource。测试验证仓库为数据源提供了三个验收测试用例bucket_object_lock_configuration_data_source_test.goTestAccS3BucketObjectLockConfigurationDataSource_basic验证基本读取断言object_lock_enabled Enabled、rule.# 1、default_retention.days 3、mode COMPLIANCETestAccS3BucketObjectLockConfigurationDataSource_noRule验证桶启用了 Object Lock 但未配置规则时返回rule.# 0TestAccS3BucketObjectLockConfigurationDataSource_notConfigured验证桶未配置 Object Lock 时读取报错couldnt find resource。这些用例既印证了数据源的行为边界也可作为你编写本地测试或排查问题的参考。小结aws_s3_bucket_object_lock_configuration数据源是一个轻量、只读的查询入口用于获取 S3 桶的 Object Lock 配置详情。其参数与属性结构清晰底层通过 S3GetObjectLockConfigurationAPI 实现兼容普通桶与目录桶并能与同名资源、版本控制配置无缝协作适合在合规审计、配置校验和基础设施即代码IaC流程中直接引用。赞分享IaC云原生基础设施【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址https://gitcode.com/GitHub_Trending/te/terraform-provider-aws点击查看免费下载相关推荐Terraform AWS Provider 数据源 aws_iam_outbound_web_identity_federation 完整使用指南Terraform AWS Provider 数据源 aws_iam_outbound_web_identity_federation 完整使用指南 aws_iIaC云原生基础设施Terraform AWS Provider 资源标签数据源 aws_resourcegroupstaggingapi_resources 使用指南Terraform AWS Provider 资源标签数据源 aws_resourcegroupstaggingapi_resources 使用指南 aws_rIaC云原生基础设施Terraform AWS Provider 使用指南aws_outposts_site 数据源查询 AWS Outposts 站点Terraform AWS Provider 使用指南aws_outposts_site 数据源查询 AWS Outposts 站点 aws_outpostsIaC云原生基础设施创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

低成本验证创业想法:用最小可行产品快速判断市场需求

低成本验证创业想法:用最小可行产品快速判断市场需求

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 6:30:47 阅读更多 →
OpenDesign Design System 2.0 源证据契约解析:以 GitHub 品牌包为例的 Token 可追溯审计实践

OpenDesign Design System 2.0 源证据契约解析:以 GitHub 品牌包为例的 Token 可追溯审计实践

AI 应用人工智能AI 技能设计系统媒体生成 【免费下载链接】open-design 🎨 Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. 🖥️ Local-first desktop app. 🖼️ Your coding agent becomes the design e…

2026/9/21 5:41:55 阅读更多 →
Paper Tabs 组件完全指南:基于 Polymer 的 Material Design 选项卡实战解析

Paper Tabs 组件完全指南:基于 Polymer 的 Material Design 选项卡实战解析

示例工程前端 【免费下载链接】todomvc Helping you select a JavaScript framework - Todo apps for React.js, Angular, Vue and many more 项目地址: https://gitcode.com/gh_mirrors/to/todomvc 点击查看 免费下载 本文以仓库 bower_components/paper-tabs 目录…

2026/9/21 6:52:52 阅读更多 →

最新新闻

信捷XDH与EtherCAT多轴运动控制:C语言风格封装实战

信捷XDH与EtherCAT多轴运动控制:C语言风格封装实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 7:31:40 阅读更多 →
面向 AI Agent 的 node-redis 仓库开发指南:monorepo 结构、命令模式与测试体系

面向 AI Agent 的 node-redis 仓库开发指南:monorepo 结构、命令模式与测试体系

后端数据库客户端缓存 【免费下载链接】node-redis Redis Node.js client 项目地址: https://gitcode.com/gh_mirrors/no/node-redis 点击查看 免费下载 node-redis 是 Redis 官方的 Node.js 客户端,本仓库以 npm workspaces 组织成多包(mon…

2026/9/21 7:31:40 阅读更多 →
C#工业视觉开发:CogImage8Grey与Bitmap高效互转实战指南

C#工业视觉开发:CogImage8Grey与Bitmap高效互转实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 7:31:40 阅读更多 →
双极性模拟量输入电路设计:单运放实现±10V/±20mA转0~3.3V

双极性模拟量输入电路设计:单运放实现±10V/±20mA转0~3.3V

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 7:31:40 阅读更多 →
OSFP规格书Rev5.21核心解读:从八通道架构到热设计要点

OSFP规格书Rev5.21核心解读:从八通道架构到热设计要点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 7:30:40 阅读更多 →
2026产品管理系统选型测评:8维评分模型与避坑指南

2026产品管理系统选型测评:8维评分模型与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/21 7:30:40 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/19 23:01:36 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/19 17:50:38 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →