

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

# CodeCommit 소스 작업 참조
<a name="action-reference-CodeCommit"></a>

구성된 CodeCommit 리포지토리 및 분기에서 새 커밋이 수행될 때 파이프라인을 시작합니다.

콘솔을 사용하여 파이프라인을 생성 또는 편집하는 경우, CodePipeline에서 리포지토리에서 변경이 발생할 때 파이프라인을 시작하는 EventBridge 규칙이 생성됩니다.

**참고**  
Amazon ECR, Amazon S3 또는 CodeCommit 소스의 경우 입력 변환 항목을 사용하여 소스 재정의를 생성하여 파이프라인 이벤트에 EventBridge의 `revisionValue`를 사용할 수도 있습니다. 여기서 `revisionValue`는 객체 키, 커밋 또는 이미지 ID의 소스 이벤트 변수에서 파생됩니다. 자세한 내용은 [Amazon ECR 소스 작업 및 EventBridge 리소스](create-cwe-ecr-source.md), [이벤트에 대해 활성화된 소스를 사용하여 Amazon S3 소스 작업에 연결](create-S3-source-events.md), 또는 [CodeCommit 소스 작업 및 EventBridge](triggering.md)의 절차에 포함된 입력 변환 항목의 선택적 단계를 참조하세요.

CodeCommit 작업을 통해 파이프라인을 연결하기 전에 CodeCommit 리포지토리를 이미 생성했어야 합니다.

코드 변경이 감지되면 다음 옵션을 사용하여 코드를 후속 작업에 전달할 수 있습니다.
+ **기본값** - 커밋의 단순 복사본이 포함된 ZIP 파일을 출력하도록 CodeCommit 소스 작업을 구성합니다.
+ **전체 복제** - 후속 작업을 위해 리포지토리에 대한 Git URL 참조를 출력하도록 소스 작업을 구성합니다.

  현재 Git URL 참조는 다운스트림 CodeBuild 작업에서만 리포지토리와 관련 Git 메타데이터를 복제하는 데 사용할 수 있습니다. 비 CodeBuild 작업에 대한 Git URL 참조를 전달하려고 하면 오류가 발생합니다.

