Azure函数绑定如何工作?

时间:2017-03-08 23:19:46

标签: azure azure-webjobs azure-functions azure-webjobssdk

我对Azure Functions通过绑定允许这么多方法签名的方式着迷。有没有人知道它们是如何在幕后工作的,或者是否有描述它的资源的链接?

我知道必须指定绑定但是框架如何找出要调用的方法签名?

2 个答案:

答案 0 :(得分:5)

学习绑定如何工作的好方法是自己编写一个!我们有一个关于如何入门的wiki页面Binding Extensions Overview,以及样本绑定和入门项目的链接。 The Binding Process中描述了通用绑定管道。即使你不去写自己的扩展,这些链接也会帮助你理解。您还可以通过示例绑定或实际绑定进行调试,以了解它们是如何工作的 - 它是所有开源的:)您从Azure Functions中识别的许多绑定都存在于此azure-webjobs-sdk-extensions存储库中,所以你可以在那里看到他们的内心运作。其他核心绑定存在于azure-webjobs-sdk

所有Azure Functions绑定都是幕后WebJobs SDK绑定扩展,如那些wiki链接中所述。 Azure功能层位于此基础之上,并为其提供了基于JSON的跨语言元数据模型,如Azure Functions: The Journey博客文章中所述。

答案 1 :(得分:2)

我认为没有任何公开文档详细描述它是如何工作的,但是,该项目是开源的,因此您可以自己查看代码: https://github.com/Azure/azure-webjobs-sdk-script/

涉及相当多的代码,但我会关注: https://github.com/Azure/azure-webjobs-sdk-script/tree/dev/src/WebJobs.Script/Description

以下是获取函数参数的代码: https://github.com/Azure/azure-webjobs-sdk-script/blob/dev/src/WebJobs.Script/Description/DotNet/DotNetFunctionDescriptorProvider.cs#L72