Docs Menu
Docs Home
/ /
Atlas App Services
/ /

realm-cli v1 [사용 중단됨]

이 페이지의 내용

  • 개요
  • 설치
  • 일반 옵션
  • 인증
  • CLI 사용자를 인증합니다
  • 현재 Atlas CLI 사용자 로그아웃
  • 현재 로그인한 사용자 보기
  • 애플리케이션 가져오기
  • 애플리케이션 내보내기
  • 보류 중인 애플리케이션 변경 사항 차이점
  • 시크릿
  • 모든 시크릿 나열
  • 시크릿 만들기
  • 비밀 값 업데이트
  • 시크릿 제거
  • 가져오기 전략
  • Merge
  • 바꾸기
  • 이름으로 바꾸기

중요

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 비공개 키가 포함되어 있으므로 의도치 않게 이 파일을 공유하지 않아야 합니다.

--disable-color
Optional.

지정된 경우 realm-cli 출력에서 모든 텍스트 색상을 억제합니다.

기본적으로 오류 및 가져오기 차이점과 같은 일부 출력은 색상으로 표시됩니다. 이 동작을 방지하려면 이 플래그를 사용하세요.

--yes
Optional.

지정된 경우 realm-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 키 .

--username <MongoDB Cloud username>

(사용 중단됨) 개인 API 키를 사용하여 로그인하려는 MongoDB Cloud 계정의 사용자 이름입니다.

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-cliconfig.json 에 정의된 app_id 값을 사용하려고 시도합니다. config.jsonapp_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 값을 무시합니다.

--include-hosting
Optional.

지정된 경우 앱의 /hosting/files 디렉토리에 있는 모든 정적 자산을 업로드하고 배포합니다.

--include-dependencies
Optional.

지정된 경우 앱의 /functions 디렉토리에 있는 node_modules 아카이브에 포함된 모든 외부 종속성을 업로드하고 배포합니다.

realm-cli export 를 사용하여 앱 구성을 로컬 애플리케이션 디렉토리에 저장합니다.

realm-cli export \
--app-id=myRealmApp-abcde \
--output=path/to/exported/app/dir \
--include-hosting \
--as-template
--app-id <App Services Application ID>
Optional.

앱의 애플리케이션 ID입니다.

--output <path>
Optional.

App Services에서 애플리케이션을 내보낼 디렉토리의 경로입니다.

지정된 경우 realm-cli 은 지정된 경로에 디렉토리를 만들고 애플리케이션 구성을 새 디렉토리로 내보냅니다. 지정된 경로에 파일이나 디렉토리가 이미 있는 경우 내보내기가 실패합니다.

참고

output 인수를 생략하면 realm-cli 는 애플리케이션 구성을 현재 작업 디렉토리 내의 새 디렉토리로 내보냅니다.

--include-hosting
Optional.

지정된 경우 앱의 hosting/files 디렉토리에 있는 모든 호스팅된 정적 자산을 내보냅니다.

--for-source-control
Optional.

활성화하면 realm-cli 은(는) config.json 파일의 name, app_id, location, deployment_model 등의 필드와 GitHub 소스 제어를 통한 배포서버와 충돌하는 필드 없이 애플리케이션 구성을 내보냅니다. 애플리케이션에 연결된 모든 Atlas 데이터 소스의 config.json 에 있는 config.clusterName 필드입니다.

--as-template
Optional.

이를 활성화하면 realm-cli 는 애플리케이션 ID를 포함한 서비스 ID 값 없이 애플리케이션 구성을 내보냅니다. 이렇게 하면 내보낸 구성에서 새 애플리케이션을 쉽게 만들 수 있습니다.

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
--include-hosting
Optional.

지정된 경우 diff에는 앱의 배포된 파일과 다른 앱의 hosting/files 디렉토리에 있는 파일 목록이 포함됩니다.

애플리케이션에 있는 각 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!
--name <Secret Name>

새 Secret의 고유한 이름입니다. 기존 Secret에 이미 지정된 이름이 있는 경우 이 작업은 실패합니다.

--value <Secret Value>

새 시크릿의 값입니다.

애플리케이션에서 기존 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-name <Secret Name>
--name <Secret Name>

업데이트할 시크릿의 이름입니다.

--secret-id <Secret ID>
--id <Secret ID>

업데이트할 시크릿의 ID 값입니다.

--value <Secret Value>

시크릿의 새 값입니다.

애플리케이션에서 기존 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
--secret-name <Secret Name>
--name <Secret Name>

앱에서 제거할 시크릿의 이름입니다.

--secret-id <Secret ID>
--id <Secret ID>

앱에서 제거할 시크릿의 ID 값입니다.

애플리케이션 가져오기를 수행할 때 기존 엔터티를 처리하기 위한 여러 전략이 기본으로 제공됩니다.

별도로 지정하지 않는 한 모든 가져오기는 기본적으로 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", ... }
A local application directory is imported with the merge strategy.
The directory contains configuration files for the following functions:
{ "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 은(는) 가져온 구성 파일을 기반으로 업데이트되었습니다. FunctionBFunctionC 은(는) 가져온 애플리케이션 디렉토리에 포함되어 있지 않으므로 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", ... }
A local application directory is imported with the replace strategy.
The directory contains configuration files for the following functions:
{ "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 은(는) 가져온 구성 파일을 기반으로 업데이트되었습니다. FunctionBFunctionC 은(는) 가져온 애플리케이션 디렉토리에 포함되어 있지 않으므로 replace 전략을 사용하여 가져온 후 앱에 표시되지 않습니다. FunctionDFunctionE 을(를) 새 엔터티로 가져오고 시스템 생성 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", ... }
A local application directory is imported with the replace strategy.
The directory contains configuration files for the following functions:
{ "name": "FunctionZ", ... }
{ "name": "FunctionB", ... }
{ "name": "FunctionC", ... }

가져온 후 애플리케이션은 다음과 같은 기능을 갖습니다.

{ "id": <ObjectID 2>, "name": "FunctionB", ... }
{ "id": <ObjectID 3>, "name": "FunctionC", ... }
{ "id": <ObjectID 4>, "name": "FunctionZ", ... }

기존 애플리케이션과 가져온 구성 디렉토리 모두 FunctionBFunctionC 이름을 가진 함수를 포함하고 있습니다. 결과적으로 두 함수 모두 이전 id 값과 이름을 유지했습니다. 두 함수의 나머지 값은 구성 파일에서 업로드된 값을 반영합니다. FunctionA 가 가져온 애플리케이션 디렉토리에 포함되지 않았으므로 replace-by-name 전략을 사용하여 가져온 후 앱에 표시되지 않습니다. FunctionZ 를 새 엔터티로 가져오고 시스템 생성 id 값을 할당했습니다.