你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:将 Ubuntu 虚拟机 (VM) 发布为虚拟化网络功能 (VNF)

本快速入门介绍了如何使用 az aosm Azure CLI 扩展创建和发布基本网络功能定义。 其目的是演示发布服务器 Azure 运营商服务管理器 (AOSM) 资源的工作流。 此处介绍的基本概念旨在帮助用户构建更令人兴奋的服务。

先决条件

创建输入文件

执行以下命令,以生成网络功能定义 (NFD) 的输入配置文件。

az aosm nfd generate-config --definition-type vnf

执行此命令后,会生成一个 input.json 文件。

注意

编辑 input.json 文件,将其中的内容替换为示例中显示的值。 将文件另存为“input-vnf-nfd.json”

下面是一个示例 input-vnf-nfd.json 文件:

{ 
    "publisher_name": "ubuntu-publisher", 
    "publisher_resource_group_name": "ubuntu-publisher-rg", 
    "nf_name": "ubuntu-vm", 
    "version": "1.0.0", 
    "acr_artifact_store_name": "ubuntu-acr", 
    "location": "uksouth", 
    "blob_artifact_store_name": "ubuntu-blob-store", 
    "image_name_parameter": "imageName", 
    "arm_template": { 
        "file_path": "ubuntu-template.json", 
        "version": "1.0.0" 
    }, 
    "vhd": { 
        "file_path": "livecd.ubuntu-cpc.azure.vhd", 
        "version": "1-0-0",
        "image_disk_size_GB": 30,
        "image_hyper_v_generation": "V1",
        "image_api_version": "2023-03-01"
    } 
} 
变量 说明
publisher_name 要将定义发布到的发布服务器资源的名称。 如果不存在,则创建一个。
publisher_resource_group_name 发布服务器资源的资源组。 如果不存在,则创建一个。
acr_artifact_store_name ACR 项目存储资源的名称。 如果不存在,则创建一个。
location 创建资源时要使用的 Azure 位置。
nf_name NF 定义的名称。
version A.B.C 格式的 NF 定义版本。
blob_artifact_store_name 存储帐户项目存储资源的名称。 如果不存在,则创建一个。
image_name_parameter VM ARM 模板中的参数名称,指定要用于 VM 的映像的名称。
arm_template artifact_name:项目的名称。
file_path:可选。 要从本地磁盘上传的项目的文件路径。 如果不需要,请删除。 相对路径是相对于配置文件的。 在 Windows 上,请另外使用一个反斜杠来转义所有反斜杠。
version:项目的版本。 对于 ARM 模板,版本必须采用 A.B.C 格式。
vhd artifact_name:项目的名称。
file_path:可选。 要从本地磁盘上传的项目的文件路径。 如果不需要,请删除。 相对路径是相对于配置文件的。 在 Windows 上,请另外使用一个反斜杠来转义所有反斜杠。
blob_sas_url:可选。 要复制到项目存储的 Blob 项目的 SAS URL。 如果不需要,请删除。
version:项目的版本。 项目的版本。 对于 VHD,版本必须采用 A-B-C 格式。
“image_disk_size_GB:可选。 指定空数据磁盘的大小(以 GB 为单位)。 此值不能大于 1023 GB。 如果不需要,请删除。
image_hyper_v_generation:可选。 指定从映像创建的 VirtualMachine 的 HyperVGenerationType。 有效值为 V1 和 V2。 如果未指定 V1,则为默认值。 如果不需要,请删除。
image_api_version:可选。 用于创建 Microsoft.Compute/images 资源的 ARM API 版本。 如果不需要,请删除。

注意

使用 file_path 选项时,必须具有具有足够带宽的可靠 Internet 连接,因为上传持续时间可能因文件大小而异。

重要

上表中所述的每个变量都必须是唯一的。 例如,资源组名称不能已经存在,发布服务器和项目存储名称在区域中必须是唯一的。

构建网络功能定义 (NFD)

若要构造网络功能定义 (NFD),请启动构建过程。

az aosm nfd build -f input-vnf-nfd.json --definition-type vnf

构建完成后,检查生成的文件,以便更好地了解网络功能定义 (NFD) 的结构。

以下文件将在名为“nfd-bicep-ubuntu-template”的子目录中创建:

文件 说明
configMappings 该目录中包含的文件可将网络功能定义版本 (NFDV) 的部署参数映射到虚拟机 (VM) ARM 模板所需的参数。
schemas 该目录中包含的文件可定义从该网络功能定义版本 (NFDV) 创建网络功能 (NF) 所需的部署参数。
vnfartifactmanifests.bicep 用于创建项目清单的 bicep 模板。
Vnfdefinition.bicep 用于创建网络功能定义版本 (NFDV) 本身的 bicep 模板。

注意

如果出错,唯一可选的更正方法是重新运行采用了正确选择的命令。

发布网络功能定义并上传项目

执行以下命令以发布网络功能定义 (NFD) 并上传关联的项目:

az aosm nfd publish -f input-vnf-nfd.json --definition-type vnf

命令完成后,检查发布服务器资源组中的资源,以观察创建的组件和项目。

将创建以下资源:

资源名称 资源类型
ubuntu-vm-nfdg 网络功能定义。
1.0.0 网络功能定义版本。
ubuntu-publisher Publisher。
ubuntu-vm-acr-manifest-1-0-0 发布服务器项目清单。
ubuntu-vm-sa-manifest-1-0-0 发布服务器项目清单。
ubuntu-acr 发布服务器项目存储。
ubuntu-blob-store 发布服务器项目存储。

注意

创建项目存储大约需要 10 分钟。 如果相应资源已存在,则该过程要快得多。

后续步骤