深入解析 Terraform AWS Provider 的 `aws_media_convert_queue` 数据源:读取 Elemental MediaConvert 队列信息

发布时间:2026/9/19 13:34:15

深入解析 Terraform AWS Provider 的 `aws_media_convert_queue` 数据源:读取 Elemental MediaConvert 队列信息 深入解析 Terraform AWS Provider 的aws_media_convert_queue数据源读取 Elemental MediaConvert 队列信息【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws本指南以 HashiCorp Terraform AWS Provider 官方文档中aws_media_convert_queue数据源Data Source为核心完整讲解如何通过 Terraform 读取 AWS Elemental MediaConvert 队列的标识、ARN、状态与标签信息。读完本文你将掌握该数据源的全部参数与导出属性、底层 SDK 调用链路以及如何与aws_media_convert_queue资源组合实现创建即引用的典型场景。一、数据源概览它解决什么问题AWS Elemental MediaConvert 是一项媒体转码服务队列Queue用于管理转码作业Job的调度与并发。在实际基础设施管理中你经常需要引用已存在队列的 ARN例如配置转码作业、IAM 策略或事件通知而不是重复硬编码。aws_media_convert_queue数据源正是为此设计给定队列的唯一标识idTerraform 会向 MediaConvert 服务发起查询返回队列的 ARN、名称、当前状态以及全部标签供配置中的其他资源引用。官方文档对该数据源的定位表述为Retrieve information about a AWS Elemental MediaConvert Queue参见 website/docs/d/media_convert_queue.html.markdown。二、最小可用示例官方文档给出的最简用法只需一个必填参数iddata aws_media_convert_queue example { id tf-example-queue }执行terraform plan或terraform apply后即可通过data.aws_media_convert_queue.example.arn、.status等属性在配置中引用查询结果。注意该数据源隶属于Elemental MediaConvert子分类使用前请确保 AWS 账号已开通 MediaConvert 服务且 Terraform 执行环境具备读取队列所需的 IAM 权限对应 MediaConvertGetQueueAPI 操作。三、Argument Reference支持的查询参数数据源支持以下两个参数参数必填说明region可选队列所在的 AWS 区域。默认使用 provider 配置中设置的区域也可以通过 provider 的region或各资源级region覆盖。MediaConvert 采用区域化端点因此跨区域查询时必须显式指定。id必填队列的唯一标识符其值与队列的name相同。文档明确指出The same asname。四、Attribute Reference导出的属性查询成功后该数据源在参数之外还导出以下属性属性类型说明arnstring队列的 Amazon Resource NameARN。namestring队列名称与id相同。statusstring队列当前状态如ACTIVE或PAUSED。tagsmap资源上的标签映射包含从 providerdefault_tagsconfiguration block 继承的标签。一个常见的输出用法output queue_arn { value data.aws_media_convert_queue.example.arn } output queue_status { value data.aws_media_convert_queue.example.status } output queue_tags { value data.aws_media_convert_queue.example.tags }五、底层实现解析数据源是如何工作的在 Terraform AWS Provider 仓库中该数据源的完整实现位于 internal/service/mediaconvert/queue_data_source.go。阅读源码可以验证文档描述与真实行为完全一致5.1 Schema 定义实现采用 Terraform Plugin SDK v2通过SchemaFunc定义字段names.AttrARN: { Type: schema.TypeString, Computed: true }, names.AttrID: { Type: schema.TypeString, Required: true }, names.AttrName: { Type: schema.TypeString, Computed: true }, names.AttrStatus: { Type: schema.TypeString, Computed: true }, names.AttrTags: tftags.TagsSchemaComputed(),可以看到id是唯一 Required必填字段arn、name、status均为 Computed只读导出tags使用TagsSchemaComputed()——这正是文档中tags包含从 providerdefault_tags继承标签的源码级体现。5.2 读取流程dataSourceQueueRead是核心读取函数调用链如下conn : meta.(*conns.AWSClient).MediaConvertClient(ctx) id : d.Get(names.AttrID).(string) queue, err : findQueueByName(ctx, conn, id) ... name : aws.ToString(queue.Name) d.SetId(name) d.Set(names.AttrARN, queue.Arn) d.Set(names.AttrName, name) d.Set(names.AttrStatus, queue.Status)关键点通过AWSClient.MediaConvertClient(ctx)获取 MediaConvert 的 AWS SDK for Go v2 客户端调用findQueueByName按名称查询队列该函数定义于 internal/service/mediaconvert/queue.go内部封装了conn.GetQueueAPI 调用并对NotFoundException与空结果分别转换为retry.NotFoundError和tfresource.NewEmptyResultError查询成功后将返回的队列Name写回id印证文档所述id与name相同再依次填充arn、name、status。六、数据从哪来配套的aws_media_convert_queue资源数据源查询的对象通常由aws_media_convert_queue资源管理资源文档见 website/docs/r/media_convert_queue.html.markdown。掌握资源的全部参数有助于理解队列可查询的字段来源。6.1 资源参数一览参数必填默认值说明name是—队列唯一标识创建后不可更改ForceNew。concurrent_jobs否由服务端决定队列可并发处理的作业数上限。按需ON_DEMAND队列受账号配额约束预留RESERVED队列由预订计划决定。description否—队列描述。pricing_plan否ON_DEMAND计费计划可选ON_DEMAND或RESERVED创建后不可更改。reservation_plan_settings否—预留队列的详细计费计划见下文。status否ACTIVE队列状态可选ACTIVE或PAUSED。tags否—资源标签可与 providerdefault_tags合并。说明资源源码位于 internal/service/mediaconvert/queue.go其中pricing_plan默认值types.PricingPlanOnDemand、status默认值types.QueueStatusActive均通过Default字段声明并与文档一致。资源也支持terraform import按队列名称导入如terraform import aws_media_convert_queue.test tf-test-queue。6.2reservation_plan_settings子块仅当pricing_plan RESERVED时使用包含三个必填字段字段可选值说明commitmentONE_YEAR预订计划的承诺期限长度。renewal_typeAUTO_RENEW/EXPIRE预订期限到期后的续订方式。reserved_slots整数队列预留的转码槽位RTS数量。在源码中这三个字段分别通过enum.Validate[types.Commitment]()与enum.Validate[types.RenewalType]()做枚举校验并由expandReservationPlanSettings/flattenReservationPlan函数完成 Terraform 结构与 AWS SDK 类型之间的转换。七、典型组合用法创建队列并立即引用实际工程中最常见的模式是资源创建 数据源引用既能在同一配置内管理队列又能把 ARN 安全地传递给下游资源。数据源测试中也采用了这种模式见 internal/service/mediaconvert/queue_data_source_test.goresource aws_media_convert_queue example { name tf-example-queue description Video transcode queue for production concurrent_jobs 10 pricing_plan ON_DEMAND status ACTIVE tags { Environment production Team media } } data aws_media_convert_queue example { # id 与资源 name 一致直接引用资源属性即可保证同步 id aws_media_convert_queue.example.id } output example_queue_arn { value data.aws_media_convert_queue.example.arn } output example_queue_status { value data.aws_media_convert_queue.example.status }这样下游无论需要队列 ARN用于授权转码、构建作业配置还是状态用于自动化判断都可以从data.aws_media_convert_queue.example.*稳定获取。八、标签是如何读取的tags与tags_all的机制数据源的tags属性由tftags.TagsSchemaComputed()生成。标签的实际读取通过 MediaConvert 的ListTagsForResourceAPI 完成实现在 internal/service/mediaconvert/tags_gen.go 的listTags函数中——它以资源的 ARN 为标识与数据源 Schema 上的Tags(identifierAttributearn)注解对应发起请求input : mediaconvert.ListTagsForResourceInput{ Arn: aws.String(identifier), } output, err : conn.ListTagsForResource(ctx, input, optFns...)需要留意两个细节数据源导出的是tags含继承的default_tags而资源额外导出tags_all同样含继承标签两者语义在文档中均有明确区分若队列本身没有标签tags会是一个空 map不会导致数据源读取失败。九、测试验证数据源行为如何被保障仓库中的 internal/service/mediaconvert/queue_data_source_test.go 提供了数据源的验收测试TestAccMediaConvertQueueDataSource_basic。其核心断言如下resource.TestCheckResourceAttrPair(resourceName, names.AttrARN, dataSourceName, names.AttrARN), resource.TestCheckResourceAttrPair(resourceName, names.AttrName, dataSourceName, names.AttrName), resource.TestCheckResourceAttrPair(resourceName, acctest.CtTagsPercent, dataSourceName, acctest.CtTagsPercent),测试逻辑清晰可验证先创建资源aws_media_convert_queue.test再声明数据源data.aws_media_convert_queue.test且数据源id直接引用aws_media_convert_queue.test.id用TestCheckResourceAttrPair断言资源与数据源的arn、name完全一致——从验收层面再次证明数据源读取的就是同名队列对比tags.%标签数量一致确认标签读取链路工作正常。配套的资源级测试internal/service/mediaconvert/queue_test.go还覆盖了concurrent_jobs动态调整100→5、status在PAUSED/ACTIVE间切换、description更新、多标签增删以及pricing_plan RESERVED的预订计划场景为数据源可查询到的字段取值提供了完整佐证。十、使用注意事项区域一致性region参数默认继承 provider 配置跨区域查询队列时必须显式设置否则会因端点区域不匹配而查询失败。id即name查询标识就是队列名称无独立 UUID因此按资源属性id引用即可无需额外转换。只读语义数据源不会创建或修改任何 AWS 资源仅执行一次GetQueue读取对队列的管理应交给aws_media_convert_queue资源完成。权限要求执行读取需要具备mediaconvert:GetQueue及读取标签所需的mediaconvert:ListTagsForResource权限。综上aws_media_convert_queue数据源是一个轻量但可靠的队列信息读取入口。无论是对接转码作业配置、构建依赖 ARN 的基础设施编排还是自动化巡检队列状态你都可以基于本文的用法与源码依据放心使用。【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/19 13:29:15

大数据运维规划实战:从集群部署到监控容灾的完整指南

简介:这是一份关于大数据运维规划的解决方案文档,面向运维工程师、数据分析师及企业技术管理者,聚焦于业务系统与分析系统融合趋势下运维体系的设计与落地。文档从运维组织架构切入,对比了纵向一体化、完全分离及均衡三种交维模式…

2026/9/19 13:29:15

基于深度学习的火场灰度图像去烟算法:从数据合成到边缘部署

简介:这份PDF文献面向图像处理、计算机视觉方向的研究者与消防信息化技术人员,聚焦火场灰度监控画面因烟雾导致的清晰度与对比度下降问题,提出一套基于深度学习的去烟方案。资源包仅含1个PDF文件,大小约1.26MB,便于在移…

2026/9/19 14:44:19

Flutter在OHOS上的卡顿定位与性能优化:从帧链路到hitrace

性能问题最怕的不是卡,而是不知道卡在哪一步。前阵子有个群友发来一段真机录屏,Flutter 应用在 OHOS 平板上滑动商品列表,画面肉眼可见地一顿一顿,帧率抖得厉害,但同一套代码在 Android 模拟器上却跑得丝般顺滑。这种&…

2026/9/19 14:44:19

Multisim单相半波可控整流仿真:从原理到波形分析

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

2026/9/19 14:44:19

Rsoft光纤光栅仿真进阶:从透射谱到耦合模式的三个关键技巧

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

2026/9/19 14:39:19

Jackson循环引用序列化StackOverflowError的三种解决方案

简介:当Spring Boot项目使用JPA出现Controller返回JSON报错“Could not write JSON: Infinite recursion”时,往往由实体类双向引用引发。这份PDF资源正是针对该StackOverflowError异常的完整排错笔记,面向后端Java开发人员,尤其适…

2026/9/18 14:13:01

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/19 0:03:10

验证 OpenSpec 兼容性,Cursor 的 Token 从 TaoToken 出

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

2026/9/19 0:03:10

书桌角落的 Mac mini,OpenClaw 通过 TaoToken 跑任务。

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

2026/9/19 0:03:10

oh-my-hermes:打造跨工具的命令编排与插件化工作流

1. 项目概述与设计初衷1.1 它到底是什么先说结论:oh-my-hermes 是一个面向开发者日常终端操作的效率工具套件,核心定位是“把分散在各类命令行工具里的高频操作,统一收拢成一套插件化、可编排的工作流”。项目灵感来源很明显——oh-my-zsh 重…

2026/9/18 14:13:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/18 14:13:02

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/18 14:13:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码