

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

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

구성된 버킷 및 객체 키에 새 객체가 업로드될 때 파이프라인을 트리거합니다.

**참고**  
이 참조 주제에서는 CodePipeline의 Amazon S3 소스 작업에 대해 설명합니다. 여기서 소스 위치는 버전 관리를 위해 구성된 Amazon S3 버킷입니다. CodePipeline에서의 Amazon S3 배포 작업에 대한 참조 정보는 [Amazon S3 배포 작업 참조](action-reference-S3Deploy.md)을 참조하세요.

Amazon S3 버킷을 생성하여 애플리케이션 파일의 원본 위치로 사용할 수 있습니다.

**참고**  
소스 버킷을 생성할 때는 버킷에 대한 버전 관리를 활성화해야 합니다. 기존의 Amazon S3 버킷을 사용하려면 기존 버킷에 대한 버전 관리를 활성화하기 위한 [버전 관리 사용](https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html)을 참조하세요.

콘솔을 사용하여 파이프라인을 생성 또는 편집하는 경우, CodePipeline은 S3 소스 버킷에서 변경이 발생할 때 파이프라인을 시작하는 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)의 절차에 포함된 입력 변환 항목의 선택적 단계를 참조하세요.

Amazon S3 작업을 통해 파이프라인을 연결하기 전에 Amazon S3 소스 버킷을 생성하고 원본 파일을 단일 ZIP 파일로 업로드해야 합니다.

**참고**  
Amazon S3가 파이프라인의 소스 공급자인 경우, 소스 파일을 .zip 하나로 압축하고 그 .zip을 소스 버킷에 업로드할 수 있습니다. 압축이 풀린 단일 파일을 업로드할 수도 있지만 .zip 파일을 예상하는 다운스트림 작업은 실패합니다.

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

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

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

**S3Bucket**  
필수 항목 여부: 예  
소스 변경 사항이 감지되는 Amazon S3 버킷의 이름입니다.

**S3ObjectKey**  
필수 항목 여부: 예  
소스 변경 사항이 감지되는 Amazon S3 객체 키의 이름입니다.

**AllowOverrideForS3ObjectKey**  
필수 여부: 아니요  
`AllowOverrideForS3ObjectKey`는 `StartPipelineExecution`의 소스 재정의가 소스 작업에 이미 구성된 `S3ObjectKey`를 재정의할 수 있는지 여부를 제어합니다. S3 객체 키를 사용한 소스 재정의에 대한 자세한 내용은 [소스 개정 재정의로 파이프라인 시작](pipelines-trigger-source-overrides.md) 섹션을 참조하세요.  
`AllowOverrideForS3ObjectKey`를 생략하면 CodePipeline은 이 파라미터를 `false`로 설정하여 소스 작업에서 S3 ObjectKey를 재정의할 수 있는 기능을 기본값으로 설정합니다.
이 파라미터에 유효한 값은 다음과 같습니다.  
+ `true`: 설정된 경우 파이프라인 실행 중에 소스 개정 재정의로 사전 구성된 S3 객체 키를 재정의할 수 있습니다.
**참고**  
모든 CodePipeline 사용자가 새 파이프라인 실행을 시작하는 동안 사전 구성된 S3 객체 키를 재정의할 수 있도록 허용하려면 `AllowOverrideForS3ObjectKey`를 `true`로 설정해야 합니다.
+ `false`: 

  설정하면 CodePipeline은 소스 개정 재정의를 사용하여 S3 객체 키를 재정의하도록 허용하지 않습니다. 이는 이 파라미터의 기본값이기도 합니다.

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

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

## 출력 아티팩트
<a name="action-reference-S3-output"></a>
+ **아티팩트 수:** `1` 
+ **설명:** 파이프라인에 연결하도록 구성된 소스 버킷에서 사용할 수 있는 아티팩트를 제공합니다. 버킷에서 생성된 아티팩트는 Amazon S3 작업의 출력 아티팩트입니다. Amazon S3 객체 메타데이터(ETag 및 버전 ID)는 트리거된 파이프라인 실행의 소스 개정으로 CodePipeline에 표시됩니다.

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

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

CodePipeline의 변수에 대한 자세한 내용은 [변수 참조](reference-variables.md) 단원을 참조하세요.

**BucketName**  
파이프라인을 트리거한 소스 변경과 관련된 Amazon S3 버킷의 이름입니다.

**ETag**  
파이프라인을 트리거한 소스 변경과 관련된 개체의 엔터티 태그입니다. ETag는 객체의 MD5 해시입니다. ETag는 객체의 내용에 대한 변경 사항만 반영하고 메타데이터에 대한 변경은 반영하지 않습니다.

**ObjectKey**  
파이프라인을 트리거한 소스 변경과 관련된 Amazon S3 객체 키의 이름입니다.

**VersionId**  
파이프라인을 트리거한 소스 변경과 관련된 객체 버전의 버전 ID입니다.

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

S3 소스 작업 지원의 경우 다음을 정책 설명에 추가합니다.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:GetBucketVersioning",
        "s3:GetBucketAcl",
        "s3:GetBucketLocation",
        "s3:GetObjectTagging",
        "s3:GetObjectVersionTagging"
      ],
      "Resource": [
        "arn:aws:s3:::[[S3Bucket]]",
        "arn:aws:s3:::[[S3Bucket]]/*"
      ],
      "Condition": {
        "StringEquals": {
          "aws:ResourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

------

## 작업 선언
<a name="action-reference-S3-example"></a>

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

```
Name: Source
Actions:
  - RunOrder: 1
    OutputArtifacts:
      - Name: SourceArtifact
    ActionTypeId:
      Provider: S3
      Owner: AWS
      Version: '1'
      Category: Source
    Region: us-west-2
    Name: Source
    Configuration:
      S3Bucket: amzn-s3-demo-source-bucket
      S3ObjectKey: my-application.zip
      PollForSourceChanges: 'false'
    InputArtifacts: []
```

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

```
{
    "Name": "Source",
    "Actions": [
        {
            "RunOrder": 1,
            "OutputArtifacts": [
                {
                    "Name": "SourceArtifact"
                }
            ],
            "ActionTypeId": {
                "Provider": "S3",
                "Owner": "AWS",
                "Version": "1",
                "Category": "Source"
            },
            "Region": "us-west-2",
            "Name": "Source",
            "Configuration": {
                "S3Bucket": "amzn-s3-demo-source-bucket",
                "S3ObjectKey": "my-application.zip",
                "PollForSourceChanges": "false"
            },
            "InputArtifacts": []
        }
    ]
},
```

------

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

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