多个输入到Azure函数

时间:2018-01-30 08:16:49

标签: multithreading azure web proxy azure-functions

TLDR:

是否可以为Azure功能提供多个输入?

更长的说明:

我是Azure Functions的新手,但仍然没有很好地理解它。

我有一个通过代理Web请求下载HTML数据的应用程序,我正在考虑将其移至Azure Functions。

但是,该函数需要两个输入:字符串URL和代理对象(包含IP地址,用户名和密码属性)。

我想有两个队列,一个用于URL,一个用于代理。

客户端应用程序会将URL添加到队列中,这将触发该功能。

代理队列将拥有一个有限的代理对象池,在将这些代理对象用于Web请求后,它们将被消耗函数添加回队列中。

因此,如果代理队列中没有代理,该函数将无法创建Web请求,直到将其添加回队列。

这是假设Azure Functions是并行的,并且来自URL队列的每个触发器都在另一个线程上运行一个函数。

那么,我正在考虑的可能吗?如果没有,有没有其他方法可以解决它?

1 个答案:

答案 0 :(得分:0)

给定函数只能有一个触发器,即当一个指定队列中有新消息时,该函数将运行。

有一个输入绑定功能,可以根据触发请求的属性加载其他数据。例如。如果传入队列消息包含URL和某些代理ID,并且代理设置存储为表存储实体(或blob),则可以定义输入绑定以根据消息中的ID自动加载代理设置。请参阅this example

当然,只需在函数体中根据自定义逻辑手动加载代理设置,就可以实现相同的输入绑定。

在同时有两个队列的消息之前,无法设置一个不被触发的函数。