1. Введение
Последнее обновление: 21 июня 2023 г.
Оповещения о проверках доступности и времени безотказной работы
Оповещения о проверках доступности позволяют быстро выявлять и устранять проблемы, которые могут влиять на работу ваших сервисов. Получая уведомления о сбоях, вы можете предпринять шаги для минимизации воздействия на ваших пользователей и клиентов.
Проверки доступности выполняются с интервалами, самый короткий из которых составляет 60 секунд. В качестве дополнительного индикатора недоступности может быть полезно также отслеживать коды ошибок как динамические события с помощью оповещений в журналах, если вам требуется более детальная информация, чем за 60 секунд. Если 60-секундный интервал или более длительный приемлем, проверки доступности — это простой способ оценить работоспособность вашего сервиса с минимальной дополнительной настройкой.
Если сервис недоступен, проверка доступности обнаружит проблему, даже если трафик отсутствует. С другой стороны, на трафик могут влиять такие факторы, как техническое обслуживание, обновления и даже факторы, не зависящие от системы, например, плохая погода или спортивные мероприятия, отвлекающие пользователей.
Для получения дополнительной информации о том, когда следует использовать проверки доступности, см. раздел «Обеспечение доступности ваших ресурсов Google Cloud» .
Темы публикаций/подписок как канал оповещений
Тема 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
- Создание тем для публикации/подписки
- Создать проверки времени безотказной работы
- Создать оповещения
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.
Пример данных и запросы/ответы API
Для простоты приложение не использует базу данных в качестве бэкэнда. Оно содержит 3 примера идентификаторов товаров и информацию об уровне их наличия на складе.
Идентификатор продукта | Уровень запасов на складе |
И-1 | 10 |
И-2 | 20 |
И-3 | 30 |
Ниже приведены примеры запроса и ответа API:
API-запрос | Ответ API |
https://<somehost>/inventory | [ { "I-1": 10, "I-2": 20, "I-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, что значительно повышает производительность сети и аутентификацию. Всю работу в этой лаборатории можно выполнять с помощью обычного браузера.
Настройка gcloud
В Cloud Shell задайте идентификатор проекта и сохраните его в качестве переменной PROJECT_ID.
PROJECT_ID=[YOUR-PROJECT-ID]
gcloud config set project $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]. Хотите включить и повторить попытку (это займет несколько минут)? (да/нет)? Да
- Для развертывания из исходного кода требуется репозиторий 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 :
- Введите 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»; эта строка уже присутствует в приложении при отправке полных ответов.
- Держать

- В параметре Acceptable HTTP Response Code оставьте значение Response Code Classes и укажите 2xx в качестве единственного класса кодов ответа. Таким образом, для проверки строки будут учитываться только коды ответов с 2xx, а все остальные автоматически будут считаться неудачной проверкой.

- Нажмите «Продолжить»
- Выберите тему Cloud Pub/Sub в качестве канала уведомлений и нажмите OK.

- Нажмите «Продолжить»
- Добавьте узнаваемый заголовок.

- Нажмите кнопку «Тест» .

- Просмотрите список необходимых документов и нажмите кнопку «Создать» , когда будете готовы.

Будет создана проверка доступности, и начнется мониторинг вашего приложения Cloud Run. Вы можете просмотреть статус проверки доступности на вкладке «Проверки доступности» .

6. Поздравляем!
Поздравляем, вы успешно настроили проверку доступности системы для отправки оповещений в Pub/Sub!