Example

Define an API

# main.py
print("hello world")

Create a Dockerfile

FROM python:3.8-slim
COPY main.py /
CMD exec python main.py

Build an image

docker build . -t hello-world

Run a container locally

docker run -it --rm hello-world

Login to ECR

aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin <AWS_ACCOUNT_ID>.dkr.ecr.us-east-1.amazonaws.com

Create a repository

aws ecr create-repository --repository-name hello-world

Tag the image

docker tag hello-world <AWS_ACCOUNT_ID>.dkr.ecr.us-east-1.amazonaws.com/hello-world

Push the image

docker push <AWS_ACCOUNT_ID>.dkr.ecr.us-east-1.amazonaws.com/hello-world

Configure a Cortex deployment

# cortex.yaml
- name: hello-world
kind: TaskAPI
pod:
containers:
- name: api
image: <AWS_ACCOUNT_ID>.dkr.ecr.us-east-1.amazonaws.com/hello-world
command: ["python", "main.py"]

Create a Cortex deployment

cortex deploy

Get the API endpoint

cortex get hello-world

Make a request

curl -X POST -H "Content-Type: application/json" -d '{}' http://***.amazonaws.com/hello-world

View the logs

cortex logs hello-world <JOB_ID>