本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
更新服务管道
了解如何更新 AWS Proton 服务管道和取消更新。
服务管道属于服务。您只能在服务创建 和删除 操作的上下文中创建或删除管道。
可以使用 4 种模式更新服务管道,如以下列表中所述。在使用 AWS CLI 时,deployment-type
字段定义模式。在您使用控制台时,这些模式映射到编辑管道和更新到推荐版本。
-
NONE
在该模式下,不会 进行部署。仅更新请求的元数据参数。
-
CURRENT_VERSION
在该模式下,将使用您提供的新规范部署和更新服务管道。仅更新请求的参数。在使用该
deployment-type
时,不要 包含次要或主要版本参数。 -
MINOR_VERSION
在该模式下,默认使用当前使用的主要版本的已发布推荐(最新)次要版本部署和更新服务管道。您也可以指定当前使用的主要版本的不同次要版本。
-
MAJOR_VERSION
在该模式下,默认使用当前模板的已发布推荐(最新)主要版本和次要版本部署和更新服务管道。您也可以指定高于正在使用的主要版本的不同主要版本和次要版本(可选)。
如果 deploymentStatus
为 IN_PROGRESS
,您可以尝试取消服务管道更新部署。AWS Proton 将尝试取消部署。不能保证成功取消。
在您取消更新部署时,AWS Proton 尝试取消部署,如以下步骤中列出的一样。
-
将部署状态设置为
CANCELLING
。 -
停止正在进行的部署,并删除状态为
IN_PROGRESS
时部署创建的任何新资源。 -
将部署状态设置为
CANCELLED
。 -
将资源状态恢复为开始部署之前的状态。
有关取消服务管道部署的更多信息,请参阅 AWS Proton API Reference 中的 CancelServicePipelineDeployment。
使用控制台或 AWS CLI 进行更新或取消更新部署。
- AWS Management Console
-
使用控制台更新服务管道,如以下步骤中所述。
-
在 AWS Proton 控制台
中,选择服务。 -
在服务列表中,选择要更新管道的服务的名称。
-
在服务详细信息页面上具有两个选项卡:概述和管道。选择管道。
-
如果要更新规范,请选择编辑管道并填写每个表单,然后选择下一步,直到填写最终表单,然后选择更新管道。
如果要更新为新版本,并且在管道模板上具有指示有新版本的信息图标,请选择新模板版本的名称。
-
选择更新到推荐版本。
-
填写每个表单并选择下一步,直到填写最终表单并选择更新。
-
-
- AWS CLI
-
将服务管道更新为新的次要版本,如以下 CLI 示例命令和响应中所示。
在您使用修改的
spec
更新服务管道时,您可以使用"${Proton::CURRENT_VAL}"
指示要在原始spec
中保留哪些参数值(如果这些值在spec
中存在)。可以使用get-service
查看服务管道的原始spec
,如查看服务数据中所述。以下示例说明了如何在
spec
中使用"${Proton::CURRENT_VAL}"
。规范:
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-pipeline \ --service-name "
simple-svc
" \ --spec "file://service-spec.yaml
" \ --template-major-version "1
" \ --template-minor-version "1
" \ --deployment-type "MINOR_VERSION
"响应:
{ "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "IN_PROGRESS", "lastDeploymentAttemptedAt": "2021-04-02T21:39:28.991000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:29:59.962000+00:00", "spec": "proton: ServiceSpec\n\npipeline:\n my_sample_pipeline_optional_input: \"abc\"\n my_sample_pipeline_required_input: \"123\"\n\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": "0", "templateName": "svc-simple" } }
命令:获取并确认状态
$
aws proton get-service \ --name "
simple-svc
"响应:
{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc", "branchName": "main", "createdAt": "2021-04-02T21:29:59.962000+00:00", "lastModifiedAt": "2021-04-02T21:30:54.364000+00:00", "name": "simple-svc", "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "SUCCEEDED", "lastDeploymentAttemptedAt": "2021-04-02T21:39:28.991000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00", "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: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" }, "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "repo-name/myorg-myapp", "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: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "status": "ACTIVE", "templateName": "svc-simple" } }
- AWS Management Console
-
使用控制台取消服务管道部署,如以下步骤中所示。
-
在 AWS Proton 控制台
中,在导航窗格中选择服务。 -
在服务列表中,选择管道包含要取消的部署更新的服务的名称。
-
在服务详细信息页面中,选择管道选项卡。
-
如果您的更新部署状态为进行中,请在服务管道详细信息页面中选择取消部署。
-
一个模态框要求您确认取消。选择取消部署。
-
您的更新部署状态设置为正在取消,然后设置为已取消以完成取消。
-
- AWS CLI
-
取消将 IN_PROGRESS 服务管道部署更新为次要版本 2,如以下 CLI 示例命令和响应中所示。
在用于该示例的模板中包含一个等待条件,以便在更新部署成功之前开始取消。
命令:取消
$
aws proton cancel-service-pipeline-deployment \ --service-name "
simple-svc
"响应:
{ "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "CANCELLING", "lastDeploymentAttemptedAt": "2021-04-02T22:02:45.095000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" } }
命令:获取并确认状态
$
aws proton get-service \ --name "
simple-svc
"响应:
{ "service": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc", "branchName": "main", "createdAt": "2021-04-02T21:29:59.962000+00:00", "lastModifiedAt": "2021-04-02T21:30:54.364000+00:00", "name": "simple-svc", "pipeline": { "arn": "arn:aws:proton:region-id:123456789012:service/simple-svc/pipeline", "createdAt": "2021-04-02T21:29:59.962000+00:00", "deploymentStatus": "CANCELLED", "deploymentStatusMessage": "User initiated cancellation.", "lastDeploymentAttemptedAt": "2021-04-02T22:02:45.095000+00:00", "lastDeploymentSucceededAt": "2021-04-02T21:39:28.991000+00:00", "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: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "templateMajorVersion": "1", "templateMinorVersion": "1", "templateName": "svc-simple" }, "repositoryConnectionArn": "arn:aws:codestar-connections:region-id:123456789012:connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "repositoryId": "repo-name/myorg-myapp", "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: \"simple-env\"\n spec:\n my_sample_service_instance_required_input: \"789\"\n", "status": "ACTIVE", "templateName": "svc-simple" } }