Ага! Фреймворк функций - это то, что он называется. Документация находится здесь: https://cloud.google.com/functions/docs/functions-framework
А подробности по части Go здесь: https://github.com/GoogleCloudPlatform/functions-framework-go
Быстрый старт для Go:
1) Убедитесь, что у вас установлен Go 1.11+ с:
go version
Результат должен быть Go 1,11 или выше.
2) Создайте необходимые каталоги.
mkdir -p hello/cmd
cd hello
3) Создайте модуль Go:
go mod init example.com/hello
Примечание: вы можете использовать другое имя модуля, а не example.com/hello.
4) Создайте файл function. go со следующим содержанием:
package hello
import (
"net/http"
"fmt"
)
// HelloWorld writes "Hello, World!" to the HTTP response.
func HelloWorld(w http.ResponseWriter, r *http.Request) {
fmt.Fprint(w, "Hello, World!\n")
}
Обратите внимание, что вы можете использовать любое имя файла или имя пакета (соглашение должно сделать имя пакета таким же, как имя каталога).
5) Теперь go в подкаталог cmd.
cd cmd
6) Создайте файл main. go со следующим содержимым:
package main
import (
"log"
"os"
"github.com/GoogleCloudPlatform/functions-framework-go/funcframework"
"example.com/hello"
)
func main() {
funcframework.RegisterHTTPFunction("/", hello.HelloWorld)
// Use PORT environment variable, or default to 8080.
port := "8080"
if envPort := os.Getenv("PORT"); envPort != "" {
port = envPort
}
if err := funcframework.Start(port); err != nil {
log.Fatalf("funcframework.Start: %v\n", err)
}
}
7) Запустите локальный сервер разработки:
go build
./cmd
Serving function...
8) Отправьте запросы к этой функции с помощью curl из другого окно терминала:
* 1 047 *