当前位置: 首页 > news >正文

【研发类-框架和库Skills】azure-containerregistry-py 技能

Azure Container Registry SDK for Python。用于管理容器镜像、制品和仓库。

技能概述

azure-containerregistry-py 技能提供了Azure Container Registry SDK for Python的完整使用指南。该技能帮助开发者管理Azure容器注册表中的容器镜像、制品和仓库,支持仓库操作、标签管理、清单操作和制品上传下载等功能。

下载地址:agentic-awesome-skills/skills/azure-containerregistry-py at main · sickn33/agentic-awesome-skills · GitHub

主要功能

  • 仓库管理: 列出、获取和删除容器镜像仓库
  • 标签操作: 列出、获取和删除镜像标签
  • 清单管理: 列出、获取、更新和删除镜像清单
  • 制品操作: 下载和上传容器制品
  • 权限管理: 设置镜像的读写和删除权限
  • 异步客户端: 支持异步操作提高性能

触发条件

在以下情况下应该调用此技能:

  • 需要管理Azure容器注册表中的镜像
  • 实现容器镜像的清理和维护
  • 管理容器镜像标签和清单
  • 下载或上传容器制品
  • 设置容器镜像的访问权限

安装方法

pip install azure-containerregistry

环境变量

AZURE_CONTAINERREGISTRY_ENDPOINT=https://<registry-name>.azurecr.io

使用示例

示例1: 创建客户端

from azure.containerregistry import ContainerRegistryClient
from azure.identity import DefaultAzureCredential

# 使用Entra ID(推荐)
client = ContainerRegistryClient(
endpoint=os.environ["AZURE_CONTAINERREGISTRY_ENDPOINT"],
credential=DefaultAzureCredential()
)

# 匿名访问(公共注册表)
client = ContainerRegistryClient(
endpoint="https://mcr.microsoft.com",
credential=None,
audience="https://mcr.microsoft.com"
)

示例2: 列出仓库和标签

# 列出所有仓库
for repository in client.list_repository_names():
print(repository)

# 列出标签
for tag in client.list_tag_properties("my-image"):
print(f"{tag.name}: {tag.created_on}")

# 按顺序过滤
from azure.containerregistry import ArtifactTagOrder

for tag in client.list_tag_properties(
"my-image",
order_by=ArtifactTagOrder.LAST_UPDATED_ON_DESCENDING
):
print(f"{tag.name}: {tag.last_updated_on}")

示例3: 清单操作

# 列出清单
from azure.containerregistry import ArtifactManifestOrder

for manifest in client.list_manifest_properties(
"my-image",
order_by=ArtifactManifestOrder.LAST_UPDATED_ON_DESCENDING
):
print(f"Digest: {manifest.digest}")
print(f"Tags: {manifest.tags}")
print(f"Size: {manifest.size_in_bytes}")

# 获取清单属性
manifest = client.get_manifest_properties("my-image", "latest")
print(f"Digest: {manifest.digest}")
print(f"Architecture: {manifest.architecture}")
print(f"OS: {manifest.operating_system}")

# 删除清单
client.delete_manifest("my-image", "sha256:abc123...")

示例4: 清理旧镜像

from datetime import datetime, timedelta, timezone

cutoff = datetime.now(timezone.utc) - timedelta(days=30)

for manifest in client.list_manifest_properties("my-image"):
if manifest.last_updated_on < cutoff and not manifest.tags:
print(f"Deleting {manifest.digest}")
client.delete_manifest("my-image", manifest.digest)

示例5: 异步客户端

from azure.containerregistry.aio import ContainerRegistryClient
from azure.identity.aio import DefaultAzureCredential

async def list_repos():
credential = DefaultAzureCredential()
client = ContainerRegistryClient(endpoint, credential)
async for repo in client.list_repository_names():
print(repo)
await client.close()
await credential.close()

客户端操作

操作描述
list_repository_names列出所有仓库
get_repository_properties获取仓库元数据
delete_repository删除仓库及所有镜像
list_tag_properties列出仓库中的标签
get_tag_properties获取标签元数据
delete_tag删除特定标签
list_manifest_properties列出仓库中的清单
get_manifest_properties获取清单元数据
delete_manifest按摘要删除清单
download_manifest下载清单内容
download_blob下载层blob

