기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
CodeCommit 소스에 대한 EventBridge 규칙 생성 () CLI
put-rule 명령을 호출해 다음을 지정합니다.
-
만들려는 규칙을 고유하게 식별하는 이름. 이 이름은 CodePipeline AWS 계정과 연계하여 생성한 모든 파이프라인에서 고유해야 합니다.
-
소스의 이벤트 패턴 및 규칙에서 사용하는 세부 정보 필드. 자세한 내용은 Amazon EventBridge 및 이벤트 패턴을 참조하십시오.
이벤트 CodeCommit CodePipeline 소스와 타겟을 사용하여 EventBridge 규칙을 생성하려면
-
규칙을 EventBridge 호출하는 CodePipeline 데 사용할 권한을 추가합니다. 자세한 내용은 Amazon의 리소스 기반 정책 사용을 참조하십시오. EventBridge
-
다음 샘플을 사용하여 서비스 역할을 EventBridge 맡을 수 있는 신뢰 정책을 생성하십시오. 신뢰 정책 이름을
trustpolicyforEB.json
으로 지정합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
-
다음 명령을 사용하여
Role-for-MyRule
역할을 생성한 후 신뢰 정책에 연결합니다.aws iam create-role --role-name Role-for-MyRule --assume-role-policy-document file://trustpolicyforEB.json
-
이 샘플에 표시된 대로 이름이 지정된 파이프라인에 대한 권한 정책을 JSON 생성합니다
MyFirstPipeline
. 권한 정책 이름을permissionspolicyforEB.json
으로 지정합니다.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codepipeline:StartPipelineExecution" ], "Resource": [ "arn:aws:codepipeline:us-west-2:80398EXAMPLE:MyFirstPipeline" ] } ] }
-
다음 명령을 사용하여
CodePipeline-Permissions-Policy-for-EB
권한 정책을Role-for-MyRule
역할에 연결합니다.이렇게 변경하는 이유는 무엇입니까? 이 정책을 역할에 추가하면 에 대한 권한이 생성됩니다 EventBridge.
aws iam put-role-policy --role-name Role-for-MyRule --policy-name CodePipeline-Permissions-Policy-For-EB --policy-document file://permissionspolicyforEB.json
-
-
put-rule 명령을 호출하고
--name
,--event-pattern
및--role-arn
파라미터를 포함시킵니다.이렇게 변경하는 이유는 무엇입니까? 이 명령은 AWS CloudFormation 에서 이벤트를 생성할 수 있게 합니다.
다음 샘플 명령은
MyCodeCommitRepoRule
이라는 역할 별칭을 생성합니다.aws events put-rule --name "MyCodeCommitRepoRule" --event-pattern "{\"source\":[\"aws.codecommit\"],\"detail-type\":[\"CodeCommit Repository State Change\"],\"resources\":[\"
repository-ARN
\"],\"detail\":{\"referenceType\":[\"branch\"],\"referenceName\":[\"main
\"]}}" --role-arn "arn:aws:iam::ACCOUNT_ID
:role/Role-for-MyRule" -
CodePipeline 대상으로 추가하려면 put-targets 명령을 호출하고 다음 파라미터를 포함하세요.
-
--rule
파라미터는 put-rule을 사용하여 생성한rule_name
에 사용됩니다. -
--targets
파라미터는 대상 목록에 있는 대상의 목록Id
및 대상 파이프라인의ARN
에 사용됩니다.
다음 예제 명령은
MyCodeCommitRepoRule
이라는 규칙에 대해 대상Id
가 숫자 1로 구성됨을 지정하며, 규칙의 대상 목록에서 1로 대상 1로 표시됩니다. 이 예제 명령은 또한 파이프라인에 대한 예제ARN
를 지정합니다. 파이프라인은 리포지토리에서 변경이 발생하면 시작됩니다.aws events put-targets --rule MyCodeCommitRepoRule --targets Id=1,Arn=arn:aws:codepipeline:us-west-2:80398EXAMPLE:TestPipeline
-
파이프라인 PollForSourceChanges 파라미터를 편집하려면
중요
이 방법으로 파이프라인을 생성할 때 명시적으로 false로 설정되지 않은 경우 PollForSourceChanges
파라미터 기본값은 true입니다. 이벤트 기반 변경 감지를 추가할 때는 출력에 파라미터를 추가하고 false로 설정하여 폴링을 비활성화해야 합니다. 그렇지 않으면 파이프라인이 단일 소스 변경 시 두 번 시작됩니다. 세부 정보는 PollForSourceChanges 파라미터의 유효한 설정을 참조하세요.
-
get-pipeline명령을 실행하여 파이프라인 구조를 JSON 파일에 복사합니다. 예를 들어,
MyFirstPipeline
라는 파이프라인의 경우 다음 명령을 입력합니다.aws codepipeline get-pipeline --name
MyFirstPipeline
>pipeline.json
이 명령은 아무 것도 반환하지 않지만 생성한 파일이 명령을 실행한 디렉터리에 표시되어야 합니다.
-
일반 텍스트 편집기에서 JSON 파일을 열고 이 예제와 같이
PollForSourceChanges
파라미터를 로 변경하여 소스 스테이지를false
편집합니다.이렇게 변경하는 이유는 무엇입니까? 이 파라미터를
false
로 변경하면 정기적 확인이 비활성화되어 이벤트 기반 변경 탐지만 사용할 수 있습니다."configuration": {
"PollForSourceChanges": "false",
"BranchName": "main", "RepositoryName": "MyTestRepo" }, -
get-pipeline명령을 사용하여 검색한 파이프라인 구조로 작업하는 경우 파일에서 해당
metadata
라인을 제거하세요. JSON 이렇게 하지 않으면 update-pipeline 명령에서 사용할 수 없습니다."metadata": { }
행과,"created"
,"pipelineARN"
및"updated"
필드를 제거합니다.예를 들어, 구조에서 다음 행을 삭제합니다.
"metadata": { "pipelineArn": "arn:aws:codepipeline:
region
:account-ID
:pipeline-name
", "created": "date
", "updated": "date
" },파일을 저장합니다.
-
변경 내용을 적용하려면 파이프라인 JSON 파일을 지정하여 update-pipeline 명령을 실행합니다.
중요
파일 이름 앞에
file://
를 포함해야 합니다. 이 명령에 필수적입니다.aws codepipeline update-pipeline --cli-input-json file://
pipeline.json
이 명령은 편집한 파이프라인의 전체 구조를 반환합니다.
참고
update-pipeline 명령을 실행하면 파이프라인이 중지됩니다. update-pipeline 명령을 실행할 때 파이프라인을 통해 개정을 실행하는 중이라면 해당 실행이 중지됩니다. 업데이트된 파이프라인을 통해 해당 개정을 실행하려면 파이프라인을 수동으로 시작해야 합니다.
start-pipeline-execution
명령을 사용하여 수동으로 파이프라인을 시작합니다.