TLDR:
是否可以为Azure功能提供多个输入?
更长的说明:
我是Azure Functions的新手,但仍然没有很好地理解它。
我有一个通过代理Web请求下载HTML数据的应用程序,我正在考虑将其移至Azure Functions。
但是,该函数需要两个输入:字符串URL和代理对象(包含IP地址,用户名和密码属性)。
我想有两个队列,一个用于URL,一个用于代理。
客户端应用程序会将URL添加到队列中,这将触发该功能。
代理队列将拥有一个有限的代理对象池,在将这些代理对象用于Web请求后,它们将被消耗函数添加回队列中。
因此,如果代理队列中没有代理,该函数将无法创建Web请求,直到将其添加回队列。
这是假设Azure Functions是并行的,并且来自URL队列的每个触发器都在另一个线程上运行一个函数。
那么,我正在考虑的可能吗?如果没有,有没有其他方法可以解决它?
答案 0 :(得分:0)
给定函数只能有一个触发器,即当一个指定队列中有新消息时,该函数将运行。
有一个输入绑定功能,可以根据触发请求的属性加载其他数据。例如。如果传入队列消息包含URL和某些代理ID,并且代理设置存储为表存储实体(或blob),则可以定义输入绑定以根据消息中的ID自动加载代理设置。请参阅this example。
当然,只需在函数体中根据自定义逻辑手动加载代理设置,就可以实现相同的输入绑定。
在同时有两个队列的消息之前,无法设置一个不被触发的函数。