기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
자습서: Amazon S3에 아티팩트 업로드
이 자습서에서는 몇 가지 빌드 작업이 포함된 CodeCatalyst 워크플로를 사용하여 Amazon S3 버킷에 아티팩트를 업로드하는 방법을 알아봅니다. 이러한 작업은 워크플로가 시작될 때 순차적으로 실행됩니다. 첫 번째 빌드 작업은 파일 2개와 을 생성하여 빌드 아티팩트로 번들링합니다. Hello.txt
Goodbye.txt
두 번째 빌드 작업은 아티팩트를 Amazon S3에 업로드합니다. 커밋을 소스 리포지토리로 푸시할 때마다 워크플로가 실행되도록 구성해야 합니다.
사전 조건
시작하려면 다음이 필요합니다.
-
연결된 AWS 계정이 있는 CodeCatalyst 공간이 필요합니다. 자세한 정보는 스페이스 만들기을 참조하세요.
-
스페이스에 다음과 같은 빈 처음부터 시작 CodeCatalyst 프로젝트가 필요합니다.
codecatalyst-artifact-project
자세한 정보는 Amazon에서 빈 프로젝트 생성 CodeCatalyst을 참조하세요.
-
프로젝트에는 다음과 같은 CodeCatalyst 환경이 필요합니다.
codecatalyst-artifact-environment
이 환경을 다음과 같이 구성하십시오.
-
원하는 유형 (예: 개발) 을 선택합니다.
-
AWS 계정을 여기에 연결하십시오.
-
기본 IAM 역할의 경우 원하는 역할을 선택합니다. 나중에 다른 역할을 지정하게 됩니다.
자세한 정보는 환경을 AWS 계정 포함한 VPC에 배포 CodeCatalyst을 참조하세요.
-
1단계: AWS 역할 생성
이 단계에서는 AWS IAM 역할을 생성하여 나중에 워크플로의 빌드 작업에 할당합니다. 이 역할은 CodeCatalyst 빌드 작업에 사용자 AWS 계정에 액세스하고 아티팩트가 저장될 Amazon S3에 쓸 수 있는 권한을 부여합니다. 이 역할을 빌드 역할이라고 합니다.
참고
다른 자습서에서 만든 빌드 역할이 이미 있는 경우 이 자습서에도 사용할 수 있습니다. 다음 절차에 나와 있는 권한 및 신뢰 정책이 있는지 확인하기만 하면 됩니다.
IAM 역할에 대한 자세한 내용은 AWS AWS Identity and Access Management 사용 설명서의 IAM 역할을 참조하십시오.
빌드 역할을 만들려면
-
다음과 같이 역할에 대한 정책을 생성합니다.
-
에 AWS로그인하세요.
https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
탐색 창에서 정책을 선택합니다.
-
정책 생성을 선택합니다.
-
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" } ] }
-
다음을 선택합니다.
-
권한 정책에서 해당 확인란을
codecatalyst-s3-build-policy
검색하여 선택합니다. -
다음을 선택합니다.
-
역할 이름에 다음을 입력합니다.
codecatalyst-s3-build-role
-
역할 설명에 다음을 입력합니다.
CodeCatalyst build role
-
역할 생성을 선택합니다.
이제 신뢰 정책 및 권한 정책을 사용하여 빌드 역할을 생성했습니다.
-
2단계: Amazon S3 버킷 생성
이 단계에서는 Hello.txt
및 Goodbye.txt
아티팩트가 업로드될 Amazon S3 버킷을 생성합니다.
Amazon S3 버킷을 생성하려면
https://console.aws.amazon.com/s3/
에서 S3 콘솔을 엽니다. -
기본 창에서 버킷 생성을 선택합니다.
-
버킷 이름에 다음을 입력합니다.
codecatalyst-artifact-bucket
-
AWS 지역에서 지역을 선택합니다. 이 자습서에서는 사용자가 미국 서부 (오레곤) us-west-2를 선택했다고 가정합니다. Amazon S3에서 지원하는 지역에 대한 자세한 내용은 의 Amazon 심플 스토리지 서비스 엔드포인트 및 할당량을 참조하십시오. AWS 일반 참조
-
페이지 하단에서 버킷 생성을 선택합니다.
-
방금 만든 버킷의 이름을 복사합니다. 예를 들면 다음과 같습니다.
codecatalyst-artifact-bucket
이제 미국 서부 (오레곤) codecatalyst-artifact-bucket
us-west-2 지역에 버킷을 생성했습니다.
3단계: 소스 리포지토리 생성
이 단계에서는 에서 소스 리포지토리를 생성합니다 CodeCatalyst. 이 저장소는 자습서의 워크플로 정의 파일을 저장하는 데 사용됩니다.
소스 리포지토리에 대한 자세한 내용은 을 참조하십시오. 소스 리포지토리 생성
소스 리포지토리를 생성하려면
-
프로젝트로 이동합니다
codecatalyst-artifact-project
. -
탐색 창에서 코드를 선택한 다음 소스 리포지토리를 선택합니다.
-
리포지토리 추가를 선택하고 리포지토리 생성을 선택합니다.
-
리포지토리 이름에 다음을 입력합니다.
codecatalyst-artifact-source-repository
-
생성을 선택합니다.
라는 리포지토리가 생성되었습니다codecatalyst-artifact-source-repository
.
4단계: 워크플로우 만들기
이 단계에서는 순차적으로 실행되는 다음과 같은 구성 블록으로 구성된 워크플로를 만듭니다.
-
트리거 - 이 트리거는 소스 리포지토리에 변경 내용을 푸시할 때 워크플로 실행을 자동으로 시작합니다. 트리거에 대한 자세한 내용은 을 참조하십시오트리거를 사용하여 자동으로 워크플로 실행 시작.
-
라는 빌드 작업
GenerateFiles
- 트리거 시GenerateFiles
작업은 파일 두 개를 만들고 이를 라는 출력 아티팩트로 패키징합니다.Hello.txt
Goodbye.txt
codecatalystArtifact
-
라고 하는 또 다른 빌드
GenerateFiles
작업Upload
— 작업이 완료되면Upload
작업은 AWS CLI 명령을aws s3 sync
실행하여 원본 리포지토리의 파일을 Amazon S3 버킷으로 업로드합니다.codecatalystArtifact
CodeCatalyst컴퓨팅 플랫폼에 사전 설치 및 구성된 상태로 AWS CLI 제공되므로 설치하거나 구성할 필요가 없습니다.CodeCatalyst 컴퓨팅 플랫폼에 사전 패키징된 소프트웨어에 대한 자세한 내용은 을 참조하십시오. 런타임 환경 Docker 이미지 지정 의 명령에 대한 자세한 내용은
aws s3 sync
AWS CLI 명령 AWS CLI참조의 sync를 참조하십시오.
빌드 작업에 대한 자세한 내용은 을 참조하십시오워크플로를 사용한 구축.
워크플로 생성 방법
-
탐색 창에서 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
에서 생성한 계정 연결의 이름을 사용하세요사전 조건 . -
에서 생성한 빌드 역할의 이름을 포함하는
코드카탈리스트-s3-build-role
1단계: AWS 역할 생성 -
codecatalyst-artifact-bucket
에서 생성한 Amazon S3의 이름을 사용합니다2단계: Amazon S3 버킷 생성.
이 파일의 속성에 대한 자세한 내용은 를 참조하십시오액션 YAML 정의 빌드 및 테스트.
-
-
(선택 사항) [Validate] 를 선택하여 커밋하기 전에 YAML 코드가 유효한지 확인합니다.
-
커밋을 선택합니다.
-
워크플로 커밋 대화 상자에서 다음을 입력합니다.
-
워크플로 파일 이름의 경우 기본값인 을 그대로 유지합니다
codecatalyst-artifact-workflow
. -
커밋 메시지에는 다음을 입력합니다.
add initial workflow file
-
리포지토리의 경우 선택합니다 codecatalyst-artifact-source-repository.
-
브랜치 이름으로 main을 선택합니다.
-
커밋을 선택합니다.
이제 워크플로가 생성되었습니다. 워크플로 맨 위에 정의된 트리거로 인해 워크플로 실행이 자동으로 시작됩니다. 특히,
codecatalyst-artifact-workflow.yaml
파일을 소스 리포지토리에 커밋 (및 푸시) 하면 트리거가 워크플로 실행을 시작했습니다. -
실행 중인 워크플로를 보려면
-
탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.
-
방금 만든 워크플로를 선택합니다.
codecatalyst-artifact-workflow
-
첫 번째 빌드 작업 진행 상황을 GenerateFiles확인하도록 선택합니다.
-
업로드를 선택하여 두 번째 빌드 작업 진행 상황을 확인하세요.
-
업로드 작업이 완료되면 다음과 같이 하세요.
-
워크플로가 성공적으로 실행되면 다음 절차로 이동합니다.
-
워크플로 실행이 실패한 경우 [Logs] 를 선택하여 문제를 해결하십시오.
-
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에서 정리합니다.
https://console.aws.amazon.com/s3/
에서 S3 콘솔을 엽니다. -
codecatalyst-artifact-bucket
버킷에서 파일을 삭제합니다. -
codecatalyst-artifact-bucket
버킷을 삭제합니다.
-
다음과 같이 IAM에서 정리합니다.
https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
codecatalyst-s3-build-policy
를 삭제합니다. -
codecatalyst-s3-build-role
를 삭제합니다.