내용으로 건너뛰기

두 번 실행되는 AWS CodePipeline을 수정하려면 어떻게 해야 합니까?

3분 분량
0

AWS CodePipeline이 두 번 이상 실행되는 문제를 해결하고 싶습니다.

간략한 설명

AWS CodePipeline이 두 번 이상 실행되는 일반적인 두 가지 이유는 다음과 같습니다.

  • PollForSourceChanges 파라미터가 true로 설정되면 파이프라인이 폴링으로 트리거되어 두 번째로 실행됩니다.
  • 파이프라인과 대상이 동일한 CloudWatch Events 규칙이 중복되면 파이프라인이 두 번 실행됩니다.

문제를 해결하려면 먼저 파이프라인 기록을 살펴보고 파이프라인이 두 번 실행되는 원인을 확인하십시오.

동일한 CloudWatch Events 규칙으로 트리거되는 파이프라인 시작이 두 개 이상 있는 경우 중복 규칙을 삭제하거나 비활성화하십시오.

폴링으로 트리거되는 파이프라인 실행이 있는 경우 PollForSourceChanges 파라미터의 기본 동작 이해 섹션을 참조하십시오. 그런 다음 시나리오에 따라 다음 섹션 중 하나의 단계를 완료하십시오.

  • AWS CloudFormation으로 파이프라인을 생성한 경우 AWS CloudFormation 템플릿 업데이트 섹션의 단계를 완료합니다.
  • AWS Command Line Interface(AWS CLI)로 파이프라인을 생성한 경우 JSON 파일로 파이프라인 업데이트 섹션의 단계를 완료합니다.
  • AWS SDK로 파이프라인을 생성한 경우, 언어의 구성 구문을 기반으로 파이프라인 업데이트 섹션의 단계를 완료합니다.

중요: 파이프라인을 생성할 때 사용한 것과 동일한 방법을 사용하여 파이프라인을 업데이트하십시오. 대역 외에서 파이프라인을 변경하지 말고, 해당 시나리오에만 적용되는 섹션의 단계를 완료해야 합니다. 예를 들어 AWS CloudFormation으로 파이프라인을 생성한 경우 AWS CloudFormation 템플릿 업데이트 섹션의 단계만 따르십시오.

해결 방법

참고: AWS CLI 명령을 실행할 때 오류가 발생하면 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.

오류 원인 확인

  1. CodePipeline 콘솔을 엽니다.
  2. 이름에서 파이프라인 이름을 선택합니다.
  3. 기록 보기를 선택합니다.
  4. 트리거 열에서 CloudWatch Events 규칙으로 트리거되거나 폴링으로 트리거되는 파이프라인 시작이 중복되었는지 확인합니다.
  5. 동일한 CloudWatch Events 규칙으로 트리거되는 시작이 두 개 이상 있는 경우 중복된 규칙을 삭제하거나 비활성화합니다.
    폴링으로 트리거되는 파이프라인 실행이 있는 경우 다음 문제 해결 섹션으로 진행합니다.

PollForSourceChanges 파라미터의 기본 동작 이해

PollForSourceChanges와 CloudWatch Events 규칙의 동작을 결정하는 요인은 다음과 같습니다.

  • PollForSourceChanges 파라미터의 기본 동작은 파이프라인을 만드는 데 사용된 방법에 따라 결정됩니다.
  • 대부분의 경우 PollForSourceChanges의 값은 기본적으로 true로 설정되며 이를 비활성화해야 합니다.
  • CodePipeline 콘솔을 사용하여 파이프라인을 생성하면 소스 감지 방법이 자동으로 Amazon CloudWatch Events로 설정됩니다.
  • AWS CloudFormation, AWS CLI 또는 AWS SDK를 사용하여 파이프라인을 생성하고 변경 감지 방법을 지정하지 않은 경우 PollForSourceChanges생성 방법에 따라 기본적으로 true로 설정됩니다.
  • CodePipeline 콘솔 이외의 방법을 사용하여 파이프라인을 생성한 다음 콘솔을 사용하여 대역 외에서 파이프라인을 업데이트하면 CodePipeline에서 추가 CloudWatch Events 규칙을 자동으로 생성합니다.
  • AWS CloudFormation 템플릿에서 CloudWatch Events 규칙을 생성하거나 GitHub 버전 1 리포지토리용 웹후크를 생성하고 PollForSourceChanges 파라미터를 설정하지 않으면 소스에서 변경 사항을 감지하는 두 가지 방법을 사용할 수 있습니다. 이로 인해 파이프라인이 두 번 실행됩니다.

구성이 이러한 규칙과 일치하는지 확인하십시오.

AWS CloudFormation 템플릿 업데이트

AWS CloudFormation 템플릿 또는 파이프라인 구성 파일에서 PollForSourceChanges 파라미터를 false로 설정합니다.

참고: PollForSourceChanges 파라미터는 기본적으로 true로 설정됩니다.

GitHub 버전 1 웹후크에 대한 자세한 내용은 웹후크를 사용하여 파이프라인 시작을 참조하십시오.

JSON 파일로 파이프라인 업데이트

  1. 파이프라인 구조를 JSON 파일에 복사합니다.

    $ aws codepipeline get-pipeline --name NAME_OF_YOUR_PIPELINE  > pipeline.json
  2. 텍스트 편집기에서 pipeline.json 파일을 연 다음 PollForSourceChanges 파라미터를 소스 작업 구성 섹션에 추가합니다. 파라미터를 false로 설정합니다.

  3. 파일에서 다음 메타데이터 필드를 제거합니다.
    "metadata":{}
    "created"
    "pipelineARN"
    "updated"
    중요: 다음 update-pipeline 명령에서 사용할 수 있도록 pipeline.json 파일에서 메타데이터 줄을 제거해야 합니다.

  4. pipeline.json 파일을 저장한 후 다음 update-pipeline 명령을 실행하여 변경 내용을 파일에 적용합니다.

    $ aws codepipeline update-pipeline --cli-input-json file://pipeline.json

자세한 내용은 파이프라인 편집(AWS CLI)을 참조하십시오.

사용 중인 언어의 구성 구문을 기반으로 파이프라인 업데이트

파이프라인 업데이트에 대한 지침은 해당 언어의 SDK 설명서를 참조하십시오.

예를 들어 Python으로 파이프라인을 배포한 경우 파이프라인의 구성 섹션에서 PollForSourceChangesfalse로 설정할 수 있습니다.

AWS 공식업데이트됨 일 년 전