문서 메뉴
문서 홈
/ /
Atlas App Services
/

GitHub를 통해 자동 배포하기

이 페이지의 내용

  • 개요
  • 전제 조건
  • GitHub로 자동 배포서버 허용
  • UI에서 변경하기
  • CLI에서 변경
  • 요약

앱 구성 파일을 GitHub 에 푸시할 때마다 자동으로 배포되도록 Atlas App Services App을 구성할 수 있습니다. 리포지토리. GitHub 리포지토리를 컴퓨터에 복제한 다음 표준 Git 명령을 사용하여 최신 버전을 가져오고 새 변경 사항을 배포할 수 있습니다.

  • Github 계정 및 리포지토리. 리포지토리는 비어 있거나 기존 앱에 대해 내보낸 구성 디렉토리를 포함해야 합니다. 빈 리포지토리를 만드는 방법에 대한 자세한 내용은 Github 의 리포지토리 만들기 를 참조하세요. 가이드.

  • Git CLI의 설치된 사본. git 이(가) 설치되어 있지 않은 경우 Git 설치 에 대한 공식 가이드를 참조하세요. .

  • 앱의 기본 Git 리포지토리에 대한 액세스를 인증하고 권한을 부여하기 위한 MongoDB Atlas 프로그래밍 방식 API 키 입니다. Atlas 조직을 위한 프로그래밍 방식 API 키를 아직 생성하지 않았다면 지금 생성하세요.

App Services UI, App Services CLI 또는 App Services Admin API를 사용하여 Github에서 자동 배포를 활성화할 수 있습니다.

1

GitHub 저장소를 기반으로 자동 배포하려면 Atlas App Services에서 최소한 저장소에 대한 읽기 액세스 권한이 있는 GitHub 앱을 설치해야 합니다.

앱을 설치하려면 App Services UI의 왼쪽 탐색 메뉴에서 Deployment를 클릭합니다. Configuration 탭을 선택한 다음 Install App Services on GitHub를 클릭합니다. 새 브라우저 창이 열리고 GitHub 애플리케이션 설치 흐름이 표시됩니다.

참고

GitHub 인증

GitHub에서는 앱 설치 전에 GitHub 계정 자격 증명을 제시해야 할 수 있습니다.

앱을 설치하려는 GitHub 계정 또는 조직을 선택합니다.

GitHub 애플리케이션 설치 위치 화면

App Services 읽기 액세스 권한을 부여하려는 저장소를 한 개 이상 지정합니다. 특정 저장소를 선택하거나 GitHub의 모든 저장소에 대한 액세스 권한을 부여할 수 있습니다. 사용하려는 저장소를 선택한 다음 Install를 클릭합니다.

GitHub 애플리케이션 권한 요청 화면

애플리케이션을 설치한 후 Configuration 탭으로 돌아가서 Authorize 버튼을 클릭하여 GitHub에 대한 App Services 연결을 완료합니다. 그러면 Github 권한 화면으로 이동합니다. Authorize MongoDB Atlas App Services를 클릭합니다.

GitHub 애플리케이션 권한 부여 요청 화면

참고

GitHub 권한

GitHub 설정의 설치된 GitHub 앱 페이지에서 App Services GitHub 애플리케이션에 대한 권한을 관리할 수 있습니다.

2

GitHub 계정을 앱에 연결한 후에는 App Services에서 자동으로 배포해야 하는 리포지토리를 지정할 수 있습니다. 앱의 구성 파일이 포함된 Repository, BranchDirectory를 지정한 다음 Save을 클릭합니다.

GitHub 리포지토리 선택

참고

App Services에 대한 읽기 액세스 권한을 부여한 저장소만 저장소 목록에 포함됩니다.

3

지정한 Git 리포지토리의 로컬 복사본을 복제합니다.

git clone https://github.com/<organization>/<repo>.git

구성된 브랜치 및 디렉토리에는 애플리케이션을 정의하는 구성 파일이 포함되어야 합니다. 구성을 수동으로 생성하거나 기존 앱의 애플리케이션 디렉토리를 내보낼 수 있습니다.

애플리케이션 디렉토리를 저장소에 추가한 다음 변경 사항을 커밋합니다.

git add -A
git commit -m "Adds App Services Application Directory"

최신 버전의 애플리케이션을 리포지토리에 커밋한 후 이를 GitHub 리포지토리에 푸시합니다.

