恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

使用 Terraform AWS Provider 的 aws_outposts_assets 数据源查询 Outposts 硬件资产清单

  • 首页
  • 资讯中心
  • /
  • 使用 Terraform AWS Provider 的 aws_outposts_assets 数据源查询 Outposts 硬件资产清单

相关资讯

Spacedrive 远程卷索引:基于 OpenDAL 的云存储 Volume 集成实战指南 2026/9/19 20:09:16
Agent Governance Toolkit v4 策略语言移除指南:ACS v5 单一契约迁移、渐进式绞杀与零基线 Ratchet 2026/9/19 20:09:16
Chat2DB 本地部署全指南:3步搭好自己的数据库客户端 2026/9/19 20:09:16

最新资讯

Claude Code 跑 Code Review 的 Subagent 任务:Key 用 TaoToken
Cursor 完整实战指南:从安装到高级玩法,打造 AI 编程高效工作流
IntelliJ IDEA 2024.3.5 安装配置避坑指南:K2编译器与gRPC调试实战
VSCode插件搜索Failed to fetch?一文解决扩展市场报错
直接学C++孩子会不会觉得太难
jQuery UI position定位引擎全解:my、at、flip、collision四大参数让元素精准落位

今日推荐

oh-my-hermes:打造跨工具的命令编排与插件化工作流
OpenClaw.NET 用 /goal start 跑长任务,模型 Base URL 改到 TaoToken
SYB创业计划书财务逻辑拆解:从销售收入预测到现金流量计划

本周热门

AI SDK Harness 依赖更新指南:掌握 harness 包 SDK 依赖的升级、桥接同步与一致性校验
Refine v5 Ant Design NumberField 组件实战:基于 Intl 的本地化数字格式化
Flutter应用改名全指南:从Android到iOS的配置与工具实践

本月精选

自研推理加速器Redwood:两周内实现PyTorch模型高效部署的实战教程
V4L2摄像头采集实战:从camera_client.rar到出图全流程解析
从“谁发明了钢琴键”到知识问答智能体:RAG与记忆工程实践

使用 Terraform AWS Provider 的 aws_outposts_assets 数据源查询 Outposts 硬件资产清单

