新闻详情

新闻详情

首页 / 资讯中心 / 详情

使用 aws_batch_job_queue 数据源读取 AWS Batch 作业队列详情:terraform-provider-aws 实战指南

发布时间:2026/9/17 21:59:17来源:尧图网络
使用 aws_batch_job_queue 数据源读取 AWS Batch 作业队列详情:terraform-provider-aws 实战指南
使用 aws_batch_job_queue 数据源读取 AWS Batch 作业队列详情terraform-provider-aws 实战指南【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-awsaws_batch_job_queue是 terraform-provider-aws 提供的数据源Data Source用于按名称读取 AWS Batch 作业队列Job Queue的完整配置与运行状态而无需在配置中硬编码 ARN、优先级、调度策略等值。本文基于该数据源的官方文档website/docs/d/batch_job_queue.html.markdown展开并结合仓库内数据源实现与验收测试源码帮助你掌握如何查询、引用并据此联动其他资源。数据源概述与典型应用场景在 AWS Batch 中作业队列是用户提交作业的入口它把作业调度到一组计算环境Compute Environment上执行。当你需要获取某个已存在队列的元数据例如其 ARN、当前状态、所绑定的计算环境、优先级、公平份额调度策略等并把这些信息用于其他 Terraform 配置如输出变量、IAM 策略、依赖编排就可以使用aws_batch_job_queue数据源。典型应用场景包括将已存在的作业队列 ARN 注入到其他资源的配置中例如告警、事件规则、IAM 授权在 CI/CD 中读取队列当前的stateENABLED/DISABLED与status辅助判断是否可以提交作业依据compute_environment_order的输出在配置中动态获知队列绑定了哪些计算环境及其放置顺序通过scheduling_policy_arn判断队列当前采用公平份额fair share还是 FIFO 调度策略。基本用法数据源的核心参数只有一个必填项name。最小可用配置如下data aws_batch_job_queue test-queue { name tf-test-batch-job-queue }查询结果通过data.aws_batch_job_queue.test-queue.arn之类的属性引用。更贴近实际的做法是让数据源与受管资源配对先用aws_batch_job_queue资源创建队列再用数据源按名称读取其详情从而验证并引用同一队列。仓库的验收测试internal/service/batch/job_queue_data_source_test.go正是这样组织的resource aws_batch_job_queue test { name %[1]s state ENABLED priority 1 compute_environment_order { compute_environment aws_batch_compute_environment.test.arn order 1 } } data aws_batch_job_queue by_name { name aws_batch_job_queue.test.name }参数Argument Reference参数必填说明name是作业队列的名称数据源按此名称精确查找队列。region否查询队列所在的 Region。默认使用 provider 配置中设置的 Region。关于name的格式约束可以参考同服务的资源实现internal/service/batch/job_queue.go队列名最多 128 个字符允许字母大小写、数字、下划线和短横线且必须以字母或数字开头对应正则^[0-9A-Za-z]{1}[0-9A-Za-z_-]{0,127}$。数据源按名字精确匹配——测试中特意创建了一个%[1]s_wrong的干扰队列用于验证按name精确查找的行为不会被相似名称误导。region参数与仓库中“身份identity/跨区域导入”测试相关在 job_queue_identity_gen_test.go 的TestAccBatchJobQueue_Identity_regionOverride中队列可在备选 Region 创建并验证 ARN 携带正确的区域前缀。如果你在非默认 Region 中查询队列请显式传入region。属性Attribute Reference数据源在参数之外导出以下属性基础属性属性类型说明arnstring作业队列的 ARN。statusstring队列当前状态例如CREATING、UPDATING、VALID、DELETING、DELETED。status_reasonstring对当前状态补充说明的简短人类可读字符串如创建失败原因。statestring队列接收新作业的能力取值为ENABLED或DISABLED。tagsmap(string)资源标签的键值映射。priorityint队列优先级。当多个队列关联同一计算环境时高优先级队列先被评估。compute_environment_order计算环境顺序队列绑定的计算环境及其作业放置顺序属性为列表每个元素包含子属性类型说明compute_environment_order.#.orderint计算环境的顺序号。compute_environment_order.#.compute_environmentstring计算环境的 ARN。计算环境按order的升序被选择用于作业放置。若一个队列绑定两个计算环境order 值更小者先被尝试。在 Terraform 中可通过data.aws_batch_job_queue.xxx.compute_environment_order[0].compute_environment之类表达式取用。job_state_time_limit_action作业状态时限动作当作业在队列头部停留于指定状态超过指定时间后AWS Batch 采取的动作配置属性为列表每个元素包含子属性类型说明job_state_time_limit_action.#.actionstring超时后执行的动作例如CANCEL。job_state_time_limit_action.#.max_time_secondsint作业处于指定状态的近似秒数阈值达到后触发动作。有效取值范围为600到86400。job_state_time_limit_action.#.reasonstring动作被触发时记录的原因。job_state_time_limit_action.#.statestring触发动作所需的作业状态例如RUNNABLE。scheduling_policy_arn调度策略若该属性有值队列使用公平份额调度策略fair share scheduling policy若为空队列使用先进先出FIFO调度策略。注意队列创建后可以替换但不能移除公平份额调度策略——这一约束在资源实现internal/service/batch/job_queue.go 的 Update 逻辑中会显式报错cannot remove the fair share scheduling policy。底层实现数据源是如何工作的数据源定义于 internal/service/batch/job_queue_data_source.go其读取函数dataSourceJobQueueRead的完整调用链如下通过meta.(*conns.AWSClient).BatchClient(ctx)获取 AWS SDK for Go v2 的 Batch 客户端以name为入参调用findJobQueueByID该函数构造batch.DescribeJobQueuesInput{JobQueues: []string{id}}并调用DescribeJobQueuesAPI分页逻辑见 internal/service/batch/job_queue_list.go 的listJobQueues使用batch.NewDescribeJobQueuesPaginator逐页拉取若查询结果中的Status为DELETED视为资源不存在并返回retry.NotFoundError若查无结果或结果不唯一则通过tfresource.SingularDataSourceFindError生成“未找到单一匹配项”的典型数据源错误将返回的JobQueueDetail逐字段写入状态d.SetId(arn)把数据源的 ID 设置为队列 ARN随后设置arn、name、priority、scheduling_policy_arn、state、status、status_reason遍历JobQueueDetail.ComputeEnvironmentOrder与JobQueueDetail.JobStateTimeLimitActions分别组装compute_environment_order与job_state_time_limit_action两个嵌套列表最后通过setTagsOut(ctx, jobQueue.Tags)输出tags。从实现可以看到数据源查询走的是DescribeJobQueues且数据源自身 ID 即队列 ARN与资源侧的身份设计保持一致资源侧标注了ArnFormat(job-queue/{name})与ArnIdentity(identityDuplicateAttributesid)。与资源、其他数据源的协作配套资源若需要创建队列参考 aws_batch_job_queue 资源文档。资源侧支持compute_environment_order最多关联 3 个计算环境且计算环境必须先处于VALID状态、job_state_time_limit_action、scheduling_policy_arn、priority、state、tags等参数并提供 create/update/delete 默认 10 分钟的 Timeouts。计算环境数据源aws_batch_compute_environment数据源可按名称读取计算环境信息通常与作业队列数据源配合使用用于还原“队列 → 计算环境”的完整拓扑。调度策略数据源aws_batch_scheduling_policy数据源可查询公平份额调度策略详情配合scheduling_policy_arn使用。实战示例完整读取并输出队列信息data aws_batch_job_queue selected { name tf-test-batch-job-queue } output queue_arn { value data.aws_batch_job_queue.selected.arn } output queue_state { value data.aws_batch_job_queue.selected.state } output first_compute_environment { value data.aws_batch_job_queue.selected.compute_environment_order[0].compute_environment } output scheduling_mode { value data.aws_batch_job_queue.selected.scheduling_policy_arn ? FIFO : FAIR_SHARE } output timeout_action { value try(data.aws_batch_job_queue.selected.job_state_time_limit_action[0].action, NONE) }注意事项数据源按name精确匹配同名队列在同一区域不存在歧义若查不到队列apply/refresh会报出数据源的“无匹配项”错误来自tfresource.SingularDataSourceFindError的包装信息 Batch Job Queue。status与state含义不同status描述队列生命周期状态创建中/有效/删除中等state描述是否接收新作业。参考资源侧的等待器实现internal/service/batch/job_queue.go创建时从CREATING/UPDATING等待到VALID删除时等待DELETING结束status_reason在等待失败时会被用作错误提示信息。tags为数据源导出的只读属性若你同时使用资源的tags_all含 provider 级default_tags注意数据源仅反映队列自身标签。若队列配置了job_state_time_limit_action其max_time_seconds取值区间为 60086400 秒action目前支持CANCELstate目前支持RUNNABLE这些约束同样体现在资源 Schema 的校验器中。进一步阅读数据源源码internal/service/batch/job_queue_data_source.go数据源验收测试internal/service/batch/job_queue_data_source_test.go覆盖基本查询与带调度策略/状态时限动作的查询逐一校验数据源与资源属性成对一致资源实现internal/service/batch/job_queue.go列表/分页实现internal/service/batch/job_queue_list.go身份与跨区域测试internal/service/batch/job_queue_identity_gen_test.go测试基线配置internal/service/batch/testdata/JobQueue/basic/main_gen.tf含 IAM 角色、实例配置文件等完整前置资源资源文档website/docs/r/batch_job_queue.html.markdown【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

