Skip to content

How to test your Function (Program) locally ​

You can test your Function locally without uploading each version on the aleph.cloud network.

To do this, you'll want to use the --fake-data-program or -f argument of the VM Supervisor.

0. Build the required squashfs volumes ​

Build or download the required squashfs volumes:

shell
cd ./runtimes/aleph-debian-11-python/
sudo bash ./create_disk_image.sh

cd ../..

ℹ️ This does not work in a container since debootstrap requires mounting volumes.

This will create a local runtime root filesystem in ./runtimes/aleph-debian-11-python/rootfs.squashfs.

shell
cd ./examples/volumes/
bash ./build_squashfs.sh

cd ../..

This will create a local example read-only volume named ./example/volumes/volume-venv.squashfs.

1. In a Docker container ​

Run the developer image, mounting the two generated volumes:

shell
docker run -ti --rm \
  -v "$(pwd)/runtimes/aleph-debian-11-python/rootfs.squashfs:/opt/aleph-vm/runtimes/aleph-debian-11-python/rootfs.squashfs:ro" \
  -v "$(pwd)/examples/volumes/volume-venv.squashfs:/opt/aleph-vm/examples/volumes/volume-venv.squashfs:ro" \
  --device /dev/kvm \
  -p 4020:4020 \
  docker.io/alephim/vm-supervisor-dev

Or launch this command using:

shell
bash ./docker/run_vm_supervisor.sh

Within the container, run the supervisor with fake data:

shell
python -m vm_supervisor --print-settings --very-verbose --system-logs --fake-data-program ./examples/example_fastapi

ℹ️ The command is in your .bash_history, press key up to skip typing it.

2. On your system ​

2.a. Install the system requirements ​

Refer to the aleph.cloud VM supervisor documentation to install the system requirements.

2.b. Run the supervisor with fake data: ​

shell
python -m vm_supervisor --print-settings --very-verbose --system-logs --fake-data-program ./examples/example_fastapi