

終止支援通知：將於 2026 年 10 月 7 日 AWS 結束對 的支援 AWS Proton。2026 年 10 月 7 日之後，您將無法再存取 AWS Proton 主控台或 AWS Proton 資源。您部署的基礎設施將保持不變。如需詳細資訊，請參閱[AWS Proton 服務棄用和遷移指南](https://docs.aws.amazon.com/proton/latest/userguide/proton-end-of-support.html)。

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

# 更新服務執行個體
<a name="ag-svc-instance-update"></a>

了解如何更新 AWS Proton 服務執行個體並取消更新。

服務執行個體屬於服務。您只能在服務[編輯](ag-svc-update.md)、[建立](ag-create-svc.md)和刪除動作的內容中建立[或刪除](ag-svc-delete.md)執行個體。若要了解如何從服務新增和移除執行個體，請參閱 [編輯服務](ag-svc-update.md)。

更新服務執行個體有四種模式，如下列清單所述。使用 時 AWS CLI， `deployment-type` 欄位會定義 模式。使用 主控台時，這些模式會對應至「**編輯**」和「**更新至最新的次要版本**」和「**更新至最新的主要版本**」動作，這些**動作**會從服務執行個體詳細資訊頁面的動作中下拉。

  
`NONE`  
在此模式中，*不會*發生部署。只會更新請求的中繼資料參數。

  
`CURRENT_VERSION`  
在此模式中，會使用您提供的新規格來部署和更新服務執行個體。只會更新請求的參數。使用此 時*，請勿*包含次要或主要版本參數`deployment-type`。

  
`MINOR_VERSION`  
在此模式中，服務執行個體會依預設使用中目前主要版本的已發佈建議 （最新） 次要版本進行部署和更新。您也可以指定目前使用中主要版本的不同次要版本。

  
`MAJOR_VERSION`  
在此模式中，預設會使用已發佈、建議 （最新） 的目前範本主要和次要版本來部署和更新服務執行個體。您也可以指定高於使用中主要版本的不同主要版本，以及次要版本 （選用）。

如果 `deploymentStatus`是 .`IN_PROGRESS` AWS Proton attempts 以取消部署，您可以嘗試取消服務執行個體更新部署。*不保證*成功取消。

當您取消更新部署時， 會 AWS Proton 嘗試取消部署，如下列步驟所列。
+ 將部署狀態設定為 `CANCELLING`。
+ 停止進行中的部署，並在 時刪除部署建立的任何新資源`IN_PROGRESS`。
+ 將部署狀態設定為 `CANCELLED`。
+ 將資源的狀態還原為部署開始之前的狀態。

如需取消服務執行個體部署的詳細資訊，請參閱 *AWS Proton API 參考*中的 [CancelServiceInstanceDeployment](https://docs.aws.amazon.com/proton/latest/APIReference/API_CancelServiceInstanceDeployment.html)。

**使用 主控台或 AWS CLI 進行更新或取消更新部署。**

------
#### [ AWS 管理主控台 ]

**請依照下列步驟，使用 主控台更新服務執行個體。**

1. 在 [AWS Proton 主控台](https://console.aws.amazon.com//proton/)中，選擇導覽窗格中**的服務執行個體**。

1. 在服務執行個體清單中，選擇您要更新的服務執行個體名稱。

1. 選擇**動作**，然後選擇其中一個更新選項、**編輯**以更新規格或**動作**，然後**更新至最新的次要版本**，或**更新至最新的主要版本**。

1. 填寫每個表單，然後選擇**下一步**，直到您到達**檢閱**頁面為止。

1. 檢閱您的編輯，然後選擇**更新**。

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

**將服務執行個體更新為新的次要版本，如 CLI 範例命令和回應所示。**

當您使用修改過的 更新服務執行個體時`spec`，如果值存在於 中`spec`，您可以使用 `"${Proton::CURRENT_VAL}"`來指出要從原始 保留的參數值`spec`。`get-service` 使用 檢視服務執行個體`spec`的原始 ，如中所述[檢視服務資料](ag-svc-view.md)。

下列範例顯示如何在 `"${Proton::CURRENT_VAL}"`中使用 `spec`。

規格：

```
proton: ServiceSpec

pipeline:
  my_sample_pipeline_optional_input: "${Proton::CURRENT_VAL}"
  my_sample_pipeline_required_input: "${Proton::CURRENT_VAL}"

instances:
  - name: "my-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_optional_input: "${Proton::CURRENT_VAL}"
      my_sample_service_instance_required_input: "${Proton::CURRENT_VAL}"
  - name: "my-other-instance"
    environment: "simple-env"
    spec:
      my_sample_service_instance_required_input: "789"
```

命令：更新

```
$ aws proton update-service-instance \
    --name "{{instance-one}}" \
    --service-name "{{simple-svc}}" \
    --spec "{{file://service-spec.yaml}}" \
    --template-major-version "{{1}}" \
    --template-minor-version "{{1}}" \
    --deployment-type "{{MINOR_VERSION}}"
```

回應：

```
{
    "serviceInstance": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one",
        "createdAt": "2021-04-02T21:29:59.962000+00:00",
        "deploymentStatus": "IN_PROGRESS",
        "environmentName": "arn:aws:proton:region-id:123456789012:environment/simple-env",
        "lastDeploymentAttemptedAt": "2021-04-02T21:38:00.823000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T21:29:59.962000+00:00",
        "name": "instance-one",
        "serviceName": "simple-svc",
        "templateMajorVersion": "1",
        "templateMinorVersion": "0",
        "templateName": "svc-simple"
    }
}
```

命令：取得並確認狀態

```
$ aws proton get-service-instance \
    --name "{{instance-one}}" \
    --service-name "{{simple-svc}}"
```

回應：

```
{
    "serviceInstance": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one",
        "createdAt": "2021-04-02T21:29:59.962000+00:00",
        "deploymentStatus": "SUCCEEDED",
        "environmentName": "simple-env",
        "lastDeploymentAttemptedAt": "2021-04-02T21:38:00.823000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T21:38:00.823000+00:00",
        "name": "instance-one",
        "serviceName": "simple-svc",
        "spec": "proton: ServiceSpec\n\npipeline:\n  my_sample_pipeline_optional_input: \"abc\"\n  my_sample_pipeline_required_input: \"123\"\n\ninstances:\n  - name: \"instance-one\"\n    environment: \"simple-env\"\n    spec:\n      my_sample_service_instance_optional_input: \"def\"\n      my_sample_service_instance_required_input: \"456\"\n  - name: \"my-other-instance\"\n    environment: \"kls-simple-env\"\n    spec:\n      my_sample_service_instance_required_input: \"789\"\n",
        "templateMajorVersion": "1",
        "templateMinorVersion": "1",
        "templateName": "svc-simple"
    }
}
```

------

------
#### [ AWS 管理主控台 ]

**使用主控台取消服務執行個體部署，如下列步驟所示。**

1. 在 [AWS Proton 主控台](https://console.aws.amazon.com//proton/)中，選擇導覽窗格中**的服務執行個體**。

1. 在服務執行個體清單中，選擇具有您要取消之部署更新的服務執行個體名稱。

1. 如果您的更新部署狀態為**進行中**，請在服務執行個體詳細資訊頁面中，選擇**動作**，然後選擇**取消部署**。

1. 模態會要求您確認取消。選擇**取消部署**。

1. 您的更新部署狀態設定為**取消**，然後**取消**以完成取消。

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

**取消 IN\_PROGRESS 服務執行個體部署更新至新的次要版本 2，如下列 CLI 範例命令和回應所示。**

用於此範例的範本中包含等待條件，因此取消會在更新部署成功之前開始。

命令：取消

```
$ aws proton cancel-service-instance-deployment \
    --service-instance-name "{{instance-one}}" \
    --service-name "{{simple-svc}}"
```

回應：

```
{
    "serviceInstance": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one",
        "createdAt": "2021-04-02T21:29:59.962000+00:00",
        "deploymentStatus": "CANCELLING",
        "environmentName": "simple-env",
        "lastDeploymentAttemptedAt": "2021-04-02T21:45:15.406000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T21:38:00.823000+00:00",
        "name": "instance-one",
        "serviceName": "simple-svc",
        "spec": "proton: ServiceSpec\npipeline:\n  my_sample_pipeline_optional_input: abc\n  my_sample_pipeline_required_input: '123'\ninstances:\n- name: my-instance\n  environment: MySimpleEnv\n  spec:\n    my_sample_service_instance_optional_input: def\n    my_sample_service_instance_required_input: '456'\n- name: my-other-instance\n  environment: MySimpleEnv\n  spec:\n    my_sample_service_instance_required_input: '789'\n",
        "templateMajorVersion": "1",
        "templateMinorVersion": "1",
        "templateName": "svc-simple"
    }
}
```

命令：取得並確認狀態

```
$ aws proton get-service-instance \
    --name "{{instance-one}}" \
    --service-name "{{simple-svc}}"
```

回應：

```
{
    "serviceInstance": {
        "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/service-instance/instance-one",
        "createdAt": "2021-04-02T21:29:59.962000+00:00",
        "deploymentStatus": "CANCELLED",
        "deploymentStatusMessage": "User initiated cancellation.",
        "environmentName": "simple-env",
        "lastDeploymentAttemptedAt": "2021-04-02T21:45:15.406000+00:00",
        "lastDeploymentSucceededAt": "2021-04-02T21:38:00.823000+00:00",
        "name": "instance-one",
        "serviceName": "simple-svc",
        "spec": "proton: ServiceSpec\n\npipeline:\n  my_sample_pipeline_optional_input: \"abc\"\n  my_sample_pipeline_required_input: \"123\"\n\ninstances:\n  - name: \"instance-one\"\n    environment: \"simple-env\"\n    spec:\n      my_sample_service_instance_optional_input: \"def\"\n      my_sample_service_instance_required_input: \"456\"\n  - name: \"my-other-instance\"\n    environment: \"kls-simple-env\"\n    spec:\n      my_sample_service_instance_required_input: \"789\"\n",
        "templateMajorVersion": "1",
        "templateMinorVersion": "1",
        "templateName": "svc-simple"
    }
}
```

------