Sandboxed Code Execution
Beam’s sandboxed code execution is a feature that allows you to run arbitrary code in a secure and isolated environment.
You can run sessions that terminate after each request, or keep them running indefinitelty.
Creating a Sandbox
You can create a sandbox by using the Pod
object. Pods can be created using the CLI or the Python SDK.
Parameters
Pods can be heavily customized to fit your needs.
Using Custom Images
You can customize the container image using the Image
object. This can be customized with Python packages, shell commands, Conda packages, and much more.
Specifying Entry Points
An entry point is the command or script that the container runs when it starts. In Beam, you can interact with Pods using the CLI or the Python SDK.
Passing Environment Variables
You can pass environment variables into your container for credentials or other parameters. Like entry points, environment variables can be defined in both the CLI or the Python SDK:
Terminating a Pod
Pods can be terminated directly using the terminate()
method.
Alternatively, you can terminate the container the Pod is running on by using the beam container stop <container-id>
command.
Lifecycle
Timeouts
Pods are serverless and automatically scale-to-zero.
By default, pods will be terminated after 10 minutes without receiving any connection requests. Making a connection request (i.e. accessing the URL in your browser) will keep the container alive, until the timeout is reached.
You can set a custom timeout by passing the keep-warm-seconds
parameter when creating a pod.
Keep Alive for 5 minutes
Keep Alive Indefinitely
List Running Pods
You can list all running Pods using the beam container list
command.
You can kill any container by running beam container stop <container-id>
.
Was this page helpful?