**Topics**
+ [작업 유형](#action-reference-CodeCommit-type)
+ [구성 파라미터](#action-reference-CodeCommit-config)
+ [입력 아티팩트](#action-reference-CodeCommit-input)
+ [출력 아티팩트](#action-reference-CodeCommit-output)
+ [출력 변수](#action-reference-CodeCommit-variables)
+ [서비스 역할 권한: CodeCommit 작업](#edit-role-codecommit)
+ [예제 작업 구성](#action-reference-CodeCommit-example)
+ [다음 사항도 참조하세요.](#action-reference-CodeCommit-links)

## 작업 유형
<a name="action-reference-CodeCommit-type"></a>
+ 범주: `Source`
+ 소유자: `AWS`
+ 공급자: `CodeCommit`
+ 버전: `1`

## 구성 파라미터
<a name="action-reference-CodeCommit-config"></a>

**RepositoryName**  
필수 항목 여부: 예  
소스 변경 사항을 감지할 리포지토리의 이름입니다.

**BranchName**  
필수 항목 여부: 예  
소스 변경 사항을 감지할 분기의 이름입니다.

**PollForSourceChanges**  
필수 여부: 아니요  
`PollForSourceChanges`는 CodePipeline이 CodeCommit 리포지토리에서 소스 변경 사항을 폴링할지 여부를 제어합니다. 대신 CloudWatch Events를 사용하여 소스 변경 사항을 감지하는 것이 좋습니다. CloudWatch Events 구성에 대한 자세한 내용은 [폴링 파이프라인 마이그레이션(CodeCommit 소스)(CLI)](update-change-detection.md#update-change-detection-cli-codecommit) 또는 [폴링 파이프라인 마이그레이션(CodeCommit 소스)(CloudFormation 템플릿)](update-change-detection.md#update-change-detection-cfn-codecommit)을 참조하세요.  
CloudWatch Events 규칙을 구성하려는 경우, 중복된 파이프라인 실행이 발생하지 않도록 `PollForSourceChanges`를 `false`로 설정해야 합니다.
이 파라미터에 유효한 값은 다음과 같습니다.  
+ `true`: 이 값으로 설정된 경우 CodePipeline은 리포지토리에서 소스 변경 사항을 폴링합니다.
**참고**  
`PollForSourceChanges`를 생략하면 CodePipeline은 기본적으로 소스 변경 사항에 대해 리포지토리를 폴링합니다. 이러한 동작은 `PollForSourceChanges`이 포함되었고 `true`로 설정된 경우와 똑같습니다.
+ `false`: 이 값으로 설정된 경우 CodePipeline은 리포지토리에서 소스 변경 사항을 폴링하지 않습니다. 소스 변경 사항을 감지하도록 CloudWatch Events 규칙을 구성하려면 이 설정을 사용합니다.

****OutputArtifactFormat****  
필수 여부: 아니요  
출력 아티팩트 형식. 값은 `CODEBUILD_CLONE_REF` 또는 `CODE_ZIP`가 될 수 있습니다. 미지정된 경우 기본값은 `CODE_ZIP`입니다.  
`CODEBUILD_CLONE_REF` 옵션은 CodeBuild 다운스트림 작업에서만 사용할 수 있습니다.  
이 옵션을 선택하면 [CodeCommit 소스 작업에 대한 CodeBuild GitClone 권한 추가](troubleshooting.md#codebuild-role-codecommitclone)과 같이 CodeBuild 서비스 역할에 대한 `codecommit:GitPull` 권한을 추가해야 합니다. 또한 [CodePipeline 서비스 역할에 권한 추가](how-to-custom-role.md#how-to-update-role-new-services)에 표시된 대로 CodePipeline 서비스 역할에 `codecommit:GetRepository` 권한을 추가해야 합니다. **전체 복제** 옵션을 사용하는 방법을 보여주는 자습서는 [자습서: CodeCommit 파이프라인 소스와 함께 전체 복제 사용](tutorials-codecommit-gitclone.md)을 참조하세요.

## 입력 아티팩트
<a name="action-reference-CodeCommit-input"></a>
+ **아티팩트 수:** `0`
+ **설명:** 이 작업 유형에는 입력 아티팩트가 적용되지 않습니다.

## 출력 아티팩트
<a name="action-reference-CodeCommit-output"></a>
+ **아티팩트 수:** `1` 
+ **설명:** 이 작업의 출력 아티팩트는 파이프라인 실행을 위한 소스 개정으로 지정된 커밋에서 구성된 리포지토리 및 분기의 내용을 포함하는 ZIP 파일입니다. 리포지토리에서 생성된 아티팩트는 CodeCommit 작업에 대한 출력 아티팩트입니다. 소스 코드 커밋 ID는 트리거된 파이프라인 실행의 소스 개정으로 CodePipeline에 표시됩니다.

## 출력 변수
<a name="action-reference-CodeCommit-variables"></a>

이 작업을 구성하면 파이프라인에서 다운스트림 작업의 작업 구성에서 참조할 수 있는 변수가 생성됩니다. 이 작업은 작업에 네임스페이스가 없는 경우에도 출력 변수로 볼 수 있는 변수를 생성합니다. 이러한 변수를 다운스트림 작업 구성에서 사용할 수 있도록 네임스페이스를 사용하여 작업을 구성합니다.

자세한 내용은 [변수 참조](reference-variables.md) 단원을 참조하십시오.

**CommitId**  
파이프라인 실행을 트리거한 CodeCommit 커밋 ID입니다. 커밋 ID는 커밋의 전체 SHA입니다.

**CommitMessage**  
파이프라인 실행을 트리거한 커밋과 연관된 설명 메시지입니다(존재하는 경우).

**RepositoryName**  
파이프라인을 트리거한 커밋이 만들어진 CodeCommit 리포지토리의 이름입니다.

**BranchName**  
소스 변경이 이루어진 CodeCommit 리포지토리의 분기 이름입니다.

**AuthorDate**  
커밋이 작성된 날짜입니다(타임스탬프 형식).

**CommitterDate**  
커밋이 수행된 날짜입니다(타임스탬프 형식).

## 서비스 역할 권한: CodeCommit 작업
<a name="edit-role-codecommit"></a>

CodePipeline이 작업을 실행하면 최소 권한으로 액세스를 유지하기 위해 CodePipeline 서비스 역할 정책에 파이프라인 리소스 ARN으로 범위가 적절하게 축소된 다음 최소 권한이 필요합니다. 예를 들어 다음을 정책 설명에 추가합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codecommit:CancelUploadArchive",
                "codecommit:GetBranch",
                "codecommit:GetCommit",
                "codecommit:GetRepository",
                "codecommit:GetUploadArchiveStatus",
                "codecommit:UploadArchive"
            ],
            "Resource": [
                "arn:aws:codecommit:*:111122223333:[[codecommitRepostories]]"
            ]
        }
    ]
}
```

------



## 예제 작업 구성
<a name="action-reference-CodeCommit-example"></a>

### 기본 출력 아티팩트 형식의 예
<a name="w2aac56c49c29b3"></a>

------
#### [ YAML ]

```
name: Source
actionTypeId:
  category: Source
  owner: AWS
  provider: CodeCommit
  version: '1'
runOrder: 1
configuration:
  BranchName: main
  PollForSourceChanges: 'false'
  RepositoryName: MyWebsite
outputArtifacts:
  - name: Artifact_MyWebsiteStack
inputArtifacts: []
region: us-west-2
namespace: SourceVariables
```

------
#### [ JSON ]

```
{
    "name": "Source",
    "actionTypeId": {
        "category": "Source",
        "owner": "AWS",
        "provider": "CodeCommit",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "BranchName": "main",
        "PollForSourceChanges": "false",
        "RepositoryName": "MyWebsite"
    },
    "outputArtifacts": [
        {
            "name": "Artifact_MyWebsiteStack"
        }
    ],
    "inputArtifacts": [],
    "region": "us-west-2",
    "namespace": "SourceVariables"
}
```

------

### 전체 복제 출력 아티팩트 형식의 예
<a name="w2aac56c49c29b5"></a>

------
#### [ YAML ]

```
name: Source
actionTypeId:
  category: Source
  owner: AWS
  provider: CodeCommit
  version: '1'
runOrder: 1
configuration:
  BranchName: main
  OutputArtifactFormat: CODEBUILD_CLONE_REF
  PollForSourceChanges: 'false'
  RepositoryName: MyWebsite
outputArtifacts:
  - name: SourceArtifact
inputArtifacts: []
region: us-west-2
namespace: SourceVariables
```

------
#### [ JSON ]

```
{
    "name": "Source",
    "actionTypeId": {
        "category": "Source",
        "owner": "AWS",
        "provider": "CodeCommit",
        "version": "1"
    },
    "runOrder": 1,
    "configuration": {
        "BranchName": "main",
        "OutputArtifactFormat": "CODEBUILD_CLONE_REF",
        "PollForSourceChanges": "false",
        "RepositoryName": "MyWebsite"
    },
    "outputArtifacts": [
        {
            "name": "SourceArtifact"
        }
    ],
    "inputArtifacts": [],
    "region": "us-west-2",
    "namespace": "SourceVariables"
}
```

------

## 다음 사항도 참조하세요.
<a name="action-reference-CodeCommit-links"></a>

이 작업을 수행할 때 참조할 수 있는 관련 리소스는 다음과 같습니다.
+ [자습서: 간단한 파이프라인 생성(CodeCommit 리포지토리)](tutorials-simple-codecommit.md) - 이 자습서에서는 앱 사양 파일 샘플과 CodeDeploy 애플리케이션 및 배포 그룹 샘플을 제공합니다. 이 자습서를 사용하여 Amazon EC2 인스턴스에 배포되는 CodeCommit 소스로 파이프라인을 생성합니다.