Попробовать функцию Google Cloud локально без учетной записи? - PullRequest
0 голосов
/ 06 мая 2020

Можно ли настроить локальную среду разработки для облачных функций Google - в частности, для среды выполнения Go - без входа в учетную запись Google? Я хотел бы опробовать его на месте, чтобы решить, хочу ли я сначала его использовать.

1 Ответ

1 голос
/ 06 мая 2020

Ага! Фреймворк функций - это то, что он называется. Документация находится здесь: 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 *
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...