Docs Menu
Docs Home
/ /
Atlas App Services
/

앱 복사

이 페이지의 내용

  • 개요
  • 시작하기 전에
  • 절차

앱의 구성 파일을 재사용하고 시크릿을 수동으로 포팅하여 기존 앱의 사본을 만들 수 있습니다.

다음과 같은 경우 애플리케이션을 복사할 수 있습니다.

  • 개발에는 기능 브랜치를 사용합니다. 충돌을 피하려면 각 기능 브랜치에 대해 고유한 앱 사본을 사용하세요.

  • 앱의 작동 중인 버전에 대해 테스트를 실행합니다. 일관된 시작 상태를 보장하기 위해 각 테스트 실행에 대해 앱을 복사할 수 있습니다.

  • 로컬 배포서버 모델 을 사용하여 여러 리전의 클러스터에 동일한 앱 을 배포 합니다. 앱을 복사하여 로컬에서 여러 리전을 제공 할 수 있습니다.

CLI 에서 앱을 복사하려면 다음이 필요합니다.

  • 프로젝트 소유자 권한이 있는 MongoDB Atlas 계정. 무료 계정을 등록하는 방법을 학습 보려면 Atlas 시작하기를 참조하세요.

  • MongoDB Atlas Admin API 공용/개인 키 쌍. API 키에는 App Services Admin API를 사용하려면 프로젝트 소유자 권한이 있어야 합니다.

  • 로컬 시스템 PATH에 설치 및 추가된 App Services CLI의 사본입니다. 방법을 알아보려면 App Services CLI 설치를 참조하세요.

Github 리포지토리 의 구성 파일을 기반으로 앱을 복사하려면 앱에 대해 자동 Github 배포 를 활성화 해야 합니다.

경고

자동 Github 배포 가 활성화된 경우 App Services CLI 를 사용하여 앱에 변경 사항을 푸시하지 마세요. 자세한 내용 은 CLI 에서 변경 방지하기를 참조하세요.

1

MongoDB Atlas Admin API 키를 사용하여 CLI에 로그인합니다.

appservices login --api-key="<my api key>" --private-api-key="<my private api key>"
2

새 빈 앱을 만듭니다. 이름을 선택하고 복사한 앱에서 사용할 배포 모델과 리전을 설정합니다. 자세한 내용 은 앱 만들기를 참조하세요.

예시

# Create the new App
appservices app create \
--name "myapp-copy" \
--deployment-model "LOCAL" \
--provider-region "aws-us-west-2"
3

앱의 구성 파일에는 시크릿의 이름이나 값이 포함되어 있지 않습니다.

원본 앱의 기존 시크릿 값에 액세스하여 새 앱에 수동으로 추가해야 합니다. 앱에 시크릿이 없는 경우 이 단계를 건너뛸 수 있습니다.

원본 앱의 시크릿을 추가하려면 다음을 수행합니다.

  1. 시크릿 보기 문서에 따라 내보낸 앱 에서 모든 시크릿의 이름을 가져옵니다.

  2. 모든 시크릿의 이름을 안전한 위치에 저장합니다. 이 목록에는 실제 시크릿 값이 포함되지 않지만, 새 앱에 추가할 시크릿 이름 목록이 있으면 유용합니다.

  3. 원본 앱의 각 시크릿 값을 찾습니다.

  4. 각 시크릿을 새 앱에 개별적으로 추가합니다. 방법을 학습 보려면 시크릿 정의를 참조하세요.

중요

구성 파일을 복사하기 전에 시크릿 추가하기

일부 App Services 기능의 경우, 기능 을 정의하고 사용하기 전에 하나 이상의 비밀을 정의해야 합니다. 예를 예시 OAuth 인증 제공자에게는 clientSecret 값이 포함된 시크릿이 필요합니다.

정의되지 않은 시크릿을 참조하는 구성 파일을 푸시하면 배포가 실패합니다.

4

원본 앱 구성 파일의 최신 버전을 로컬 파일 시스템으로 가져옵니다. 방법을 학습 보려면 앱 내보내기를 참조하세요.

예시

# Pull the config files for an existing App
appservices pull --remote="myapp-abcde"

