Skip to main content
For an even faster start, clone or download the worker-basic repository for a pre-configured template for building and deploying Serverless workers. After cloning the repository, skip to step 6 of this tutorial to deploy and test the endpoint.

What you’ll learn

In this tutorial you’ll learn how to:
  • Set up your development environment.
  • Create a handler function.
  • Test your handler locally.
  • Create a Dockerfile to package your handler function.
  • Build and push your worker image to Docker Hub.
  • Deploy your worker to a Serverless endpoint using the Runpod console.
  • Send a test request to your endpoint.

Requirements

Step 1: Create a Python virtual environment

First, set up a virtual environment to manage your project dependencies.
1

Create a virtual environment

Run this command in your local terminal:
2

Activate the virtual environment

3

Install the Runpod SDK

Step 2: Create a handler function

Create a file named handler.py and add the following code:
handler.py
This is a bare-bones handler that processes a JSON object and outputs a prompt string contained in the input object. You can replace the time.sleep(seconds) call with your own Python code for generating images, text, or running any machine learning workload.

Step 3: Create a test input file

You’ll need to create an input file to properly test your handler locally. Create a file named test_input.json and add the following code:
test_input.json

Step 4: Test your handler function locally

Run your handler function to verify that it works correctly:
You should see output similar to this:

Step 5: Create a Dockerfile

Create a file named Dockerfile with the following content:
Dockerfile

Step 6: Build and push your worker image

Instead of building and pushing your image via Docker Hub, you can also deploy your worker from a GitHub repository.
Before you can deploy your worker on Runpod Serverless, you need to push it to Docker Hub:
1

Build your Docker image

Build your Docker image, specifying the platform for Runpod deployment, replacing [YOUR_USERNAME] with your Docker username:
2

Push the image to your container registry

Step 7: Deploy your worker using the Runpod console

To deploy your worker to a Serverless endpoint:
  1. Go to the Serverless section of the Runpod console.
  2. Click New Endpoint.
  3. Click Import from Docker Registry
  4. In the Container Image field, enter your Docker image URL: docker.io/yourusername/serverless-test:latest.
  5. Click Next to proceed to endpoint configuration.
  6. Configure your endpoint settings:
    • (Optional) Enter a custom name for your endpoint, or use the randomly generated name.
    • Make sure the Endpoint Type is set to Queue.
    • Under GPU Configuration, check the box for 16 GB GPUs.
    • Leave the rest of the settings at their defaults.
  7. Click Deploy Endpoint.
The system will redirect you to a dedicated detail page for your new endpoint.

Step 8: Test your endpoint

To test your endpoint, click the Requests tab in the endpoint detail page:
On the left you should see the default test request:
Leave the default input as is and click Run. The system will take a few minutes to initialize your workers. When the workers finish processing your request, you should see output on the right side of the page similar to this:
Congratulations! You’ve successfully deployed and tested your first Serverless endpoint.

Next steps

Now that you’ve learned the basics, you’re ready to: