Faas semi worfking
This commit is contained in:
75
faas/examples/hello-world/README.md
Normal file
75
faas/examples/hello-world/README.md
Normal file
@ -0,0 +1,75 @@
|
||||
# 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"}}'
|
||||
Reference in New Issue
Block a user