你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Azure 运营商服务管理器 (AOSM) 工件存储资源管理部署网络功能 (NF) 所需的工件。 这些项目包括容器化网络功能(CNF)映像、虚拟化网络函数(VNF)映像、Azure 资源管理器(ARM)模板和 Helm 包。 有两种工件存储:
- Azure 容器注册表 (ACR) - 用于为所有平台上的 CNF 提供存储,以及为 Azure 运营商 Nexus 上的 VNF 提供存储
- 存储帐户 - 用于为 Azure Core 上的 VNF 提供存储
Azure CLI AOSM 扩展提供了一个命令来推送 Azure 运营商关系上的 CNF 或 VNF 所需的所有工件。 在某些用例中,可能需要单独将工件推送到工件存储或从工件存储中拉取工件。
- 可能提供了错误的容器映像,需要推送单个替换映像
- 可能需要推送单个容器的新版本来修复问题
- 可能需要在调试周期中编辑 NF ARM 模板
- 可能需要在调试周期中编辑 helm 包或 VM ARM 模板
本 How-To 文章介绍如何使用 AOSM 项目清单资源和 ORAS 命令行工具将项目推送到现有 ACR 支持的项目存储,并从中拉取项目。 请参阅此操作方法,了解存储帐户支持的工件存储的等效文章。
先决条件
- 在 Azure 订阅上启用 AOSM
- 安装 Azure CLI
- 部署 Azure 容器注册表类型的工件存储资源
- 部署包含要安装的工件条目的工件清单资源。 此示例显示虚构的 Contoso CNF 容器映像的工件清单 Bicep 定义
resource acrArtifactManifest 'Microsoft.Hybridnetwork/publishers/artifactStores/artifactManifests@2023-09-01' = {
parent: 'contoso-cnf-store'
name: 'contoso-cnf-manifest'
___location: 'eastus'
properties: {
artifacts: [
{
artifactName: 'contoso-cnf-container'
artifactType: 'OCIArtifact'
artifactVersion: '0.1.0'
}
]
}
}
- (如果要下载项目)项目已在 AOSM 项目存储资源中可用
- (如果要上传项目)项目在从中执行本文中的命令的环境中可用
- 安装 ORAS CLI
- 你需要包含工件存储的资源组的参与者角色
登录到 ACR 支持的项目存储
从项目清单资源获取存储库范围的权限
az rest --method POST --url 'https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.HybridNetwork/publishers/<publisher>/artifactStores/<artifact-store-name>/artifactManifests/<artifact-manifest-name>/listCredential?api-version=2023-09-01'
此命令返回用户名和密码,此用户名和密码将用于登录到支持工件存储的 ACR。 密码位于
token
字段中。{ "acrServerUrl": "https://<acr-name>.azurecr.io", "acrToken": "<token>", "credentialType": "AzureContainerRegistryScopedToken", "expiry": "2024-03-27T10:25:03.9217887+00:00", "repositories": [ "<artifact-name>" ], "username": "<artifact-manifest-name>" }
重要
工件清单资源会针对推送和拉取操作授予范围界限严格的权限。 必须使用包含要推送或拉取的项目条目的项目清单。
artifactName
必须与存储库中的工件名称相符。artifactVersion
必须与工件标签匹配打开工件存储导航并复制
Backing storage
字段,找到支持工件存储资源的 ACR 的名称使用 ORAS CLI 登录到 ACR
oras login <acr-name>.azurecr.io --username <artifact-manifest-name> --password <token>
将工件推送到 ACR 支持的工件存储
- 使用 ORAS 将项目上传到 ACR。
<artifact-name>
必须与工件清单中的artifactName
属性匹配。<artifact-tag>
必须与工件清单中的artifactVersion
属性匹配。<artifact-tag>
必须采用1.0.0
格式
oras push <acr-name>.azurecr.io/<artifact-name>:<artifact-tag> </path/to/artifact>
从 ACR 支持的工件存储中拉取工件
- 使用 ORAS 从 ACR 拉取项目。
oras pull <acr-name>.azurecr.io/<artifact-name>:<artifact-tag>
后续步骤
- 有关 命令用法的详情,请参阅
oras push
- 请参阅 ORAS 拉取 以获取更详细的
oras pull
命令用法说明。