news 2026/9/16 18:48:48

AWS CLI CodeBuild `list-shared-report-groups` 命令详解:列出共享报告组 ARN 的完整实战指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AWS CLI CodeBuild `list-shared-report-groups` 命令详解:列出共享报告组 ARN 的完整实战指南

AWS CLI CodeBuildlist-shared-report-groups命令详解:列出共享报告组 ARN 的完整实战指南

【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli

导读

本指南围绕 AWS CLI 中aws codebuild list-shared-report-groups命令展开,讲解如何列出通过资源共享(Resource Sharing)授予当前账户/用户访问权限的 AWS CodeBuild 报告组(Report Group)ARN。你将掌握该命令的基础调用、输出结构解析、排序与分页参数(sortBysortOrdermaxResultsnextToken)的完整用法,并结合仓库中的服务模型(service-2.json)与分页配置(paginators-1.json)理解其底层实现。

一、命令定位:什么是"共享报告组"

AWS CodeBuild 的报告组(Report Group)用于归集构建产出的测试报告(Test Reports)与代码覆盖率报告(Code Coverage Reports)。在跨账户或跨用户协作场景下,资源所有者可以通过 AWS Resource Access Manager(RAM)将报告组共享给其他 AWS 账户或组织单元中的用户。

list-shared-report-groups命令的作用就是列出那些共享给当前 AWS 账户或当前 IAM 用户/角色的报告组 ARN。它与list-report-groups(列出本账户拥有的报告组)形成互补,其姊妹命令list-shared-projects则用于列出共享的构建项目。

本命令的官方示例文档位于 awscli/examples/codebuild/list-shared-report-groups.rst,本文所有命令与输出均以该文档为准。

二、基础用法:一条命令获取全部共享报告组 ARN

2.1 直接调用

在配置好 AWS 凭证(aws configure)后,直接在终端执行:

aws codebuild list-shared-report-groups

命令不需要任何必填参数,即可返回当前账户在该区域中可访问的所有共享报告组 ARN。示例文档给出的典型输出如下:

{ "reportGroups": [ "arn:aws:codebuild:<region-ID>:<user-ID>:report-group/report-group-1", "arn:aws:codebuild:<region-ID>:<user-ID>:report-group/report-group-2", "arn:aws:codebuild:<region-ID>:<user-ID>:report-group/report-group-3" ] }

2.2 输出结构解读

  • reportGroups:字符串数组,每个元素是一个报告组 ARN,格式为arn:aws:codebuild:<region-ID>:<user-ID>:report-group/<报告组名称>。注意示例中的<region-ID><user-ID>是占位符,实际输出会替换为真实的区域与账户 ID。
  • 输出中 ARN 的数量即当前账户/用户被授予访问权限的共享报告组总数。

2.3 与其他 list 命令的对比

在 awscli/examples/codebuild/ 目录下,同样风格的示例还有:

  • list-report-groups.rst:列出本账户拥有的报告组 ARN,输出结构与共享版本完全一致(同样返回reportGroups数组);
  • list-shared-projects.rst:列出共享的构建项目ARN,输出字段为projects

通过这三个命令,你可以完整盘点当前账户在 CodeBuild 中"自有 + 共享"的资源全景。

三、核心参数详解:排序、分页与筛选

虽然示例文档只展示了无参调用,但底层服务模型为该命令定义了四个可选参数。它们定义在 awscli/botocore/data/codebuild/2016-10-06/service-2.json 的ListSharedReportGroupsInput结构中(第 3384 行起)。

3.1sortOrder:列表排序方向

取值含义
ASCENDING按升序排列
DESCENDING按降序排列

该参数对应模型中的SortOrderType枚举(service-2.json 第 4770 行),仅接受上述两个值。

# 按降序排列共享报告组 aws codebuild list-shared-report-groups \ --sort-order DESCENDING

3.2sortBy:排序依据

取值含义
ARN按报告组 ARN 排序
MODIFIED_TIME按共享报告组相关信息最后被修改的时间排序

该参数对应模型中的SharedResourceSortByType枚举(service-2.json 第 4763 行):

# 按修改时间排序,最新的排在最前 aws codebuild list-shared-report-groups \ --sort-by MODIFIED_TIME \ --sort-order DESCENDING

3.3maxResults:单次返回条数上限

  • 类型为整数,取值范围1 ~ 100(见PageSize形状,service-2.json 第 3525 行);
  • 默认值为 100
  • 若共享报告组总数超过该值,服务会返回nextToken,需要配合分页继续拉取。
# 每页最多返回 10 个共享报告组 aws codebuild list-shared-report-groups \ --max-results 10

3.4nextToken:分页游标

当列表条目数超过maxResults时,响应中会额外返回nextToken字段(见ListSharedReportGroupsOutput,service-2.json 第 3405 行)。将上一轮返回的 token 传入下一轮调用即可获取后续批次,直到响应中不再出现nextToken为止:

# 第一页 aws codebuild list-shared-report-groups --max-results 10 # 用上一页返回的 nextToken 获取第二页 aws codebuild list-shared-report-groups \ --max-results 10 \ --next-token "eyJ2Ijox...(上一页返回的 token)"

四、底层实现:服务模型与分页机制

4.1 操作定义

