76 lines
1.6 KiB
Markdown
76 lines
1.6 KiB
Markdown
# Hello World Function Example
|
|
|
|
This is a simple example function that demonstrates how to create and deploy functions in the Skybridge FaaS platform.
|
|
|
|
## Function Description
|
|
|
|
The function takes a JSON input with an optional `name` field and returns a greeting message.
|
|
|
|
### Input Format
|
|
```json
|
|
{
|
|
"name": "John"
|
|
}
|
|
```
|
|
|
|
### Output Format
|
|
```json
|
|
{
|
|
"message": "Hello, John!",
|
|
"input": {
|
|
"name": "John"
|
|
}
|
|
}
|
|
```
|
|
|
|
## Building the Function
|
|
|
|
To build the function as a Docker image:
|
|
|
|
```bash
|
|
docker build -t hello-world-function .
|
|
```
|
|
|
|
## Testing the Function Locally
|
|
|
|
To test the function locally:
|
|
|
|
```bash
|
|
# Test with a name
|
|
docker run -e FUNCTION_INPUT='{"name": "Alice"}' hello-world-function
|
|
|
|
# Test without a name (defaults to "World")
|
|
docker run hello-world-function
|
|
```
|
|
|
|
## Deploying to Skybridge FaaS
|
|
|
|
Once you have the Skybridge FaaS platform running, you can deploy this function using the API:
|
|
|
|
1. Create the function:
|
|
```bash
|
|
curl -X POST http://localhost:8083/api/functions \
|
|
-H "Content-Type: application/json" \
|
|
-H "X-User-Email: test@example.com" \
|
|
-d '{
|
|
"name": "hello-world",
|
|
"image": "hello-world-function",
|
|
"runtime": "custom",
|
|
"memory": 128,
|
|
"timeout": "30s"
|
|
}'
|
|
```
|
|
|
|
2. Deploy the function:
|
|
```bash
|
|
curl -X POST http://localhost:8083/api/functions/{function-id}/deploy \
|
|
-H "X-User-Email: test@example.com"
|
|
```
|
|
|
|
3. Execute the function:
|
|
```bash
|
|
curl -X POST http://localhost:8083/api/functions/{function-id}/execute \
|
|
-H "Content-Type: application/json" \
|
|
-H "X-User-Email: test@example.com" \
|
|
-d '{"input": {"name": "Bob"}}'
|