root_config.json 을(를) 제외한 원본 앱의 모든 구성 파일을 새 앱의 구성 디렉토리 로 복사합니다. 새 앱의 root_config.json 를 사용하고 다른 구성 파일을 덮어써야 합니다.

예시

# Copy all configuration files except for root_config.json
cp -r myapp myapp-temp
rm myapp-temp/root_config.json
cp -r myapp-temp/* myapp-copy
rm -rf myapp-temp
5

원본 앱에서 복사한 구성 파일을 푸시합니다. 새 앱은 복사된 구성 파일로 자동으로 업데이트되고 배포됩니다.

예시

# Navigate back to the new App
cd myapp-copy
# Push the copied configuration files to App Services
appservices push
1

복사한 앱의 구성 파일을 저장 새 디렉토리 를 만듭니다. 복사한 앱에 대한 새 리포지토리 를 만들거나 브랜치 또는 하위 디렉토리를 사용하여 두 앱의 구성을 동일한 리포지토리 에 유지할 수 있습니다.

예시

# Create a new directory for the copied App
mkdir myapp-copy
2

새 빈 앱을 만듭니다. 원본 앱과 동일한 이름을 선택하고 배포서버 모델 및 리전 을 복사한 앱에서 사용할 것으로 설정하다 합니다. 자세한 내용 은 앱 만들기를 참조하세요.

새 앱의 구성 파일이 생성되면 이전 단계에서 생성한 디렉토리 에 저장합니다(아직 저장하지 않은 경우).

예시

# Navigate to the new App's directory
cd myapp-copy
# Create the new App. The create command saves the new
# App's configuration file directory in the current directory
appservices app create \
--name "myapp-copy" \
--deployment-model "LOCAL" \
--provider-region "aws-us-west-2"
cp -r myapp-copy/* .
rm -rf myapp-copy
# Navigate back to the root of the repo
cd ..
3

새 앱에서 자동 Github 배포 를 설정하다 하고 활성화 합니다. 원본 앱이 아닌 새 앱에 대해 생성한 리포지토리, 브랜치 및 디렉토리 를 점 야 합니다.

4

앱의 구성 파일에는 시크릿의 이름이나 값이 포함되어 있지 않습니다.

원본 앱의 기존 시크릿 값에 액세스하여 새 앱에 수동으로 추가해야 합니다. 앱에 시크릿이 없는 경우 이 단계를 건너뛸 수 있습니다.

원본 앱의 시크릿을 추가하려면 다음을 수행합니다.

  1. 시크릿 보기 문서에 따라 내보낸 앱 에서 모든 시크릿의 이름을 가져옵니다.

  2. 모든 시크릿의 이름을 안전한 위치에 저장합니다. 이 목록에는 실제 시크릿 값이 포함되지 않지만, 새 앱에 추가할 시크릿 이름 목록이 있으면 유용합니다.

  3. 원본 앱의 각 시크릿 값을 찾습니다.

  4. 각 시크릿을 새 앱에 개별적으로 추가합니다. 방법을 학습 보려면 시크릿 정의를 참조하세요.

중요

구성 파일을 복사하기 전에 시크릿 추가하기

일부 App Services 기능의 경우, 기능 을 정의하고 사용하기 전에 하나 이상의 비밀을 정의해야 합니다. 예를 예시 OAuth 인증 제공자에게는 clientSecret 값이 포함된 시크릿이 필요합니다.

정의되지 않은 시크릿을 참조하는 구성 파일을 푸시하면 배포가 실패합니다.

5

root_config.json 을(를) 제외한 원본 앱의 모든 구성 파일을 새 앱의 구성 디렉토리 로 복사합니다. 새 앱의 root_config.json 를 사용하고 다른 구성 파일을 덮어써야 합니다.

예시

# Copy all configuration files except for root_config.json
cp -r myapp myapp-temp
rm myapp-temp/root_config.json
cp -r myapp-temp/* myapp-copy
rm -rf myapp-temp
6

복사한 애플리케이션 구성 파일을 커밋한 다음 Github 에 푸시합니다. 새 앱은 복사된 구성 파일로 자동으로 업데이트 되고 배포 됩니다.

예시

# Navigate back to the new App
cd myapp-copy
# Push the copied configuration files to GitHub
git add -A
git commit -m "Copy configuration from myapp"
git push origin main

돌아가기

앱 업데이트

이 페이지의 내용