在服务模型中,ListSharedReportGroups操作(service-2.json 第 570 行)定义如下:

  • HTTP 方法:POST,请求 URI:/
  • 可能的错误:InvalidInputException(当传入的排序取值、maxResults越界等输入不合法时抛出);
  • 官方文档描述为:"Gets a list of report groups that are shared with other Amazon Web Services accounts or users."——注意这里所谓 "shared with other accounts" 是站在资源所有者的视角表述,实际调用时返回的是共享给当前调用者的报告组。

4.2 内置分页支持

CLI 层面的分页由 awscli/botocore/data/codebuild/2016-10-06/paginators-1.json 中的配置驱动:

"ListSharedReportGroups": { "input_token": "nextToken", "limit_key": "maxResults", "output_token": "nextToken", "result_key": "reportGroups" }

这意味着该命令是 CodeBuild 中少数自带分页模型的操作之一。实际使用中,更推荐直接使用 CLI 的--page-size与自动分页机制,让 CLI 替你循环处理所有nextToken

# CLI 自动遍历所有页,一次性输出全部共享报告组 ARN aws codebuild list-shared-report-groups \ --page-size 20 # 配合 --query 与 --output 做格式化输出 aws codebuild list-shared-report-groups \ --query "reportGroups[*]" \ --output json

--page-size控制每次实际发给服务的maxResults,而 CLI 会持续消费返回的nextToken,直到数据取完,从而避免手工循环分页。

五、实战场景与扩展用法

5.1 快速统计共享报告组数量

aws codebuild list-shared-report-groups \ --query "length(reportGroups)" \ --output text

5.2 仅列出某个报告组名称

aws codebuild list-shared-report-groups \ --query "reportGroups[?ends_with(@, ':report-group/report-group-1')]" \ --output text

5.3 与其他报告组命令联动

拿到共享报告组 ARN 后,可进一步结合本仓库 awscli/examples/codebuild/ 中的相关命令深入排查:

  • batch-get-report-groups.rst:批量获取报告组的详细信息(导出配置、创建时间、状态等);
  • list-reports-for-report-group.rst:列出某报告组下的全部测试报告;
  • describe-test-cases.rst 与 describe-code-coverages.rst:查看具体测试用例与代码覆盖率明细。

典型的排查链路为:list-shared-report-groups找到 ARN →batch-get-report-groups确认报告组配置 →list-reports-for-report-group查看报告列表。

5.4 权限前提

调用该命令需要 IAM 身份具备codebuild:ListSharedReportGroups权限(对应 CodeBuild 服务端的ListSharedReportGroups操作)。若凭证不足,服务端将返回AccessDeniedException。共享关系的建立由资源所有者通过 AWS RAM 完成,接受共享后,本账户才能在该区域看到对应的共享报告组。

六、小结

aws codebuild list-shared-report-groups是跨账户 CodeBuild 协作场景下盘点"他人共享给我的报告组"的最直接手段:

  • 无参调用即可返回全部共享报告组 ARN,输出结构简单(仅reportGroups数组,可能附带nextToken);
  • 通过--sort-byARN/MODIFIED_TIME)与--sort-orderASCENDING/DESCENDING)控制排序;
  • 通过--max-results(1~100,默认 100)与--next-token手动分页,或直接依赖 CLI 内置分页(paginators-1.json 中已声明该操作的分页映射)自动遍历全部结果;
  • list-report-groups(自有)、list-shared-projects(共享项目)配合,可完整覆盖 CodeBuild 资源的可见性盘点。

所有参数定义与枚举取值均可对照仓库内的 service-2.json 验证,官方示例输出详见 list-shared-report-groups.rst。

【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 18:48:33

MATLAB语音增强三大经典算法原理与实现对比

简介&#xff1a;本资源是一套面向信号处理与语音算法初学者的MATLAB语音增强仿真实验包&#xff0c;聚焦噪声环境下提升语音清晰度的核心问题&#xff0c;适用于高校通信/音频工程课程实践、毕业设计及算法入门学习。压缩包共21个文件&#xff0c;含8个核心MATLAB源码&#xf…

作者头像 李华
网站建设 2026/9/16 18:46:09

Go函数调用瞬间:栈帧构造、栈拷贝与逃逸分析全解析

写 Go 写了几年&#xff0c;我越来越觉得&#xff0c;搞懂一次函数调用里发生的事&#xff0c;是区分“会写 Go”和“懂 Go”的一条分水岭。表面上看&#xff0c;你只是在代码里敲了一行f(x)&#xff0c;但底层牵动的东西一点不少&#xff1a;栈帧&#xff08;stack frame&…

作者头像 李华
网站建设 2026/9/16 18:46:00

信创OA系统集成动易控件处理Word公式技术解析

1. 信创OA系统与动易控件集成背景在国产化信息技术应用创新&#xff08;信创&#xff09;背景下&#xff0c;OA系统作为企业核心办公平台&#xff0c;面临文档处理能力国产化适配的关键需求。动易控件作为国内主流的文档处理组件&#xff0c;其与OA系统的深度集成需要解决以下核…

作者头像 李华
网站建设 2026/9/16 18:45:55

Docker容器停止与删除的本质区别及安全操作指南

1. 这不是“删文件”&#xff0c;而是精准控制容器生命周期的日常操作Docker 容器不是 Windows 里右键删除的普通文件夹&#xff0c;也不是双击关闭的桌面程序。它是一套有明确状态、有资源绑定、有依赖关系的运行时实体。你看到的“停止”和“删除”&#xff0c;背后其实是两套…

作者头像 李华