모노레포 빌드 설정 - AWS Amplify호스팅

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

모노레포 빌드 설정

단일 저장소에 여러 프로젝트 또는 마이크로서비스를 저장하면 이를 monorepo라고 합니다. Amplify Hosting을 사용하여 여러 빌드 구성이나 분기 구성을 만들지 않고도 monorepo에서 애플리케이션을 배포할 수 있습니다.

Amplify 콘솔에서 monorepo의 빌드 설정을 저장하거나amplify.yml파일을 선택하여 리포지토리의 루트에 추가합니다. Amplify 콘솔에 저장된 설정을 찾지 않는 한 모든 브랜치에 적용합니다.amplify.yml리포지토리에서 파일을 선택합니다. 언제?amplify.yml파일이 있으면 해당 설정이 Amplify 콘솔에 저장된 빌드 설정보다 우선합니다.

모노레포 빌드 사양 YAML 구문

monorepo 빌드 사양에 대한 YAML 구문은 단일 응용 프로그램을 포함하는 저장소의 YAML 구문과 다릅니다. monorepo의 경우 각 프로젝트를 응용 프로그램 목록에 선언합니다. monorepo 빌드 사양에서 선언하는 각 응용 프로그램에 대해 다음과 같은 추가 정보를 제공해야 합니다.

승인자

응용 프로그램이 시작되는 저장소 내의 루트입니다. 이 키는 존재해야 하며 다음과 같은 값을 가져야 합니다.AMPLIFY_MONOREPO_APP_ROOT환경 변수. 이 환경 변수 설정에 대한 지침은 단원을 참조하십시오.앰플리파이_모노레포_APP_루트 환경 변수 설정하기.

다음 monorepo 빌드 사양 예제에서는 동일한 저장소에서 여러 Amplify 응용 프로그램을 선언하는 방법을 보여 줍니다. 두 가지 앱,react-app, 및angular-app는 다음과 같이 선언됩니다.applications나열. 이appRoot각 앱의 키는 앱이 다음 위치에 있음을 나타냅니다.apps리포지토리의 루트 폴더입니다.

version: 1 applications: - appRoot: apps/react-app env: variables: key: value backend: phases: preBuild: commands: - *enter command* build: commands: - *enter command* postBuild: commands: - *enter command* frontend: phases: preBuild: commands: - *enter command* - *enter command* build: commands: - *enter command* 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* - appRoot: apps/angular-app env: variables: key: value backend: phases: preBuild: commands: - *enter command* build: commands: - *enter command* postBuild: commands: - *enter command* frontend: phases: preBuild: commands: - *enter command* - *enter command* build: commands: - *enter command* 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*

앰플리파이_모노레포_APP_루트 환경 변수 설정하기

monorepo에 저장된 앱을 배포하면 앱의AMPLIFY_MONOREPO_APP_ROOT환경 변수는 리포지토리의 루트에 상대적인 앱 루트의 경로와 동일한 값을 가져야 합니다. 예를 들어, 이름이 지정된 모노레포ExampleMonorepo이름이 지정된 루트 폴더apps, 다음을 포함합니다.app1,app2, 및app3에는 다음과 같은 디렉터리 구조가 있습니다.

ExampleMonorepo apps app1 app2 app3

이 예시에서의 값은AMPLIFY_MONOREPO_APP_ROOT환경 변수app1입니다apps/app1.

Amplify 콘솔을 사용하여 monorepo 앱을 배포하면 콘솔에서 자동으로AMPLIFY_MONOREPO_APP_ROOT앱의 루트 경로에 대해 지정한 값을 사용하는 환경 변수입니다. 그러나 monorepo 앱이 이미 Amplify에 있거나 다음을 사용하여 배포된 경우AWS CloudFormation을 (를) 수동으로 설정해야 합니다.AMPLIFY_MONOREPO_APP_ROOT의 환경 변수환경 변수Amplify 콘솔에 있는 섹션을 선택합니다.

배포 중에 앰플리파이_모노레포_APP_ROOT 환경 변수를 자동으로 설정하기

다음 지침은 Amplify 콘솔을 사용하여 monorepo 앱을 배포하는 방법을 보여줍니다. Amplify 자동 설정AMPLIFY_MONOREPO_APP_ROOT콘솔에서 지정한 앱의 루트 폴더를 사용하는 환경 변수입니다.

Amplify 콘솔을 사용하여 모노레포 앱을 배포하려면

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

  2. 선택새 앱,웹 앱 호스팅오른쪽 상단 모서리에 있습니다.

  3. 웹 앱 호스팅페이지에서 Git 공급자를 선택한 다음계속.

  4. 리포지토리 지점 추가페이지에서 다음을 수행합니다.

    1. 목록에서 리포지토리의 이름을 선택합니다.최근에 업데이트된 리포지토리.

    2. 분기에서 사용할 브랜치의 이름을 선택합니다.

    3. Select모노레포 연결? 폴더를 선택합니다.

    4. monorepo에 앱 경로를 입력합니다 (예:apps/app1.

    5. 다음(Next)을 선택합니다.

  5. 빌드 설정 구성page 기본 설정을 사용하거나 앱의 빌드 설정을 사용자 지정할 수 있습니다. 다음 예제 스크린샷에서 Amplifyamplify.yml빌드 설정에 사용할 저장소의 파일입니다. 에서환경 변수섹션, 앰파이가 설정했습니다.AMPLIFY_MONOREPO_APP_ROOTapps/app1를 사용하여 4d단계에서 지정한 경로를 사용합니다.

    
                Amplify 콘솔에서 빌드 설정 구성 페이지의 스크린샷입니다.
  6. 다음(Next)을 선택합니다.

  7. 검토페이지 선택저장 및 배포.

기존 앱에 대한 앰플리파이_모노레포_APP_ROOT 환경 변수 설정하기

다음 지침에 따라 수동으로AMPLIFY_MONOREPO_APP_ROOTAmplify에 이미 배포되었거나 CloudFormation을 사용하여 생성된 앱의 환경 변수입니다.

기존 앱에 대해 AMPY_MONOREPO_APP_ROOT 환경 변수를 설정하려면

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

  2. 환경 변수를 설정할 앱 이름을 선택합니다.

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

  4. 환경 변수페이지 선택변수 관리.

  5. 에서변수 관리섹션에서 다음과 같이 하십시오.

    1. 선택변수 추가.

    2. 변수를 입력합니다.AMPLIFY_MONOREPO_APP_ROOT.

    3. 에서 앱 경로를 입력합니다.apps/app1.

    4. 분기기본적으로 Amplify 환경 변수를 모든 브랜치에 적용합니다.

  6. 저장(Save)을 선택합니다.