最佳实践

  1. 使用Entra ID: 生产环境中使用Entra ID进行身份验证
  2. 按摘要删除: 不要按标签删除以避免孤立镜像
  3. 锁定生产镜像: 使用can_delete=False保护生产镜像
  4. 定期清理未标记清单: 定期清理未标记的清单
  5. 使用异步客户端: 用于高吞吐量操作
  6. 按last_updated排序: 查找最近/旧的镜像
  7. 删除前检查manifest.tags: 避免删除已标记的镜像

限制说明

  • 仅当任务明确符合上述范围时使用此技能
  • 不要将输出视为环境特定验证、测试或专家审查的替代品
  • 如果缺少所需的输入、权限、安全边界或成功标准,请停止并寻求澄清
http://www.jsqmd.com/news/1392062/

相关文章:

  • 得物知识问答:复合检索 Agent 的系统设计实践
  • 2026 北京正规消杀公司合作指南:防制能力、服务流程与选择建议 - 中国华商产业观察网
  • 缠论插件实战避坑攻略:ChanlunX 让通达信自动画出笔、线段与中枢
  • 2026年广东高新技术企业合规认定热门服务机构选型参考 - 优质品牌中立测评推荐
  • 一台ROG笔记本与10MB的G-Helper:换掉官方控制软件后的完整记录
  • RPFM 模组编辑器全解析:用 Rust 打造一站式全面战争模组工具
  • 探秘玉溪市住房和城乡建设局网站:官方权威信息获取与生活服务一站式指南
  • Path of Building新手完整指南:三步上手流放之路离线Build规划神器
  • 跨平台Git可视化工具SourceGit部署与上手:4个场景、1张对照表,10分钟告别命令行焦虑
  • 保姆级B站视频下载器上手指南:用BilibiliDown一网打尽离线观看与批量下载
  • 毕业/评职冲刺首选!多本医学/综合/免疫领域新晋1区优质刊,低自引、初审极速反馈、录用宽松、国人占比超高,上岸难度极低、省钱、稳妥、出刊快
  • 网站建设哪家更专业,避坑指南与行业真相深度解析
  • 【研发类-开发方法论Skills】c4-code 技能
  • 2026 北京病媒生物防治正规服务商选型指南:服务流程、资质标准与避坑建议 - 中国华商产业观察网
  • 2026年厦门漳州泉州外墙防水补漏与翻新喷涂,渗水漏水怎么修? - LYL仔仔
  • 奢雅礼序质感塑造|高端奢华滋补礼盒包装设计实践|宏洛图设计 - 宏洛图品牌设计
  • redis与mysql差缺补漏-面试版持续更新
  • 043、君正T40超低功耗ISP的消费类影像适配——穿戴设备场景下的画质与功耗折中
  • STM32学习笔记——GPIO输出与输入
  • 2026瓷砖胶厂家推荐品牌大盘点 合规实力品牌甄选攻略 附合作避坑FAQ - 产业观察报
  • 软件授权接入成本怎么拆_SDK适配与离线流程
  • 网络安全,何以重要?一文读懂网络发展现状与网络信息安全认知框架
  • Keychron 推 C100 8K 巨型宏按键板:100 键矩阵+8000Hz 速率,售价 64.99 美元!
  • Windows系统文件sqlite3.dll丢失找不到问题解决
  • 2026年金华兰溪义乌大巴租赁与机场接送,出差怎么约? - LYL仔仔
  • 暑期轻创业迎来新机遇 夸克网盘暑期激励落地 任推邦赋能个体流量变现 - 城刊速递
  • Shopee、TikTok东南亚本土店做一件代发,分销ERP选哪个? - 商讯
  • 覆盖率 92% 仍然漏掉故障:用代码智能体、属性测试与变异分析建立反例工厂
  • 如何从零开始打造专业级海外站点深度解析国外网站建设软件选型指南
  • 免费光学模拟器亲测:在浏览器里玩转光线追踪,小白也能 5 分钟上手