本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
更新服務執行個體
瞭解如何更新AWS Proton服務執行個體並取消更新。
服務執行個體屬於服務。您只能在服務編輯、建立和刪除動作的前後關聯內建立或刪除執行個體。若要了解如何從服務中新增和移除除的執行個體,請參閱編輯服務。
更新服務執行個體有四種模式,如下列清單所述。使用時AWS CLI,deployment-type
欄位會定義模式。使用主控台時,這些模式會對應至 「編輯」和「更新為最新次要版本」,以及「更新為最新的主要版本」動作 (從服務執行處理詳細資訊頁面中的「動作」 下拉式清單)。
-
NONE
在此模式中,不會發生部署。只會更新要求的中繼資料參數。
-
CURRENT_VERSION
在此模式中,服務執行個體會部署並以您提供的新規格進行更新。只更新了請求參數。使用此參數時,請勿包含次要或主要版本參數deployment-type
。
-
MINOR_VERSION
在此模式中,依預設,服務執行個體會以目前使用中主要版本的已發佈建議 (最新) 次要版本進行部署和更新。您也可以指定目前正在使用的主要版本的不同次要版本。
-
MAJOR_VERSION
在此模式中,服務執行個體預設會以目前範本的已發佈、建議 (最新) 主要和次要版本進行部署和更新。您也可以指定高於使用中的主要版本和次要版本 (選用) 的不同主要版本。
如果deploymentStatus
是,您可以嘗試取消服務執行個體更新部署IN_PROGRESS
。 AWS Proton嘗試取消部署。不能保證取消成功。
取消更新部署時,會AWS Proton嘗試取消部署,如下列步驟所列。
如需取消服務執行個體部署的詳細資訊,請參閱 AWS ProtonAPI 參考CancelServiceInstanceDeployment中的。
使用主控台或AWS CLI進行更新或取消更新部署。
- AWS Management Console
-
請遵循下列步驟,使用主控台更新服務執行個體。
-
在AWS Proton主控台中,選擇導覽窗格中的 [服務執行個體]。
-
在服務例證清單中,請選擇您要更新的服務執行個體名稱。
-
選擇「動作」,然後選擇其中一個更新選項,選擇 「編輯」以更新規格或動作,然後選擇「更新為最新次要版本」,或「更新為最新的主要版本」。
-
填寫每個表格,然後選擇「下一步」,直到到達「評論」頁面。
-
檢閱您的編輯並選擇 [更新]。
- AWS CLI
-
將服務實例更新為新的次要版本,如 CLI 示例命令和響應中所示。
當您使用已修改的服務執行個體來更新服務執行個體時spec
,如果值存在於中spec
,您可以使用"${Proton::CURRENT_VAL}"
來指出要保留的參數值與原始參數值相比spec
。用get-service
於檢視服務執行spec
個體的原始資料,如中所述檢視服務資料。
以下範例示範如何"${Proton::CURRENT_VAL}"
在spec
.
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
-
使用主控台取消服務執行個體部署,如下列步驟所示。
-
在AWS Proton主控台中,選擇導覽窗格中的 [服務執行個體]。
-
在服務例證清單中,選擇您要取消的部署更新的服務執行個體名稱。
-
如果您的更新部署狀態為進行中,請在服務執行個體詳細資訊頁面中選擇動作,然後選擇取消部署。
-
模式要求您確認取消。選擇 [取消部署]。
-
您的更新部署狀態設定為「取消」,然後設定為「已取消」以完成取消。
- 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"
}
}