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