๋ฐฐํฌ์๋ฒ ๋กค๋ฐฑ
์ด ํ์ด์ง์ ๋ด์ฉ
๊ฐ์
์ฑ์ ๊ตฌ์ฑ์ ์ด์ ์ ๋ฐฐํฌ๋ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ ์ ์์ต๋๋ค. App Services๋ ์ฑ์ ๊ฐ์ฅ ์ต๊ทผ ๋ฐฐํฌ 25๊ฐ ์ค ํ๋๋ฅผ ์๋์ผ๋ก ์ฌ๋ฐฐํฌํ ์ ์์ต๋๋ค. ์ด์ ๋ฐฐํฌ์ ๊ฒฝ์ฐ ๊ตฌ์ฑ ํ์ผ(์: ์์ค ์ ์ด์์)์ ์๋์ผ๋ก ๊ฐ์ ธ์ ๋ฐฐํฌํด์ผ ํฉ๋๋ค.
์ฌ๋ฐฐํฌ๋ ์ด์ ๋ฒ์ ๊ณผ ์ผ์นํ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑ์ ๋กค๋ฐฑํฉ๋๋ค.
์์ํ๊ธฐ ์ ์
Atlas UI์์ ์ฑ์ ๋กค๋ฐฑํ๋ ค๋ฉด ๋ค์์ด ํ์ํฉ๋๋ค.
ํ๋ก์ ํธ ์์ ์ ๊ถํ์ด ์๋ MongoDB Atlas ๊ณ์ . ๋ฌด๋ฃ ๊ณ์ ์ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ ํ์ต ๋ณด๋ ค๋ฉด Atlas ์์ํ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
๊ด๋ฆฌ์ API ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ๋กค๋ฐฑ ํ๋ ค๋ฉด ๋ค์์ด ํ์ํฉ๋๋ค.
ํ๋ก์ ํธ ์์ ์ ๊ถํ์ด ์๋ MongoDB Atlas ๊ณ์ ์ ๋๋ค. ๋ฌด๋ฃ ๊ณ์ ์ ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ Atlas ์์ํ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
MongoDB Atlas Admin API ๊ณต์ฉ/๊ฐ์ธ ํค ์. API ํค์๋ App Services Admin API๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ํ๋ก์ ํธ ์์ ์ ๊ถํ์ด ์์ด์ผ ํฉ๋๋ค.
์ฑ์ ObjectId ๋ด๋ถ 16์ง์ string ๊ณผ ์ฑ์ด ID ํฌํจ๋ Atlas ํ๋ก์ ํธ์ ํ๋ก์ ํธ ์ ๋๋ค. ์ด๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ ํ์ต ๋ณด๋ ค๋ฉด ์ฑ ๋ฉํ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฐธ์กฐํ์ธ์.
์ ์ฐจ
๋กค๋ฐฑ ์ฑ๊ณต ํ์ธ
๋ฐฐํฌ๊ฐ ์๋ฃ๋๋ฉด ๋ฐฐํฌ ์ฑ๊ณต ๋ฐฐ๋๊ฐ ํ์๋ฉ๋๋ค. ์ ๋ฐฐํฌ๊ฐ ๋ฐฐํฌ ๋ด์ญ์ ๋ํ๋ฉ๋๋ค.
GitHub ๋ฐฐํฌ๋ฅผ ํ์ฑํํ ๊ฒฝ์ฐ GitHub ๋ฆฌํฌ์งํ ๋ฆฌ์ ์ปค๋ฐ ๋งํฌ๋ ํฌํจ๋ฉ๋๋ค.
์ฐ๊ฒฐ๋ Github ๋ฆฌํฌ์งํ ๋ฆฌ ์์ ์ปค๋ฐ ์์ฑ์๋ mongodb-realm
๋ด์
๋๋ค.
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
ํค๋์ ๋ฒ ์ด๋ฌ ํ ํฐ์ผ๋ก ํฌํจํด์ผ ํฉ๋๋ค.
๋ฐฐํฌ ID ์ฐพ๊ธฐ
์ฌ๋ฐฐํฌํ๋ ค๋ ๋ฐฐํฌ์๋ฒ ์ _id
์ด(๊ฐ) ํ์ํฉ๋๋ค. ์ด๋ฅผ ์ฐพ์ผ๋ ค๋ฉด ์ฑ์ 25 ๊ฐ์ฅ ์ต๊ทผ ๋ฐฐํฌ ๋ชฉ๋ก์ผ๋ก ์๋ตํ๋ ๋ฐฐํฌ ๋ชฉ๋ก ์๋ํฌ์ธํธ๋ฅผ ํธ์ถํฉ๋๋ค.
๋ชฉ๋ก์์ ์ฌ๋ฐฐํฌํ๋ ค๋ ๋ฐฐํฌ์๋ฒ๋ฅผ ์ฐพ์ ํด๋น ๋ฐฐํฌ์๋ฒ ์๋ฒ์ _id
์(๋ฅผ) ๋ณต์ฌํฉ๋๋ค.
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/deployments \ -H 'Authorization: Bearer <access_token>'
[ { "_id": "638662e881ad88c37dcb7656", "app_id": "63844243ec3f52ed48923213", "draft_id": "638662d6cc4b58e348927a7a", "user_id": "59231005d323af2275135258", "deployed_at": 1669751529, "origin": "UI", "commit": "", "status": "successful", "status_error_message": "", "diff_url": "", "name": "638662e881ad88c37dcb7656", "remote_location": "US-VA" }, { "_id": "638662b2fd660afffb39df01", "app_id": "63844243ec3f52ed48923213", "draft_id": "638662928d19776b743d3b30", "user_id": "593f1105d383ad2275165258", "deployed_at": 1669751475, "origin": "UI", "commit": "", "status": "successful", "status_error_message": "", "diff_url": "", "name": "638662b2fd660afffb39df01", "remote_location": "US-VA" } ]
์ฑ ์ฌ๋ฐฐํฌ
๋ฐฐํฌ ์๋ฒ ์ฌ๋ฐฐํฌ ์๋ํฌ์ธํธ๋ฅผ ํธ์ถํ์ฌ ์ด์ ๋ฐฐํฌ์๋ฒ ๋ก ๋กค๋ฐฑํ ์ ์์ต๋๋ค. ์ฌ๋ฐฐํฌํ๋ ค๋ ๋ฐฐํฌ์๋ฒ ์ _id
์ deploymentId
๋งค๊ฐ ๋ณ์๋ก ์ ๋ฌํฉ๋๋ค.
curl -X GET \ https://services.cloud.mongodb.com/api/admin/v3.0/groups/{groupId}/apps/{appId}/deployments/{deploymentId}/redeploy \ -H 'Authorization: Bearer <access_token>'