尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
使用 aws_connect_hours_of_operation 数据源:查询 Amazon Connect 工作时间配置
使用 aws_connect_hours_of_operation 数据源查询 Amazon Connect 工作时间配置【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-awsaws_connect_hours_of_operation是 Terraform AWS Provider 中用于读取查询Amazon Connect 营业时间Hours of Operation配置的数据源。它允许你在 Terraform 配置中通过工作时间的name或hours_of_operation_id精确获取指定实例中的工作时间详情如周几营业、开门/关门时间、时区、标签等并将这些信息作为其他资源配置的输入实现跨资源的数据引用。读完本文你将掌握该数据源的完整参数语义、两种查询方式、属性结构以及它与aws_connect_hours_of_operation资源配合使用的实战写法。本文基于 Terraform AWS Provider 源码仓库中的官方文档与实现展开涉及的核心文件包括数据源文档、数据源实现、资源实现 与 数据源测试。数据源概览何时使用它Amazon Connect 的 Hours of Operation营业时间用于定义联络中心的对外服务时段例如周一至周五 8:00–23:00 提供服务。它通常与队列Queue、路由配置Routing Profile等实体关联。当你的 Terraform 配置需要消费这些已存在的工作时间数据而不是创建或修改它时就应使用本数据源。它适用于如下典型场景同一实例中多个资源如队列、路由配置需要引用同一个营业时间 ID避免硬编码 UUID通过名称name这种更可读的方式定位营业时间而不必先查询出 UUID将现有基础设施中已存在的工作时间信息导入 Terraform 状态引用链实现配置与现状的对齐。该数据源属于 SDKv2 框架实现注册名为aws_connect_hours_of_operation注释标记为SDKDataSource(aws_connect_hours_of_operation, nameHours Of Operation)见 hours_of_operation_data_source.go。参数参考Argument Reference数据源支持以下参数参数是否必需说明region可选资源所属的 AWS 区域默认使用 Provider 配置中设置的区域该 Provider 的通用参数几乎所有资源/数据源均支持instance_id必需托管该营业时间的 Amazon Connect 实例 ID即实例标识符格式为 UUIDname条件必需按名称查询营业时间与hours_of_operation_id二选一hours_of_operation_id条件必需按营业时间 ID 查询与name二选一关键约束instance_id必须提供且name与hours_of_operation_id中必须且只能提供其一。在源码中这一约束通过 schema 的ExactlyOneOf机制强制实现见 hours_of_operation_data_source.gohours_of_operation_id: { Type: schema.TypeString, Optional: true, Computed: true, ExactlyOneOf: []string{hours_of_operation_id, names.AttrName}, }, name: { Type: schema.TypeString, Optional: true, Computed: true, ExactlyOneOf: []string{names.AttrName, hours_of_operation_id}, },若两个参数同时省略或同时提供Terraform 会在 plan 阶段直接报错从机制上杜绝了查询条件歧义。两种查询方式的完整示例官方文档给出了按name与按hours_of_operation_id两种查询用法均可直接复制使用。按名称查询data aws_connect_hours_of_operation test { instance_id aaaaaaaa-bbbb-cccc-dddd-111111111111 name Test }按 ID 查询data aws_connect_hours_of_operation test { instance_id aaaaaaaa-bbbb-cccc-dddd-111111111111 hours_of_operation_id cccccccc-bbbb-cccc-dddd-111111111111 }与资源联动的推荐写法更贴合真实项目的做法是先创建一个aws_connect_hours_of_operation资源再通过数据源按 ID 或名称引用它避免手写 UUID。仓库的数据源测试正是这一模式的官方印证resource aws_connect_instance test { identity_management_type CONNECT_MANAGED inbound_calls_enabled true instance_alias connect-instance-example outbound_calls_enabled true } resource aws_connect_hours_of_operation test { instance_id aws_connect_instance.test.id name Office Hours description Test Hours of Operation Description time_zone EST config { day MONDAY end_time { hours 23 minutes 8 } start_time { hours 8 minutes 0 } } config { day TUESDAY end_time { hours 21 minutes 0 } start_time { hours 9 minutes 0 } } tags { Name Test Hours of Operation } } # 按 ID 查询 data aws_connect_hours_of_operation test { instance_id aws_connect_instance.test.id hours_of_operation_id aws_connect_hours_of_operation.test.hours_of_operation_id }若改按名称查询只需将最后一段替换为data aws_connect_hours_of_operation test { instance_id aws_connect_instance.test.id name aws_connect_hours_of_operation.test.name }属性参考Attribute Reference除上述参数外数据源会导出以下属性属性类型说明arnstring营业时间的 ARNconfig集合营业时间配置信息适用星期、开始时间、结束时间结构见下文descriptionstring营业时间的描述hours_of_operation_idstring营业时间的标识符UUIDinstance_idstring托管实例的标识符namestring营业时间的名称tagsmap分配给营业时间的标签time_zonestring营业时间应用的时区config是集合类型TypeSet每个块包含属性说明day该营业时间适用的星期几end_time结束时间块表示联络中心关闭时刻start_time开始时间块表示联络中心开启时刻end_time与start_time均只包含两个字段属性说明hours小时关闭/开启时刻的小时minutes分钟关闭/开启时刻的分钟在 Terraform 状态中读取结果形如config.#、config.*.day、config.*.end_time.0.hours等引用路径。测试中即通过TestCheckTypeSetElemNestedAttrs校验了config.*内层结构见 hours_of_operation_test.go例如end_time.0.hours为23、start_time.0.hours为8、day为MONDAY。源码级解析数据源底层是如何工作的读取流程数据源的读取逻辑集中在dataSourceHoursOfOperationRead见 hours_of_operation_data_source.go流程如下从配置中取得instance_id构造DescribeHoursOfOperationInput若提供了hours_of_operation_id直接将其写入请求中的HoursOfOperationId调用DescribeHoursOfOperation获取详情若提供了name先调用ListHoursOfOperations分页拉取该实例下的营业时间摘要列表按名称过滤出唯一匹配项findHoursOfOperationSummaryByTwoPartKey再用其Id回填HoursOfOperationId最后调用DescribeHoursOfOperation将返回的 ARN、名称、描述、时区、config、标签等写入 Terraform state并以instanceID:hoursOfOperationID的格式设置数据源 IDhoursOfOperationCreateResourceID。按名称查询的分页与唯一性校验按名称查询时代码使用 AWS SDK 的ListHoursOfOperationsPaginator以每页 60 条MaxResults: 60分页遍历全部摘要并对名称进行精确匹配过滤见 hours_of_operation_data_source.goconst maxResults 60 input : connect.ListHoursOfOperationsInput{ InstanceId: aws.String(instanceID), MaxResults: aws.Int32(maxResults), }随后通过tfresource.AssertSingleValueResult校验过滤结果——必须恰好匹配到一个营业时间匹配到 0 个返回未找到错误匹配到多个同名营业时间返回歧义错误。这意味着在同一实例中营业时间的name必须唯一否则按名称查询将失败。这是从源码实现可确认的行为约束。错误处理与标签当实例或营业时间不存在时AWS 返回ResourceNotFoundException代码会将其转换为retry.NotFoundError最终以明确错误信息返回给用户标签通过setTagsOut写入 state源码中数据源声明了Tags注解因此tags属性可直接引用。与资源实现的一致性数据源与同名的aws_connect_hours_of_operation资源共享底层查找函数findHoursOfOperation见 hours_of_operation.go二者读取逻辑完全一致。资源侧额外约束了写入字段name长度 1–127、description长度 1–250、day通过enum.Validate[awstypes.HoursOfOperationDays]()校验仅允许SUNDAY–SATURDAY等 AWS 枚举值。也就是说数据源能读到的字段集合正是资源能够写入的字段集合读写两侧 schema 严格对齐这一点可以从资源文档 connect_hours_of_operation.html.markdown 与资源源码的对照中得到印证。常见用法与注意事项instance_id不可省略所有查询路径都必须以实例 ID 为上下文实例不存在时会直接报错name与hours_of_operation_id二选一两者同时缺失或同时出现都会导致 plan 失败同名冲突按名称查询要求实例内名称唯一否则报匹配到多个结果的错误建议优先按 ID 查询以避免歧义时区语义time_zone返回的是 IANA 风格的时区名如ESTconfig中的hours/minutes表示的是该时区下联络中心的开门与关门时刻region参数与 Provider 其他资源一致可通过region覆盖 Provider 级区域配置默认跟随 Provider 配置与资源配合引用优先使用aws_connect_hours_of_operation.test.hours_of_operation_id或.name作为数据源入参避免手写 UUID 造成配置漂移。总结aws_connect_hours_of_operation数据源为 Terraform 管理 Amazon Connect 营业时间提供了安全、可校验的只读访问通道它既支持通过可读的name定位也支持通过精确的hours_of_operation_id定位并完整暴露config含day、start_time、end_time、time_zone、tags等全部属性供上层资源引用。结合本文给出的源码实现细节ExactlyOneOf约束、分页按名过滤、唯一性断言、与资源共享底层查找逻辑你可以在实际项目中准确、高效地消费营业时间数据构建出可读性强、不易出错的 Connect 基础设施代码。【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

