앱 서비스 CLI
개요
Atlas App Services 명령줄 인터페이스(appservices
)을 사용하면 애플리케이션을 프로그래밍 방식으로 관리할 수 있습니다.
App Services CLI를 사용하면 로컬 디렉토리에서 앱을 만들거나 업데이트할 수 있을 뿐만 아니라 기존 애플리케이션을 로컬 디렉토리로 내보낼 수도 있습니다.
설치
App Services CLI 는 npm
에서 사용할 수 있습니다. 시스템에 CLI 를 설치하려면 Node.js 가 있어야 합니다. 설치한 다음 shell 에서 다음 명령을 실행 합니다.
npm install -g atlas-app-services-cli
인증
App Services CLI를 사용하려면 인증해야 합니다. 인증하려면 API 키를 생성해야 합니다.
API 키 생성하기
MongoDB 클라우드 액세스 관리자로 이동합니다
MongoDB Cloud Access Manager 를 사용하면 사용자, 팀, API 키의 프로젝트 액세스를 관리할 수 있습니다. 화면 왼쪽 상단의 access manager dropdown 에서 Project Access 탭을 클릭하여 프로젝트 액세스 관리자를 사용하세요.
API 키 생성
프로젝트 사용자는 프로젝트 API 키로 로그인할 수 있습니다. 프로젝트 액세스 관리자의 오른쪽에 있는 회색 Create API Key 버튼을 클릭하여 프로젝트 API 키를 생성합니다.
이 버튼을 클릭하면 'Create API Key(API 키 생성)' 화면으로 이동합니다. 키에 대한 설명을 설정합니다.
쓰기 액세스 권한을 얻으려면 CLI에 "프로젝트 소유자" 권한이 있는 API 키가 필요합니다. 읽기 전용 액세스의 경우 "프로젝트 읽기 전용" 을 사용할 수 있습니다. Project Permissions 드롭다운을 사용하여 사용 사례에 적합한 권한을 선택하세요.
나중에 로그인할 때 사용할 공개 키를 복사합니다. 키 세부 정보 구성을 계속하려면 next를 클릭합니다.
API 액세스 목록을 구성합니다
나중에 사용할 수 있도록 개인 키를 안전한 위치에 복사하세요. 보안을 위해 초기화 후에는 개인 키가 다시 표시되지 않습니다. 또 다른 보안 기능은 API 액세스 목록입니다. API 액세스 목록 항목을 생성하면 API 호출이 허용된 IP에서 발생하도록 보장됩니다.
API 키를 사용하려면 키를 사용할 사용자의 IP 주소가 필요합니다. Add Access List Entry 버튼을 클릭합니다. IP 주소를 입력하거나 Use Current IP Address 버튼과 Save(저장)를 차례로 클릭합니다. 마지막으로 화면 오른쪽 하단에 있는 Done(완료) 버튼을 클릭하여 API 키 설정을 완료합니다.
API 키로 인증
.mdb
디렉토리
앱 서비스 CLI를 사용하여 구성 파일을 푸시 또는 풀링하는 경우, CLI는 작업 중인 앱에 대한 정보를 애플리케이션 구성의 .mdb
디렉토리에 저장합니다. 이렇게 하면 CLI가 여러 명령어에 걸쳐 구성 파일이 연결된 특정 배포를 기억할 수 있습니다.
이 디렉토리는 기계적으로 생성되므로 보통은 수동으로 수정해서는 안 됩니다. .mdb
디렉토리를 삭제하면 CLI는 더 이상 구성 파일을 특정 배포와 연결할 수 없습니다. CLI는 특정 배포를 대상으로 하는 명령을 실행할 때 새 .mdb
디렉토리를 생성합니다.
CLI는 다음 형식의 .mdb/meta.json
파일에 ID와 구성 메타데이터를 저장합니다.
{ "config_version": 20230101, "app_id": "42249d526d97af5a287c1eae", "group_id": "4b2cf422930196872221a2d4", "client_app_id": "myapp-abcde" }
필드 | 설명 |
---|---|
config_version number | 디렉토리의 모든 구성 파일이 준수하는 구성 파일 형식 버전입니다. CLI가 구성 파일을 읽을 수 있는지 확인하는 데 사용됩니다. |
app_id string | 앱의 내부 ObjectId 값입니다. |
group_id string | 앱이 연결된 Atlas 프로젝트 ID입니다. |
client_app_id string | 사람이 읽을 수 있는 클라이언트 앱 ID입니다. |
CLI 프로필
CLI는 프로필에 사용자에 대한 정보를 저장합니다. 이를 통해 주어진 컨텍스트에서 명령을 실행할 수 있습니다. 예를 들어 Atlas Admin API 키로 로그인하면 CLI는 API 키와 현재 세션 액세스 토큰을 저장합니다. 그런 다음 토큰이 만료될 때까지 후속 명령에 해당 토큰을 재사용합니다.
명명된 프로파일을 여러 개 설정하고 특정 CLI 명령에 사용할 프로파일을 선택할 수 있습니다. 프로필을 지정하지 않으면 CLI는 기본 프로필인 default
프로필을 사용합니다.
프로필을 지정하려면 임의의 명령에 --profile
인수를 추가합니다. 예를 들어 my-profile
(이)라는 새 프로필로 로그인하려면 다음을 실행합니다.
appservices login --profile my-profile
로그인한 후에는 동일한 프로필로 다른 명령을 실행할 수 있습니다.
appservices pull --remote=myapp-abcde --profile my-profile
CLI 명령으로 시스템의 모든 프로필을 나열할 수 있습니다.
appservices profiles list
Found 2 profile(s) Profile API Key ---------- ----------------------------------------------- my-profile rjxerfwi (********-****-****-****-f00b471ec015) default xkwwtlmj (********-****-****-****-f03b321dae23)
CLI는 프로필 이름을 딴 개별 구성 파일에 컴퓨터의 프로필을 저장합니다. 프로필 정의의 위치는 시스템에 따라 다릅니다.
운영 체제 | 프로필 디렉토리 |
---|---|
Unix / Linux |
|
macOS |
|
Windows |
|
옵션
이름 | 유형 | 필수 사항 | 설명 |
---|---|---|---|
--profile | 문자열 | 거짓 | 프로필 지정(기본값: 'default') [자세히 알아보기] |
--telemetry | 문자열 | 거짓 | 현재 프로필에 대한 CLI 사용 추적 활성화/비활성화(기본값: 'on', 허용되는 값: 'on', 'off') |
-o, --output-target | 문자열 | 거짓 | 지정된 파일 경로에 CLI 출력 쓰기 |
-f, --output-format | 문자열 | 거짓 | CLI 출력 형식 설정(기본값: <blank>, 허용 값: <blank>, 'json') |
--disable-colors | 거짓 | 모든 CLI 출력 스타일링 비활성화(예 색상, 글꼴 스타일 등) | |
-y, --yes | 거짓 | 필요한 사용자 프롬프트에 동의하여 CLI 명령을 자동으로 진행합니다. | |
-h, --help | 거짓 | appservices 도움말 |
관련 명령
appservices accessList - 앱의 허용된 IP 주소 및 CIDR 블록을 관리합니다(별칭: accesslist, access-list)
appservices apps - 현재 사용자와 연결된 App Service 앱 관리(별칭: 앱)
appservices deploy - 앱의 자동 배포 관리
appservices 함수 - 앱의 함수와 상호작용(별칭: 함수)
appservices login - MongoDB Cloud API 키를 사용하여 App Services에 CLI 로그인을 합니다
appservices logout - App Services에서 CLI 로그아웃
appservices logs - 앱의 로그와 상호 작용(별칭: log)
appservices pull - 최신 버전의 앱 을 로컬 디렉토리 로 가져옵니다.
appservices push - 로컬 디렉토리 의 변경 사항을 앱 으로 푸시하고 배포합니다.
appservices schema - 앱의 스키마 관리(별칭: schemas)
appservices 시크릿 - 앱의 시크릿 관리(별칭: 시크릿)
appservices users - 앱의 사용자를 관리합니다(별칭: user)
appservices whoami - 현재 사용자에 대한 정보를 표시합니다