Azure 容器注册表 Python SDK
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/azure-containerregistry-py。
技能介绍
要解决什么问题
在 CI/CD 或运维脚本里,你往往需要在 Azure Container Registry(ACR) 里查仓库、删旧 tag、按 digest 清理悬空清单,而不是只靠 az acr 或门户点选。本技能围绕官方 Azure Container Registry Python SDK,把仓库、标签、清单与 blob 层等 API 用法整理成可复用的操作路径,并强调 Microsoft Entra ID 与 DefaultAzureCredential 的鉴权方式。
技能如何组织能力
- 仓库与元数据:
list_repository_names、get_repository_properties、更新属性、整库删除。 - 标签与清单:列出/获取/删除 tag;列出 manifest、按 digest 删除、下载 manifest 内容;可按
last_updated等条件排序,便于找新旧镜像。 - 制品与层:
download_blob等下载路径,配合上传/下载制品场景。 - 运行方式:同步与 异步客户端 二选一;文档要求客户端与(异步)凭据都包在
with/async with里,避免连接与令牌缓存泄漏。 - 治理习惯:生产镜像可设
can_delete=False;删除前看manifest.tags;优先按 digest 删;定期清理无标签 manifest。
边界与注意点
技能聚焦 Python SDK 对注册表数据面的 CRUD 与下载,不包含 ACR 网络、私有端点、Geo-replication 等基础设施配置。匿名访问仅适用于公共注册表;生产环境应限定凭据链(如 AZURE_TOKEN_CREDENTIALS)。同一调用链不要混用同步 azure.containerregistry 与 azure.containerregistry.aio。更完整的非核心能力与检查清单见资料中的 references/capabilities.md 等参考文件。
使用场景
- CI 晋升镜像后,用脚本列出某仓库全部 tag,按 last_updated 删除已过保留期的旧 tag
- 发布前在流水线里按 digest 拉取并 download_manifest,核对清单与预期制品是否一致
- 每周定时任务列出无标签 manifest,按 digest 批量 delete_manifest 释放存储
- 新环境初始化时通过 get_repository_properties 检查 can_delete,对生产仓库设 can_delete=False 防误删
适合人员
- 负责多环境 ACR 存储与合规、需要把删 tag/清 manifest 写成可审计 Python 作业的运维平台工程师
- 维护 Python 发布流水线、要在部署阶段自动清理测试仓库镜像的 DevOps 工程师
- 按 digest 做镜像溯源与删除、避免只删 tag 留下悬空层的容器平台或 SRE
- 在内部制品门户里集成仓库/标签元数据查询、需调用 list_tag_properties 与 get_manifest_properties 的后端开发