Как динамически запустить функцию Azure, развернутую на портале вручную через Kudu Api?
У меня есть функция времени лазера, развернутая на портале. Он работает ежедневно в 10:00. Однако теперь существует требование, чтобы функция также вызывалась и выполнялась в другое время динамически.
Я знаю, как динамически установить триггер в файле function.json через Kudu Api, используя шаги ответа, упомянутые здесь. Таким образом, используя эти шаги, я могу установить триггер на следующую минуту и запустить функцию.
Но это не в режиме реального времени, это кажется обходным решением. Нет ли прямого способа вызвать и вручную запустить функцию Azure напрямую через Apis?
2 ответа
Нет ли прямого способа вызвать и вручную запустить функцию Azure напрямую через Apis?
Мы можем запустить развернутую функцию Azure с помощью REST API. Я тестирую его с помощью функции Time Trigger C# Azure на моей стороне.
Post https://{FunctionAppName}.azurewebsites.net/admin/functions/{functionName}
Примечание. Я прослеживаю это на портале Azure. Официального документа, упомянутого выше, я не нахожу. Если вы хотите использовать этот API в среде продукта, обратите на это больше внимания.
Нам нужен x-functions-key в качестве заголовка. И мы могли бы получить функциональную клавишу из функции Application.
Мы также могли бы использовать токен на предъявителя в качестве авторизации, о том, как получить авторизацию для этого Rest API, пожалуйста, обратитесь к другому потоку SO.
Обновлено:
Добавьте информацию о теле.
Для вышеуказанного требования я рекомендую создать две функции, которые используют одну и ту же логику (если CSX, либо путем импорта общей реализации с использованием #load
или добавление ссылки на общую сборку или с использованием общего типа).
У вас будет одна функция, использующая триггер таймера, а другая - другой тип триггера, который позволит вам вызывать функцию по требованию без зависимости от какого-либо API-интерфейса Kudu или Admin (например, HTTP, очередь, SB и т. Д.), точка входа в функцию (ваш метод Run) просто вызовет общую логику, которую вы вводите.