git push origin <branch name>
4

배포할 저장소를 지정하고 최신 버전의 앱으로 초기화한 후 자동 배포를 허용해야 배포를 시작할 수 있습니다. Deploy 페이지의 Configuration 탭에서 Enable Automatic Deployment를 클릭합니다. 표시되는 모달에서 Enable Automatic Deployment를 클릭하여 선택을 확인합니다.

App Services UI에서 자동 GitHub 배포서버 허용
5

배포에는 이전 배포 이후 애플리케이션에 적용한 하나 이상의 변경 사항이 포함됩니다. 배포에 포함할 리포지토리를 추가, 수정 또는 삭제합니다.

애플리케이션 디렉토리의 구조 및 스키마에 대한 자세한 내용은 앱 구성 참조 페이지 및 개별 구성 요소 참조 페이지를 확인해 보세요.

중요

자동화된 배포를 통해 호환성이 손상되는 스키마 변경을 적용하지 마세요

호환성이 손상되는 스키마 변경 또는 파괴적인 스키마 변경에는 특별한 처리가 필요하므로 App Services는 GitHub 자동 배포를 통한 호환성이 손상되는 스키마 변경을 지원하지 않습니다. 대신 App Services UI에서 호환성이 손상되는 변경을 적용해야 합니다.

6

애플리케이션 구성을 업데이트한 후에는 지정한 GitHub 리포지토리에 업데이트를 푸시하여 업데이트를 앱의 새 버전으로 배포할 수 있습니다. 자동 GitHub 배포를 사용하도록 설정하면 App Services는 구성된 브랜치 및 디렉토리에 대한 최신 커밋을 즉시 배포합니다.

배포할 준비가 되면 포함하려는 모든 파일을 커밋한 다음 GitHub에 푸시합니다.

git add -A
git commit -m "<commit message>"
git push origin <branch name>

GitHub에 변경 사항을 성공적으로 푸시하면 App Services는 최신 커밋 상태와 일치하는 새 버전의 애플리케이션을 즉시 배포합니다. 클라이언트 애플리케이션은 자동으로 최신 버전을 사용하므로 필요한 경우 새 버전을 사용하도록 클라이언트 코드도 업데이트해야 합니다.

참고

배포 내역

App Services UI의 배포 기록 테이블에서 현재 배포된 애플리케이션 버전과 이전 배포의 기록 로그를 볼 수 있습니다.

버전 1.1.0에 추가 되었습니다.

CLI를 사용하여 자동 배포를 구성, 활성화 또는 비활성화할 수 있습니다.

1

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

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

App Services CLI는 자동 배포를 구성하는 프로세스를 안내할 수 있습니다. 이는 대화형 명령입니다.

appservices deploy configure

이 명령은 선택적으로 포함할 수 있는 추가 플래그도 지원합니다. 이러한 플래그에 대한 자세한 내용은 appservices 배포 구성을 참조하세요.

이 명령을 완료하면 Atlas App Services CLI가 즉시 자동 배포를 활성화합니다. enable 명령을 추가 단계로 실행할 필요가 없습니다.

CLI를 통한 자동 배포 구성은 Github beta 기능을 사용합니다.

Atlas App Services CLI를 사용하여 자동 배포를 구성하는 기능은 현재 beta 버전인 Github 기능을 사용합니다. Github에서 이 기능에 호환성이 손상되는 변경이 적용되면 Atlas App Services CLI를 사용하여 자동 배포를 구성하지 못할 수 있습니다. 이 경우 Realm UI 또는 Admin API를 사용하여 자동 배포를 구성합니다.

Github 베타 기능은 자동 배포 구성에만 영향을 미칩니다. 이전에 애플리케이션에 대한 자동 배포를 구성한 적이 있다면 이 베타 Github 기능의 상태에 관계없이 Atlas App Services CLI를 사용하여 자동 배포를 활성화하거나 비활성화할 수 있습니다.

3

자동 배포를 구성한 후 Atlas App Services CLI를 사용하여 구성 세부 정보를 볼 수 있습니다.

appservices deploy describe

Atlas App Services CLI를 사용하여 자동 배포를 비활성화 및 활성화할 수도 있습니다. 이러한 명령과 해당 옵션에 대한 자세한 내용은 appservices 배포를 참조하세요.

