AWS CodePipeline이 두 번 실행될 때 이를 수정하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2020년 6월 12일

AWS CodePipeline이 두 번 실행됩니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

먼저 PollForSourceChanges 파라미터의 기본 동작 이해 섹션을 읽습니다.

그리고 시나리오에 따라 다음 섹션 중 하나의 단계를 완료합니다.

  • AWS CloudFormation을 사용하여 파이프라인을 생성한 경우 AWS CloudFormation 템플릿 업데이트 섹션의 단계를 완료합니다.
  • AWS 명령줄 인터페이스(AWS CLI)를 사용하여 파이프라인을 생성한 경우 JSON 파일로 파이프라인 업데이트 섹션의 단계를 완료합니다.
  • AWS SDK를 사용하여 파이프라인을 생성한 경우 사용자 언어 구성 구문에 따라 파이프라인 업데이트 섹션의 단계를 완료합니다.

이전 섹션의 단계를 완료한 후에도 파이프라인이 두 번 실행되는 경우 Amazon CloudWatch Events 규칙 확인 섹션의 단계를 완료합니다.

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

해결 방법

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

다음을 고려하십시오.

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

AWS CloudFormation 템플릿 업데이트

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

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

자세한 내용은 GitHub 소스에 대한 Webhook 생성(AWS CloudFormation 템플릿)을 참조하십시오.

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

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

$ aws codepipeline get-pipeline --name NAME_OF_YOUR_PIPELINE  > pipeline.json

2.    텍스트 편집기에서 pipeline.json 파일을 열고 PollForSourceChanges 파라미터를 구성 섹션에 추가합니다. 파라미터를 false로 설정합니다.

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

3.    pipeline.json 파일을 저장한 후 다음 명령을 실행하여 파일에 변경 사항을 적용합니다.

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

예제는 GitHub 소스에 대한 Webhook 생성을 참조하십시오.

사용자 언어의 구성 구문에 따라 파이프라인 업데이트

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

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

Amazon CloudWatch Events 규칙 확인

파이프라인과 대상이 동일한 CloudWatch Events 규칙이 있는지 확인한 다음 중복 규칙을 삭제하거나 비활성화합니다.


이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?