Google Cloud Functions - вторая по популярности платформа для бессерверного исполнения. Подобно AWS Lambda, он не имеет состояния, а именно вам необходимо получить доступ к внешним ресурсам для чтения или записи состояния ваших приложений. В этом посте мы представим Redis как базу данных для ваших функций Google Cloud.

В этом руководстве показано, как создать бессерверный API с Redis в облачных функциях Google. API просто подсчитает просмотры страниц и отобразит их в формате JSON.

См. Демонстрацию: https://us-central1-functions-317005.cloudfunctions.net/helloGET

См. Код: https://github.com/upstash/examples/tree/master/using-google-cloud-functions

  • Бессерверные вычисления: Google Cloud Functions (Node.js)
  • Бессерверное хранилище данных: Redis через Upstash
  • Инструмент развертывания: gcloud

Предпосылки

  • Учетная запись GCP для функций Google Cloud.
  • Установите Google Cloud SDK.
  • Учетная запись Upstash для бессерверного Redis.

Шаг 1. Инициируйте проект

Создайте папку, затем запустите npm init внутри папки.

Шаг 2. Установите клиент Redis

Наша единственная зависимость - это клиент Redis. Установить go-redis через npm install ioredis

Шаг 3. Создайте базу данных Redis

Создайте базу данных Redis из консоли Upstash. Выберите GCP US-Central-1 в качестве региона. Уровень бесплатного пользования должен быть достаточным. Это довольно просто, но если вам нужна помощь, ознакомьтесь с руководством по началу работы. На странице сведений о базе данных нажмите кнопку Подключить. На следующем шаге вам потребуются конечная точка и пароль.

Шаг 4: Код функции

Создайте index.js, как показано ниже:

var Redis = require("ioredis");
if (typeof client === 'undefined') {
    var client = new Redis("REPLACE_YOUR_UPSTASH_REDIS_URL");
}
exports.helloGET = async(req, res) => {
    let count = await client.incr("counter");
    res.send('Page view:' + count);
};

Замените “REPLACE_YOUR_UPSTASH_REDIS_URL” URL-адресом ioredis вашей базы данных.

Код просто увеличивает счетчик в базе данных Redis и возвращает его значение в формате json.

Шаг 5: развертывание

Теперь мы готовы развернуть наш API. Развернуть через:

gcloud functions deploy helloGET \
--runtime nodejs14 --trigger-http --allow-unauthenticated

Вы увидите URL-адрес вашей облачной функции. Щелкните URL-адрес, чтобы проверить, правильно ли он работает.

httpsTrigger:
securityLevel: SECURE_OPTIONAL
url: https://us-central1-functions-317005.cloudfunctions.net/helloGET

В случае возникновения проблемы вы можете проверить журналы своей облачной функции в консоли GCP, как показано ниже.

Первоначально опубликовано на https://docs.upstash.com.

Больше контента на plainenglish.io