앱 내보내기
개요
앱 구성 파일의 디렉토리를 내보내 다운로드할 수 있습니다. 이를 통해 소스 제어에 앱 구성을 저장하고 App Services CLI 및 선호하는 텍스트 편집기를 로컬에서 사용하여 작업할 수 있습니다.
내보낸 디렉토리에는 데이터 소스, 함수, Atlas Triggers 및 기타 서비스를 포함한 앱의 대부분의 구성 요소에 대한 구성 파일이 포함되어 있습니다. 내보낸 앱의 콘텐츠에 대한 자세한 내용은 앱 구성을 참조하세요.
내보내기에는 Secret 이 포함되지 않습니다. 내보낸 구성 파일을 기반으로 새 앱을 생성하는 경우 새 앱에 Secret을 수동으로 추가해야 합니다. 자세한 내용 은 앱 복사를 참조하세요.
시작하기 전에
Atlas UI에서 앱을 내보내려면 다음이 필요합니다.
프로젝트 소유자 권한이 있는 MongoDB Atlas 계정. 무료 계정을 등록하는 방법을 학습 보려면 Atlas 시작하기를 참조하세요.
Atlas CLI에서 앱을 내보내려면 다음이 필요합니다.
프로젝트 소유자 권한이 있는 MongoDB Atlas 계정입니다. 무료 계정을 등록하는 방법은 Atlas 시작하기를 참조하세요.
MongoDB Atlas Admin API 공용/개인 키 쌍. API 키에는 App Services Admin API를 사용하려면 프로젝트 소유자 권한이 있어야 합니다.
로컬 시스템
PATH
에 설치 및 추가된 App Services CLI의 사본입니다. 방법을 알아보려면 App Services CLI 설치를 참조하세요.앱의 클라이언트 앱 ID 입니다. 앱 이름을 포함하는 고유한 string 입니다.
"myapp-abcde"
. 앱 ID 를 찾는 방법을 학습 보려면 앱 메타데이터 가져오기를 참조하세요.
관리자 API 를 사용하여 앱을 내보내려면 다음이 필요합니다.
프로젝트 소유자 권한이 있는 MongoDB Atlas 계정입니다. 무료 계정을 등록하는 방법은 Atlas 시작하기를 참조하세요.
MongoDB Atlas Admin API 공용/개인 키 쌍. API 키에는 App Services Admin API를 사용하려면 프로젝트 소유자 권한이 있어야 합니다.
앱의 ObjectId 내부 16진수 string 과 앱이 ID 포함된 Atlas 프로젝트의 프로젝트 입니다. 이를 찾는 방법을 학습 보려면 앱 메타데이터 가져오기를 참조하세요.
절차
앱 내보내기 명령 실행
pull
명령은 애플리케이션의 구성 파일을 로컬 디렉토리에 다운로드합니다. --remote
플래그와 함께 클라이언트 애플리케이션 ID를 지정하여 내보낼 앱을 선택합니다.
appservices pull --remote=<Client App ID>
기본적으로 이 명령은 파일을 현재 작업 디렉토리로 가져옵니다. --local
플래그로 디렉토리 경로를 지정하여 대신 새 디렉토리를 생성하도록 명령을 구성할 수 있습니다.
appservices pull --remote=<App ID> --local=<Output Directory Path>
팁
--local
로 지정된 디렉토리는 이미 존재하지 않아야 하며, 그렇지 않으면 Atlas CLI에서 오류가 발생하고 구성 파일을 가져오지 않습니다.
이 명령은 앱을 사용자 지정하기 위해 선택적으로 포함할 수 있는 추가 플래그 도 지원합니다. 다음 표에는 사용할 수 있는 일반적인 플래그가 나열되어 있습니다.
--include-dependencies | 지정된 경우 외부 종속성은 /functions 디렉토리에 node_modules 아카이브로 내보내집니다. |
--include-hosting | 이 값을 지정하면 호스팅된 정적 자산을 /hosting/files 디렉토리로 내보냅니다. |
MongoDB Atlas 사용자 인증하기
MongoDB Atlas API 키 쌍을 사용하여 관리자 사용자 인증 엔드포인트를 호출합니다.
curl -X POST \ https://services.cloud.mongodb.com/api/admin/v3.0/auth/providers/mongodb-cloud/login \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "username": "<Public API Key>", "apiKey": "<Private API Key>" }'
인증 이 성공하면 응답 본문에 access_token
값을 가진 JSON 객체 가 포함됩니다.
{ "access_token": "<access_token>", "refresh_token": "<refresh_token>", "user_id": "<user_id>", "device_id": "<device_id>" }
access_token
은(는) App Services Admin API 에 대한 액세스 을 부여합니다. 모든 관리자 API 요청에 대해 Authorization
헤더에 베어러 토큰으로 포함해야 합니다.
앱 내보내기
앱을 내보내려면 앱 내보내기 엔드포인트에 요청 을 보냅니다.
관리자 API access_token
, 앱이 포함된 Atlas 프로젝트 의 groupId
및 앱의 내부 appId
16진수 string 을 포함해야 합니다.
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/export \ -H 'Authorization: Bearer <access_token>' \ -H 'Content-Type: application/json' \ --output ./exported-app.zip
배포서버 _id
를 URL 쿼리 매개변수로 지정하여 특정 배포서버 에 대한 구성을 내보낼 수 있습니다.
https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/export?deployment={deploymentId}
요청 이 성공적인 하면 엔드포인트는 애플리케이션의 현재 구성 파일의 .zip
디렉토리 가 포함된 200
응답을 반환합니다.
출력
내보낸 앱에는 앱의 모든 구성 요소에 대한 구성 파일이 포함되어 있습니다. 각 유형의 구성 파일에 대한 자세한 내용은 앱 구성을 참조하세요.
내보낸 구성 디렉토리의 구조는 다음과 같습니다.
app/ ├── root_config.json ├── auth/ │ ├── providers.json │ └── custom_user_data.json ├── data_sources/ │ └── <service name>/ │ ├── config.json │ └── <database>/ │ └── <collection>/ │ ├── schema.json │ └── rules.json ├── environments/ │ ├── no-environment.json │ ├── development.json │ ├── testing.json │ ├── qa.json │ └── production.json ├── functions/ │ ├── config.json │ ├── <function>.js │ └── <directory>/ │ └── <function>.js ├── graphql/ │ ├── config.json │ └── custom_resolvers │ └── <resolver name>.json ├── hosting/ │ ├── config.json │ ├── metadata.json │ └── files/ │ └── <files to host> ├── http_endpoints/ │ ├── config.json │ ├── data_api_config.json │ └── [Deprecated] <service name>/ │ ├── config.json │ └── incoming_webhooks/ │ ├── config.json │ └── source.js ├── log_forwarders/ │ └── <name>.json ├── sync/ │ └── config.json ├── triggers/ │ └── <trigger name>.json └── values/ └── <value name>.json