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

如何通过Kudu Api动态地手动运行部署在门户上的azure功能?,azure,azure-functions,azure-sdk,Azure,Azure Functions,Azure Sdk,我在门户上部署了一个时间触发器azure函数。它每天上午10点运行。然而,现在有一个要求,即函数也应该被调用,并在其他时间动态运行 我知道如何使用前面提到的步骤,通过Kudu Api动态设置function.json文件中的触发器。因此,使用这些步骤,我可以设置下一分钟的触发器并运行该函数 但这不是实时的,这似乎是一个解决办法。是否没有直接通过API调用和手动运行azure函数的方法?对于上述要求,我的建议是创建两个共享相同逻辑的函数(如果CSX,通过使用;load导入公共实现,或添加对公共程序

我在门户上部署了一个时间触发器azure函数。它每天上午10点运行。然而,现在有一个要求,即函数也应该被调用,并在其他时间动态运行

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


但这不是实时的,这似乎是一个解决办法。是否没有直接通过API调用和手动运行azure函数的方法?

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

如果一个函数使用计时器触发器,另一个函数使用不同的触发器类型,使您能够在不依赖任何Kudu或Admin API(例如HTTP、queue、SB等)的情况下按需调用函数,那么函数入口点(您的Run方法)将只调用您引入的公共逻辑

难道没有直接通过API调用和手动运行azure函数的方法吗

我们可以使用RESTAPI触发已部署的Azure函数。我用Time TriggerC#Azure函数测试它

Post  https://{FunctionAppName}.azurewebsites.net/admin/functions/{functionName}
注意:我从Azure portal跟踪,我没有发现任何官方文档提到这一点,如果您想在产品环境中使用此API,请注意这一点

我们需要x-functions-key作为标题。我们可以从函数应用程序中获取函数键

我们也可以使用承载令牌作为授权,关于如何获得此Rest API的授权,请参考另一个

更新:

添加身体信息


为什么不添加一个基于消息队列的触发器,并将其用作您的函数的额外触发器?但是混合工作可以吗。我的函数是真正意义上的时间触发器,我可以添加一个队列触发器吗?还是我不知道混合动力车能不能用。如果没有,则将函数逻辑提取到方法中,并从两个函数调用它:一个是及时触发的,另一个是带有MessageQueue触发器的。制作另一个函数意味着很少的额外费用、很少的额外实现时间和额外的维护工作。当我们在门户中打开任何功能时,我们都会在那里运行按钮,所以我很好奇,如果在自定义应用程序中使用自定义按钮,单击触发或运行该功能的按钮,是否可以实现同样的效果。是的,你的建议很有道理,我肯定也会朝这个方向考虑。谢谢。非常有趣!但不幸的是,即使使用了正确的授权,我仍然得到了未经授权的401。你介意分享哪种方式获得授权吗?我尝试了两种方式。首先使用x功能密钥,然后使用承载令牌。但两人都没有成功。我还缺少其他设置吗。你们有在体内发送任何东西吗(在邮递员的截图中,看起来是这样的)?谢谢。尝试此操作后将在此ping。只需再更新一次:它是
x-functions-key
,而不是
x-function-key
。我无法编辑答案,因为它需要超过6个已编辑字符才能保存编辑