A container with Jupyter and Jupyter Kernal Gateway to write python code and expose it as an HTTP API.
# build the container
docker build . -t jupyter-code-api-server
# run the container
docker run -p 5000:8080 -e LOCAL_DEV=yes jupyter-code-api-server
or deploy to Hasura:
hasura connector create jupyter --github-repo-url https://github.com/hasura/jupyter-code-api-server/tree/main
HTTP Basic authentication is configured by default.
Username is hasura
and password is hasurajupyter
.
To override the password, create a file config.json
with the following content:
{
"password": "newpassword"
}
And then deploy the with
hasura connector create jupyter --github-repo-url https://github.com/hasura/jupyter-code-api-server/tree/main -c config.json
Visit the deployed app in a browser. Enter authentication credentials and a page with basic instructions will be shown.
Head to http(s):https://<hostname>/jupyter
for Jupyter notebook, password is hasurajupyter
.
The container has server.ipynb
packaged, which exposes a /hello_world
endpoint.
Use Jupyter notebook to browse the code. Hit http(s):https://<hostname>/process/start
to start the server and then hit http(s):https://<hostname>/invoke/hello_world
to invoke the API.
More details on how to write APIs using Jupyter can be found here: https://jupyter-kernel-gateway.readthedocs.io/en/latest/http-mode.html
/jupyter
: Jupyter notebook/invoke/<path>
APIs exposed by Jupyter Kernel Gateway at<path>
/process/start
: start Jupyter Kernel Gateway/process/restart
: restart Jupyter Kernel Gateway/process/stop
: stop Jupyter Kernel Gateway
Container packaging inspired by: http:https://ahmet.im/blog/cloud-run-multiple-processes-easy-way.