发布时间:2026/9/19 20:09:16
使用 Terraform AWS Provider 的 aws_outposts_assets 数据源查询 Outposts 硬件资产清单 使用 Terraform AWS Provider 的 aws_outposts_assets 数据源查询 Outposts 硬件资产清单【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-awsaws_outposts_assets是 terraform-provider-aws 中用于查询 AWS Outposts 站点内硬件资产Asset信息的数据源它基于 Outpost 的 ARN 拉取该 Outpost 上全部硬件资产 ID并支持按宿主机 IDHost ID与资产状态Status进行过滤。阅读本文后你将掌握该数据源的完整参数用法、与aws_outposts_outpost/aws_outposts_asset等关联数据源的协作方式以及其在 SDK v2 层面的底层实现与校验规则。数据源概述什么是 Outposts 硬件资产AWS Outposts 是将 AWS 基础设施、服务、API 与工具带到本地数据中心或托管机房的解决方案。安装在客户现场的机架中包含服务器、交换机等物理硬件单元这些单元在 AWS 侧被抽象为Asset硬件资产每个资产拥有唯一的AssetId并可关联到具体的HostId专用宿主机 ID、RackId机架 ID、机架槽位rack_elevation以及实例族instance_families等信息。aws_outposts_assets数据源负责批量列出某个 Outpost 下的资产 ID与单资产查询数据源 aws_outposts_asset按asset_id查询单个资产详情形成互补。其典型应用场景包括通过aws_outposts_asset逐个查询资产明细前先取得该 Outpost 的全部资产 ID 列表结合专用宿主机Dedicated Host的 Host ID 定位特定主机对应的资产按资产生命周期状态ACTIVE / RETIRING筛选可用的硬件资源。数据源对应的 TypeName 为aws_outposts_assets在仓库的 Outposts 服务包注册表中被声明为 SDK 数据源见 internal/service/outposts/service_package_gen.go。前置条件先获取 Outpost 的 ARNaws_outposts_assets的唯一必填参数是arnOutpost ARN。你既可以直接在配置中硬编码 ARN更常见的做法是借助 Outposts 服务包中另外两个数据源动态获取aws_outposts_outposts列出可按可用区、站点等过滤全部 Outpost导出arns与ids集合aws_outposts_outpost按id、name、arn或owner_id精确匹配单个 Outpost导出arn、availability_zone、site_arn、supported_hardware_type等属性。例如下面的配置取当前账户第一个 Outpost 的 ARN 作为资产查询的输入data aws_outposts_outposts example {} data aws_outposts_assets example { arn tolist(data.aws_outposts_outposts.example.arns)[0] }在仓库的验收测试中正是采用这一链路先通过data aws_outposts_outposts test {}取得 ARN 列表再传给aws_outposts_assets参见 internal/service/outposts/outpost_assets_data_source_test.go。参数参考Argument Reference该数据源支持的参数如下参数必填类型说明region否string数据源将被管理的 AWS 区域默认取 provider 配置中设置的区域对应区域化端点。arn是string目标 Outpost 的 ARN格式如arn:aws:outposts:region:account:outpost/outpost-id。host_id_filter否字符串集合按 Dedicated Host专用宿主机的 Host ID 列表过滤资产。status_id_filter否字符串集合按资产状态列表过滤。有效值ACTIVE、RETIRING。region区域化管理region与 AWS Provider 中绝大多数数据源/资源保持一致未指定时使用 provider 配置中的区域指定后数据源会通过该区域对应的区域化端点调用 Outposts API。这一点在 Outposts 服务包的区域化端点解析器中体现参见 internal/service/outposts/service_endpoint_resolver_gen.go。arn必填的 Outpost 标识arn为必填项并且在 Schema 中配置了verify.ValidARN校验函数即 Terraform 会在执行计划阶段直接校验该值是否为合法的 ARN 格式不合法会在terraform validate/plan阶段即报错而不是等到apply时由 AWS API 返回错误。对应实现见 internal/service/outposts/outpost_assets_data_source.go。host_id_filter按专用宿主机过滤host_id_filter接收一组 Host ID例如h-x38g5n0yd2a0ueb61来自测试环境变量OUTPOST_HOST_ID的取值示例。从源码看该参数在 Schema 层面配置了严格的格式校验字符串长度限制在 150 个字符之间validation.StringLenBetween(1, 50)仅允许数字、大小写字母与连字符正则^[0-9A-Za-z-]*$。这些校验规则位于 internal/service/outposts/outpost_assets_data_source.go 的host_id_filterSchema 定义中。配置时data aws_outposts_assets example { arn data.aws_outposts_outpost.example.arn host_id_filter [h-x38g5n0yd2a0ueb61] }status_id_filter按资产状态过滤status_id_filter按资产生命周期状态过滤文档声明的有效值为ACTIVE正常使用中与RETIRING退役中。源码中该字段使用enum.Validate[awstypes.AssetState]()进行枚举校验且设置了MaxItems: 2即最多传入 2 个状态值与 Outposts API 的AssetState枚举一致data aws_outposts_assets example { arn data.aws_outposts_outpost.example.arn status_id_filter [ACTIVE] }注意两个过滤参数都是schema.TypeSet集合因此元素顺序无关紧要使用[ACTIVE, RETIRING]表示两者都包含的并集过滤语义。属性参考Attribute Reference除上述参数外数据源还会导出以下计算属性属性说明asset_ids查找到的全部资产 ID 列表。若未找到任何资产数据源会直接报错而不是返回空列表。asset_ids是TypeList元素为字符串。你可以在下游配置中通过data.aws_outposts_assets.example.asset_ids引用例如配合单资产数据源aws_outposts_asset遍历查询每个资产的机架位置与实例族信息data aws_outposts_assets example { arn data.aws_outposts_outpost.example.arn } data aws_outposts_asset each { for_each toset(data.aws_outposts_assets.example.asset_ids) arn data.aws_outposts_outpost.example.arn asset_id each.value } output asset_rack_locations { value { for k, v in data.aws_outposts_asset.each : k { host_id v.host_id rack_id v.rack_id rack_elevation v.rack_elevation } } }底层实现原理ListAssets 分页读取该数据源的读取逻辑位于 internal/service/outposts/outpost_assets_data_source.go 的DataSourceOutpostAssetsRead函数核心流程如下从 provider 连接池中获取 Outposts 客户端conn : meta.(*conns.AWSClient).OutpostsClient(ctx)构造outposts.ListAssetsInput其中OutpostIdentifier直接使用用户传入的arn值若配置了host_id_filter通过flex.ExpandStringValueSet将 Terraform Set 展开为 API 需要的HostIdFilter字符串切片若配置了status_id_filter通过flex.ExpandStringyValueSet[awstypes.AssetState]展开为StatusFilter的AssetState枚举切片使用outposts.NewListAssetsPaginator自动分页遍历所有页将每页page.Assets中的AssetId累积到assetIds切片空结果即报错若累积结果长度为 0返回no Outposts Assets found matching criteria; try different search错误——这是该数据源的明确行为约定用于提醒用户调整过滤条件最后将asset_ids写入状态并把数据源 ID 设置为 Outpost ARNd.SetId(aws.ToString(outpost_id))使每次读取具备幂等标识。值得说明的是分页器来自 AWS SDK for Go v2 的service/outposts包因此即便一个 Outpost 包含数百个资产数据源也能完整拉取无需用户关心分页游标。测试验证与行为保证仓库为aws_outposts_assets提供了三组验收测试位于 internal/service/outposts/outpost_assets_data_source_test.goTestAccOutpostsAssetsDataSource_id不附加任何过滤验证arn属性为合法的 Outposts 区域 ARN正则outpost/.TestAccOutpostsAssetsDataSource_statusFilter先无过滤查询得到source再以status_id_filter [ACTIVE]二次过滤校验status_id_filter.0的返回值TestAccOutpostsAssetsDataSource_hostFilter通过环境变量OUTPOST_HOST_ID如h-x38g5n0yd2a0ueb61注入真实 Host ID校验host_id_filter.*集合元素。三个测试均在PreCheck中依赖OUTPOST_AVAIL环境变量未设置时跳过执行——这类数据源属于真实资源依赖型只在存在真实 Outpost 的 AWS 账户中运行。测试同时印证了一个实用链路先无过滤查询拿到资产再带过滤条件做二次确认这在排查过滤条件是否有效时非常有用。使用注意事项空结果会报错aws_outposts_assets在没有任何匹配资产时返回错误而非空列表这是源码中的硬性逻辑设计上用于及早暴露过滤条件写错、ARN 指错等问题ARN 格式校验前置arn在 Terraform 层面即做 ARN 合法性校验可提前拦截拼写错误Host ID 有字符约束host_id_filter元素仅允许 150 位字母、数字与连字符状态过滤最多两个值status_id_filter的MaxItems为 2且仅接受ACTIVE与RETIRING数据源 ID 为 Outpost ARN每次refresh都会重新调用 ListAssets API资产增减会反映到下一次读取结果中该数据源为只读查询不会在 AWS 侧创建、修改或删除任何资源适合与aws_outposts_asset、aws_outposts_outpost组合构建资产管理相关的基础设施编排。【免费下载链接】terraform-provider-awsThe AWS Provider enables Terraform to manage AWS resources.项目地址: https://gitcode.com/GitHub_Trending/te/terraform-provider-aws创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号