О практической работе
1. Введение
Последнее обновление: 21 июня 2023 г.
Оповещение о проверке доступности
Оповещения о проверках работоспособности позволяют быстро выявлять и устранять проблемы, которые могут повлиять на ваши услуги. Получая оповещения о сбоях, вы можете предпринять шаги, чтобы минимизировать влияние на ваших пользователей и клиентов.
Проверки работоспособности происходят через интервалы времени, самый короткий из которых составляет 60 секунд. Может быть полезно также отслеживать коды ошибок как динамические события с помощью предупреждений на основе журнала в качестве дополнительного индикатора недоступности, если вам нужна детализация за пределами 60 секунд. Если допустим интервал в 60 секунд или более, проверки работоспособности — это простой способ измерить качество вашей услуги без дополнительной настройки.
Если услуга недоступна, проверка работоспособности выявит проблему даже при отсутствии трафика. С другой стороны, на трафик могут влиять такие факторы, как техническое обслуживание, обновления и даже внешние по отношению к системе факторы, такие как плохая погода или спортивные мероприятия, которые отвлекают от использования.
Дополнительную информацию о том, когда использовать проверку работоспособности, см. в разделе Обеспечение работоспособности ресурсов Google Cloud .
Темы Pub/Sub как канал оповещения
Тему Pub/Sub можно использовать в качестве канала уведомлений Google Cloud Monitoring для отправки оповещений в подписку Pub/Sub. Это позволяет вам интегрировать оповещения Cloud Monitoring с другими системами, включая сторонние службы уведомлений.
Чтобы использовать тему Pub/Sub в качестве канала уведомлений, сначала необходимо создать тему Pub/Sub и подписку Pub/Sub. Затем вам необходимо создать канал уведомлений Cloud Monitoring, который будет использовать тему Pub/Sub в качестве места назначения.
При срабатывании оповещения Cloud Monitoring отправит сообщение в тему Pub/Sub. Подписчик подписки Pub/Sub может затем обработать сообщение и предпринять соответствующие действия.
Что ты построишь
В этой лаборатории кода вы собираетесь развернуть приложение, создать тему Pub/Sub и создать оповещение о проверке работоспособности для приложения, которое использует тему Pub/Sub в качестве канала уведомлений.
Что вы узнаете
- Как создать тему Pub/Sub
- Как создать проверку работоспособности и оповещение
Эта лаборатория кода ориентирована на создание оповещения для проверки работоспособности. Нерелевантные концепции и код приложения замалчиваются и предоставляются для простого копирования и вставки.
Что вам понадобится
- Учетная запись Google Cloud с разрешениями на:
- Развертывание приложений Cloud Run
- Создание тем Pub/Sub
- Создание проверок работоспособности
- Создание оповещений
2. Начало настройки
Выберите или создайте проект Google Cloud
Чтобы выбрать существующий проект, используйте раскрывающийся список:
Чтобы создать новый проект в Google Cloud, вы можете выполнить следующие действия:
- Перейдите в консоль Google Cloud Platform .
- Нажмите кнопку «Создать проект» .
- Введите имя для вашего проекта.
- Выберите платежный аккаунт для своего проекта.
- Нажмите кнопку «Создать» .
Ваш проект будет создан, и вы попадете на панель управления проектом. Оттуда вы можете начать использовать сервисы Google Cloud.
Вот некоторые дополнительные сведения о каждом этапе:
- Имя. Имя вашего проекта должно быть уникальным в пределах вашей организации.
- Платежный аккаунт: вы можете использовать существующий платежный аккаунт или создать новый.
- Создать: После того, как вы ввели всю необходимую информацию, нажмите кнопку «Создать» , чтобы создать проект.
Дополнительную информацию см. в документации Google Cloud по созданию проектов .
3. Развертывание приложения API
Что представляет собой пример приложения или API?
Наше приложение представляет собой простое приложение API инвентаризации, которое предоставляет конечную точку REST API с помощью пары операций для составления списка элементов инвентаря и получения количества конкретных элементов инвентаря.
После развертывания API и предположения, что он размещен по адресу https://<somehost>, мы можем получить доступ к конечным точкам API следующим образом:
https://<somehost>/inventory
В нем будут перечислены все позиции продуктов с имеющимися запасами.
https://<somehost>/inventory/{productid}
Это обеспечит единую запись с идентификатором продукта и уровнем имеющихся запасов для этого продукта.
Возвращаемые данные ответа имеют формат JSON.
Примечание . Это приложение API предназначено только для демонстрационных целей и не представляет собой безопасную и надежную реализацию API. Предполагается, что нам будет доступно быстрое приложение для изучения основной цели лаборатории, то есть Google Cloud Operations.
Примеры данных и запрос/ответ API
Приложение не использует базу данных на серверной стороне, чтобы упростить задачу. Он содержит 3 образца идентификаторов продуктов и уровни их имеющихся запасов.
Идантификационный номер продукта | Уровень имеющихся запасов |
Я-1 | 10 |
И-2 | 20 |
И-3 | 30 |
Пример запроса и ответа API показан ниже:
API-запрос | Ответ API |
https://<somehost>/inventory | [ { "И-1": 10, "И-2": 20, "И-3": 30 }] |
https://<somehost>/inventory/I-1 | { "productid": "I-1", "qty": 10} |
https://<somehost>/inventory/I-2 | { "productid": "I-2", "qty": 20} |
https://<somehost>/inventory/I-200 | { "productid": I-200, "qty": -1} |
Клонировать репозиторий
Хотя Google Cloud можно управлять удаленно с вашего ноутбука, в этой лаборатории вы будете использовать Google Cloud Shell , среду командной строки, работающую в облаке.
В консоли GCP щелкните значок Cloud Shell на верхней правой панели инструментов:
Подготовка и подключение к среде займет всего несколько минут. Когда все будет готово, вы должны увидеть что-то вроде этого:
Эта виртуальная машина оснащена всеми необходимыми инструментами разработки. Он предлагает постоянный домашний каталог объемом 5 ГБ и работает в Google Cloud, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лабораторной работе можно выполнять с помощью простого браузера.
Настройка gcloud
В Cloud Shell задайте идентификатор проекта и сохраните его как переменную PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
project
set
config
gcloud
$PROJECT_ID
Теперь выполните следующую команду:
$
git
clone
https://github.com/rominirani/cloud-code-sample-repository.git
В этой папке будет создана папка под названием cloud-code-sample-repository.
(Необязательно) Запустите приложение в Cloud Shell.
Вы можете запустить приложение локально, выполнив следующие действия:
- В терминале перейдите к версии API Python с помощью следующей команды:
$
cd
cloud-code-sample-repository
$
cd
python-flask-api
- В терминале введите следующую команду (на момент написания Cloud Shell поставляется с установленным Python 3.9.x, и мы будем использовать версию по умолчанию. Если вы планируете запускать его локально на своем ноутбуке, вы можете использовать Python 3.8+. ) :
$
python
app.py
- Вы можете запустить следующую команду, чтобы запустить сервер Python локально.
Нажмите «Просмотр» на порту 8080. 5. Откроется окно браузера. Вы увидите ошибку 404, и это нормально. Измените URL-адрес и измените его, чтобы после имени хоста было /inventory.
Например, на моей машине это выглядит так:
https://8080-cs-557561579860-default.cs-asia-southeast1-yelo.cloudshell.dev/inventory
Это отобразит список предметов инвентаря, как объяснялось ранее:
- Вы можете остановить сервер сейчас, зайдя в Терминал и нажав Ctrl-C.
Развертывание приложения
Теперь мы развернем это приложение API в Cloud Run. Процесс включал использование клиента командной строки gcloud для запуска команды развертывания кода в Cloud Run .
В терминале введите следующую команду gcloud:
$ gcloud run deploy --source .
Это задаст вам несколько вопросов, некоторые из которых упомянуты ниже:
- Имя службы (python-flask-api): используйте это значение по умолчанию или выберите что-то вроде my-inventory-api.
- API [run.googleapis.com] не включен в проекте [613162942481]. Хотите включить и повторить попытку (это займет несколько минут)? (да/нет)? Да
- Пожалуйста, укажите регион: Выберите 31 (us-west-1)
- API [artifactregistry.googleapis.com] не включен в проекте [613162942481]. Хотите включить и повторить попытку (это займет несколько минут)? (да/нет)? Да
- Для развертывания из исходного кода требуется репозиторий Artifact Registry Docker для хранения собранных контейнеров. Будет создан репозиторий с именем [cloud-run-source-deploy] в регионе [us-west1].
- Хотите продолжить (Да/нет)? Да
- Разрешить неаутентифицированные вызовы к [my-inventory-api] (да/нет)? Да
В конечном итоге это запустит процесс получения исходного кода, его контейнеризации, отправки в реестр артефактов, а затем развертывания службы Cloud Run + версии. Вам следует проявить терпение в этом процессе (может занять 3–4 минуты), и вы увидите, что процесс завершится, и вам будет показан URL-адрес службы.
Пример запуска показан ниже:
Протестируйте приложение
Теперь, когда мы развернули приложение в Cloud Run, вы можете получить доступ к приложению API следующим образом:
- Обратите внимание на URL-адрес службы из предыдущего шага. Например, в моей настройке он отображается как
https://my-inventory-api-bt2r5243dq-uw.a.run.app
. Назовем это<SERVICE_URL>
. - Откройте браузер и получите доступ к следующим трем URL-адресам конечных точек API:
-
<SERVICE_URL>/inventory
-
<SERVICE_URL>/inventory/I-1
-
<SERVICE_URL>/inventory/I-100
Он должен соответствовать спецификациям, которые мы предоставили в предыдущем разделе с примером запроса и ответа API.
Получите подробную информацию об услуге из Cloud Run
Мы развернули нашу службу API в Cloud Run, бессерверной вычислительной среде. Мы можем посетить сервис Cloud Run через консоль Google Cloud в любой момент.
В главном меню перейдите в Cloud Run. Появится список сервисов, которые вы используете в Cloud Run. Вы должны увидеть службу, которую вы только что развернули. В зависимости от выбранного вами имени вы должны увидеть что-то вроде этого:
Нажмите на название службы, чтобы просмотреть подробности. Детали образца показаны ниже:
Обратите внимание на URL-адрес, который представляет собой не что иное, как URL-адрес службы, который вы можете ввести в браузер и получить доступ к API инвентаризации, который мы только что развернули. Ознакомьтесь с показателями и другими подробностями.
Давайте начнем с Google Cloud Operations Suite.
4. Создайте тему Pub/Sub для получения оповещений
Чтобы создать тему Pub/Sub, вы можете выполнить следующие шаги в Google Cloud Console :
- Найдите Pub/Sub в поле поиска и перейдите к Pub/Sub.
- Перейдите на вкладку «Темы» , если вы еще этого не сделали.
- Нажмите кнопку Создать тему .
- Введите название своей темы.
- Нажмите кнопку «Создать» .
- Скопируйте название темы, используя кнопку со значком копирования. Он понадобится вам для следующего раздела.
5. Создайте проверку работоспособности
Чтобы создать проверку работоспособности приложения Google Cloud Run:
- Перейдите в консоль Google Cloud Platform .
- Откройте вкладку Мониторинг .
- Откройте вкладку «Проверки работоспособности» .
- В верхней части страницы нажмите кнопку «Создать проверку работоспособности» .
- Используйте следующие значения:
- Протокол: HTTPS
- Тип ресурса: URL
- Имя хоста: введите часть URL-адреса службы Cloud Run без https . Пример на экране ниже. Если вы не уверены в URL-адресе службы, перейдите в Cloud Run из основной консоли Google Cloud и перейдите к сведениям о службе Cloud Run, как описано ранее, чтобы получить URL-адрес службы.
- Путь: здоровый
- Частота проверки: 1 минута
- Нажмите Продолжить
- Включить Сопоставление контента включено
- Введите «All Izz Well» в разделе «Содержание ответа» ; эта строка уже находится в приложении, когда оно отправляет полные ответы.
- Держать
- Оставьте для параметра «Приемлемый код ответа HTTP» значение «Классы кода ответа» и 2xx в качестве единственного класса кода ответа. Таким образом, для строки будут оцениваться только коды ответов с 2xx, а все остальное автоматически будет считаться неудачной проверкой.
- Нажмите Продолжить
- Выберите тему Cloud Pub/Sub в качестве канала уведомлений и нажмите «ОК».
- Нажмите Продолжить
- Добавьте узнаваемый заголовок
- Нажмите кнопку «Тест»
- Просмотрите и нажмите кнопку «Создать» , когда будете готовы.
Будет создана проверка работоспособности, после которой начнется мониторинг вашего приложения Cloud Run. Вы можете просмотреть статус проверки работоспособности на вкладке «Проверки работоспособности» .
6. Поздравления
Поздравляем, вы успешно настроили проверку работоспособности для отправки оповещений в Pub/Sub!