gpt4 book ai didi

azure - 函数进入休眠状态后,Cosmos db 更改提要触发器不会触发

转载 作者:行者123 更新时间:2023-12-02 06:59:06 25 4
gpt4 key购买 nike

我有一个在本地运行良好的函数,但除非该函数处于“唤醒”状态,否则不会在 Azure 中触发。该函数只是将项目从一个容器复制到另一个容器,并交换主键和 id 列(作为最终一致的二级索引)。这个应用程序中有两个函数,这两个函数都是 Cosmos 触发器(不同的源容器和租约前缀);我的所有其他功能都在其他应用程序中。

该功能位于 Linux 使用计划中,通过 GitHub Action Azure/functions-action@v1 部署,它使用 zipdeploy,其中 should be syncing triggers 。没有其他函数监听该容器(本地实例监听模拟器),并且该函数无论如何都有一个唯一的租约前缀。

如果我在门户中查看函数应用(即使只是“概述”页面),该函数会“唤醒”并正常处理所有 Cosmos DB 项目。如果我随后关闭“概述”页面,等待大约 30 分钟,然后更改监视容器中的项目,则该函数不会触发。 Azure Monitor 日志中没有任何内容,并且目标容器中的相应项目也不会更改。我可以等待几 (10) 分钟并刷新,但日志或目标容器中仍然没有任何内容。然后,当我重新打开“概述”页面时,该函数立即触发,并且目标容器中的项目几乎立即更新; Azure Monitor 日志会在 2-3 分钟后显示(正常的延迟量)。此行为 100% 可重复。

我已经检查了所有 troubleshooting suggestions多次,但我看不出有什么帮助。

如何在无需我在门户中观察的情况下触发此功能?

最佳答案

事实证明我的连接字符串错误。我在 ConnectionStrings 中拥有 CosmosDb 触发器连接字符串,而它本应位于 AppSettings 中。

该函数实际上可以在本地运行(如果它已经在云中运行),因为绑定(bind)在两个地方查找:AppSettings,它应该在的地方,然后回到 ConnectionStrings。但是,当函数“休眠”时,Azure 缩放 Controller 仅监视 AppSettings,因此它永远不会醒来。

关于azure - 函数进入休眠状态后,Cosmos db 更改提要触发器不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66342020/

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