자습서: Amazon S3에 아티팩트 업로드 - 아마존 CodeCatalyst

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

자습서: 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 역할을 참조하십시오.

빌드 역할을 만들려면
  1. 다음과 같이 역할에 대한 정책을 생성합니다.

    1. 에 AWS로그인하세요.

    2. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

    3. 탐색 창에서 정책을 선택합니다.

    4. 정책 생성을 선택합니다.

    5. JSON 탭을 선택합니다.

    6. 기존 코드를 삭제합니다.

    7. 다음 코드를 붙여넣습니다.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListBucket" ], "Resource": "*" } ] }
      참고

      이 역할을 사용하여 워크플로 작업을 처음 실행할 때는 리소스 정책 설명에 와일드카드를 사용하고, 사용 가능한 상태가 되면 리소스 이름을 지정하여 정책의 범위를 좁히십시오.

      "Resource": "*"
    8. 다음: 태그를 선택합니다.

    9. 다음: 검토를 선택합니다.

    10. 이름에 다음을 입력합니다.

      codecatalyst-s3-build-policy
    11. 정책 생성을 선택합니다.

      이제 권한 정책을 생성했습니다.

  2. 다음과 같이 빌드 역할을 생성합니다.

    1. 탐색 창에서 역할을 선택한 후 역할 생성을 선택합니다.

    2. 사용자 지정 신뢰 정책을 선택합니다.

    3. 기존 사용자 지정 신뢰 정책을 삭제합니다.

    4. 다음 사용자 지정 신뢰 정책을 추가합니다.

      { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": [ "codecatalyst-runner.amazonaws.com", "codecatalyst.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
    5. 다음을 선택합니다.

    6. 권한 정책에서 해당 확인란을 codecatalyst-s3-build-policy 검색하여 선택합니다.

    7. 다음을 선택합니다.

    8. 역할 이름에 다음을 입력합니다.

      codecatalyst-s3-build-role
    9. 역할 설명에 다음을 입력합니다.

      CodeCatalyst build role
    10. 역할 생성을 선택합니다.

    이제 신뢰 정책 및 권한 정책을 사용하여 빌드 역할을 생성했습니다.

2단계: Amazon S3 버킷 생성

이 단계에서는 Hello.txtGoodbye.txt 아티팩트가 업로드될 Amazon S3 버킷을 생성합니다.

Amazon S3 버킷을 생성하려면
  1. https://console.aws.amazon.com/s3/에서 S3 콘솔을 엽니다.

  2. 기본 창에서 버킷 생성을 선택합니다.

  3. 버킷 이름에 다음을 입력합니다.

    codecatalyst-artifact-bucket
  4. AWS 지역에서 지역을 선택합니다. 이 자습서에서는 사용자가 미국 서부 (오레곤) us-west-2를 선택했다고 가정합니다. Amazon S3에서 지원하는 지역에 대한 자세한 내용은 의 Amazon 심플 스토리지 서비스 엔드포인트 및 할당량을 참조하십시오. AWS 일반 참조

  5. 페이지 하단에서 버킷 생성을 선택합니다.

  6. 방금 만든 버킷의 이름을 복사합니다. 예를 들면 다음과 같습니다.

    codecatalyst-artifact-bucket

이제 미국 서부 (오레곤) codecatalyst-artifact-bucket us-west-2 지역에 버킷을 생성했습니다.

3단계: 소스 리포지토리 생성

이 단계에서는 에서 소스 리포지토리를 생성합니다 CodeCatalyst. 이 저장소는 자습서의 워크플로 정의 파일을 저장하는 데 사용됩니다.

소스 리포지토리에 대한 자세한 내용은 을 참조하십시오. 소스 리포지토리 생성

소스 리포지토리를 생성하려면
  1. https://codecatalyst.aws/ 에서 CodeCatalyst 콘솔을 엽니다.

  2. 프로젝트로 이동합니다codecatalyst-artifact-project.

  3. 탐색 창에서 코드를 선택한 다음 소스 리포지토리를 선택합니다.

  4. 리포지토리 추가를 선택하고 리포지토리 생성을 선택합니다.

  5. 리포지토리 이름에 다음을 입력합니다.

    codecatalyst-artifact-source-repository
  6. 생성을 선택합니다.

라는 리포지토리가 생성되었습니다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를 참조하십시오.

빌드 작업에 대한 자세한 내용은 을 참조하십시오워크플로를 사용한 구축.

워크플로 생성 방법
  1. 탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.

  2. 워크플로 만들기를 선택합니다.

  3. YAML 샘플 코드를 삭제합니다.

  4. 다음 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 정의 빌드 및 테스트.

  5. (선택 사항) [Validate] 를 선택하여 커밋하기 전에 YAML 코드가 유효한지 확인합니다.

  6. 커밋을 선택합니다.

  7. 워크플로 커밋 대화 상자에서 다음을 입력합니다.

    1. 워크플로 파일 이름의 경우 기본값인 을 그대로 유지합니다codecatalyst-artifact-workflow.

    2. 커밋 메시지에는 다음을 입력합니다.

      add initial workflow file
    3. 리포지토리의 경우 선택합니다 codecatalyst-artifact-source-repository.

    4. 브랜치 이름으로 main을 선택합니다.

    5. 커밋을 선택합니다.

    이제 워크플로가 생성되었습니다. 워크플로 맨 위에 정의된 트리거로 인해 워크플로 실행이 자동으로 시작됩니다. 특히, codecatalyst-artifact-workflow.yaml 파일을 소스 리포지토리에 커밋 (및 푸시) 하면 트리거가 워크플로 실행을 시작했습니다.

실행 중인 워크플로를 보려면
  1. 탐색 창에서 CI/CD를 선택한 다음 워크플로를 선택합니다.

  2. 방금 만든 워크플로를 선택합니다. codecatalyst-artifact-workflow

  3. 첫 번째 빌드 작업 진행 상황을 GenerateFiles확인하도록 선택합니다.

  4. 업로드를 선택하여 두 번째 빌드 작업 진행 상황을 확인하세요.

  5. 업로드 작업이 완료되면 다음과 같이 하세요.

    • 워크플로가 성공적으로 실행되면 다음 절차로 이동합니다.

    • 워크플로 실행이 실패한 경우 [Logs] 를 선택하여 문제를 해결하십시오.

5단계: 결과 확인

워크플로가 실행되면 Amazon S3 서비스로 이동하여 codecatalyst-artifact-bucket버킷을 살펴봅니다. 이제 다음과 같은 파일 및 폴더가 포함되어야 합니다.

. |— .aws/ |— .git/ |Goodbye.txt |Hello.txt |REAME.md

Goodbye.txtHello.txt 파일은 codecatalystArtifact 아티팩트의 일부였기 때문에 업로드되었습니다. .aws/.git/, 및 README.md 파일은 소스 저장소에 있었기 때문에 업로드되었습니다.

정리

CodeCatalyst 정리해서 이러한 서비스에 대한 요금이 부과되지 AWS 않도록 하세요.

안으로 치우려면 CodeCatalyst
  1. https://codecatalyst.aws/ 에서 CodeCatalyst 콘솔을 엽니다.

  2. codecatalyst-artifact-source-repository소스 리포지토리를 삭제합니다.

  3. codecatalyst-artifact-workflow워크플로를 삭제합니다.

에서 정리하려면 AWS
  1. 다음과 같이 Amazon S3에서 정리합니다.

    1. https://console.aws.amazon.com/s3/에서 S3 콘솔을 엽니다.

    2. codecatalyst-artifact-bucket버킷에서 파일을 삭제합니다.

    3. codecatalyst-artifact-bucket버킷을 삭제합니다.

  2. 다음과 같이 IAM에서 정리합니다.

    1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

    2. codecatalyst-s3-build-policy를 삭제합니다.

    3. codecatalyst-s3-build-role를 삭제합니다.