更新服務執行個體 - AWS Proton

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

更新服務執行個體

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

服務執行個體屬於服務。您只能在服務編輯建立和刪除動作的內容中建立或刪除執行個體。若要了解如何從服務新增和移除執行個體,請參閱編輯服務

更新服務執行個體有四種模式,如下列清單所述。使用 時 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

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

AWS Management Console

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

  1. AWS Proton 主控台中,選擇導覽窗格中的服務執行個體

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

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

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

  5. 檢閱您的編輯,然後選擇更新

AWS CLI

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

當您使用修改過的 更新服務執行個體時spec,如果值存在於 中spec,您可以使用 "${Proton::CURRENT_VAL}"來指出要從原始 保留的參數值specget-service 使用 檢視服務執行個體spec的原始 ,如中所述檢視服務資料

下列範例顯示如何在 "${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 Management Console

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

  1. AWS Proton 主控台中,選擇導覽窗格中的服務執行個體

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

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

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

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

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" } }