realm-cli
v1 [사용 중단됨]
이 페이지의 내용
중요
Realm CLI는 더 이상 사용되지 않습니다.
realm-cli
은(는) 더 이상 사용되지 않으며 향후 기능이나 버그 수정을 받을 수 없습니다. 대신 App Services CLI를 사용하세요.
App Services CLI 는 npm
에서 사용할 수 있습니다. 시스템에 CLI 를 설치하려면 Node.js 가 있어야 합니다. 설치한 다음 shell 에서 다음 명령을 실행 합니다.
npm install -g atlas-app-services-cli
개요
Atlas App Services 명령줄 인터페이스(realm-cli
)를 사용하면 프로그래밍 방식으로 앱을 관리할 수 있습니다. realm-cli
를 사용하면 로컬 디렉토리에서 앱을 만들거나 업데이트할 수 있을 뿐만 아니라 기존 애플리케이션을 로컬 디렉토리로 내보낼 수도 있습니다.
설치
realm-cli
npm
에서 사용할 수 있습니다. 시스템에 의 버전을 설치하려면 Node.js 1 realm-cli
가 설치되어 있어야 합니다. 설치한 다음 에서 다음 명령을 shell 실행합니다.
npm install -g mongodb-realm-cli@^1
일반 옵션
중요
Atlas CLI 버전 확인
이 페이지에서는 realm-cli
버전 1에 대한 명령, 인수 및 플래그에 대한 문서입니다. realm-cli
의 최신 버전이 있는 경우 realm-cli
--help
를 실행하여 업데이트된 명령 및 사용 예제 목록을 확인합니다. Atlas CLI 버전을 확인하려면 다음을 사용합니다: realm-cli --version
.
모든 realm-cli
명령에 다음 옵션을 사용할 수 있습니다.
--config-path <File System Path>
- Optional.
realm-cli login
와 함께 포함된 경우 인증된 세션에 대한 정보를 지정된 경로의 파일에 저장합니다. 세션 정보에는 MongoDB Cloud 사용자 이름, MongoDB Atlas 프로그래밍 방식 API 키 및 세션 새로 고침 토큰이 포함됩니다.다른 명령과 함께 포함된 경우 현재 Atlas CLI 인증 상태 대신 지정된 경로(존재하는 경우)에 저장된 세션을 사용하여 요청을 인증합니다.
경고
세션 구성 파일에는 MongoDB Atlas 프로그래밍 방식 API 비공개 키가 포함되어 있으므로 의도치 않게 이 파일을 공유하지 않아야 합니다.
인증
CLI 사용자를 인증합니다
realm-cli login
를 사용하여 MongoDB Atlas 프로그래밍 방식 API 키로 MongoDB Cloud 사용자를 인증합니다.
realm-cli login --api-key="<my api key>" --private-api-key="<my private api key>"
--api-key <api key>
로그인하려는 MongoDB Cloud 계정에 대한 유효한 공개 MongoDB Atlas 프로그래밍 방식 API 키 .
--private-api-key <private api key>
로그인하려는 MongoDB Cloud 계정에 대한 유효한 비공개 MongoDB Atlas 프로그래밍 방식 API 키 .
현재 Atlas CLI 사용자 로그아웃
realm-cli logout
을(를) 사용하여 현재 로그인한 사용자를 로그아웃합니다.
realm-cli logout
현재 로그인한 사용자 보기
해당하는 경우 realm-cli whoami
를 사용하여 현재 Atlas CLI에 로그인한 사용자에 대한 세부 정보를 확인합니다.
realm-cli whoami
현재 로그인한 사용자가 있는 경우 해당 정보가 다음 줄에 다음 형식으로 표시됩니다.
<username> [API Key: ********-****-****-****-<last 12 digits of API key>]
로그인한 사용자가 없으면 realm-cli
에서 다음 메시지를 반환합니다.
no user info available
앱
애플리케이션 가져오기
realm-cli import
를 사용하여 로컬 애플리케이션 디렉토리를 호스팅된 앱으로 가져옵니다. 존재하지 않는 애플리케이션으로 디렉토리를 가져오는 경우 realm-cli
가 애플리케이션을 생성 할 수 있습니다.
팁
앱을 가져오려면 Project Owner
이어야 합니다. 자세한 내용은 Atlas user role을 참조하세요.
realm-cli import \ --app-id=myapp-abcde \ --path=./path/to/app/dir \ --strategy=merge \ --include-hosting \ --include-dependencies
--app-id <App Services Application ID>
- Optional.
앱의 애플리케이션 ID입니다.
지정하지 않으면
realm-cli
는 config.json 에 정의된app_id
값을 사용하려고 시도합니다.config.json
에app_id
값이 없으면realm-cli
은 새 애플리케이션을 만들라는 메시지를 표시합니다.참고
새 애플리케이션 앱 ID
realm-cli
을 사용하여 새 애플리케이션을 만드는 경우 App Services는 새 애플리케이션 ID를 생성하고 사용자가--app-id
플래그에 지정한 모든 값을 무시합니다.
--path <path>
- Optional.
가져오려는 파일이 포함된 디렉토리의 경로입니다. 디렉토리에는 최소한 유효한 config.json 파일이 포함되어 있어야 합니다.
path
인수를 생략하면realm-cli
는 현재 애플리케이션 디렉토리에서config.json
파일을 검색합니다.
--strategy ['merge|replace|replace-by-name']
- Optional.Default: Merge
realm-cli
에서 가져온 엔터티를 조정할 때 사용해야 하는 가져오기 전략 입니다.
--project-id <MongoDB Cloud Project ID>
- Optional.
새로 생성된 앱을 호스팅하려는 Atlas 프로젝트 의 Project ID 입니다. 지정된 경우
realm-cli
는 새 앱을 만들 때 프로젝트를 선택하라는 메시지를 표시하지 않습니다.참고
realm-cli
새 애플리케이션을 가져오는경우가 아니라면--project-id
값을 무시합니다.
애플리케이션 내보내기
realm-cli export
를 사용하여 앱 구성을 로컬 애플리케이션 디렉토리에 저장합니다.
realm-cli export \ --app-id=myRealmApp-abcde \ --output=path/to/exported/app/dir \ --include-hosting \ --as-template
--output <path>
- Optional.
App Services에서 애플리케이션을 내보낼 디렉토리의 경로입니다.
지정된 경우
realm-cli
은 지정된 경로에 디렉토리를 만들고 애플리케이션 구성을 새 디렉토리로 내보냅니다. 지정된 경로에 파일이나 디렉토리가 이미 있는 경우 내보내기가 실패합니다.참고
output
인수를 생략하면realm-cli
는 애플리케이션 구성을 현재 작업 디렉토리 내의 새 디렉토리로 내보냅니다.
보류 중인 애플리케이션 변경 사항 차이점
realm-cli diff
를 사용하여 배포된 애플리케이션과 로컬 애플리케이션 디렉토리 간의 구성 파일 차이점을 반환합니다.
Diff application config files realm-cli diff Diff application config files and hosted files realm-cli diff --include-hosting
diff는 다음과 유사합니다.
--- functions/oldFunctionName/config.json +++ functions/oldFunctionName/config.json @@ -1,6 +1 @@ -{ - "id": "5d4c6a5cd28e555496a705da", - "name": "oldFunctionName", - "private": false -} --- functions/newFunctionName/config.json +++ functions/newFunctionName/config.json @@ -1 +1,6 @@ +{ + "id": "5d4c6a5cd28e555496a705da", + "name": "newFunctionName", + "private": false +} Modified Files: * /index.html * /auth/confirmEmail.html * /auth/resetPassword.html
시크릿
모든 시크릿 나열
애플리케이션에 있는 각 Secret 의 이름과 ID가 포함된 목록을 반환하려면 realm-cli secrets list
를 사용합니다.
realm-cli secrets list
반환된 시크릿 목록은 다음과 유사합니다.
ID Name 5d5c25415e30c7ef857c6a10 test-secret-please-ignore 5d56dd453b467e2a48a6ec32 some-other-secret
시크릿 만들기
realm-cli secrets add
를 사용하여 지정된 이름과 값으로 새 Secret 을 만듭니다.
realm-cli secrets add --name=mySecret --value=SuperSecretValue!
비밀 값 업데이트
애플리케이션에서 기존 Secret 의 값을 변경하려면 realm-cli secrets update
를 사용합니다.
Update a Secret by name realm-cli secrets update --secret-name=mySecret --value=NewSecretValue realm-cli secrets update --name=mySecret --value=NewSecretValue Update a Secret by name realm-cli secrets update --secret-id=5ba9c5c2e707c02b38031412 --value=NewSecretValue realm-cli secrets update --id=5ba9c5c2e707c02b38031412 --value=NewSecretValue
시크릿 제거
애플리케이션에서 기존 Secret 을 삭제하려면 realm-cli secrets remove
를 사용합니다.
Remove a Secret by name realm-cli secrets remove --secret-name=mySecret realm-cli secrets remove --name=mySecret Remove a Secret by ID realm-cli secrets remove --secret-id=5ba9c5c2e707c02b38031412 realm-cli secrets remove --id=5ba9c5c2e707c02b38031412
가져오기 전략
애플리케이션 가져오기를 수행할 때 기존 엔터티를 처리하기 위한 여러 전략이 기본으로 제공됩니다.
별도로 지정하지 않는 한 모든 가져오기는 기본적으로 merge
전략을 사용합니다.
Merge
realm-cli import --strategy=merge
merge
전략에서는 애플리케이션 디렉토리의 엔터티를 비파괴적으로 애플리케이션에 추가합니다. 애플리케이션의 기존 엔터티는 가져온 애플리케이션 디렉토리에 표시되지 않는 경우 변경되지 않습니다.
가져온 엔터티의 id
값이 기존 엔터티의 id
와 일치하면 가져온 엔터티와 일치하도록 기존 엔터티가 업데이트됩니다. App Services는 시스템 생성 id
값을 id
값이 없는 엔터티에 할당한 후 새 엔터티로 가져옵니다.
기존 엔터티와 일치하지 않는 id
으)로 엔터티를 가져오면 가져오기가 실패합니다. ObjectID가 아닌 id
값을 가진 엔터티를 가져오면 오류가 발생합니다.
참고
가져온 엔터티에 id
필드가 있는 경우 값은 ObjectID여야 하며 그렇지 않으면 병합이 실패합니다.
예시
기존 애플리케이션에는 세 가지 기능이 있습니다.
{ "id": <ObjectID 1>, "name": "FunctionA", ... } { "id": <ObjectID 2>, "name": "FunctionB", ... } { "id": <ObjectID 3>, "name": "FunctionC", ... }
merge
strategy.{ "id": <ObjectID 1>, "name": "FunctionA_Updated!", ... } { "name": "FunctionD", ... }
가져온 후 애플리케이션은 다음과 같은 기능을 갖습니다.
{ "id": <ObjectID 1>, "name": "FunctionA_Updated!" } { "id": <ObjectID 2>, "name": "FunctionB", ... } { "id": <ObjectID 3>, "name": "FunctionC", ... } { "id": <ObjectID 4>, "name": "FunctionD", ... }
FunctionA
은(는) 가져온 구성 파일을 기반으로 업데이트되었습니다. FunctionB
및 FunctionC
은(는) 가져온 애플리케이션 디렉토리에 포함되어 있지 않으므로 merge
전략을 사용하여 가져온 후에도 변경되지 않았습니다. FunctionD
을(를) 새 엔터티로 가져오고 시스템 생성 id
값을 할당했습니다.
바꾸기
realm-cli import --strategy=replace
전략 아래에서 가져온 엔터티의 replace
id
값이 기존 엔터티의 값과 id
일치하면 App Services는 기존 엔터티를 가져온 엔터티로 대체합니다. 가져온 엔터티의 id
값이 기존 엔터티와 일치하지 않으면 가져오기가 실패합니다. 기존 엔터티의 id
가 가져온 엔터티의 id
와 일치하지 않는 경우 App Services는 해당 기존 엔터티를 삭제합니다.
App Services는 id
값이 없는 엔터티에 대해 값을 id
생성한 후 새 엔터티로 가져옵니다. ObjectID가 아닌 id
값을 사용하여 엔터티를 가져오면 오류가 발생하지 않습니다.
예시
기존 애플리케이션에는 세 가지 기능이 있습니다.
{ "id": <ObjectID 1>, "name": "FunctionA", ... } { "id": <ObjectID 2>, "name": "FunctionB", ... } { "id": <ObjectID 3>, "name": "FunctionC", ... }
replace
strategy.{ "id": <ObjectID 1>, "name": "FunctionA_Updated!", ... } { "name": "FunctionD", ... } { "id": "non-ObjectID-value", "name": "FunctionE", ... }
가져온 후 애플리케이션은 다음과 같은 기능을 갖습니다.
{ "id": <ObjectID 1>, "name": "FunctionA_Updated!" } { "id": <ObjectID 4>, "name": "FunctionD", ... } { "id": <ObjectID 5>, "name": "FunctionE", ... }
FunctionA
은(는) 가져온 구성 파일을 기반으로 업데이트되었습니다. FunctionB
및 FunctionC
은(는) 가져온 애플리케이션 디렉토리에 포함되어 있지 않으므로 replace
전략을 사용하여 가져온 후 앱에 표시되지 않습니다. FunctionD
및 FunctionE
을(를) 새 엔터티로 가져오고 시스템 생성 id
값을 할당했습니다.
이름으로 바꾸기
realm-cli import --strategy=replace-by-name
전략 아래에서 가져온 엔터티의 replace-by-name
name
값이 기존 엔터티의 값과 name
일치하면 App Services는 기존 엔터티를 가져온 엔터티로 대체합니다. 가져온 엔터티의 name
값이 기존 엔터티와 일치하지 않으면 해당 엔터티는 새 엔터티가 됩니다. 기존 엔터티의 name
가 가져온 엔터티의 name
와 일치하지 않는 경우 App Services는 해당 기존 엔터티를 삭제합니다.
가져온 엔터티에 name
값이 없으면 에서realm-cli
오류가 발생합니다.
예시
기존 애플리케이션에는 세 가지 기능이 있습니다.
{ "id": <ObjectID 1>, "name": "FunctionA", ... } { "id": <ObjectID 2>, "name": "FunctionB", ... } { "id": <ObjectID 3>, "name": "FunctionC", ... }
replace
strategy.{ "name": "FunctionZ", ... } { "name": "FunctionB", ... } { "name": "FunctionC", ... }
가져온 후 애플리케이션은 다음과 같은 기능을 갖습니다.
{ "id": <ObjectID 2>, "name": "FunctionB", ... } { "id": <ObjectID 3>, "name": "FunctionC", ... } { "id": <ObjectID 4>, "name": "FunctionZ", ... }
기존 애플리케이션과 가져온 구성 디렉토리 모두 FunctionB
및 FunctionC
이름을 가진 함수를 포함하고 있습니다. 결과적으로 두 함수 모두 이전 id
값과 이름을 유지했습니다. 두 함수의 나머지 값은 구성 파일에서 업로드된 값을 반영합니다. FunctionA
가 가져온 애플리케이션 디렉토리에 포함되지 않았으므로 replace-by-name
전략을 사용하여 가져온 후 앱에 표시되지 않습니다. FunctionZ
를 새 엔터티로 가져오고 시스템 생성 id
값을 할당했습니다.