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

快速入门:为 Ubuntu 虚拟机 (VM) 设计网络服务设计 (NSD) 作为虚拟化网络功能 (VNF)

本快速入门介绍如何使用 az aosm Azure CLI 扩展创建和发布基本网络服务设计。

先决条件

需要一个具有活动订阅的 Azure 帐户。 如果你没有 Azure 订阅,请按照此处的说明免费开始创建帐户,然后再开始。

你必须遵循快速入门:将 Ubuntu 虚拟机 (VM) 发布为虚拟网络功能 (VNF) 中的先决条件。

创建输入文件

创建用于发布网络服务设计的输入文件。 执行以下命令,以生成网络服务设计 (NSD) 的输入配置文件。

az aosm nsd generate-config

运行此命令时,将生成 nsd-input.jsonc 文件。

注意

编辑 nsd-input.jsonc 文件,将其中的内容替换为示例中显示的值。 删除 resource_element_type 设置为 ArmTemplate 的部分。 这是为了将基础结构(如 VNet)添加到更复杂的 NSD,本快速入门中不需要这样做。 将文件另存为 input-vnf-nsd.jsonc。

如果在发布 NFDV 时更改了发布者的名称,请将发布者名称用于 publisher_namepublisher 字段(后者位于 resource_element_templates 数组中)。

如果使用了不同的资源组名称,请更新 publisher_resource_group_namepublisher_resource_group 字段(后者位于 resource_element_templates 数组中)。

{
  // Azure location to use when creating resources e.g uksouth
  "location": "uksouth",
  // Name of the Publisher resource you want your definition published to.
  // Will be created if it does not exist.
  "publisher_name": "ubuntu-publisher",
  // Resource group for the Publisher resource.
  // You should create this before running the publish command.
  "publisher_resource_group_name": "ubuntu-publisher-rg",
  // Name of the ACR Artifact Store resource.
  // Will be created if it does not exist.
  "acr_artifact_store_name": "ubuntu-acr",
  // Network Service Design (NSD) name. This is the collection of Network Service Design Versions. Will be created if it does not exist.
  "nsd_name": "ubuntu-nsd",
  // Version of the NSD to be created. This should be in the format A.B.C
  "nsd_version": "1.0.0",
  // Optional. Description of the Network Service Design Version (NSDV).
  "nsdv_description": "Plain ubuntu VM",
  // List of Resource Element Templates (RETs).
  // There must be at least one NF RET.
  // ArmTemplate RETs are optional. Delete if not required.
  "resource_element_templates": [
      {
        // Type of Resource Element. Either NF or ArmTemplate
        "resource_element_type": "NF",
        "properties": {
            // The name of the existing publisher for the NSD.
            "publisher": "ubuntu-publisher",
            // The resource group that the publisher is hosted in.
            "publisher_resource_group": "ubuntu-publisher-rg",
            // The name of the existing Network Function Definition Group to deploy using this NSD.
            // This will be the same as the NF name if you published your NFDV using the CLI.
            "name": "ubuntu-vm",
            // The version of the existing Network Function Definition to base this NSD on.
            // This NSD will be able to deploy any NFDV with deployment parameters compatible with this version.
            "version": "1.0.0",
            // The region that the NFDV is published to.
            "publisher_offering_location": "uksouth",
            // Type of Network Function. Valid values are 'cnf' or 'vnf'.
            "type": "vnf"
        }
    }
  ]
}
变量 说明
publisher_name 要将定义发布到的发布服务器资源的名称。 如果不存在,则创建一个。
publisher_resource_group_name 发布服务器资源的资源组。 如果不存在,则创建一个。
acr_artifact_store_name Azure 容器注册表 (ACR) 项目存储资源的名称。 如果不存在,则创建一个。
location 创建资源时要使用的 Azure 位置。
network-functions publisher:以其名义发布此网络功能定义版本 (NFDV) 的发布者的名称。
publisher_resource_group:托管发布者的资源组。
name:要使用此 NSD 进行部署的现有网络函数定义组的名称。
version:要基于此 NSD 的现有网络函数定义的版本。 此 NSD 能够部署带有与此版本兼容的部署参数的任何 NFDV。
publisher_offering_location:NFDV 发布到的区域。
type:网络功能的类型。 有效值为 cnf 或 vnf。
nsd_name 网络服务设计组名称。 网络服务设计版本的集合。 如果它不存在,则创建它。
nsd_version 要创建的 NSD 的版本。 格式应为 A.B.C。
nsdv_description NSDV 的说明。

生成网络服务设计 (NSD)

使用以下命令启动网络服务设计 (NSD) 的生成过程:

az aosm nsd build --config-file input-vnf-nsd.jsonc

生成过程完成后,请查看下面这些生成的文件,以深入了解 NSD 的体系结构和结构。

这些文件创建在名为 nsd-cli-output 的子目录中:

目录/文件 说明
nsd-cli-output/artifactManifest
deploy.bicep 用于创建项目清单的 Bicep 模板,其中包含从输入文件填充的项目
nsd-cli-output/artifacts
artifacts.json 要在发布时上传的项目(图像和 ARM 模板)列表。 与项目清单相关联
nf-name.bicep<> 输入文件中提供的每个网络函数 (NF) RET 的 Bicep 模板,用于部署 NF。 运行发布命令时,此模板将转换为 ARM 模板并上传到项目存储
nsd-cli-output/base
deploy.bicep 用于创建此 NSD 组的所有 NSDV 共享的发布者、存储帐户和网络服务设计组的 Bicep 模板
nsd-cli-output/nsdDefinition
deploy.bicep 用于创建网络服务设计版本 (NSDV) 的 Bicep 模板。 此模板包含子资源元素模板,这些模板取自 nsd-input.jsonc 文件中定义的已发布 NF 或 ARM 模板(用于基础结构)
config-group-schema.json 此 NSDV 中所有 NF 的组合配置组架构。 此架构定义操作员在将 NSDV 部署为站点网络服务 (SNS) 的一部分时需要在配置组值中提供的输入。
nf-name-mappings.json<> 将操作员提供的配置组值映射到 NSDV 中定义的部署参数的文件。 NSDV 中每个 NF 有一个
nsd-cli-output
all_deploy.parameters.json 所有 NF 部署参数的超集,提供一个文件来自定义资源名称。 生成命令输出到此文件的值取自 nsd-input.jsonc 文件。 可以在运行发布之前编辑此文件中的值,例如发布到其他位置或使用其他发布者名称
index.json 发布资源时在内部使用的文件。 不编辑

发布网络服务设计 (NSD)

要发布网络服务设计 (NSD) 及其关联的项目,请发出以下命令:

az aosm nsd publish --build-output-folder nsd-cli-output

导航到发布服务器资源组,以观察并查看生成的资源和项目。

将创建以下资源:

资源名称 资源类型
ubuntu-nsd 网络服务设计。
1.0.0 (ubuntu-nsd/1.0.0) 网络服务设计版本。
ubuntu-nsd-nsd-manifest-1-0-0 发布服务器项目清单。
ConfigGroupSchema 配置组架构。

后续步骤