

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 在 AWS TNB 中更新網路執行個體
<a name="update-network-instance"></a>

執行個體化網路執行個體之後，您可能需要更新基礎設施或應用程式。若要這樣做，請更新網路執行個體的網路套件和參數值，並部署更新操作以套用變更。

## 考量事項
<a name="update-considerations"></a>
+ 您可以更新處於 `Instantiated`或 `Updated` 狀態的網路執行個體。
+ 當您更新網路執行個體時，`UpdateSolNetworkService`API 會使用新的網路套件和參數值來更新網路執行個體的拓撲。
+ AWS TNB 會驗證網路執行個體中的 NSD 和 VNFD 參數數量不超過 200。強制執行此限制，以防止惡意人士傳遞影響服務的錯誤或巨型承載。

## 您可以更新的參數
<a name="update-parameters"></a>

您可以在更新執行個體化網路執行個體時更新下列參數：


| 參數 | Description | 範例：之前 | 範例： 之後 | 
| --- | --- | --- | --- | 
| Amazon EKS 叢集版本 | 您可以將 Amazon EKS 叢集控制平面`version`參數的值更新為下一個次要版本。您無法降級版本。 |  <pre>EKSCluster:<br />    type: tosca.nodes.AWS.Compute.EKS<br />    properties:<br />      version: "{{1.28}}"</pre> |  <pre>EKSCluster:<br />    type: tosca.nodes.AWS.Compute.EKS<br />    properties:<br />      version: "{{1.29}}"</pre> | 
| Amazon EKS 工作者節點 | 您可以更新 `EKSManagedNode kubernetes_version` 參數的值，將節點群組升級至較新的 Amazon EKS 版本，或更新 `ami_id` 參數，將節點群組升級至最新的 EKS 最佳化 AMI。<br />您可以更新 的 AMI ID`EKSSelfManagedNode`。AMI 的 Amazon EKS 版本必須與 Amazon EKS 叢集版本相同或低於 2 個版本。例如，如果 Amazon EKS 叢集版本為 1.31，則 Amazon EKS AMI 版本必須為 1.31、1.30 或 1.29。 |  <pre>EKSManagedNodeGroup01:<br />    ...<br />    properties:<br />      kubernetes_version: "{{1.28}}"<br />    EKSSelfManagedNode01:<br />      compute:<br />        compute:<br />          properties:<br />            ami_id: "{{ami-123123OLD}}"</pre> |  <pre>EKSManagedNodeGroup01:<br />    ...<br />    properties:<br />      kubernetes_version: "{{1.29}}"<br />    EKSSelfManagedNode01:<br />      compute:<br />        compute:<br />          properties:<br />            ami_id: "{{ami-123123NEW}}"</pre> | 
| Amazon EKS 節點群組 | 您可以根據您的運算需求新增或移除節點群組。<br />刪除現有節點群組並新增節點群組時，請確保新節點群組的 IDs 與已刪除節點群組不同，否則操作會被視為節點群組修改，而不是刪除和新增。請注意，對於現有的節點群組，只能更新一組有限的參數。捲動此資料表以查看您可以更新的參數。 |  <pre>Free5GCEKSNode01:<br />  type: tosca.nodes.AWS.Compute.EKSManagedNode<br />  ...<br />    scaling:<br />      properties:<br />        desired_size: 1<br />        min_size: 1<br />        max_size: 1<br />  ...<br />{{Free5GCEKSNode02}}: # Deleted Nodegroup<br />  type: tosca.nodes.AWS.Compute.EKSManagedNode<br />  ...<br />    scaling:<br />      properties:<br />        desired_size: 1<br />        min_size: 1<br />        max_size: 1<br />  ...<br />{{Free5GCEKSNode03}}: # Deleted Nodegroup  <br />  type: tosca.nodes.AWS.Compute.EKSSelfManagedNode<br />  ...<br />    scaling:<br />      properties:<br />        desired_size: 1<br />        min_size: 1<br />        max_size: 1<br />  ...</pre> | <pre>Free5GCEKSNode01:<br />  type: tosca.nodes.AWS.Compute.EKSManagedNode<br />  ...<br />    scaling:<br />      properties:<br />        desired_size: 1<br />        min_size: 1<br />        max_size: 1<br />  ...<br />{{Free5GCEKSNode04}}: # New Nodegroup<br />  type: tosca.nodes.AWS.Compute.EKSSelfManagedNode<br />  ...<br />    scaling:<br />      properties:<br />        desired_size: 1<br />        min_size: 1<br />        max_size: 1<br />  ...<br />{{Free5GCEKSNode05}}: # New Nodegroup  <br />  type: tosca.nodes.AWS.Compute.EKSManagedNode<br />  ...<br />    scaling:<br />      properties:<br />        desired_size: 1<br />        min_size: 1<br />        max_size: 1<br />  ...</pre> | 
| 擴展屬性 | 您可以更新 `EKSManagedNode`和 `EKSSelfManagedNode` TOSCA 節點的擴展屬性。 |  <pre>EKSNodeGroup01:<br />    ...<br />    scaling:<br />        properties:<br />            desired_size: {{1}}<br />            min_size: {{1}}<br />            max_size: {{1}}</pre>  |  <pre>EKSNodeGroup01:<br />    ...<br />    scaling:<br />        properties:<br />            desired_size: {{2}}<br />            min_size: {{0}}<br />            max_size: {{2}}</pre>  | 
| Amazon EBS CSI 外掛程式屬性 | 您可以在 Amazon EKS 叢集上啟用或停用 Amazon EBS CSI 外掛程式。您也可以變更外掛程式版本。 |  <pre>EKSCluster:<br />  capabilities:<br />   ...<br />    ebs_csi:<br />      properties:<br />        enabled: {{false}}</pre>  |  <pre>EKSCluster:<br />  capabilities:<br />   ...<br />    ebs_csi:<br />      properties:<br />        enabled: {{true}}<br />        version: "{{v1.30.0-eksbuild.1}}"</pre>  | 
| 根磁碟區大小 | 您可以新增、移除或更新 EKSManagedNode 和 EKSSelfManagedNode TOSCA 節點的根磁碟區大小屬性。 |  <pre>Free5GCEKSNode01:<br />      ...<br />      capabilities:        <br />        compute:<br />          properties:<br />            root_volume_size: {{50}}</pre>  |  <pre>Free5GCEKSNode01:<br />      ...<br />      capabilities:<br />        compute:<br />          properties:            <br />            root_volume_size: {{100}}</pre>  | 
| VNF | 您可以在 NSD 中參考 VNFs並使用 VNFDeployment TOSCA 節點將其部署至在 NSD 中建立的叢集。在更新過程中，您將能夠新增、更新和刪除網路的 VNFs。 |  <pre>vnfds:<br />  - descriptor_id: "{{43c012fa-2616-41a8-a833-0dfd4c5a049e}}"<br />    namespace: "{{vnf1}}"<br />  - descriptor_id: "{{64222f98-ecd6-4871-bf94-7354b53f3ee5}}"<br />    namespace: "{{vnf2}}" // Deleted VNF<br />...<br />SampleVNF1HelmDeploy:<br />      type: tosca.nodes.AWS.Deployment.VNFDeployment<br />      requirements:<br />        cluster: EKSCluster<br />        vnfs:<br />          - {{vnf1.SampleVNF1}}<br />          - {{vnf2.SampleVNF2}}</pre>  |  <pre>vnfds:<br />  - descriptor_id: "{{59f77222-79e9-4dc1-be53-5712ad06e31b}}"<br />    namespace: "{{vnf1}}" // Updated VNF<br />  - descriptor_id: "{{b7e072dc-839d-4fac-916c-561a166da1fc}}"<br />    namespace: "{{vnf3}}" // Added VNFn<br />....<br />SampleVNF1HelmDeploy:<br />      type: tosca.nodes.AWS.Deployment.VNFDeployment<br />      requirements:<br />        cluster: EKSCluster<br />        vnfs:<br />          - {{vnf1.SampleVNF1}}<br />          - {{vnf3.SampleVNF3}}</pre>  | 
| 勾點 | 若要在建立網路函數之前和之後執行生命週期操作，請將 `pre_create`和 `post_create`掛鉤新增至`VNFDeployment`節點。<br />在此範例中，`PreCreateHook`掛鉤會在 執行個體化`vnf3.SampleVNF3`之前執行，而掛`PostCreateHook`鉤會在 `vnf3.SampleVNF3` 執行個體化之後執行。 |  <pre>vnfds:<br />  - descriptor_id: "{{43c012fa-2616-41a8-a833-0dfd4c5a049e}}"<br />    namespace: "{{vnf1}}"<br />  - descriptor_id: "{{64222f98-ecd6-4871-bf94-7354b53f3ee5}}"<br />    namespace: "{{vnf2}}"<br />...<br />SampleVNF1HelmDeploy:<br />  type: tosca.nodes.AWS.Deployment.VNFDeployment<br />  requirements:<br />    cluster: EKSCluster<br />    vnfs:<br />      - {{vnf1.SampleVNF1}}<br />      - {{vnf2.SampleVNF2}} // Removed during update</pre>  |  <pre>vnfds:<br />  - descriptor_id: "{{43c012fa-2616-41a8-a833-0dfd4c5a049e}}"<br />    namespace: "{{vnf1}}"<br />  - descriptor_id: "{{b7e072dc-839d-4fac-916c-561a166da1fc}}"<br />    namespace: "{{vnf3}}"<br />....<br /><br />SampleVNF1HelmDeploy:<br />  type: tosca.nodes.AWS.Deployment.VNFDeployment<br />  requirements:<br />    cluster: EKSCluster<br />    vnfs:<br />      - {{vnf1.SampleVNF1}} // No change to this function, as the namespace and uuid remain the same<br />      - {{vnf3.SampleVNF3}} // New VNF as the namespace, vnf3, was not previously present<br />  interfaces:<br />    Hook:<br />      post_create: {{PostCreateHook}}<br />      pre_create: {{PreCreateHook}}</pre>  | 
| 勾點 | 若要在更新網路函數之前和之後執行生命週期操作，您可以將`pre_update`勾點和`post_update`勾點新增至`VNFDeployment`節點。<br />在此範例中， `PreUpdateHook`會在 更新前執行`vnf1.SampleVNF1`，`PostUpdateHook`並在 `vnf1.SampleVNF1` 更新至命名空間 vnf1 更新 所指示`uuid`的`vnf`套件後執行。 |  <pre>vnfds:<br />  - descriptor_id: "{{43c012fa-2616-41a8-a833-0dfd4c5a049e}}"<br />    namespace: "{{vnf1}}"<br />  - descriptor_id: "{{64222f98-ecd6-4871-bf94-7354b53f3ee5}}"<br />    namespace: "{{vnf2}}"<br />...<br /><br />SampleVNF1HelmDeploy:<br />  type: tosca.nodes.AWS.Deployment.VNFDeployment<br />  requirements:<br />    cluster: EKSCluster<br />    vnfs:<br />      - {{vnf1.SampleVNF1}}<br />      - {{vnf2.SampleVNF2 }}<br /></pre>  |  <pre>vnfds:<br />  - descriptor_id: "{{0ebe4e95-bd87-44bd-b8a1-918466606a14}}"<br />    namespace: "{{vnf1}}"<br />  - descriptor_id: "{{64222f98-ecd6-4871-bf94-7354b53f3ee5}}"<br />    namespace: "{{vnf2}}"<br /><br />...<br /><br />SampleVNF1HelmDeploy:<br />  type: tosca.nodes.AWS.Deployment.VNFDeployment<br />  requirements:<br />    cluster: EKSCluster<br />    vnfs:<br />      - {{vnf1.SampleVNF1}} // A VNF update as the uuid changed for namespace "vnf1"<br />      - {{vnf2.SampleVNF2}} // No change to this function as namespace and uuid remain the same<br />  interfaces:<br />    Hook:<br />      pre_update: {{PreUpdateHook}}<br />      post_update: {{PostUpdateHook}}</pre>  | 
| 子網路 | 您可以從網路新增和刪除子網路。刪除子網路之前，請確認網路中的任何資源都不會使用該子網路。 |  <pre>{{Free5GCSubnet01}}: #Deleted Subnet<br />  type: tosca.nodes.AWS.Networking.Subnet<br />  properties:<br />    type: "PUBLIC"<br />    availability_zone: { get_input: subnet_01_az }<br />    cidr_block: { get_input: subnet_01_cidr_block }<br />  requirements:<br />    route_table: Free5GCRouteTable<br />    vpc: Free5GCVPC</pre>  |  <pre>{{Free5GCSubnet02}}: #New Subnet<br />  type: tosca.nodes.AWS.Networking.Subnet<br />  properties:<br />    type: "PUBLIC"<br />    availability_zone: { get_input: subnet_02_az }<br />    cidr_block: { get_input: subnet_02_cidr_block }<br />  requirements:<br />    route_table: Free5GCRouteTable<br />    vpc: Free5GCVPC</pre>  | 
| Security groups (安全群組) | 您可以從網路新增和刪除安全群組。刪除安全群組之前，請確認網路中的任何資源都不會使用該安全群組。 |  <pre>{{Free5GCSecurityGroup01}}: #Deleted Security Group<br />  type: tosca.nodes.AWS.Networking.SecurityGroup<br />  properties:<br />    description: "SecurityGroup for Free5GC cluster"<br />    name: "Free5GCSecurityGroup01"<br />    tags:<br />      - "Name=Free5GCEKSAdditionalSecurityGroup"<br />  requirements:<br />    vpc: Free5GCVPC<br /><br />{{Free5GCSecurityGroupEgressRule01}}: #Deleted Security Group Egress Node<br />  type: tosca.nodes.AWS.Networking.SecurityGroupEgressRule<br />  properties:<br />    ip_protocol: "tcp"<br />    from_port: 8000<br />    to_port: 9000<br />    description: "Egress Rule for free5GC cluster"<br />    cidr_ip : "172.10.10.1/24"<br />  requirements:<br />    security_group: Free5GCSecurityGroup01<br /><br />{{Free5GCSecurityGroupIngressRule01}}: #Deleted Security Group Ingress Node<br />  type: tosca.nodes.AWS.Networking.SecurityGroupIngressRule<br />  properties:<br />    ip_protocol: "tcp"<br />    from_port: 8000<br />    to_port: 9000<br />    description: "Ingress Rule for free5GC cluster"<br />    cidr_ip: "172.10.10.1/24"<br />  requirements:<br />    security_group: Free5GCSecurityGroup01</pre>  |  <pre>{{Free5GCSecurityGroup02}}: #New Security Group<br />  type: tosca.nodes.AWS.Networking.SecurityGroup<br />  properties:<br />    description: "SecurityGroup for Free5GC cluster"<br />    name: "Free5GCSecurityGroup02"<br />    tags:<br />      - "Name=Free5GCEKSAdditionalSecurityGroup"<br />  requirements:<br />    vpc: Free5GCVPC<br />   <br />{{Free5GCSecurityGroupEgressRule02}}: #New Security Group Egress Node<br />  type: tosca.nodes.AWS.Networking.SecurityGroupEgressRule<br />  properties:<br />    ip_protocol: "tcp"<br />    from_port: 8000<br />    to_port: 9000<br />    description: "Egress Rule for free5GC cluster"<br />    cidr_ip: "172.10.10.1/24"<br />  requirements:<br />    security_group: Free5GCSecurityGroup02<br />   <br />{{Free5GCSecurityGroupIngressRule02}}: #New Security Group Ingress Node<br />  type: tosca.nodes.AWS.Networking.SecurityGroupIngressRule<br />  properties:<br />    ip_protocol: "tcp"<br />    from_port: 8000<br />    to_port: 9000<br />    description: "Ingress Rule for free5GC cluster"<br />    cidr_ip: "172.10.10.1/24"<br />  requirements:<br />    security_group: Free5GCSecurityGroup02</pre>  | 
| 網路介面 | 您可以從網路新增、修改和刪除 ENIs。 |  <pre>Free5GCENI01: #Modified ENI<br />  type: tosca.nodes.AWS.Networking.ENI<br />  properties:<br />    device_index: 2<br />  requirements:<br />    subnet: {{Free5GCENISubnet01}}<br />    security_groups:<br />      - Free5GCSecurityGroup01<br /><br />Free5GCENI02: #Modified ENI<br />  type: tosca.nodes.AWS.Networking.ENI<br />  properties:<br />    device_index: 3<br />    source_dest_check: true<br />  requirements:<br />    subnet: Free5GCENISubnet01<br /><br />{{Free5GCENI04}}: #Deleted ENI<br />  type: tosca.nodes.AWS.Networking.ENI<br />  properties:<br />    device_index: 4<br />    source_dest_check: true<br />  requirements:<br />    subnet: Free5GCENISubnet01<br /></pre>  |  <pre>Free5GCENI01: #Modified ENI<br />  type: tosca.nodes.AWS.Networking.ENI<br />  properties:<br />    device_index: 2<br />  requirements:<br />    subnet: {{Free5GCENISubnet02}}<br />    security_groups:<br />      - Free5GCSecurityGroup01<br /><br />Free5GCENI02: #Modified ENI<br />  type: tosca.nodes.AWS.Networking.ENI<br />  properties:<br />    device_index: 3<br />    source_dest_check: true<br />  requirements:<br />    subnet: Free5GCENISubnet01<br />    {{security_groups:}}<br />      {{- Free5GCSecurityGroup01}}<br /><br />{{Free5GCENI03}}: #New ENI<br />  type: tosca.nodes.AWS.Networking.ENI<br />  properties:<br />    device_index: 3<br />  requirements:<br />    subnet: Free5GCSubnet01<br />    security_groups:<br />      - Free5GCSecurityGroup01</pre>  | 

