如何动态地通过Kudu Api手动部署门户上的azure功能?

时间:2017-10-25 09:30:13

标签: azure azure-functions azure-sdk

我在门户网站上部署了时间触发器azure功能。它每天上午10:00运行。但是,现在要求还应该调用函数并在其他时间动态运行。

我知道如何使用回答提到的here中的步骤,通过Kudu Api动态设置function.json文件中的触发器。因此,使用这些步骤,我可以设置下一分钟的触发器并运行该功能。

但这不是实时的,这似乎是一种解决方法。难道没有直接通过apis直接调用和手动运行azure函数的方法吗?

2 个答案:

答案 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中获取功能键。

enter image description here

enter image description here

我们还可以使用不记名令牌作为授权,如何获取此Rest API的授权请参阅另一个SO thread

enter image description here

enter image description here

<强>更新

添加身体信息。

enter image description here

答案 1 :(得分:0)

对于上述要求,我的建议是创建两个共享相同逻辑的函数(如果是CSX,通过使用#load导入公共实现或添加对公共程序集的引用,或者通过普通型)。

您有一个使用定时器触发器的功能,另一个使用不同的触发器类型,使您可以按需调用该功能,而不依赖于任何Kudu或Admin API(例如HTTP,队列,SB等)。 ),函数入口点(你的Run方法)只会调用你带来的公共逻辑。