Go 1.11 тепер офіційно підтримується Google Cloud

2 хв. читання

Google Cloud Functions оголосили про підтримку функцій Go на Google Cloud. Йдеться про останню версію Go 1.11 з новими мовними нововведеннями, такими як модулі для інтеграції сторонніх залежностей у коді. Відсьогодні можна використовувати функції Go, які динамічно масштабуються у відповідь на завантаження та легко інтегруються з подіями в Google Cloud.

Два способи переходу

Розглянемо два типи функцій, які можна використовувати з Cloud Functions: функції HTTP і фонові функції.

Перші — викликаються HTTP-запитами. Вони слідують за http.HandlerFunc зі стандартної бібліотеки. Наприклад, функція HTTP, яка повертає IP-адресу абонента, може виглядати так:

// function.go
package function

import "net/http"

func F(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("Content-Type", "text/plain; charset=utf-8")
        w.Write([]byte(r.Header.Get("X-Forwarded-For")))
}

Функції HTTP можуть бути доступні без додаткового API gateway layer — Cloud Functions надає URL HTTPS. Після спрацювання функції її можна викликати введенням URL-адреси у браузері.

Протилежно їм, фонові функції запускаються у відповідь на подію. Ваша функція може, наприклад, запускатися кожен раз, коли змінюються вміст Cloud Storage. Ось приклад функції, яка спрацьовує на відправлення файлів в кошик Cloud Storage:

// function.go

// Package function includes an example of processing a GCS event.
package function

import (
        "context"
        "log"
)

// GCSEvent holds event data from a Google Cloud Storage Event.
type GCSEvent struct {
        Bucket      string `json:"bucket"`
        Name        string `json:"name"`
}

func F(ctx context.Context, e GCSEvent) error {
        log.Printf("Processing file: %s", e.Name)
        return nil
}

Під час розгортання функції ви також вказуєте конкретне призначення в Cloud Storage. Кожен раз, коли в цьому сегменті з'являється новий файл, ваша функція запускається і реєструє ім'я файлу.

Це всього два приклади можливостей взаємодії Cloud Functions і Go. Рантайм підтримує багату екосистему пакетів Go через модулі Go. Наприклад, щоб використовувати клієнтську бібліотеку Cloud Translation у своїй функції, створіть файл go.mod за допомогою таких команд:

export GO111MODULE=on
go mod init example.com/myfunctions
go get cloud.google.com/go/translate

Коли ви запустите функцію, Cloud Functions виберуть і встановлять залежності, перелічені у вашому файлі go.mod.

Користувачі Cloud Functions можуть створювати чат-ботів, конвеєри опрацювання даних в режимі реального часу, інструменти для аналізу відео і зображень тощо.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 6.6K
Приєднався: 6 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація

Читайте також: package json, go byte, go get mod