GSM SV νλ«νΌ(VM Β· μλ²λ¦¬μ€ ν¨μ)μ ν°λ―Έλμμ κ΄λ¦¬νλ CLI μ
λλ€. vercel CLI μ λΉμ·ν μ¬μ©κ°μ λͺ©νλ‘ ν©λλ€.
- μμ‘΄μ± 0 β Node 20+ μ λ΄μ₯
fetch/util.parseArgsλ§ μ¬μ©. λΉλ λ¨κ³ μμ. - λ°±μλμ
Authorization: BearerμΈμ¦μ μ¬μ©νλ©°, access token λ§λ£ μ refresh token μΌλ‘ μλ κ°±μ ν©λλ€. - μ격μ¦λͺ
μ
~/.gsmsv/auth.json(κΆν 600) μ μ μ₯λ©λλ€.
cd cli
npm link # μ μμ gsmsv / gsm λͺ
λ Ή λ±λ‘
# λλ μ€μΉ μμ΄ μ§μ μ€ν
node src/index.js <λͺ
λ Ή>gsmsv login # μ΄λ©μΌ/λΉλ°λ²νΈ μ
λ ₯
gsmsv login --email me@gsm.hs.kr --role project_owner
gsmsv whoamiκΈ°λ³Έ λ°±μλλ https://gsmsv.site μ
λλ€. λ‘컬 κ°λ° λ°±μλλ‘ λ°κΎΈλ €λ©΄:
gsmsv config set api http://localhost:8000
# λλ ν λ²λ§: gsmsv --api http://localhost:8000 vm ls
# λλ νκ²½λ³μ: GSMSV_API_URL=http://localhost:8000 gsmsv vm lsgsmsv vm ls # λ΄ VM λͺ©λ‘
gsmsv vm inspect 105 # μμΈ + μ μ μ 보 (IP, λΉλ°λ²νΈ)
gsmsv vm start 105
gsmsv vm stop 105
gsmsv vm reboot 105
gsmsv vm create --tier small --os ubuntu2204 --name my-server
gsmsv vm rm 105 --yes
# μ€λ
μ·
gsmsv vm snapshot ls 105
gsmsv vm snapshot create 105 before-deploy --desc "λ°°ν¬ μ λ°±μ
"
gsmsv vm snapshot rollback 105 before-deploy
gsmsv vm snapshot rm 105 before-deployVM λͺ λ Ήμ
vmidλ§ μ£Όλ©΄ CLI κ°my-vmsμμ λ Έλλ₯Ό μλμΌλ‘ μ°Ύμλ λλ€.
gsmsv fn ls
gsmsv fn deploy index.js # μ΄λ¦μ΄ κ°μΌλ©΄ κ°±μ , μμΌλ©΄ μ κ· (idempotent)
gsmsv fn exec my-fn --data '{"hello":"world"}'
gsmsv fn logs my-fn --limit 30
gsmsv fn inspect my-fn
gsmsv fn rm my-fn --yesid μ리μλ ν¨μ ID μ 체/μ 8μ리/μ΄λ¦ μ€ μ무거λ μΈ μ μμ΅λλ€.
ν¨μ ν΄λμ gsmsv.json μ λλ©΄ gsmsv fn deploy λ§μΌλ‘ λ°°ν¬λ©λλ€:
{
"name": "my-fn",
"entry": "index.js",
"runtime": "javascript",
"timeout": 10000,
"memoryLimit": 128,
"description": "μμ ν¨μ",
"env": { "API_KEY": "..." }
}examples/hello-fn/ μ λμνλ μμ κ° μμ΅λλ€.
| μ΅μ | μ€λͺ |
|---|---|
--json |
κ²°κ³Όλ₯Ό JSON μΌλ‘ μΆλ ₯ (μ€ν¬λ¦½νΈ/νμ΄νμ©) |
--api <url> |
μ΄λ² μ€νμλ§ λ°±μλ μ£Όμ μ§μ |
-y, --yes |
νμΈ ν둬ννΈ μλ μΉμΈ |
-h, --help |
λμλ§ |
-v, --version |
λ²μ |