빌드 설정 구성 - AWS Amplify호스팅

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

빌드 설정 구성

Amplify Hosting을 사용하여 앱을 배포하면 앱을 검사하여 프런트엔드 프레임워크 및 관련 빌드 설정을 자동으로 감지합니다.package.json리포지토리에서 파일을 선택합니다. 앱의 빌드 설정을 저장할 때 다음과 같은 옵션이 있습니다.

  • Amplify 콘솔에 빌드 설정 저장 - Amplify 콘솔은 빌드 설정을 자동 감지하여 Amplify 콘솔을 통해 액세스할 수 있도록 저장합니다. Amplify (Amplify) 는 이러한 설정을 모든 브랜치에 적용합니다.amplify.yml리포지토리에 저장된 파일

  • 리포지토리에 빌드 설정 저장 - 다운로드amplify.yml파일을 선택하여 리포지토리의 루트에 추가합니다.

Amplify 콘솔에서 앱의 빌드 설정을 편집할 수 있습니다.앱 설정,빌드 설정. 이 빌드 설정은 앱의 모든 브랜치에 적용됩니다.amplify.yml리포지토리에 저장된 파일

참고

빌드 설정Amplify 콘솔에 표시됩니다.앱 설정앱이 연속 배포를 위해 설정되고 git 저장소에 연결된 경우에만 메뉴. 이 유형의 배포에 대한 지침은 단원을 참조하십시오.기존 코드 시작하기.

빌드 사양 YAML 구문

빌드 사양 YAML에는 Amplify가 빌드를 실행하는 데 사용할 빌드 명령 및 관련 설정 모음이 포함되어 있습니다. YAML은 다음과 같습니다.

