빌드 사양 이해 - AWS Amplify 호스팅

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

빌드 사양 이해

Amplify 애플리케이션의 빌드 사양은 Amplify가 빌드를 실행하는 데 사용하는 YAML 설정 및 빌드 명령의 모음입니다. 다음 목록은 이러한 설정과 사용 방법을 설명합니다.

version

Amplify YAML 버전 번호입니다.

appRoot

이 애플리케이션이 있는 리포지토리 내 경로입니다. 여러 개의 애플리케이션이 정의되어 있지 않으면 무시됩니다.

env

이 섹션에 환경 변수를 추가합니다. 콘솔을 사용하여 환경 변수를 추가할 수도 있습니다.

백엔드

Amplify CLI 명령을 실행하여 백엔드를 프로비저닝하고, Lambda 함수 또는 GraphQL 스키마를 연속 배포의 일부로 업데이트합니다.

프런트엔드

프런트엔드 빌드 명령을 실행합니다.

테스트

테스트 단계에서 명령을 실행합니다. 앱에 테스트를 추가하는 방법에 대해 알아보십시오.

빌드 단계

프런트엔드와 백엔드, 테스트에는 빌드의 각 시퀀스 동안 실행되는 명령을 나타내는 세 가지 단계가 있습니다.

  • preBuild - preBuild 스크립트는 실제 빌드가 시작되기 전에 실행되지만 Amplify가 종속성을 설치한 후에 실행됩니다.

  • build - 사용자의 빌드 명령입니다.

  • postBuild - 빌드 후 스크립트는 빌드가 완료되고 Amplify가 필요한 모든 아티팩트를 출력 디렉터리에 복사한 후 실행됩니다.

buildpath

빌드를 실행하는 데 사용할 경로입니다. Amplify는 이 경로를 사용하여 빌드 아티팩트를 찾습니다. 경로를 지정하지 않으면 Amplify는 모노레포 앱 루트를 사용합니다(예: apps/app).

artifacts>base-directory

빌드 아티팩트가 있는 디렉터리입니다.

artifacts>files

배포하려는 아티팩트의 파일을 지정합니다. 모든 파일을 포함하려면 **/*를 입력합니다.

cache

node_modules 폴더와 같은 빌드 시간 종속성을 지정합니다. 첫 번째 빌드 중에 여기에 제공된 경로가 캐시됩니다. 후속 빌드에서 Amplify는 명령을 실행하기 전에 캐시를 동일한 경로로 복원합니다.

Amplify는 제공된 모든 캐시 경로를 프로젝트 루트와 관련된 것으로 간주합니다. 그러나 Amplify는 프로젝트 루트 외부로의 통과를 허용하지 않습니다. 예를 들어 절대 경로를 지정하면 빌드가 오류 없이 성공하지만 경로는 캐시되지 않습니다.

빌드 사양의 다음 예제에서는 기본 YAML 구문을 보여줍니다.

version: 1 env: variables: key: value backend: phases: preBuild: commands: - *enter command* build: commands: - *enter command* postBuild: commands: - *enter command* frontend: buildpath: phases: preBuild: commands: - cd react-app - npm ci build: commands: - npm run build artifacts: files: - location - location discard-paths: yes baseDirectory: location cache: paths: - path # A cache path relative to the project root - path # Traversing outside of the project root is not allowed test: phases: preTest: commands: - *enter command* test: commands: - *enter command* postTest: commands: - *enter command* artifacts: files: - location - location configFilePath: *location* baseDirectory: *location*