Руководство. Работа с триггерами и привязками в Функциях Azure
Функции Azure обеспечивают встроенную интеграцию с Сеткой событий Azure с помощью триггеров и привязок. В этой статье показано, как настроить и локально оценить триггер и привязки Сетки событий. Дополнительные сведения о определениях и примерах привязки триггера и выходных привязок сетки событий см. в одной из следующих справочных статей:
- Общие сведения о привязках в Сетке событий Azure
- триггер Сетка событий Azure для Функции Azure
- Сетка событий Azure выходная привязка для Функции Azure
Создание подписки на событие
Чтобы получать HTTP-запросы Сетки событий, вам потребуется подписка на события, создаваемые Сеткой событий. Подписки на события указывают URL-адрес конечной точки, которая вызывает нужную функцию. При создании подписки на события на вкладке Интеграции для этой функции на портале Azure будет предоставлен URL-адрес. При создании подписки на события программным образом или из Сетки событий необходимо предоставить конечную точку. URL-адрес этой конечной точки содержит системный ключ, который следует получить из REST API администратора Функций Azure.
Получение URL-адреса конечной точки веб-перехватчика
Конечная точка URL-адреса для функции, активируемой из Сетки событий, зависит от версии среды выполнения Функций. В следующем примере показан шаблон URL-адреса в зависимости от версии:
https://{functionappname}.azurewebsites.net/runtime/webhooks/eventgrid?functionName={functionname}&code={systemkey}
Примечание.
Существует версия триггера хранилища BLOB-объектов, который также использует подписки на события. URL-адрес конечной точки для этого типа триггера хранилища BLOB-объектов имеет путь, в то время как путь /runtime/webhooks/blobs
для триггера сетки событий будет иметь /runtime/webhooks/EventGrid
значение . Сравнение параметров обработки больших двоичных объектов см. в разделе "Триггер" в контейнере БОЛЬШИХ двоичных объектов.
Получение системного ключа
Конечная точка URL-адреса, которая вы создаете, включает значение системного ключа. Системный ключ — это ключ авторизации, связанный с веб-перехватчиком сетки событий, который должен быть включен в запрос к URL-адресу конечной точки триггера сетки событий. В следующем разделе показано, как получить системный ключ.
Вы также можете получить главный ключ приложения-функции из ключей приложений функций>на портале.
Внимание
Главный ключ предоставляет административный доступ к приложению-функции. Не передавайте этот ключ третьим лицам и не распространяйте его в собственных клиентских приложениях.
Дополнительные сведения см. в статье "Работа с ключами доступа" в Функции Azure.
Системный ключ можно получить из приложения-функции с помощью следующих API-интерфейсов администратора (HTTP GET):
http://{functionappname}.azurewebsites.net/admin/host/systemkeys/eventgrid_extension?code={masterkey}
REST API —это API администратора, поэтому для него нужен главный ключ приложения-функции. Не путайте системный ключ (для вызова функции триггера службы "Сетка событий") с главным ключом (для выполнения административных задач в приложении-функции). Во время оформления подписки на раздел службы "Сетка событий" необходимо использовать системный ключ.
Ниже приведен пример ответа, который предоставляет системный ключ:
{
"name": "eventgridextensionconfig_extension",
"value": "{the system key for the function}",
"links": [
{
"rel": "self",
"href": "{the URL for the function, without the system key}"
}
]
}
Создание подписки
Подписку на события можно создать на портале Azure или через Azure CLI.
Для функций, разрабатываемых на портале Azure с использованием триггера Сетки событий, выберите Интеграция, Триггер Сетки событий и Создание подписки для Сетки событий.
Когда вы щелкните эту ссылку, на портале откроется страница Создать подписку на события, где автоматически определена конечная точка текущего триггера.
Дополнительные сведения о создании подписок с помощью портала Azure см. в разделе Создание и перенаправление пользовательских событий с помощью портала Azure и службы "Сетка событий" документации по службе "Сетка событий".
Дополнительные сведения о создании подписки см. в разделе Примеры использования хранилища больших двоичных объектов или других коротких руководствах по использованию службы "Сетка событий".
Локальное тестирование с помощью веб-приложения средства просмотра
Чтобы протестировать триггер службы "Сетка событий" локально, необходимо отправить HTTP-запросы службы "Сетка событий", переданные из своего источника в облаке, на локальный компьютер. Для этого можно записать запросы в сети и вручную отправить их на локальный компьютер:
- Создайте веб-приложение средства просмотра, которое собирает сообщения о событиях.
- Создайте подписку службы "Сетка событий", которая отправляет события в приложение средства просмотра.
- Создайте запрос и скопируйте текст запроса из приложения средства просмотра.
- Вручную вставьте запрос в URL-адрес localhost функции триггера службы "Сетка событий".
Чтобы отправить HTTP-запрос после отправки, вам потребуется средство тестирования HTTP. Обязательно выберите средство, которое обеспечивает безопасность данных. Дополнительные сведения см. в средствах тестирования HTTP.
Закончив тестирование, можно использовать ту же подписку для рабочей среды, обновив конечную точку. Выполните команду Azure CLI az eventgrid event-subscription update
.
Создание веб-приложения средства просмотра
Чтобы упростить запись сообщений о событиях, разверните готовое веб-приложение, которое отображает сообщения о событиях. Развернутое решение содержит план службы приложений, веб-приложение службы приложений и исходный код из GitHub.
Выберите Развернуть в Azure, чтобы развернуть решение в своей подписке. На портале Azure укажите значения остальных параметров.
Завершение развертывания может занять несколько минут. Когда развертывание успешно завершится, откройте веб-приложение и убедитесь, что оно работает. Откройте браузер и перейдите по адресу https://<your-site-name>.azurewebsites.net
.
Вы увидите сайт без опубликованных событий.
Создание подписки Сетки событий
Создайте подписку "Сетка событий" того типа, который требуется протестировать, и предоставьте URL-адрес из веб-приложения как конечную точку для уведомления о событиях. Конечная точка веб-приложения должна содержать суффикс /api/updates/
. Таким образом, полный URL-адрес будет выглядеть следующим образом: https://<your-site-name>.azurewebsites.net/api/updates
Дополнительные сведения о создании подписок с помощью портала Azure см. в разделе Создание пользовательского события с помощью портала Azure в документации по службе "Сетка событий".
Создание запроса
Активируйте событие, которое будет создавать HTTP-трафик в конечную точку веб-приложения. Например, если вы создали подписку хранилища BLOB-объектов, отправьте или удалите большой двоичный объект. Скопируйте текст запроса, когда запрос отобразится в веб-приложении.
Сначала будет получен запрос на подтверждение подписки. Игнорируйте такие запросы и скопируйте запрос события.
Публикация запроса вручную
Запустите функцию службы "Сетка событий" локально. Заголовки Content-Type
и aeg-event-type
необходимо задать вручную, а для всех остальных параметров можно оставить значения по умолчанию.
Используйте средство тестирования HTTP для создания HTTP-запроса POST:
Задайте заголовок
Content-Type: application/json
.Задайте заголовок
aeg-event-type: Notification
.Вставьте данные RequestBin в текст запроса.
Отправьте HTTP-запрос POST в конечную точку, которая вручную запускает триггер сетки событий.
http://localhost:7071/runtime/webhooks/eventgrid?functionName={FUNCTION_NAME}
Для параметра functionName
нужно указать имя, заданное в атрибуте FunctionName
.
Функция триггера службы "Сетка событий" выполняет и показывает журналы, похожие на приведенные ниже:
Следующие шаги
Чтобы узнать больше о об использовании Сетки со службой "Функции", обратитесь к следующим статьям: