Azure 容器注册表 Python 技能
用 Python 管理 Azure 容器镜像、制品与仓库。
文档优先推荐 DefaultAzureCredential,并提示生产环境限制凭据链,避免连接字符串和密钥;端点通过环境变量传入,数据流和认证方式基本可见。扣分原因是删除仓库、manifest 和 tag 的示例没有用户确认、备份或回滚方案,清理脚本仍会产生外部破坏性影响;下载 blob 直接写入本地文件,也未说明敏感内容处理、权限最小化或依赖安全。
同步和异步生命周期、凭据清理、主要仓库/tag/manifest 操作及部分防误删建议较一致。扣分原因是示例存在未定义的 endpoint 变量,异常处理、权限错误、分页、重试、网络失败和输入校验没有覆盖;references 明确要求验证当前 API 和错误处理,但未提供实际验证证据。静态评估不支持超过 10 分。
触发词、Python SDK、Azure Container Registry 场景和同步/异步两种模式都写得较清楚,覆盖查询、更新、删除、下载和清理。扣分原因是没有明确非适用边界、所需 Azure 权限、网络/租户前置条件或输出约定;未提供中文使用指导,也没有证明在中国大陆网络和 Azure 区域环境中的可达性。
有结构化安装、环境变量、认证、操作示例、最佳实践、包名、MIT 许可证、作者和 1.0.0 版本,并通过 references 分层补充内容。扣分原因是没有 changelog、维护责任人、更新路径、兼容 SDK 版本、故障排查、FAQ 或明确的版本稳定性说明;部分引用仅要求用户自行核对当前 API。
技能能直接帮助生成常见 Container Registry Python 客户端代码,覆盖核心读取、属性更新、删除、manifest 下载、blob 下载、异步和清理流程,示例通常接近可用。扣分原因是代码片段缺少完整可运行上下文、输入和权限说明,删除流程没有确认或恢复设计,上传能力标题虽出现但实际示例主要是下载;静态读取无法验证 API 正确性。静态上限为 7 分。
仓库提供通用测试 harness、测试代码和 CI/Vally 评估工作流,说明项目存在一定可审计的质量机制;技能自身还提供操作索引和引用文件。扣分原因是给定材料没有该技能专属的 acceptance criteria、测试结果、真实执行记录或第三方交叉验证,因此只能给予有限静态证据分。静态上限为 5 分。
- 删除仓库或 manifest 的示例可能造成不可逆的数据丢失;生产使用前应增加明确确认、权限检查、备份或恢复策略。
- 示例未固定 azure-containerregistry 和 azure-identity 的兼容版本,也未展示具体 RBAC 权限和异常处理。
- Azure 服务可达性、租户配置和大陆网络条件未在材料中验证。
它能做什么 & 适用场景
该技能为 Azure Container Registry 的 Python SDK 提供可直接参考的操作模式。它覆盖仓库、标签和清单的查询、更新与删除,以及清单和 blob 的下载。内容同时提供同步和异步客户端示例,并推荐使用 Microsoft Entra ID 与 DefaultAzureCredential。适合需要在 Python 代码中维护 ACR 内容的开发者,但它不是完整的容器构建、推送或部署指南。
安装并使用 azure-containerregistry Python 包,配置 ACR endpoint 和相关凭据,列出仓库、标签和清单,读取或更新仓库及清单属性,删除仓库、标签或清单,并下载 manifest 与 blob。示例还展示了通过时间和标签状态筛选未使用清单并清理旧镜像。
- Python 开发者需要列出 Azure Container Registry 中的所有仓库和镜像元数据。
- 平台工程师需要锁定生产镜像,禁止删除或写入指定仓库和清单。
- 运维开发者需要删除旧标签,或按 digest 安全删除未标记的清单。
- 高吞吐 Python 服务需要使用异步客户端遍历仓库并下载制品。
- 需要访问公共注册表的开发者需要使用匿名 ContainerRegistryClient。
优缺点一览
- 覆盖仓库、标签、manifest 和 blob 下载等常见 ACR 管理操作。
- 同时提供同步与异步客户端模式。
- 明确推荐 DefaultAzureCredential、Entra ID 和确定性的资源清理。
- 包含按 digest 删除和清理未标记旧 manifest 的实践建议。
- 内容聚焦客户端操作,不涵盖镜像构建、推送、部署或完整权限配置。
- 示例依赖 Azure 服务、网络访问和本地文件写入。
- 未提供该技能自身的测试结果或支持的平台清单。
- README 的安装流程面向整个技能集合,单独安装此技能的步骤需要通过向导选择。
如何安装
安装技能集合:运行 npx skills add microsoft/skills,在向导中选择需要的技能;技能会安装到所选 Agent 的目录,例如 GitHub Copilot 的 .github/skills/。同时安装该技能示例所需的 Python 包:pip install azure-containerregistry。使用 Entra ID 示例时还需要 azure-identity。
如何使用
在兼容 Agent Skills 的编码代理中,将请求写成例如“使用 azure-containerregistry 和 ContainerRegistryClient 列出我的 ACR 仓库”或“清理 ACR 中超过 30 天且没有标签的 manifest”。代码中设置 AZURE_CONTAINERREGISTRY_ENDPOINT,使用 DefaultAzureCredential,并让同步或异步客户端处于对应的 context manager 中。具体权限配置、完整部署流程和测试套件未在该技能内容中说明。
对比同类
技能明确区分同步客户端与异步客户端:应在同一调用路径中选择一种模式并保持一致。对于认证,推荐 Microsoft Entra ID;公共注册表场景也可使用匿名访问。