서비스 파이프라인 업데이트 - AWS Proton

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

서비스 파이프라인 업데이트

AWS Proton 서비스 파이프라인을 업데이트하고 업데이트를 취소하는 방법을 알아보세요.

서비스 파이프라인은 서비스에 속합니다. 서비스 생성삭제 작업의 컨텍스트 내에서만 파이프라인을 생성하거나 삭제할 수 있습니다.

다음 목록에 설명된 대로 서비스 파이프라인을 업데이트하는 데는 네 가지 모드가 있습니다. AWS CLI를 사용하는 경우 deployment-type 필드는 모드를 정의합니다. 콘솔을 사용할 때 이러한 모드는 파이프라인 편집권장 버전으로 업데이트에 매핑됩니다.

NONE

이 모드에서는 배포가 이루어지지 않습니다. 요청된 메타데이터 파라미터만 업데이트됩니다.

CURRENT_VERSION

이 모드에서는 서비스 파이프라인이 배포되고 사용자가 제공한 새 사양으로 업데이트됩니다. 요청된 파라미터만 업데이트됩니다. 이 deployment-type을 사용할 때 마이너 버전 또는 메이저 버전 파라미터를 포함하지 마십시오.

MINOR_VERSION

이 모드에서는 서비스 파이프라인이 기본적으로 현재 사용 중인 메이저 버전의 게시된, 권장되는 최신 마이너 버전으로 배포 및 업데이트됩니다. 현재 사용 중인 메이저 버전과 다른 마이너 버전을 지정할 수도 있습니다.

MAJOR_VERSION

이 모드에서는 서비스 파이프라인이 기본적으로 현재 템플릿의 게시된 권장되는 최신 메이저 버전 및 마이너 버전으로 배포 및 업데이트됩니다. 사용 중인 메이저 버전보다 상위의 다른 메이저 버전과 마이너 버전을 지정할 수도 있습니다(선택 사항).

deploymentStatusIN_PROGRESS인 경우 서비스 파이프라인 업데이트 배포를 취소하려고 시도할 수 있습니다. AWS Proton은 배포포 취소를 시도합니다. 취소 성공은 보장되지 않습니다.

업데이트 배포를 취소하면 AWS Proton이 다음 단계에 나열된 대로 배포 취소를 시도합니다.

  • 배포 상태를 CANCELLING로 설정합니다.

  • IN_PROGRESS인 경우 진행 중인 배포를 중지하고 배포에 의해 생성된 모든 새 리소스를 삭제합니다.

  • 배포 상태를 CANCELLED로 설정합니다.

  • 리소스 상태를 배포가 시작되기 전의 상태로 되돌립니다.

서비스 파이프라인 배포 취소에 대한 자세한 내용은 AWS Proton API 참조CancelServicePipelineDeployment를 참조하세요.

콘솔 또는 AWS CLI을 사용하여 업데이트를 수행하거나 업데이트 배포를 취소할 수 있습니다.

AWS Management Console

다음 단계에 설명된 대로 콘솔을 사용하여 서비스 파이프라인을 편집합니다.

  1. AWS Proton 콘솔에서 서비스를 선택합니다.

  2. 서비스 목록에서 파이프라인을 업데이트할 서비스의 이름을 선택합니다.

  3. 서비스 세부정보 페이지에는 개요파이프라인이라는 두 개의 탭이 있습니다. 파이프라인을 선택합니다.

  4. 사양을 업데이트하려면 파이프라인 편집을 선택하고 각 양식을 작성하고 최종 양식을 완료할 때까지 다음을 선택한 다음 파이프라인 업데이트를 선택합니다.

    새 버전으로 업데이트하고 파이프라인 템플릿에서 새 버전을 사용할 수 있음을 나타내는 정보 아이콘이 있는 경우 새 템플릿 버전의 이름을 선택합니다.

    1. 권장 버전으로 업데이트를 선택합니다.

    2. 각 양식을 작성하고 최종 양식을 작성할 때까지 다음 을 선택하고 업데이트 를 선택합니다.

AWS CLI

다음 CLI 예제 명령 및 응답에 표시된 대로 서비스 파이프라인을 새 마이너 버전으로 업데이트합니다.

서비스 파이프라인을 수정된 spec로 업데이트할 때 "${Proton::CURRENT_VAL}"를 사용하여 원본 spec에서 보존할 파라미터 값을 표시하는 데 사용할 수 있습니다(값이 spec에 존재하는 경우). 서비스 데이터 보기에 설명된 대로 서비스 파이프라인의 원본 spec을 보는 데 get-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-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

다음 단계에 표시된 대로 콘솔을 사용하여 서비스 파이프라인 배포를 취소합니다.

  1. AWS Proton 콘솔을 열고, 탐색 창에서 서비스를 선택합니다.

  2. 서비스 목록에서 취소하려는 배포 업데이트가 있는 파이프라인의 이름을 선택합니다.

  3. 서비스 세부 정보 페이지에서 파이프라인 탭을 선택합니다.

  4. 업데이트 배포 상태가 진행 중이면 서비스 파이프라인 세부 정보 페이지에서 배포 취소를 선택합니다.

  5. 취소 확인을 요청하는 모달이 표시됩니다. 배포 취소를 선택합니다.

  6. 업데이트 배포 상태가 취소 중으로 설정된 다음 취소가 완료되면 취소됨으로 설정됩니다.

AWS CLI

다음 CLI 예제 명령 및 응답에 표시된 대로 마이너 버전 2로 IN_PROGRESS 서비스 파이프라인 배포 업데이트를 취소합니다.

이 예제에 사용된 템플릿에는 업데이트 배포가 성공하기 전에 취소가 시작되도록 대기 조건이 포함되어 있습니다.

명령: 취소

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