gogcli `gog people search` 深度解析:Google Workspace 通讯录检索命令的完整用法与源码实现 2026/9/17 22:41:32

gogcli `gog people search` 深度解析:Google Workspace 通讯录检索命令的完整用法与源码实现

gogcli gog people search 深度解析:Google Workspace 通讯录检索命令的完整用法与源码实现 【免费下载链接】gogcli Google Workspace in your terminal. 项目地址: https://gitcode.com/GitHub_Trending/gogcl/gogcli 本文以 gogcli(Google Wor…

阅读更多 →
AI录音卡ODM量产避坑:Spec冻结、BOM、产权与认证六个关键 2026/9/17 22:41:32

AI录音卡ODM量产避坑:Spec冻结、BOM、产权与认证六个关键

1. 先搞懂AI录音卡是什么,再谈ODMAI录音卡的形态这两年确实火,一张名片大小、带磁吸、能贴在手机背面,按一下开始录,录完自动转写、生成纪要,甚至带多语言翻译。它的产品定义足够清晰,用户看一眼就知道干嘛…

阅读更多 →
Home Assistant vacuum.stop 动作详解:在自动化中即时停止扫地机器人的完整指南 2026/9/17 22:41:32

Home Assistant vacuum.stop 动作详解:在自动化中即时停止扫地机器人的完整指南

