gpt4 book ai didi

c# - Azure WebJobs SDK 如何允许将特定参数列表注入(inject)到 Function 方法中?

转载 作者:行者123 更新时间:2023-11-30 21:45:31 25 4
gpt4 key购买 nike

Azure SDK(用于队列)mentions a specific list of parameters that are allowed to be passed into a webjob Function .

例如

You can get the following message properties by adding parameters to the method signature:

DateTimeOffset expirationTime
DateTimeOffset insertionTime
DateTimeOffset nextVisibleTime
string queueTrigger (contains message text)
string id
string popReceipt
int dequeueCount

If you want to work directly with the Azure storage API, you can also add a CloudStorageAccount parameter.

我试图在他们的源代码中找到这是如何完成的,因为我想尝试传递我自己的参数。

任何人都可以解释/链接这是如何实现的吗?

最佳答案

此类参数是特定触发器绑定(bind)的静态绑定(bind)契约的一部分。每个触发器绑定(bind)定义其(可能为空)“内置”绑定(bind)值集。例如。 here是 QueueTrigger 的源代码,其中定义了这些值。只有此静态合约中的值才能通过这种方式绑定(bind)为方法参数。

运行时在索引时间根据触发器合约验证方法签名,这就是为什么我将其称为静态合约的原因。如果无法根据合约解析该方法的一个或多个参数,则会发生索引错误。在运行时,当触发方法时,绑定(bind)契约将填充来自实际触发值的值(例如队列消息)。

扩展触发器绑定(bind)可以以相同的方式定义合约。例如,here Azure Functions 中的 HttpTrigger 绑定(bind)将路由模板中的路由参数添加到其绑定(bind)协定中。例如。对于像 products/{category:alpha}/{id:int?} 这样的路由模板,“category”和“id”都会添加到合约中,因此可以直接绑定(bind)为方法参数。在运行时,绑定(bind)数据将使用来自触发 http 请求 URL 的实际运行时值进行填充。

此合约的定义由触发绑定(bind)作者负责,并且不可从外部扩展。

关于c# - Azure WebJobs SDK 如何允许将特定参数列表注入(inject)到 Function 方法中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40069335/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com