我在门户上部署了一个时间触发 Azure 功能。它每天上午 10:00 运行。但是,现在要求函数也应该在其他时间动态调用和运行。
我知道如何使用此处提到的答案中的步骤通过 Kudu Api 在 function.json 文件中动态设置触发器。因此,使用这些步骤,我可以设置下一分钟的触发器并运行该功能。
但这不是实时的,这似乎是一种解决方法。没有任何直接的方法可以直接通过api调用和手动运行azure函数吗?
我在门户上部署了一个时间触发 Azure 功能。它每天上午 10:00 运行。但是,现在要求函数也应该在其他时间动态调用和运行。
我知道如何使用此处提到的答案中的步骤通过 Kudu Api 在 function.json 文件中动态设置触发器。因此,使用这些步骤,我可以设置下一分钟的触发器并运行该功能。
但这不是实时的,这似乎是一种解决方法。没有任何直接的方法可以直接通过api调用和手动运行azure函数吗?
没有任何直接的方法可以直接通过api调用和手动运行azure函数吗?
我们可以使用 REST API 触发已部署的 Azure 函数。我在我身边使用Time Trigger C# Azure 函数对其进行测试。
Post https://{FunctionAppName}.azurewebsites.net/admin/functions/{functionName}
注意:我是从 Azure 门户跟踪的,我没有找到任何官方文档提到这个,如果你想在产品环境中使用这个 API,请多加注意。
我们需要x-functions-key作为标题。我们可以从功能应用程序中获取功能键。
我们也可以使用不记名令牌作为授权,关于如何获得这个 Rest API 的授权请参考另一个SO 线程。
更新:
添加正文信息。
对于上述要求,我的建议是创建两个共享相同逻辑的函数(如果是 CSX,则可以通过使用通用程序集导入通用实现#load
或添加对通用程序集的引用,或者通过具有通用类型)。
您将有一个函数使用计时器触发器,而另一个函数使用不同的触发器类型,使您能够按需调用函数而不依赖于任何 Kudu 或 Admin API(例如 HTTP、队列、SB 等),函数入口点(您的 Run 方法)只会调用您引入的通用逻辑。