我们正在创建一个多租户应用程序。为了让用户创建业务逻辑,我们希望使用Logic应用程序。自定义逻辑应用程序连接器
因此,我想创建一个Web应用程序,它将公开DocumentDB变更源。 创建逻辑应用程序时,您可以选择不同的外接盒连接器。我们如何才能将我们的列入清单?有没有关于这方面的任何文件?
想法是让逻辑应用程序与每个文档插入一起运行。 为了实现这一点,我有两个选择:轮询触发器和Webhook触发器。 我更喜欢轮询触发器,因为这比执行逻辑来处理每个租户的所有订阅的URL的工作量要少。任何对此方法有疑虑/建议的人?
位置标题应该成为DocumentDB更改提要的继续标记,是正确的吗?
逻辑应用程序将调用我的API第一次没有位置标头
我的API将调用DocDb没有延续令牌,这将返回所有文档一个接一个,因为最大文档计数设为1
我的api将返回检索到的第一个文档,并将retry-after设置为0,并将位置设置为我收到的新续标记。如果找不到文档,api将返回步骤5中的结果。
逻辑应用程序将启动一个新实例来处理文档,并将使用标题中的continuation标记再次调用API。
将重复步骤3到4,直到处理完所有文档。因为我每个逻辑应用程序实例只处理一个文档,所以Azure应该能够自动为我缩放?
当所有文档进行处理,该API将返回202的StatusCode与位置报头中设置到最新的延续令牌和-后重试到15
15秒后,逻辑应用程序将使用最新的延续令牌调用我们的api。这将再次触发该过程。
我的解决方案是否可行?如果我需要停止或克隆逻辑应用程序配置出于某种原因,如何知道最新的延续是什么或者我需要在一些数据存储中保存我的延续标记?
感谢您的回复。我已经设置了一个逻辑应用程序,并在我的api中实现了更改。但是,有些事情似乎出了问题。我已将最大项数设置为1.我认为每个文档都将通过逻辑应用程序。但是,只处理36个项目,并且doc db告诉我所有内容都已处理完毕(它应该处理超过10,000个项目)。你能解释一下这些属性是什么:StartFrombeginning和SessionToken? – Identity
这是使用您自己的连接器还是Azure DocumentDB之一?由于这是我自己猜测的一个触发器 - 请确保您正在跨多个分区(并行或一个接一个)监听更改Feed SDK。我不是DocDB SDK方面的专家,但如果这是呃逆,我可以联系到该团队。 – jeffhollan
我已将错误发送给DocDB团队。在几次请求之后,我突然得到78个结果,而不是1个头部定义的结果。 http://pasteboard.co/cS7YAErUT.png – Identity