Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
В этой статье показано, как вручную запускать функцию, не активируемую HTTP-запросом, через HTTP-запрос в особом формате.
В некоторых контекстах, например, в процессе разработки и устранения неполадок, может потребоваться запустить функцию Azure "по запросу", которая косвенно активируется. Примеры косвенных триггеров включают функции в расписании или функциях, которые выполняются в результате событий.
Процедура, описанная в этой статье, эквивалентна использованию функций Test/Run функции Code + Test на портале Azure. Вы также можете использовать Visual Studio Code для мануально запускать функции.
Предварительные условия
В примерах в этой статье используется средство тестирования HTTP. Обязательно выберите средство, которое обеспечивает безопасность данных. Дополнительные сведения см. в статье Инструменты тестирования HTTP.
Определение расположения запроса
Чтобы запустить функцию, не активированную по протоколу HTTP, необходимо отправить запрос на Azure для запуска функции. URL-адрес, используемый для выполнения данного запроса, принимает определенный формат.
-
Имя узла: Общедоступное расположение приложения-функции, состоящее из имени приложения-функции, а также azurewebsites.net или личного домена. При работе с слотами развертывания , используемыми для промежуточного хранения, часть имени узла — это имя рабочего узла,
-<slotname>добавленное к нему. В предыдущем примере URL-адрес будет использоватьсяmyfunctiondemos-staging.azurewebsites.netдля слота с именемstaging. -
Путь к папке: Чтобы получить доступ к функциям, которые не запускаются HTTP-запросом, необходимо отправить запрос при помощи пути
admin/functions. API в/admin/пути доступны только с помощью авторизации. - Имя функции: Имя функции, которую требуется запустить.
При выполнении запросов к административным точкам доступа в функциональном приложении учитываются следующие соображения.
- При выполнении запросов к любой конечной точке в
/admin/пути необходимо указать главный ключ приложения вx-functions-keyзаголовке запроса. - При локальном запуске авторизация не применяется, а главный ключ функции не требуется. Вы можете напрямую вызвать функцию , не указывая
x-functions-keyзаголовок. - При доступе к конечным точкам приложения-функции в слоте развертывания убедитесь, что в URL-адресе запроса используется имя узла конкретного слота, а также главный ключ для конкретного слота.
Получение главного ключа
Главный ключ можно получить на портале Azure или с помощью Azure CLI.
Внимание
Из-за повышенных разрешений в приложении-функции, предоставленном главным ключом, этот ключ не следует предоставлять третьим лицам или распространять его в приложении. Ключ должен быть отправлен только на конечную точку HTTPS.
Перейдите к функции приложения в Azure portal, выберите App Keys, а затем ключ
_master.
В разделе "Изменить ключ" скопируйте значение ключа в буфер обмена и нажмите кнопку "ОК".
Вызовите функцию
На портале Azure перейдите к вашему приложению-функции и выберите вашу функцию.
Выберите Код + тест, и выберите Журналы. Вы увидите сообщения, записанные здесь, при ручном запуске функции через ваше средство тестирования HTTP.
В средстве тестирования HTTP используйте расположение запроса, определенное в качестве URL-адреса запроса, убедитесь, что метод HTTP-запроса — POST, и включите следующие два заголовка запроса:
Ключ Значение x-functions-keyЗначение основного ключа, вставленное из буфера обмена. Content-Typeapplication/jsonУбедитесь, что тело запроса POST задано
{ "input": "<TRIGGER_INPUT>" }. Указанный тип<TRIGGER_INPUT>зависит от типа триггера, но он может быть только строковым, числовым или логическим значением. Для служб, использующих JSON-пейлоуды, таких как Azure Service Bus, тестовый JSON-пейлоуд должен быть экранирован и сериализован как строка.Если вы не хотите передавать входные данные в функцию, необходимо предоставить пустой словарь
{}в качестве текста запроса POST. Дополнительные сведения см. в справочной статье для конкретного триггера, отличного от HTTP.Отправьте HTTP-запрос POST. Ответ должен быть ответом HTTP 202 (принято).
Затем вернитесь к функции на портале Azure. Просмотрите журналы и увидите сообщения, поступающие из ручного вызова функции.
Способ доступа к данным, отправленным триггеру, зависит от типа триггера и языка функции. Дополнительные сведения см. в справочных примерах для конкретного триггера.