

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS TNB 概念
<a name="tnb-concepts"></a>

本主题介绍一些基本概念，可帮助您开始使用 AWS TNB。

**Topics**
+ [网络功能的生命周期](#nf-lifecycle)
+ [使用标准化接口](#use-standardized-interfaces)
+ [功能包](#nf-packages)
+ [网络套餐](#network-package)
+ [AWS TNB 的管理和运营](#network-service-operations)

## 网络功能的生命周期
<a name="nf-lifecycle"></a>

AWS TNB 在网络功能的整个生命周期中为您提供帮助。网络功能生命周期包括以下阶段和活动：

**规划**  

1. 通过确定要部署的网络功能来规划您的网络。

1. 将网络功能软件映像放入容器映像存储库中。

1. 创建要部署或升级的 CSAR 包。

1. 使用 AWS TNB 上传定义您的网络功能的 CSAR 包（例如 CU AMF 和 UPF），并与持续集成和持续交付 (CI/CD) 管道集成，该管道可以帮助您在新的网络功能软件映像或客户脚本可用时创建 CSAR 包的新版本。

**配置**  

1. 确定部署所需的信息，例如计算类型、网络功能版本、IP 信息和资源名称。

1. 使用这些信息创建网络服务描述文件（NSD）。

1. 载入 NSDs 定义您的网络功能和网络功能实例化所需的资源。

**实例化**  

1. 创建网络功能所需的基础设施。

1. 按照 NSD 中的定义对网络功能进行实例化（或预置），然后开始传输流量。

1. 验证资产。

**生产**  
在网络功能的生命周期中，您会执行一系列生产操作，例如：  
+ 更新网络功能配置，例如，更新已部署的网络功能中的值。
+ 使用新的网络包和参数值更新网络实例。例如，更新网络包中的 Amazon EKS `version` 参数。

## 使用标准化接口
<a name="use-standardized-interfaces"></a>

AWS TNB 与符合欧洲电信标准协会 (ETSI) 标准的服务协调器集成，使您能够简化网络服务的部署。服务协调器可以使用 AWS TNB SDKs、CLI 或 the APIs 来启动操作，例如实例化网络功能或将网络功能升级到新版本。

AWS TNB 支持以下规格。


|  规范 | 发布版本 | 描述 | 
| --- | --- | --- | 
|  ETSI SOL001  |   [v3.6.1](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/001/03.06.01_60/gs_NFV-SOL001v030601p.pdf)   |  定义允许使用基于 TOSCA 的网络功能描述文件的标准。  | 
|  ETSI SOL002  |   [v3.6.1](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.06.01_60/gs_NFV-SOL002v030601p.pdf)   |  围绕网络功能管理定义模型。  | 
|  ETSI SOL003  |   [v3.6.1](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.06.01_60/gs_NFV-SOL003v030601p.pdf)   |  定义网络功能生命周期管理的标准。  | 
|  ETSI SOL004  |   [v3.6.1](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/004/03.06.01_60/gs_NFV-SOL004v030601p.pdf)   |  定义网络功能包的 CSAR 标准。  | 
|  ETSI SOL005  |   [v3.6.1](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_NFV-SOL005v030601p.pdf)   |  定义网络服务包和网络服务生命周期管理的标准。  | 
|  ETSI SOL007  |   [v3.5.1](https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/007/03.05.01_60/gs_NFV-SOL007v030501p.pdf)   |  定义允许使用基于 TOSCA 的网络服务描述文件的标准。  | 

## 功能包
<a name="nf-packages"></a>

使用 AWS TNB，您可以将符合 ETSI SOL001/SOL004 的函数包存储到函数目录中。然后，您可以上传包含描述您的虚拟网络功能的构件的云服务存档 (CSAR) 软件包。
+ 虚拟网络功能描述符 — 定义软件包载入和虚拟网络功能管理的元数据。您必须将此文件命名为 `vnfd.yaml`。
+ 软件镜像 — 引用虚拟网络功能容器镜像。Amazon Elastic Container Registry (Amazon ECR) 可以充当您的虚拟网络功能镜像存储库。
+ 其他文件-用于管理虚拟网络功能；例如脚本和 Helm 图表。

CSAR 是一个由 OASIS TOSCA 标准定义的软件包，包括一个符合 OASIS TOSCA YAML 规范的网络/服务描述符。有关所需的 YAML 规范的信息，请参阅[TNB 的 TOSCA 参考文献 AWS](tosca-reference.md)。

以下是虚拟网络函数描述符的示例。

```
tosca_definitions_version: tnb_simple_yaml_1_0

topology_template:

  node_templates:

    SampleNF:
      type: tosca.nodes.AWS.VNF
      properties:
        descriptor_id: "SampleNF-descriptor-id"
        descriptor_version: "2.0.0"
        descriptor_name: "NF 1.0.0"
        provider: "SampleNF"
      requirements:
        helm: HelmChart

    HelmChart:
      type: tosca.nodes.AWS.Artifacts.Helm
      properties:
        implementation: "./SampleNF"
```

## 网络套餐
<a name="network-package"></a>

网络包是 CSAR（云服务存档）格式的`.zip`文件。它定义了您要部署的功能包以及要部署它们的基础 AWS 架构。

网络包包含以下文件：
+ TOSCA 格式的网络描述符文件 (`nsd.yaml`)，如 ETSI SOL007 所述。

  该`nsd.yaml`文件包含对上传的[函数包](https://docs.aws.amazon.com/tnb/latest/ug/tnb-concepts.html#nf-packages)及其描述符 IDs的引用。
+ 用户数据脚本（如果有）。
+ 生命周期挂钩脚本（如果有）。
+ 插件的`values.yaml`配置文件（如果有）。

AWS TNB 支持使用 TOSCA 语言对网络、服务和功能等资源进行建模的 ETSI 标准。 AWS TNB 以符合 ETSI 标准的服务 AWS 服务 协调器可以理解的方式对其进行建模，从而提高您的使用效率。

### TNB 的网络服务描述符 AWS
<a name="tnb-descriptors"></a>

网络服务描述文件（NSD）是网络包中的一个 `.yaml` 文件，它使用 TOSCA 标准来描述要部署的网络功能以及要在其上部署网络功能的 AWS 基础架构。要定义您的 NSD 并配置底层资源和网络生命周期操作，您必须了解 TNB 支持的 NSD TOSCA 架构。 AWS 

NSD 文件分为以下几个部分：

1. **TOSCA 定义版本** – 这是 NSD YAML 文件的第一行，包含版本信息，如以下示例所示。

   ```
   tosca_definitions_version: tnb_simple_yaml_1_0
   ```

1. **VNFD** – NSD 包含要在其上执行生命周期操作的网络功能的定义。必须使用以下值来标识每个网络功能：
   + 用于 `descriptor_id` 的唯一 ID。该 ID 必须与网络功能 CSAR 包中的 ID 相匹配。
   + 用于 `namespace` 的唯一名称。该名称必须与唯一 ID 相关联，以便在整个 NSD YAML 文件中更容易引用，如以下示例所示。

   ```
   vnfds:
     - descriptor_id: "61465757-cb8f-44d8-92c2-b69ca0de025b"
       namespace: "amf"
   ```

1. **拓扑模板** – 定义要部署的资源、网络功能部署以及任何自定义脚本，例如生命周期挂钩。如以下示例所示。

   ```
   topology_template:
   
     node_templates:
   
       SampleNS:
         type: tosca.nodes.AWS.NS
         properties:
           descriptor_id: "<Sample Identifier>"
           descriptor_version: "<Sample nversion>"
           descriptor_name: "<Sample name>"
   ```

1. **其它节点** – 每个建模的资源都有属性和要求部分。属性部分描述了资源的可选或必备属性，例如版本。要求部分描述了必须作为参数提供的依赖项。例如，要创建 Amazon EKS 节点组资源，必须在 Amazon EKS 集群中创建该资源。如以下示例所示。

   ```
   SampleEKSNode:
     type: tosca.nodes.AWS.Compute.EKSManagedNode
     properties:
       node_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleRole"
     capabilities:
       compute:
         properties:
           ami_type: "AL2_x86_64"
           instance_types:
             - "t3.xlarge"
           key_pair: "SampleKeyPair"
       scaling:
         properties:
           desired_size: 1
           min_size: 1
           max_size: 1
     requirements:
       cluster: SampleEKS
       subnets:
         - SampleSubnet
       network_interfaces:
         - SampleENI01
         - SampleENI02
   ```

#### 示例 NSD
<a name="w2aab9c13c11b9"></a>

以下是展示如何建模的 NSD 片段。 AWS 服务网络功能将部署在使用 Kubernetes 版本 1.27 的 Amazon EKS 集群上。应用程序的子网是 Subnet01 和 Subnet02。然后，您可以使用 Amazon 系统映像 (AMI)、实例类型和自动扩展配置为您的应用程序定义。 NodeGroups 

```
tosca_definitions_version: tnb_simple_yaml_1_0

SampleNFEKS:
  type: tosca.nodes.AWS.Compute.EKS
  properties:
    version: "1.27"
    access: "ALL"
    cluster_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleClusterRole"
  capabilities:
    multus:
      properties:
        enabled: true
  requirements:
    subnets:
      - Subnet01
      - Subnet02

SampleNFEKSNode01:
  type: tosca.nodes.AWS.Compute.EKSManagedNode
  properties:
    node_role: "arn:aws:iam::${AWS::TNB::AccountId}:role/SampleNodeRole"
  capabilities:
    compute:
      properties:
        ami_type: "AL2_x86_64"
        instance_types:
          - "t3.xlarge"
        key_pair: "SampleKeyPair"
    scaling:
      properties:
        desired_size: 3
        min_size: 2
        max_size: 6
  requirements:
    cluster: SampleNFEKS
    subnets:
      - Subnet01
    network_interfaces:
      - ENI01
      - ENI02
```

## AWS TNB 的管理和运营
<a name="network-service-operations"></a>

借 AWS 助 TNB，您可以使用符合 ETSI SOL003 和 SOL005 的标准化管理操作来管理您的网络。您可以使用 AWS TNB APIs 执行生命周期操作，例如：
+ 实例化网络功能。
+ 终止网络功能。
+ 更新网络功能以覆盖 Helm 部署。
+ 使用新的网络包和参数值更新实例化或更新的网络实例。
+ 管理网络功能包的版本。
+ 管理您的版本 NSDs.
+ 检索有关您部署的网络功能的信息。