## 更新網路執行個體
<a name="update-network-instance-steps"></a>

------
#### [ Console ]

**使用主控台更新網路執行個體**

1. 在 https：//[https://console.aws.amazon.com/tnb/](https://console.aws.amazon.com/tnb/) 開啟 AWS TNB 主控台。

1. 在導覽窗格中，選擇**網路**。

1. 選取網路執行個體。只有在網路執行個體的狀態為 `Instantiated`或 時，您才能更新網路執行個體`Updated`。

1. 選擇**動作**和**更新**。

   **更新執行個體**頁面會顯示網路詳細資訊，以及目前基礎設施中的參數清單。

1. 選擇新的網路套件。

   新網路套件中的參數會出現在**更新參數**區段中。

1. 或者，更新更新參數區段中的**參數**值。如需您可以更新的參數值清單，請參閱 [您可以更新的參數](#update-parameters)。

1. 選擇**更新網路**。

   AWS TNB 會驗證請求並啟動部署。**部署狀態**頁面隨即出現。

1. 使用**重新整理**圖示來追蹤網路執行個體的部署狀態。您也可以在**部署任務**區段中啟用**自動重新整理**，以追蹤每個任務的進度。

   當部署狀態變更為 時`Completed`，網路執行個體會更新。

1. 
   + 如果驗證失敗，網路執行個體會保持與請求更新之前相同的狀態 - `Instantiated`或 `Updated`。
   + 如果更新失敗，網路執行個體狀態會顯示 `Update failed`。選擇每個失敗任務的連結，以判斷原因。
   + 如果更新成功，網路執行個體狀態會顯示 `Updated`。

------
#### [ AWS CLI ]

**使用 CLI 更新網路執行個體**  
使用 [update-sol-network-instance](https://docs.aws.amazon.com/cli/latest/reference/tnb/update-sol-network-instance.html) 命令搭配`UPDATE_NS`更新類型來更新網路執行個體。

```
aws tnb update-sol-network-instance --ns-instance-id {{^ni-[a-f0-9]{17}$}} --update-type UPDATE_NS --update-ns "{\"nsdInfoId\":\"{{^np-[a-f0-9]{17}$}}\", \"additionalParamsForNs\": {\"{{param1}}\": \"{{value1}}\"}}"
```

------