PDF 复制不了打印不了?PDF 补丁丁免费快速去除 PDF 复制打印限制

PDF 复制不了打印不了?PDF 补丁丁免费快速去除 PDF 复制打印限制

PDF 复制不了打印不了?PDF 补丁丁免费快速去除 PDF 复制打印限制 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片等等 项目地址: …

📅 2026/9/18 2:14:20
Agent Governance Toolkit IATP 参考 Sidecar 架构:为 AI Agent 构建生产级信任代理

Agent Governance Toolkit IATP 参考 Sidecar 架构:为 AI Agent 构建生产级信任代理

Agent Governance Toolkit IATP 参考 Sidecar 架构:为 AI Agent 构建生产级信任代理 【免费下载链接】agent-governance-toolkit AI Agent Governance Toolkit — Policy enforcement, zero-trust identity, execution sandboxing, and reliability engineering for…

📅 2026/9/18 2:09:20
Storybook 元级自定义渲染:通过 Meta 中的 render 复用定制模板(CSF 3 与 CSF Next 全框架指南)

Storybook 元级自定义渲染:通过 Meta 中的 render 复用定制模板(CSF 3 与 CSF Next 全框架指南)

Storybook 元级自定义渲染:通过 Meta 中的 render 复用定制模板(CSF 3 与 CSF Next 全框架指南) 本指南围绕 Storybook 官方写作故事文档中“自定义渲染”(Custom rendering)的核心片段展开,讲解如何在 CS…