1

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 은(는) Atlas App Services Admin API에 대한 액세스 권한을 부여합니다. 모든 관리자 API 요청에 대해 이를 Authorization 헤더에 베어러 토큰으로 포함해야 합니다.

다음도 참조하세요.

2

배포 구성 가져오기 엔드포인트에 GET 요청을 수행하여 의 기존 배포 구성을 가져올 수 있습니다.

curl -X GET \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/deploy/config \
-H 'Authorization: Bearer <access_token>'
3

배포 구성 엔드포인트에 PATCH 요청을 수행하여 앱의 기존 배포 구성을 업데이트할 수 있습니다.

curl -X PATCH \
https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/deploy/config \
-H 'Authorization: Bearer <access_token>' \
-d '{
"ui_drafts_disabled": true,
"automatic_deployment": {
"enabled": true,
"provider": "github",
"installation_ids": [
"string"
]
},
"last_modified": 0
}'

자동 GitHub 배포가 App Services UI에서의 앱 변경을 이 제한하지는 않습니다. UI를 통해 앱을 변경할 수 있으며 App Services는 연결된 GitHub 저장소에 변경 사항을 자동으로 다시 커밋합니다.

연결된 GitHub 리포지토리에 앱 서비스 UI 변경 사항에 반영되지 않은 새 커밋이 포함되어 있는 경우, 앱 서비스는 해당 변경 사항을 리포지토리에 자동으로 커밋할 수 없습니다. 그러나 Export 버튼을 사용하여 업데이트된 구성 파일을 로컬 컴퓨터에 다운로드한 다음 수동으로 GitHub 리포지토리에 푸시할 수 있습니다.

연결된 GitHub 저장소에 변경 사항이 커밋되면 앱의 배포 내역에 Commit: <commit-hash> 링크가 표시됩니다.

GitHub 리포지토리 선택

해당 링크를 클릭하면 GitHub에서 커밋을 볼 수 있습니다. mongodb-realm 봇이 커밋 작성자로 나타납니다.

GitHub 리포지토리 선택

이전에는 자동 배포를 구성한 후 App Services CLI를 사용하여 앱을 변경하지 않는 것을 권장했습니다. App Services CLI v1.1.0부터 시작하기 이후에는 App Services CLI를 사용하여 안전하게 앱에 변경 사항을 만들 수 있습니다.

App Services CLI 버전 1.1.0 및 이후

App Services CLI v1.1.0 및 이후 버전에서 App Services CLI에서 푸시하면 GitHub에 해당 커밋이 자동으로 생성됩니다. 이렇게 하면 코드 변경 내용이 버전 제어 GitHub 데이터 소스와 동기화된 상태로 유지됩니다.

App Services CLI 버전 1.0.3 및 이전

App Services CLI v1.0.3 이전에서는 자동 배포를 구성한 후 App Services CLI를 사용하여 변경 사항을 만들지 마세요. 이유는 다음과 같습니다.

  • GitHub 배포가 활성화된 상태에서 CLI를 사용하여 변경 사항을 푸시하면 App Services는 변경 사항을 배포하지만, 연결된 리포지토리에 다시 커밋하지는 않습니다.

  • 리포지토리의 구성 파일은 더 이상 앱의 현재 상태를 반영하지 않습니다.

  • 푸시한 변경 내용을 가져오려면 기여자가 앱에서 직접 최신 구성 파일을 수동으로 가져와야 합니다. GitHub 리포지토리는 더 이상 진실 공급원이 아닙니다.

  • 기여자가 오래된 저장소에 새 커밋을 추가하면 배포되었지만 커밋되지 않은 변경 사항을 덮어씁니다.

  • GitHub에서 호스팅되는 리포지토리를 수정하여 앱을 배포할 수 있습니다.

  • 자동 GitHub 배포가 활성화되어 있는 동안 App Services는 최신 커밋을 즉시 배포합니다. 배포하려면 로컬에서 변경 사항을 커밋한 다음 GitHub의 리포지토리에 푸시합니다.

  • 자동 GitHub 배포를 활성화한 후 앱 서비스 UI를 통해 변경하면 해당 변경 사항이 연결된 리포지토리에 자동으로 다시 커밋됩니다.

  • 자동 GitHub 배포를 활성화한 후 App Services CLI를 사용하여 구성 파일을 업데이트하려면 App Services CLI v1.1.0 이후 버전을 사용하세요.

돌아가기

앱 환경 구성

다음

CI/CD 파이프라인 설정하기