version: 1 env: variables: key: value backend: phases: preBuild: commands: - *enter command* build: commands: - *enter command* postBuild: commands: - *enter command* frontend: 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 - path test: phases: preTest: commands: - *enter command* test: commands: - *enter command* postTest: commands: - *enter command* artifacts: files: - location - location configFilePath: *location* baseDirectory: *location*
  • 버전- Amplify YAML 버전 번호를 나타냅니다.

  • 승인자- 이 응용 프로그램이 상주하는 저장소 내의 경로입니다. 여러 응용 프로그램이 정의되어 있지 않으면 무시됩니다.

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

  • backend - Amplify CLI 명령을 실행하여 백엔드 프로비저닝, Lambda 함수 업데이트 또는 GraphQL 스키마를 연속 배포의 일환으로 수행합니다. 프런트엔드와 함께 백엔드 배포 방법에 대해 알아보십시오.

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

  • 테스트를 수행합니다- 테스트 단계에서 명령을 실행합니다. 방법 알아보기앱에 테스트 추가.

  • 프런트엔드, 백엔드 및 테스트에는 세 가지가 있습니다.단계이 변수는 빌드의 각 시퀀스 동안 실행되는 명령을 나타냅니다.
    • preBuild - preBuild 스크립트는 실제 빌드가 시작되기 전에 실행되지만 종속성을 설치한 후에 실행됩니다.

    • 빌드 - 사용자의 빌드 명령.

    • postBuild - 사후 빌드 스크립트는 빌드가 종료되고 필요한 모든 결과물을 출력 디렉터리에 복사한 후 실행됩니다.

  • artifacts>base-directory - 빌드 결과물이 있는 디렉터리.

  • artifacts>files - 배포하려는 결과물에서 파일을 지정합니다. **/*는 모든 파일을 포함해야 합니다.

  • 은닉처- buildspec의 캐시 필드는 다음과 같은 빌드 시간 종속성을 캐시하는 데 사용됩니다.노드_모듈폴더는 고객의 앱이 내장된 패키지 관리자 및 프레임워크를 기반으로 자동으로 제안됩니다. 첫 번째 빌드 중에 여기에있는 모든 경로가 캐시되고 후속 빌드에서는 캐시를 다시 팽창시키고 가능한 경우 캐시 된 종속성을 사용하여 빌드 시간을 단축합니다.

브랜치별 빌드 설정

배시 셸 스크립팅을 사용하여 브랜치별 빌드 설정을 지정할 수 있습니다. 예를 들어 다음 스크립트는 시스템 환경 변수를 사용합니다.$AWS_브랜치분기 이름이 다음과 같은 경우 하나의 명령 집합을 실행합니다.주요분기 이름이 인 경우 다른 명령 집합dev.

frontend: phases: build: commands: - if [ "${AWS_BRANCH}" = "main" ]; then echo "main branch"; fi - if [ "${AWS_BRANCH}" = "dev" ]; then echo "dev branch"; fi

monorepos의 경우 사용자는cd빌드를 실행할 폴더로 실행 후cdcommand 를 선택하면 빌드의 모든 스테이지에 적용되므로 별도의 단계에서 명령을 반복하지 않아도 됩니다.

version: 1 env: variables: key: value frontend: phases: preBuild: commands: - cd react-app - npm ci build: commands: - npm run build

프런트엔드와 함께 백엔드 배포

amplifyPushcommand는 백엔드 배포에 도움을 제공하는 도우미 스크립트입니다. 아래의 빌드 설정은 현재 브랜치에 대해 배포할 올바른 백엔드 환경을 자동으로 결정합니다.

version: 1 env: variables: key: value backend: phases: build: commands: - amplifyPush --simple

출력 폴더 설정

다음 빌드 설정에서는 출력 디렉터리를 퍼블릭 폴더로 설정합니다.

frontend: phases: commands: build: - yarn run build artifacts: baseDirectory: public

빌드의 일부로 패키지 설치

npm또는yarn빌드 중 패키지를 설치하는 명령

frontend: phases: build: commands: - npm install -g pkg-foo - pkg-foo deploy - yarn run build artifacts: baseDirectory: public

비공개 npm 레지스트리 사용

빌드 설정에서 프라이빗 레지스트리에 대한 참조를 추가하거나 환경 변수로 추가할 수 있습니다.

build: phases: preBuild: commands: - npm config set <key> <value> - npm config set registry https://registry.npmjs.org - npm config set always-auth true - npm config set email hello@amplifyapp.com - yarn install

OS 패키지 설치

종속성이 누락된 경우 OS 패키지를 설치할 수 있습니다.

build: phases: preBuild: commands: - yum install -y <package>

모든 빌드에 대한 키-값 스토리지

envCache은 빌드 시 키-값 스토리지를 제공합니다. 에 저장된 값envCache은 빌드 중에만 수정할 수 있으며 다음 빌드에서 재사용할 수 있습니다. 사용envCache을 선택하여 배포된 환경에 정보를 저장하고 연속 빌드에서 빌드 컨테이너에 사용할 수 있습니다. 에 저장된 값과 달리envCache, 빌드 중 환경 변수 변경 사항은 future 빌드에 지속되지 않습니다.

사용 예:

envCache --set <key> <value> envCache --get <key>

커밋용 빌드 건너뛰기

특정 커밋에서 자동 빌드를 건너뛰려면 텍스트를 포함하십시오.[건너뛰기-cd]커밋 메시지 끝에

자동 빌드 비활성화

모든 코드 커밋에서 자동 빌드를 비활성화도록 Amplify를 구성할 수 있습니다. 를 설정하려면앱 설정,일반를 클릭한 다음Branches연결된 분기를 나열하는 섹션입니다. 브랜치를 선택한 다음 [] 를 선택합니다.작업,auto 빌드 비활성화. 해당 브랜치에 대한 추가 커밋은 더 이상 새 빌드를 트리거하지 않습니다.

diff 기반 프런트엔드 빌드 및 배포 활성화 또는 비활성화

diff 기반 프런트엔드 빌드를 사용하도록 Amplify를 구성할 수 있습니다. 활성화되면 각 빌드가 시작될 때 Amplify 다음 중 하나에서 diff를 실행하려고 시도합니다.appRoot, 또는/src/기본적으로 폴더입니다. Amplify에서 차이점을 찾지 못하면 프런트엔드 빌드, 테스트 (구성된 경우) 및 배포 단계를 건너뛰고 호스팅된 앱을 업데이트하지 않습니다.

diff 기반 프런트엔드 빌드 및 배포를 구성하려면

  1. 에 로그인합니다.AWS Management Console를 열려면Amplify Console.

  2. diff 기반 프런트엔드 빌드를 구성하고 배포할 앱을 선택합니다.

  3. 탐색 창에서 [] 를 선택합니다.앱 설정,환경 변수.

  4. 에서환경 변수섹션, 선택변수 관리.

  5. 환경 변수를 구성하는 절차는 diff 기반 프런트엔드 빌드 및 배포를 활성화 또는 비활성화하는지 여부에 따라 다릅니다.

    • diff 기반 프런트엔드 빌드 및 배포를 활성화하려면

      1. 에서변수 관리섹션, 아래변수를 입력합니다.AMPLIFY_DIFF_DEPLOY.

      2. true을(를) 입력합니다.

    • diff 기반 프런트엔드 빌드 및 배포를 비활성화하려면

      1. 다음 중 하나를 수행하세요.

        • 에서변수 관리섹션, 찾기AMPLIFY_DIFF_DEPLOY. false을(를) 입력합니다.

        • 를 제거합니다.AMPLIFY_DIFF_DEPLOY환경 변수.

선택적으로 다음을 설정할 수 있습니다.AMPLIFY_DIFF_DEPLOY_ROOT기본 경로를 리포지토리의 루트에 상대적인 경로로 재정의하는 환경 변수 (예:dist.

diff 기반 백엔드 빌드 활성화 또는 비활성화

다음을 사용하여 diff 기반 백엔드 빌드를 사용하도록 Amplify 호스팅을 구성할 수 있습니다.AMPLIFY_DIFF_BACKEND환경 변수. diff 기반 백엔드 빌드를 활성화하면 각 빌드가 시작될 때 Amplifyamplify리포지토리에 있는 폴더 Amplify에서 차이점을 찾지 못하면 백엔드 빌드 단계를 건너뛰고 백엔드 리소스를 업데이트하지 않습니다. 프로젝트에amplify저장소의 폴더, AmplifyAMPLIFY_DIFF_BACKEND환경 변수.

현재 백엔드 단계의 빌드 설정에 지정된 사용자 지정 명령이 있는 경우 조건부 백엔드 빌드가 작동하지 않습니다. 이러한 사용자 지정 명령을 실행하려면 앱의 빌드 설정의 프런트엔드 단계로 이동해야 합니다.amplify.yml파일.

diff 기반 백엔드 빌드를 구성하려면

  1. 에 로그인합니다.AWS Management Console를 열려면Amplify Console.

  2. diff 기반 백엔드 빌드를 구성할 앱을 선택합니다.

  3. 탐색 창에서 [] 를 선택합니다.앱 설정,환경 변수.

  4. 에서환경 변수섹션, 선택변수 관리.

  5. 환경 변수를 구성하는 절차는 diff 기반 백엔드 빌드를 활성화 또는 비활성화하는지 여부에 따라 다릅니다.

    • diff 기반 백엔드 빌드를 활성화하려면

      1. 에서변수 관리섹션, 아래변수를 입력합니다.AMPLIFY_DIFF_BACKEND.

      2. true을(를) 입력합니다.

    • diff 기반 백엔드 빌드를 비활성화하려면

      1. 다음 중 하나를 수행하세요.

        • 에서변수 관리섹션, 찾기AMPLIFY_DIFF_BACKEND. false을(를) 입력합니다.

        • 를 제거합니다.AMPLIFY_DIFF_BACKEND환경 변수.