Home Assistant vacuum.stop 动作详解:在自动化中即时停止扫地机器人的完整指南 【免费下载链接】home-assistant.io :blue_book: Home Assistant User documentation 项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io 本文围绕 Home As…

阅读更多 →
Boost变换器设计实战:从TL494闭环到EMI抑制 2026/9/17 22:41:32

Boost变换器设计实战:从TL494闭环到EMI抑制

简介:本资源是一份面向电子类本科毕业设计与电源工程实践者的Boost升压型稳压电源完整设计方案,聚焦车载DC-DC升压应用场景,解决12V转24V/500mA高效稳定供电问题。方案以TL494 PWM控制器为核心,详述主电路(Boost拓扑含…

阅读更多 →
新能源整车上下电协调策略:状态机、时序优化与超时兜底设计 2026/9/17 22:41:32

新能源整车上下电协调策略:状态机、时序优化与超时兜底设计

简介:围绕新能源整车上下电流程及协调策略优化形成的一份技术文档,面向整车控制工程师、三电系统开发人员及车辆工程专业学生。文档先明确整车上/下电功能定义,梳理整车控制器、电池管理器、电机控制器、充电机等核心控制器的分工&#xff0c…

阅读更多 →
2026年5大AI论文写作软件实测,这篇避坑攻略必看 2026/9/17 22:38:32

2026年5大AI论文写作软件实测,这篇避坑攻略必看

深夜改稿到词穷,查重率居高不下,AIGC检测总是亮红灯——这可能是当前学术工作者最真实的写照。随着各大高校和期刊对AI生成内容的检测愈发严格,传统的写作方式已难以满足效率与合规的双重要求。2026年的AI写作工具不仅需要智能,更…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