Поделиться через


Руководство. Создание триггера HTTP в агенте Azure SRE

В этом руководстве вы создадите триггер HTTP, который запускает проверку соответствия для приложения контейнера. Вы протестируете его на портале и командной строке, а затем интегрируете его в конвейер CI/CD.

Предполагаемое время: 10 минут

Изучив это руководство, вы:

  • Создание триггера HTTP с запросом проверки соответствия требованиям
  • Запустите тестирование триггера в портале, используя функцию "Запустить сейчас"
  • Вызов триггера из командной строки с полезными данными JSON
  • Интеграция триггера в конвейер CI/CD

Необходимые условия

  • Агент Azure SRE в состоянии выполнения с настроенной по крайней мере одной подпиской Azure
  • Установлен Azure CLI (az команда) — это для тестирования вызова веб-перехватчика

Сценарий

Ваша команда развертывает версии приложения-контейнера несколько раз в день. Каждое развертывание должно соответствовать стандартам соблюдения — правильные ограничения ресурсов, настроенные пробы работоспособности, настроенные правила входящего трафика. Вместо ручной проверки после каждого развертывания создается триггер HTTP, вызывающий конвейер CI/CD после каждого развертывания, и агент автоматически выполняет проверку соответствия.

Шаг 1. Открытие триггеров HTTP

Перейдите в Builder > HTTP триггеры в левой боковой панели.

Контрольная точка: Страница загружается со сводными карточками (активные триггеры: 0, всего триггеров: 0, всего запусков: 0) и пустой список триггеров.

Создание триггера

Выберите "Создать триггер " на панели инструментов. Откроется диалоговое окно создания триггера HTTP .

Заполните форму:

Поле Ценность
Имя триггера Проверка соответствия контейнерного приложения
Сведения о триггере Была развернута новая редакция приложения-контейнера. Запустите проверку соответствия приложения: убедитесь, что ограничения ресурсов (ЦП/память), пробы работоспособности, ингресс-конфигурация и правила масштабирования настроены правильно. Сообщите о обнаруженных проблемах. Сведения о приложении: {payload.app_name} в группе ресурсов {payload.resource_group}. Редакция: {payload.revision_name}.
Уровень автономности агента Автономный (по умолчанию)
Группирование сообщений для обновлений Новый поток чата для каждого запуска

Оставьте подагент ответа по умолчанию, если вы не хотите, чтобы определенный подагент обрабатывал проверку.

Выберите "Создать триггер".

Контрольная точка: Триггер отображается в списке со статусом "Вкл" (зеленый значок). Сводные карточки обновляются, чтобы показать 1 активный триггер.

Копирование URL-адреса триггера

Выберите имя триггера Container App Compliance Check, чтобы открыть подробное представление.

Видишь:

  • URL-адрес триггера — конечная точка веб-перехватчика с кнопкой копирования
  • Состояние — вкл.
  • Последний вызов — отсутствует
  • Группирование сообщений — новый поток для каждого запуска

Нажмите кнопку копирования рядом с URL-адресом триггера. Сохраните его— используйте его на шаге 5.

Контрольная точка: Убедитесь, что URL-адрес триггера скопирован. Похоже: https://<your-agent>.sre.azure.com/api/v1/httptriggers/trigger/<trigger-id>

Запустить тест сейчас

Нажмите кнопку "Запустить триггер" на панели инструментов. При этом триггер выполняется немедленно без внешнего вызова.

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

Контрольная точка: История выполнения показывает новую строку с меткой времени, связанный поток и статус выполнения с успехом. Выберите ссылку потока, чтобы просмотреть ответ агента.

Агент создает поток под названием HTTP Trigger: Container App Compliance Check(Проверка соответствия приложений контейнера). Внутри отображается карточка выполнения с планом проверки соответствия требованиям, за которой следует полное расследование агента и таблица вердиктов с результатами соответствия.

Вызов триггера из командной строки

Теперь протестируйте его так, как это сделает ваш конвейер CI/CD — с реальным пейлоадом. Откройте терминал и выполните следующую команду:

# Get an ARM token (use the SRE Agent app ID as the resource)
TOKEN=$(az account get-access-token --resource 59f0a04a-b322-4310-adc9-39ac41e9631e --query accessToken -o tsv)

# Call the trigger with container app deployment details
curl -X POST \
  "<YOUR_TRIGGER_URL>" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "app_name": "checkout-api",
    "resource_group": "rg-production",
    "revision_name": "checkout-api--v3",
    "deployed_by": "github-actions",
    "image": "myregistry.azurecr.io/checkout-api:v3.2.1"
  }'

Замените <YOUR_TRIGGER_URL> на URL-адрес, скопированный на шаге 3.

Что происходит: Агент получает ваш запрос, в котором {payload.app_name}, {payload.resource_group}, и {payload.revision_name} заменены фактическими значениями. Поля, которые не соответствуют заполнителю (например deployed_by , и image) добавляются как необработанный контекст JSON.

Ответ возвращается немедленно с HTTP 202:

{
  "message": "HTTP trigger execution initiated",
  "executionTime": "2026-03-13T10:30:00Z",
  "threadId": "thread-abc123",
  "success": true
}

Контрольная точка: Вернитесь на портал, выберите Обновить список в представлении сведений. В истории должно появиться второе выполнение — это связано с внешним вызовом. Выберите ссылку на поток, чтобы просмотреть проверку выполнения требований агентом с реальными сведениями о приложении.

Интеграция с конвейером

Добавьте вызов триггера на шаг после развертывания конвейера CI/CD. Ниже приведен пример для GitHub Actions:

- name: Trigger SRE Agent compliance check
  if: success()
  run: |
    TOKEN=$(az account get-access-token --resource 59f0a04a-b322-4310-adc9-39ac41e9631e --query accessToken -o tsv)
    curl -s -X POST "${{ secrets.SRE_TRIGGER_URL }}" \
      -H "Authorization: Bearer $TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "app_name": "${{ env.APP_NAME }}",
        "resource_group": "${{ env.RESOURCE_GROUP }}",
        "revision_name": "${{ env.REVISION_NAME }}",
        "deployed_by": "${{ github.actor }}",
        "commit": "${{ github.sha }}"
      }'

Сохраните URL-адрес триггера в виде секрета GitHub (SRE_TRIGGER_URL)- никогда не жестко закодируйте его в файле рабочего процесса.

Очистите ресурсы

Если триггер больше не нужен, удалите его:

  1. Перейдите к HTTP триггерам в Builder.
  2. Установите флажок триггера.
  3. Нажмите кнопку "Удалить".

Следующий шаг