Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dergoegge/go-functions-sdk

Golang cloud functions sdk
https://github.com/dergoegge/go-functions-sdk

cloud-functions golang google-cloud

Last synced: 8 days ago
JSON representation

Golang cloud functions sdk

Awesome Lists containing this project

README

        

## Importer beware this is a **WORK IN PROGRESS**

# Unofficial golang cloud functions sdk

This projects aims to simplify the deployment process of golang cloud functions.

Code the functions and deploy with `gocf deploy`.

## Install the functions package
```
go get github.com/dergoegge/go-functions-sdk
```

## Function examples

```golang
package funcpackage

import (
"context"
"fmt"
"net/http"

"github.com/dergoegge/go-functions-sdk/pkg/functions"
)

var HTTPFuncName = functions.New().
RunWith(functions.RuntimeOptions{
Timeout: 70, // Timeout in seconds
Memory: "128MB",
}).
Region("us-central1").
RetryOnFailure(true).
OnRequest(func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Yeet")
})

var FirestoreFuncName = functions.New().
RunWith(functions.RuntimeOptions{
Timeout: 70,
Memory: "1GB",
}).
Region("europe-west2").
Firestore().
Document("some-collection/{docID}").
OnWrite(func(ctx context.Context, event functions.FirestoreEvent) error {
fmt.Println(event.Value.Fields)
return nil
})

```

More examples for different trigger types are located in the `examples` directory.

## Supported trigger types

* Http
* Firestore
* Storage
* PubSub
* Firebase authentication

More coming soon.

## Install the deployment tool

```sh
gcloud auth login
gcloud config set project

go install github.com/dergoegge/go-functions-sdk/cmd/gocf
```

## Comands

Deploy cloud functions:
`gocf deploy [--only "comma seperated list of functions to deploy"]`

List deployed cloud functions:
`gocf list`