기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자습서: Amazon S3에 아티팩트 업로드
이 자습서에서는 몇 가지 빌드 작업이 포함된 Amazon 워크플로를 사용하여 Amazon S3 버킷에 아티팩트를 업로드하는 방법을 알아봅니다. CodeCatalyst 워크플로 이러한 작업은 워크플로가 시작될 때 직렬로 실행됩니다. 첫 번째 빌드 작업은 Hello.txt
두 개의 파일 Goodbye.txt
및 를 생성하고 이를 빌드 아티팩트에 번들링합니다. 두 번째 빌드 작업은 아티팩트를 Amazon S3에 업로드합니다. 커밋을 소스 리포지토리로 푸시할 때마다 워크플로가 실행되도록 구성합니다.
사전 조건
시작하려면 다음이 필요합니다.
-
연결된 AWS 계정이 있는 CodeCatalyst 공간이 필요합니다. 자세한 내용은 공백 생성 단원을 참조하십시오.
-
공간에는 다음과 같은 빈 프로젝트가 필요합니다.
codecatalyst-artifact-project
처음부터 시작 옵션을 사용하여 이 프로젝트를 생성합니다.
자세한 내용은 Amazon에서 빈 프로젝트 생성 CodeCatalyst 단원을 참조하십시오.
-
프로젝트에서는 다음과 같은 CodeCatalyst 환경이 필요합니다.
codecatalyst-artifact-environment
다음과 같이 이 환경을 구성합니다.
-
개발 과 같은 유형을 선택합니다.
-
AWS 계정에 연결합니다.
-
기본 IAM 역할 에서 역할을 선택합니다. 나중에 다른 역할을 지정합니다.
자세한 내용은 AWS 계정 및 에 배포 VPCs 단원을 참조하십시오.
-
1단계: AWS 역할 생성
이 단계에서는 AWS IAM 나중에 워크플로의 빌드 작업에 할당할 역할을 생성합니다. 이 역할은 CodeCatalyst 빌드 작업에게 AWS 계정에 액세스하고 아티팩트가 저장될 Amazon S3에 쓸 수 있는 권한을 부여합니다. 역할을 빌드 역할 이라고 합니다.
참고
다른 자습서를 위해 생성한 빌드 역할이 이미 있는 경우 이 자습서에도 사용할 수 있습니다. 다음 절차에 표시된 권한 및 신뢰 정책이 있는지 확인하세요.
IAM 역할에 대한 자세한 내용은 AWS AWS Identity and Access Management 사용 설명서의 IAM 역할을 참조하세요.
빌드 역할을 생성하려면
-
다음과 같이 역할에 대한 정책을 생성합니다.
-
에 로그인합니다 AWS.
에서 IAM 콘솔을 엽니다https://console.aws.amazon.com/iam/
. -
탐색 창에서 Policies를 선택합니다.
-
정책 생성을 선택합니다.
-
JSON 탭을 선택합니다.
-
기존 코드를 삭제합니다.
-
다음 코드를 붙여넣습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": "*" } ] }
참고
역할을 처음 사용하여 워크플로 작업을 실행할 때 리소스 정책 설명의 와일드카드를 사용한 다음 사용 가능한 리소스 이름으로 정책의 범위를 좁힙니다.
"Resource": "*"
-
다음: 태그를 선택합니다.
-
다음: 검토를 선택합니다.
-
이름 에 다음을 입력합니다.
codecatalyst-s3-build-policy
-
정책 생성을 선택합니다.
이제 권한 정책을 생성했습니다.
-
-
다음과 같이 빌드 역할을 생성합니다.
-
탐색 창에서 역할을 선택한 후 역할 생성을 선택합니다.
-
사용자 지정 신뢰 정책 을 선택합니다.
-
기존 사용자 지정 신뢰 정책을 삭제합니다.
-
다음 사용자 지정 신뢰 정책을 추가합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
-
Next(다음)를 선택합니다.
-
권한 정책 에서 확인란을 검색
codecatalyst-s3-build-policy
하고 선택합니다. -
Next(다음)를 선택합니다.
-
역할 이름 에 다음을 입력합니다.
codecatalyst-s3-build-role
-
역할 설명 에 다음을 입력합니다.
CodeCatalyst build role
-
역할 생성을 선택합니다.
이제 신뢰 정책 및 권한 정책으로 빌드 역할을 생성했습니다.
-
2단계: Amazon S3 버킷 생성
이 단계에서는 Hello.txt
및 Goodbye.txt
아티팩트가 업로드되는 Amazon S3 버킷을 생성합니다.
Amazon S3 버킷을 생성하려면
에서 Amazon S3 콘솔을 엽니다https://console.aws.amazon.com/s3/
. -
기본 창에서 버킷 생성을 선택합니다.
-
버킷 이름 에 다음을 입력합니다.
codecatalyst-artifact-bucket
-
AWS 지역에서 지역을 선택합니다. 이 자습서에서는 미국 서부(오레곤) us-west-2를 선택했다고 가정합니다. Amazon S3에서 지원하는 리전에 대한 자세한 내용은 의 Amazon Simple Storage Service 엔드포인트 및 할당량을 참조하세요AWS 일반 참조.
-
페이지 하단에서 버킷 생성을 선택합니다.
-
방금 생성한 버킷의 이름을 복사합니다. 예:
codecatalyst-artifact-bucket
이제 미국 서부(오레곤) us-west-2 리전codecatalyst-artifact-bucket
에서 라는 버킷을 생성했습니다.
3단계: 소스 리포지토리 생성
이 단계에서는 에서 소스 리포지토리를 생성합니다 CodeCatalyst. 이 리포지토리는 자습서의 워크플로 정의 파일을 저장하는 데 사용됩니다.
소스 리포지토리에 대한 자세한 내용은 섹션을 참조하세요소스 리포지토리 생성.
소스 리포지토리를 생성하려면
https://codecatalyst.aws/
CodeCatalyst 콘솔을 엽니다. -
프로젝트 로 이동합니다
codecatalyst-artifact-project
. -
탐색 창에서 코드를 선택한 다음 소스 리포지토리를 선택합니다.
-
리포지토리 추가를 선택하고 리포지토리 생성을 선택합니다.
-
리포지토리 이름에 다음을 입력합니다.
codecatalyst-artifact-source-repository
-
생성(Create)을 선택합니다.
이제 라는 리포지토리를 생성했습니다codecatalyst-artifact-source-repository
.
4단계: 워크플로 생성
이 단계에서는 순차적으로 실행되는 다음 구성 요소로 구성된 워크플로를 생성합니다.
-
트리거 - 이 트리거는 소스 리포지토리에 변경 사항을 푸시할 때 워크플로 실행을 자동으로 시작합니다. 트리거에 대한 자세한 내용은 섹션을 참조하세요트리거를 사용하여 자동으로 워크플로 실행 시작.
-
라는 빌드 작업
GenerateFiles
- 트리거 시GenerateFiles
작업은Hello.txt
두 개의 파일Goodbye.txt
및 를 생성하고 라는 출력 아티팩트에 패키징합니다codecatalystArtifact
. -
라는 또 다른 빌드 작업
Upload
-GenerateFiles
작업이 완료되면Upload
작업이 AWS CLI 명령을 실행aws s3 sync
하여 소스 리포지토리의codecatalystArtifact
및 에 있는 파일을 Amazon S3 버킷에 업로드합니다. AWS CLI 는 컴퓨팅 플랫폼에 사전 설치 및 구성되어 CodeCatalyst 제공되므로 설치 또는 구성할 필요가 없습니다.CodeCatalyst 컴퓨팅 플랫폼의 사전 패키징된 소프트웨어에 대한 자세한 내용은 섹션을 참조하세요런타임 환경 이미지 지정. 의
aws s3 sync
명령에 대한 자세한 내용은 AWS CLI 명령 참조 의 동기화를 참조 AWS CLI하세요.
빌드 작업에 대한 자세한 내용은 섹션을 참조하세요워크플로를 사용한 빌드.
워크플로 생성 방법
-
탐색 창에서 CI/CD 를 선택한 다음 워크플로 를 선택합니다.
-
워크플로 생성을 선택합니다.
-
YAML 샘플 코드를 삭제합니다.
-
다음 YAML 코드를 추가합니다.
참고
다음 YAML 코드에서 원하는 경우
Connections:
섹션을 생략할 수 있습니다. 이 섹션을 생략하는 경우 환경의 기본 역할 필드에 지정된 IAM 역할에 에 설명된 권한 및 신뢰 정책이 포함되어 있는지 확인해야 합니다1단계: AWS 역할 생성. 기본 IAM 역할이 있는 환경 설정에 대한 자세한 내용은 섹션을 참조하세요환경 생성.Name: codecatalyst-artifact-workflow SchemaVersion: 1.0 Triggers: - Type: Push Branches: - main Actions: GenerateFiles: Identifier: aws/build@v1 Configuration: Steps: # Create the output files. - Run: echo "Hello, World!" > "Hello.txt" - Run: echo "Goodbye!" > "Goodbye.txt" Outputs: Artifacts: - Name: codecatalystArtifact Files: - "**/*" Upload: Identifier: aws/build@v1 DependsOn: - GenerateFiles Environment: Name:
codecatalyst-artifact-environment
Connections: - Name:codecatalyst-account-connection
Role:codecatalyst-s3-build-role
Inputs: Artifacts: - codecatalystArtifact Configuration: Steps: # Upload the output artifact to the S3 bucket. - Run: aws s3 sync . s3://codecatalyst-artifact-bucket
위의 코드에서 다음을 바꿉니다.
-
codecatalyst-artifact-environment
에서 생성한 환경의 이름을 사용합니다사전 조건. -
codecatalyst-account-connection
에서 생성한 계정 연결의 이름을 사용합니다사전 조건. -
codecatalyst-s3-build-role
에서 생성한 빌드 역할의 이름1단계: AWS 역할 생성. -
codecatalyst-artifact-bucket
에서 생성한 Amazon S3의 이름을 사용합니다2단계: Amazon S3 버킷 생성.
이 파일의 속성에 대한 자세한 내용은 섹션을 참조하세요빌드 및 테스트 작업 YAML.
-
-
(선택 사항) 커밋하기 전에 YAML 코드가 유효한지 확인하려면 검증을 선택합니다.
-
커밋을 선택합니다.
-
워크플로 커밋 대화 상자에서 다음을 입력합니다.
-
워크플로 파일 이름 의 경우 기본값인 를 그대로 둡니다
codecatalyst-artifact-workflow
. -
커밋 메시지 에 다음을 입력합니다.
add initial workflow file
-
리포지토리 에서 를 선택합니다codecatalyst-artifact-source-repository.
-
브랜치 이름 에서 기본 을 선택합니다.
-
커밋을 선택합니다.
이제 워크플로를 생성했습니다. 워크플로 상단에 정의된 트리거로 인해 워크플로 실행이 자동으로 시작됩니다. 특히
codecatalyst-artifact-workflow.yaml
파일을 소스 리포지토리에 커밋(및 푸시)하면 트리거가 워크플로 실행을 시작했습니다. -
진행 중인 워크플로 실행을 보려면
-
탐색 창에서 CI/CD 를 선택한 다음 워크플로 를 선택합니다.
-
방금 생성한 워크플로를 선택합니다
codecatalyst-artifact-workflow
. -
첫 번째 빌드 작업 진행 상황을 GenerateFiles 보려면 선택합니다.
-
업로드를 선택하여 두 번째 빌드 작업 진행 상황을 확인합니다.
-
업로드 작업이 완료되면 다음을 수행합니다.
-
워크플로 실행에 성공한 경우 다음 절차로 이동합니다.
-
워크플로 실행에 실패한 경우 로그를 선택하여 문제를 해결합니다.
-
5단계: 결과 확인
워크플로가 실행된 후 Amazon S3 서비스로 이동하여 codecatalyst-artifact-bucket
버킷. 이제 다음 파일과 폴더가 포함되어야 합니다.
. |— .aws/ |— .git/ |Goodbye.txt |Hello.txt |REAME.md
Goodbye.txt
및 Hello.txt
파일은 codecatalystArtifact
아티팩트의 일부이므로 업로드되었습니다. .aws/
, .git/
및 README.md
파일은 소스 리포지토리에 있었기 때문에 업로드되었습니다.
정리
이러한 서비스에 대한 요금이 부과되지 않도록 CodeCatalyst 및 AWS 에서 정리합니다.
에서 정리하려면 CodeCatalyst
https://codecatalyst.aws/
CodeCatalyst 콘솔을 엽니다. -
codecatalyst-artifact-source-repository
소스 리포지토리를 삭제합니다. -
codecatalyst-artifact-workflow
워크플로를 삭제합니다.
에서 정리하려면 AWS
-
다음과 같이 Amazon S3에서 정리합니다.
에서 Amazon S3 콘솔을 엽니다https://console.aws.amazon.com/s3/
. -
codecatalyst-artifact-bucket
버킷의 파일을 삭제합니다. -
codecatalyst-artifact-bucket
버킷을 삭제합니다.
-
다음과 IAM같이 에서 정리합니다.
에서 IAM 콘솔을 엽니다https://console.aws.amazon.com/iam/
. -
codecatalyst-s3-build-policy
를 삭제합니다. -
codecatalyst-s3-build-role
를 삭제합니다.