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

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

자습서: 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 역할을 참조하세요.

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

    1. 에 로그인합니다 AWS.

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

    3. 탐색 창에서 Policies를 선택합니다.

    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. Next(다음)를 선택합니다.

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

    7. Next(다음)를 선택합니다.

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

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

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

    이제 신뢰 정책 및 권한 정책으로 빌드 역할을 생성했습니다.

2단계: Amazon S3 버킷 생성

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

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

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

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

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

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

  6. 방금 생성한 버킷의 이름을 복사합니다. 예:

    codecatalyst-artifact-bucket

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

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

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

소스 리포지토리에 대한 자세한 내용은 섹션을 참조하세요소스 리포지토리 생성.

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

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

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

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

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

    codecatalyst-artifact-source-repository
  6. 생성(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하세요.

빌드 작업에 대한 자세한 내용은 섹션을 참조하세요워크플로를 사용한 빌드.

워크플로 생성 방법
  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 에서 생성한 계정 연결의 이름을 사용합니다사전 조건.

    • codecatalyst-s3-build-role 에서 생성한 빌드 역할의 이름1단계: AWS 역할 생성.

    • codecatalyst-artifact-bucket 에서 생성한 Amazon S3의 이름을 사용합니다2단계: Amazon S3 버킷 생성.

    이 파일의 속성에 대한 자세한 내용은 섹션을 참조하세요빌드 및 테스트 작업 YAML.

  5. (선택 사항) 커밋하기 전에 YAML 코드가 유효한지 확인하려면 검증을 선택합니다.

  6. 커밋을 선택합니다.

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

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

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

      add initial workflow file
    3. 리포지토리 에서 를 선택합니다codecatalyst-artifact-source-repository.

    4. 브랜치 이름 에서 기본 을 선택합니다.

    5. 커밋을 선택합니다.

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

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

  2. 방금 생성한 워크플로를 선택합니다codecatalyst-artifact-workflow.

  3. 첫 번째 빌드 작업 진행 상황을 GenerateFiles 보려면 선택합니다.

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

  5. 업로드 작업이 완료되면 다음을 수행합니다.

    • 워크플로 실행에 성공한 경우 다음 절차로 이동합니다.

    • 워크플로 실행에 실패한 경우 로그를 선택하여 문제를 해결합니다.

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. 에서 Amazon S3 콘솔을 엽니다https://console.aws.amazon.com/s3/.

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

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

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

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

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

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