1. Введение
Обзор
Cloud Run Functions — это новый способ развертывания рабочих нагрузок с использованием привычных парадигм обработки событий GCF и сигнатур функций. Вместо использования нашего жестко регламентированного процесса сборки и конфигураций развертывания, Cloud Run Functions предоставляет вам прямой контроль над базовой службой, созданной в Cloud Run.
С помощью функций Cloud Run мы обеспечиваем простой пользовательский интерфейс развертывания из источника Cloud Run, предоставляя разработчикам полный контроль над своими рабочими нагрузками с помощью конфигураций Cloud Run.
В этом практическом занятии используются примеры на Node.js. Однако вы можете использовать примеры кода Cloud Functions 2-го поколения на любом языке по вашему выбору:
- примеры функций Python
- Примеры функций Nodejs
- Примеры функций Go
- Примеры функций Java
- Примеры функций PHP
- Примеры функций Ruby
- Примеры функций .NET
Что вы узнаете
- Как развернуть функцию Cloud Run, запускаемую HTTP-запросом.
2. Установите переменные среды и включите API.
Обновите интерфейс командной строки gcloud.
Для начала вам потребуется установить последнюю версию интерфейса командной строки gcloud. Обновить интерфейс можно, выполнив следующую команду:
gcloud components update
Настройка переменных среды
Вы можете установить переменные окружения, которые будут использоваться на протяжении всего этого практического занятия.
PROJECT_ID=<YOUR_PROJECT_ID> REGION=<YOUR_REGION, e.g. us-central1> gcloud config set project $PROJECT_ID SERVICE_NAME=crf-http-codelab
Включить API
Прежде чем начать использовать этот практический пример, вам потребуется включить несколько API. Для работы с этим практическим примером необходимы следующие API. Вы можете включить эти API, выполнив следующую команду:
gcloud services enable run.googleapis.com \
cloudbuild.googleapis.com \
storage.googleapis.com \
artifactregistry.googleapis.com
3. Создайте HTTP-функцию.
Сначала создайте директорию для исходного кода и перейдите в неё с помощью команды `cd`.
mkdir -p cloud-run-functions/$SERVICE_NAME && cd $_
Затем создайте файл package.json со следующим содержимым:
{
"dependencies": {
"@google-cloud/functions-framework": "^3.0.0"
}
}
Далее создайте файл index.js со следующим содержимым:
const functions = require("@google-cloud/functions-framework");
functions.http("helloHttp", (req, res) => {
res.send(`Hello ${req.query.name || req.body.name || "World"}!`);
});
4. Разверните функцию.
Теперь вы можете развернуть функцию Cloud Run, выполнив следующую команду:
gcloud beta run deploy $SERVICE_NAME \
--source . \
--function helloHttp \
--region us-central1 \
--no-allow-unauthenticated
Эта команда использует buildpacks для преобразования исходного кода вашей функции в готовый к использованию в производственной среде образ контейнера.
Обратите внимание на следующее:
- Флаг –source используется для того, чтобы указать Cloud Run на необходимость встроить функцию в исполняемый контейнерный сервис.
- Флаг –function (новый) используется для установки точки входа нового сервиса в качестве сигнатуры функции, которую вы хотите вызвать.
- (необязательно) параметр –no-allow-unauthenticated, чтобы предотвратить публичный вызов вашей функции.
5. Проверьте функцию.
После завершения развертывания вы увидите URL-адрес сервиса. Для вызова функции необходимо отправить аутентифицированный запрос с вашим токеном идентификации или токеном идентификации субъекта, имеющего роль Cloud Run Invoker, как показано ниже:
# get the Service URL SERVICE_URL="$(gcloud run services describe $SERVICE_NAME --region us-central1 --format 'value(status.url)')" # invoke the service curl -H "Authorization: bearer $(gcloud auth print-identity-token)" -X GET $SERVICE_URL
6. Поздравляем!
Поздравляем с завершением практического занятия!
Мы рекомендуем ознакомиться с документацией по функциям Cloud Run.
Что мы рассмотрели
- Как развернуть функцию Cloud Run, запускаемую HTTP-запросом.
7. Уборка
Чтобы избежать непреднамеренных списаний средств (например, если сервисы Cloud Run будут случайно запущены больше раз, чем предусмотрено вашим ежемесячным лимитом на запуск Cloud Run в бесплатном тарифе ), вы можете либо удалить Cloud Run, либо удалить проект, созданный на шаге 2.
Чтобы удалить функцию Cloud Run, перейдите в консоль Cloud Run по адресу https://console.cloud.google.com/run и удалите службу crf-http-codelab .
Если вы решите удалить весь проект, перейдите по ссылке https://console.cloud.google.com/cloud-resource-manager , выберите проект, созданный на шаге 2, и нажмите «Удалить». После удаления проекта вам потребуется изменить проекты в вашем Cloud SDK. Список всех доступных проектов можно просмотреть, выполнив gcloud projects list .