Creating a Web Endpoint
Deploying and invoking web endpoints
from beam import endpoint
@endpoint(
cpu=1.0,
memory=128,
)
def multiply(**inputs):
result = inputs["x"] * 2
return {"result": result}
Launch a Preview Environment
beam serve
monitors changes in your local file system, live-reloads the remote environment as you work, and forwards remote container logs to your local shell.
Serve is great for prototyping. You can develop in a containerized cloud environment in real-time, with adjustable CPU, memory, GPU resources.
It’s also great for testing an app before deploying it. Served functions are orchestrated identically to deployments, which means you can test your Beam workflow end-to-end before deploying.
To start an ephemeral serve
session, you’ll use the serve
command:
beam serve app.py:func
By default, Beam will sync all the files in your working directory to the
remote container. This allows you to use the files you have locally while
developing. If you want to prevent some files from getting uploaded, you can
create a .beamignore
.
Deploying the API
To deploy the app, enter your shell and run this command from the working directory:
beam deploy [FILE.PY]:[ENTRY-POINT] --name [NAME]
After running this command, you’ll see some logs in the console that show the progress of your deployment.
Calling the API
After deploying the API, you’ll be able to copy a cURL request to hit the API. In your app dashboard, click Call API.
![](https://mintlify.s3-us-west-1.amazonaws.com/slai-beam/img/tools/call-api.png)
Example Request
curl -X POST 'https://app.beam.cloud/endpoint/multiply-numbers/v1' \
-H 'Accept: */*' \
-H 'Accept-Encoding: gzip, deflate' \
-H 'Connection: keep-alive' \
-H 'Authorization: Bearer [YOUR_AUTH_TOKEN]' \
-H 'Content-Type: application/json' \
-d '{"x": 10}'
Example Response
{
"result": {
"result": 20
},
"msg": "",
"error_msg": ""
}
Was this page helpful?