mirror of
https://github.com/kevin-DL/m3o-go.git
synced 2026-01-11 18:44:26 +00:00
293 lines
4.7 KiB
Markdown
Executable File
293 lines
4.7 KiB
Markdown
Executable File
# Function
|
|
|
|
An [m3o.com](https://m3o.com) API. For example usage see [m3o.com/function/api](https://m3o.com/function/api).
|
|
|
|
Endpoints:
|
|
|
|
## Runtimes
|
|
|
|
Return a list of supported runtimes
|
|
|
|
|
|
[https://m3o.com/function/api#Runtimes](https://m3o.com/function/api#Runtimes)
|
|
|
|
```go
|
|
package example
|
|
|
|
import(
|
|
"fmt"
|
|
"os"
|
|
|
|
"go.m3o.com/function"
|
|
)
|
|
|
|
// Return a list of supported runtimes
|
|
func ListRuntimes() {
|
|
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
|
|
rsp, err := functionService.Runtimes(&function.RuntimesRequest{
|
|
|
|
})
|
|
fmt.Println(rsp, err)
|
|
|
|
}
|
|
```
|
|
## Update
|
|
|
|
Update a function. Downloads the source, builds and redeploys
|
|
|
|
|
|
[https://m3o.com/function/api#Update](https://m3o.com/function/api#Update)
|
|
|
|
```go
|
|
package example
|
|
|
|
import(
|
|
"fmt"
|
|
"os"
|
|
|
|
"go.m3o.com/function"
|
|
)
|
|
|
|
// Update a function. Downloads the source, builds and redeploys
|
|
func UpdateAfunction() {
|
|
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
|
|
rsp, err := functionService.Update(&function.UpdateRequest{
|
|
Name: "helloworld",
|
|
|
|
})
|
|
fmt.Println(rsp, err)
|
|
|
|
}
|
|
```
|
|
## Regions
|
|
|
|
Return a list of supported regions
|
|
|
|
|
|
[https://m3o.com/function/api#Regions](https://m3o.com/function/api#Regions)
|
|
|
|
```go
|
|
package example
|
|
|
|
import(
|
|
"fmt"
|
|
"os"
|
|
|
|
"go.m3o.com/function"
|
|
)
|
|
|
|
// Return a list of supported regions
|
|
func ListRegions() {
|
|
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
|
|
rsp, err := functionService.Regions(&function.RegionsRequest{
|
|
|
|
})
|
|
fmt.Println(rsp, err)
|
|
|
|
}
|
|
```
|
|
## Reserve
|
|
|
|
Reserve function names and resources beyond free quota
|
|
|
|
|
|
[https://m3o.com/function/api#Reserve](https://m3o.com/function/api#Reserve)
|
|
|
|
```go
|
|
package example
|
|
|
|
import(
|
|
"fmt"
|
|
"os"
|
|
|
|
"go.m3o.com/function"
|
|
)
|
|
|
|
// Reserve function names and resources beyond free quota
|
|
func ReserveAfunction() {
|
|
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
|
|
rsp, err := functionService.Reserve(&function.ReserveRequest{
|
|
Name: "helloworld",
|
|
|
|
})
|
|
fmt.Println(rsp, err)
|
|
|
|
}
|
|
```
|
|
## Delete
|
|
|
|
Delete a function by name
|
|
|
|
|
|
[https://m3o.com/function/api#Delete](https://m3o.com/function/api#Delete)
|
|
|
|
```go
|
|
package example
|
|
|
|
import(
|
|
"fmt"
|
|
"os"
|
|
|
|
"go.m3o.com/function"
|
|
)
|
|
|
|
// Delete a function by name
|
|
func DeleteAfunction() {
|
|
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
|
|
rsp, err := functionService.Delete(&function.DeleteRequest{
|
|
Name: "helloworld",
|
|
|
|
})
|
|
fmt.Println(rsp, err)
|
|
|
|
}
|
|
```
|
|
## Describe
|
|
|
|
Get the info for a deployed function
|
|
|
|
|
|
[https://m3o.com/function/api#Describe](https://m3o.com/function/api#Describe)
|
|
|
|
```go
|
|
package example
|
|
|
|
import(
|
|
"fmt"
|
|
"os"
|
|
|
|
"go.m3o.com/function"
|
|
)
|
|
|
|
// Get the info for a deployed function
|
|
func DescribeFunctionStatus() {
|
|
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
|
|
rsp, err := functionService.Describe(&function.DescribeRequest{
|
|
Name: "helloworld",
|
|
|
|
})
|
|
fmt.Println(rsp, err)
|
|
|
|
}
|
|
```
|
|
## Proxy
|
|
|
|
Return the backend url for proxying
|
|
|
|
|
|
[https://m3o.com/function/api#Proxy](https://m3o.com/function/api#Proxy)
|
|
|
|
```go
|
|
package example
|
|
|
|
import(
|
|
"fmt"
|
|
"os"
|
|
|
|
"go.m3o.com/function"
|
|
)
|
|
|
|
// Return the backend url for proxying
|
|
func ProxyUrl() {
|
|
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
|
|
rsp, err := functionService.Proxy(&function.ProxyRequest{
|
|
Id: "helloworld",
|
|
|
|
})
|
|
fmt.Println(rsp, err)
|
|
|
|
}
|
|
```
|
|
## Deploy
|
|
|
|
Deploy a group of functions
|
|
|
|
|
|
[https://m3o.com/function/api#Deploy](https://m3o.com/function/api#Deploy)
|
|
|
|
```go
|
|
package example
|
|
|
|
import(
|
|
"fmt"
|
|
"os"
|
|
|
|
"go.m3o.com/function"
|
|
)
|
|
|
|
// Deploy a group of functions
|
|
func DeployAfunction() {
|
|
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
|
|
rsp, err := functionService.Deploy(&function.DeployRequest{
|
|
Branch: "main",
|
|
Entrypoint: "Helloworld",
|
|
Name: "helloworld",
|
|
Region: "europe-west1",
|
|
Repo: "https://github.com/m3o/m3o",
|
|
Runtime: "go116",
|
|
Subfolder: "examples/go-function",
|
|
|
|
})
|
|
fmt.Println(rsp, err)
|
|
|
|
}
|
|
```
|
|
## Call
|
|
|
|
Call a function by name
|
|
|
|
|
|
[https://m3o.com/function/api#Call](https://m3o.com/function/api#Call)
|
|
|
|
```go
|
|
package example
|
|
|
|
import(
|
|
"fmt"
|
|
"os"
|
|
|
|
"go.m3o.com/function"
|
|
)
|
|
|
|
// Call a function by name
|
|
func CallAfunction() {
|
|
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
|
|
rsp, err := functionService.Call(&function.CallRequest{
|
|
Name: "helloworld",
|
|
Request: map[string]interface{}{
|
|
"name": "Alice",
|
|
},
|
|
|
|
})
|
|
fmt.Println(rsp, err)
|
|
|
|
}
|
|
```
|
|
## List
|
|
|
|
List all the deployed functions
|
|
|
|
|
|
[https://m3o.com/function/api#List](https://m3o.com/function/api#List)
|
|
|
|
```go
|
|
package example
|
|
|
|
import(
|
|
"fmt"
|
|
"os"
|
|
|
|
"go.m3o.com/function"
|
|
)
|
|
|
|
// List all the deployed functions
|
|
func ListFunctions() {
|
|
functionService := function.NewFunctionService(os.Getenv("M3O_API_TOKEN"))
|
|
rsp, err := functionService.List(&function.ListRequest{
|
|
|
|
})
|
|
fmt.Println(rsp, err)
|
|
|
|
}
|
|
```
|