API Client represents a low level interface for Model API. All API operation can be performed using this.
abeja.deployments.
APIClient
(credential: typing.Union[dict, NoneType] = None, timeout: typing.Union[int, NoneType] = None, max_retry_count: typing.Union[int, NoneType] = None)¶A low-level client for Deployment API
from abeja.deployments import APIClient
api_client = APIClient()
create_deployment
(organization_id: str, name: str = None, description: typing.Union[str, NoneType] = '', default_environment: typing.Union[typing.Dict[str, str], NoneType] = None) → dict¶create a deployment
API reference: POST /organizations/<organization_id>/deployments
organization_id = "1111111111111"
deployment_name = "deployment_name"
description = "description"
default_environment = {
'SAMPLE_ENV': 'SAMPLE_VALUE'
}
response = api_client.create_deployment(organization_id, deployment_name, default_environment)
{
"deployment_id": "1111111111111",
"name": "deployment_name",
"description": "description",
"creator": {
"display_name": null,
"email": "platform-support@abeja.asia",
"id": "1111111111111",
"is_registered": true,
"role": "admin",
"created_at": "2017-05-29T07:48:55Z",
"updated_at": "2017-11-29T10:21:24Z"
},
"default_environment": {},
"runs": [],
"services": [],
"triggers": [],
"created_at": "2018-06-05T08:52:02.428441Z",
"modified_at": "2018-06-05T08:52:02.428587Z"
}
create_deployment_from_template
(organization_id: str, deployment_id: str, template_id: int, version: str, handler: str, image: str, user_parameters: typing.Union[typing.Dict[str, str], NoneType] = None) → dict¶create a deployment from template
API reference: POST /organizations/<organization_id>/deployments/<deployment_id>/code_templates
deployment_id = '1111111111111',
template_id = 1,
version = '0.0.1'
handler = 'main:handler'
image = 'abeja-inc/all-cpu:18.10'
user_parameters = {
'SAMPLE_ENV': 'SAMPLE_VALUE'
}
response = api_client.create_deployment_from_template(
organization_id, deployment_id, template_id, version, handler, image, user_parameters
)
{
"deployment_id": "1111111111111",
"version": "0.0.1",
"version_id": "ver-abc1111111111111",
"handler": "main:handler",
"image": "abeja-inc/all-cpu:18.10",
"user_parameters": {},
"created_at": "2018-06-14T07:15:43.462664Z",
"modified_at": "2018-06-14T07:15:43.462824Z"
}
create_deployment_version
(organization_id: str, deployment_id: str, version: str, handler: str, image: str, user_parameters: typing.Union[typing.Dict[str, str], NoneType] = None) → dict¶create a deployment code version
API reference: POST /organizations/<organization_id>/deployments/<deployment_id>/versions
deployment_id = '1111111111111',
version = '0.0.1'
handler = 'main:handler'
image = 'abeja-inc/all-cpu:18.10'
user_parameters = {
'SAMPLE_ENV': 'SAMPLE_VALUE'
}
response = api_client.create_deployment_version(
organization_id, deployment_id, version, handler, image, user_parameters
)
# Then, you need to upload the source code for prediction to the ABEJA Platform
# create an archive containing all the source codes.
# for example, source tree looks like:
# /path/
# |-- to/
# |-- project/
# |-- root/
# |-- main.py
# |-- utils/
# |-- util.py
from shutil import make_archive
make_archive(
'./archive',
'gztar',
root_dir='/path/to/project/root',
base_dir='.'
)
# upload archive
import requests
upload_url = response['upload_url']
with open('archive.tar.gz', 'rb') as file:
requests.put(upload_url, data=file)
{
"deployment_id": "1111111111111",
"version": "0.0.1",
"version_id": "ver-abc1111111111111",
"handler": "main:handler",
"image": "abeja-inc/all-cpu:18.10",
"user_parameters": {},
"created_at": "2018-06-14T07:15:43.462664Z",
"modified_at": "2018-06-14T07:15:43.462824Z",
"upload_url": "https://abeja-model-api-src.s3.amazonaws.com/1462815098134/ver-/source.tgz?xxxxxx"
}
delete_deployment
(organization_id: str, deployment_id: str) → dict¶delete a deployment
API reference: DELETE /organizations/<organization_id>/deployments/<deployment_id>
response = api_client.delete_deployment(organization_id='1111111111111', deployment_id='1111111111111')
{
"message": "1111111111111 deleted"
}
delete_deployment_version
(organization_id: str, deployment_id: str, version_id: str) → None¶delete a version in a deployment
API reference: DELETE /organizations/<organization_id>/deployments/<deployment_id>/versions/<version_id>
api_client.delete_deployment_version(
organization_id='1111111111111',
deployment_id='1111111111111',
version_id='ver-abc3333333333333')
{
"message": "ver-abc1111111111111 deleted"
}
download_deployment_version
(organization_id: str, deployment_id: str, version_id: str) → dict¶download a deployment code version
API reference: GET /organizations/<organization_id>/deployments/<deployment_id>/versions/<version_id>/download
response = api_client.download_deployment_version(
organization_id='1111111111111',
deployment_id='1111111111111',
version_id='ver-abc3333333333333')
{
"download_uri": "https://..."
}
get_deployment
(organization_id: str, deployment_id: str) → dict¶get a deployment
API reference: GET /organizations/<organization_id>/deployments/<deployment_id>
response = api_client.get_deployment(organization_id='1111111111111', deployment_id='1111111111111')
{
"deployment_id": "1111111111111",
"name": "deployment_name",
"creator": {
"display_name": null,
"email": "platform-support@abeja.asia",
"id": "1111111111111",
"is_registered": true,
"role": "admin",
"created_at": "2017-05-29T07:48:55Z",
"updated_at": "2017-11-29T10:21:24Z"
},
"default_environment": {},
"runs": [],
"services": [],
"triggers": [],
"created_at": "2018-06-05T08:52:02.428441Z",
"modified_at": "2018-06-05T08:52:02.428587Z",
}
get_deployment_version
(organization_id: str, deployment_id: str, version_id: str) → dict¶get a version of a deployment
API reference: GET /organizations/<organization_id>/deployments/<deployment_id>/versions/<version_id>
response = api_client.get_deployment_version(organization_id='1111111111111',
deployment_id='2222222222222',
version_id='ver-abc3333333333333')
{
"deployment_id": "1111111111111",
"version_id": "ver-abc1111111111111",
"version": "0.0.1",
"handler": "main:handler",
"image": "abeja-inc/all-cpu:18.10",
"user_parameters": {},
"created_at": "2018-04-26T01:12:05.771403Z",
"modified_at": "2018-04-26T01:12:05.771533Z"
}
get_deployment_versions
(organization_id: str, deployment_id: str) → dict¶get a deployment code versions
API reference: GET /organizations/<organization_id>/deployments/<deployment_id>/versions
response = api_client.get_deployment_versions(organization_id='1111111111111', deployment_id='1111111111111')
{
"entries": [
{
"deployment_id": "1111111111111",
"creator": {
"display_name": null,
"email": "paltform-support@abeja.asia",
"id": "1111111111111",
"is_registered": true,
"role": "admin",
"created_at": "2017-05-29T07:48:55Z",
"updated_at": "2017-11-29T10:21:24Z"
},
"version": "0.0.1",
"version_id": "ver-abc1111111111111",
"handler": "main:handler",
"image": "abeja-inc/all-cpu:18.10",
"user_parameters": {},
"created_at": "2018-06-05T08:52:02.428441Z",
"modified_at": "2018-06-05T08:52:02.428587Z"
}
]
}
get_deployments
(organization_id: str) → dict¶Get deployments entries
API reference: GET /organizations/<organization_id>/deployments/
response = api_client.get_deployments(organization_id='1102940376065')
{
"entries": [
{
"deployment_id": "1111111111111",
"name": "deployment_name",
"creator": {
"display_name": null,
"email": "paltform-support@abeja.asia",
"id": "1111111111111",
"is_registered": true,
"role": "admin",
"created_at": "2017-05-29T07:48:55Z",
"updated_at": "2017-11-29T10:21:24Z"
},
"default_environment": {},
"runs": [],
"services": [],
"triggers": [],
"created_at": "2018-06-05T08:52:02.428441Z",
"modified_at": "2018-06-05T08:52:02.428587Z"
}
]
}
patch_deployment
(organization_id: str, deployment_id: str, name: str, default_environment: typing.Union[typing.Dict[str, str], NoneType] = None)¶update a deployment
API reference: PATCH /organizations/<organization_id>/deployments/<deployment_id>
organization_id = "1111111111111"
deployment_name = "deployment_name"
default_environment = {
'SAMPLE_ENV': 'SAMPLE_VALUE'
}
response = api_client.create_deployment(organization_id, deployment_name, default_environment)
{
"deployment_id": "1111111111111",
"name": "deployment_name",
"default_environment": {},
"runs": [],
"services": [],
"triggers": [],
"created_at": "2018-06-05T08:52:02.428441Z",
"modified_at": "2018-06-05T08:52:02.428587Z"
}