📅 2026/9/18 2:09:20
MORE NEWS

更多资讯

📰

RIS与D2D联合优化:DDPG实现相位-频谱协同决策

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

📰

LoRa无线通信技术详解:从扩频原理到LoRaWAN组网实战

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

📰

CentOS7时间差8小时原因与四步修复方案

1. 问题现场还原:为什么刚装好的CentOS7时间总差8小时?你是不是也遇到过这样的场景:一台全新的CentOS7服务器,date命令一敲,屏幕跳出的却是“2024年04月12日 星期五 09:23:16 CST”——而你明明在北京,此刻…

📰

Netty实战进阶:粘包拆包、Spring Boot集成与Nacos长连接

先从线上偶发的“丢消息”说起:TCP粘包/拆包为什么总是绕不开Netty入门很简单,把官网Demo跑起来,一个能收发消息的服务端就有了。但真到了生产环境,你会发现事情没那么乐观:高峰期偶发消息错乱、推送延迟、连接莫名其妙…

📰

DeepSeek+ECharts:教育数据可视化自动图表生成与交互分析实战

简介:这是一套以DeepSeek技术为核心的《教育数据可视化方案》完整文档,全书共1330页、51个大章节,面向教育行业数据分析、平台开发与信息化决策人员,系统解决教育大数据多维展示与交互分析中的技术选型与工程落地问题。资源为单个…

📰

跟 Buzz 的代码审查机器人一起用 TaoToken,权限怎么分

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

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