배포한 코드에서 JustDeploy를 호출하는 공식 라이브러리입니다. 데이터베이스, 파일, 이메일 발송을 다루며, 배포된 앱은 키가 전혀 필요 없습니다. JustDeploy가 이미지에 신원을 넣어 두고 라이브러리가 그것을 사용합니다.
서버 코드용입니다. 앱을 배포만 하고 앱 안에서 JustDeploy를 호출하지 않는다면 이 페이지의 내용은 필요하지 않습니다.
npm install @justdeploy/sdk@0.1.1python -m pip install justdeploy-sdk==0.1.1Python 패키지는 justdeploy-sdk로 설치하고 justdeploy으로 import합니다. 두 패키지 모두 저희 저장소에서 게시하며 같은 버전을 사용합니다.
클라이언트는 인자 없이 생성합니다. API URL도, 키도, 설정 파일도 넘기지 않습니다.
import { JustDeploy } from '@justdeploy/sdk'
const justdeploy = new JustDeploy()
const result = await justdeploy.databases.query('your-database-id', 'SELECT * FROM orders')from justdeploy import JustDeploy
with JustDeploy() as justdeploy:
result = justdeploy.databases.query("your-database-id", "SELECT * FROM orders")Python은 같은 메서드를 await로 쓰는 AsyncJustDeploy도 함께 제공합니다.
다음 순서로 고정되어 있습니다.
JUSTDEPLOY_ACCESS_KEY와 JUSTDEPLOY_SECRET_KEY가 모두 있으면 짧게 유효한 세션으로 교환합니다. 내 컴퓨터에서 코드를 실행할 때 쓰는 경로입니다.두 변수 중 하나만 설정하면 오류입니다. 거부된 키가 조용히 배포 신원으로 넘어가는 일도 없습니다. 이미 키를 등록해 둔 앱은 그 키를 계속 사용하며, 그대로 두어도 빌드는 달라지지 않습니다.
.env 파일을 직접 읽지 않습니다. 로컬 실행 도구가 읽을 수 있으니 그 파일은 버전 관리에서 제외하세요.세 영역이며 두 언어에서 이름이 같습니다. Python 메서드 이름은 snake case라서 listTables는 list_tables입니다.
justdeploy.databases.list()
justdeploy.databases.query(databaseId, 'SELECT * FROM orders')
justdeploy.databases.listTables(databaseId)
justdeploy.databases.createTable(databaseId, { ... })
justdeploy.databases.updateTable(databaseId, 'orders', { ... })
justdeploy.databases.deleteTable(databaseId, 'orders')justdeploy.storages.list()
justdeploy.storages.upload(storageId, { ... })
justdeploy.storages.listFiles(storageId, { limit: 50 })
justdeploy.storages.getFile(storageId, fileId)
justdeploy.storages.download(storageId, fileId)
justdeploy.storages.deleteFile(storageId, fileId)justdeploy.mail.send({ ... })
justdeploy.mail.list({ limit: 50 })
justdeploy.mail.get(mailId)형태만 보고 짐작하기 어려운 두 가지가 있습니다. query는 데이터 구문만 받으므로 스키마 변경은 테이블 메서드로 하세요. 업로드는 영구 URL이 아니라 파일 id를 돌려주므로, id를 저장해 두고 링크가 필요할 때 getFile을 호출하세요.
재시도 가능성이 있는 이메일 발송에는 idempotencyKey를 넘기세요. 발송 성공은 전달이 아니라 접수를 뜻하므로, 전달 여부가 중요하면 나중에 status를 다시 확인하세요.
모든 실패는 JustDeployError입니다. API에서 온 오류는 status, retryAfter, requestId, details를 담고 있어 기다리면 되는 상황인지 판단할 수 있습니다. 요청 본문과 SQL, 파일 내용, 키는 오류에 남지 않으므로 오류 자체는 로그에 남겨도 안전합니다.
presigned 업로드와 다운로드에는 인증 정보가 실리지 않으므로 파일 전송으로 키가 새지 않습니다. 업로드가 아직 끝나지 않은 파일을 요청하면 반쯤 쓰인 응답 대신 잠시 후 다시 시도하라는 오류를 받습니다. 헤더 직접 호출은 인증, 키 관리는 인증 정보를 보세요.