1. Введение
Обзор
Функции Cloud Run — это новый способ развертывания рабочих нагрузок с использованием знакомых парадигм обработки событий GCF и сигнатур функций. Вместо использования нашего самоуверенного процесса сборки и конфигураций развертывания функции Cloud Run дают вам прямой контроль над базовой Службой, созданной в Cloud Run.
С помощью функций Cloud Run мы предоставляем простой пользовательский интерфейс развертывания исходного кода Cloud Run, предоставляя разработчикам полный контроль над своими рабочими нагрузками с помощью конфигураций Cloud Run.
В приведенных ниже примерах в этой лаборатории кода используются образцы nodejs. Однако вы можете использовать примеры кода Cloud Functions 2-го поколения на выбранном вами языке:
- Примеры функций Python
- Примеры функций Nodejs
- Примеры функций Go
- Примеры функций Java
- Примеры функций PHP
- Примеры функций Ruby
- Примеры функций .NET
Что вы узнаете
- Как развернуть функцию Cloud Run, запускаемую HTTP-запросом
2. Установите переменные среды и включите API.
Обновите интерфейс командной строки gcloud
Во-первых, вам потребуется установить последнюю версию интерфейса командной строки gcloud. Вы можете обновить CLI, выполнив следующую команду:
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.
Сначала создайте каталог для исходного кода и перейдите в этот каталог.
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
Эта команда использует пакеты сборки для преобразования исходного кода вашей функции в готовый к использованию образ контейнера.
Обратите внимание на следующее:
- флаг –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
.