簡體   English   中英

Cosmos db 更改提要觸發器在 function 進入睡眠狀態后未觸發

[英]Cosmos db change feed trigger not firing after function goes to sleep

我有一個 function,它在本地工作正常,但不會在 Azure 中觸發,除非 function 處於“喚醒”狀態。 function 只是將項目從一個容器復制到另一個容器,交換主鍵和 id 列(作為最終一致的二級索引)。 這個app中有兩個函數,都是Cosmos觸發器(不同的源容器和租用前綴); 我所有的其他功能都在其他應用程序中。

function 在 Linux 消費計划中,通過GitHub Action Azure/functions-action@v1部署,使用 zipdeploy, 應該是 syncing triggers 沒有其他函數在該容器上偵聽(本地實例偵聽模擬器),而且這個 function 無論如何都有一個唯一的租用前綴。

如果我在門戶中查看 function 應用程序(即使只是“概述”頁面),function“醒來”並處理所有 Cosmos DB 項目就好了。 如果我隨后關閉概覽頁面,等待約 30 分鍾,並更改監視容器中的項目,則 function 不會觸發。 Azure 監視器日志中沒有任何內容,目標容器中的相應項目也沒有更改。 我可以等待幾 (10) 分鍾並刷新,但日志或目標容器中仍然沒有任何內容。 然后,當我重新打開概覽頁面時,function 立即觸發,目標容器中的項目幾乎立即更新; Azure 監視器日志在 2-3 分鍾后顯示(正常延遲量)。 此行為是 100% 可重復的。

我已多次檢查所有故障排除建議,但沒有發現任何有用的信息。

如何讓這個 function 在我不在門戶中觀察它的情況下觸發?

原來我的連接字符串錯了。 當它應該在AppSettings中時,我在ConnectionStrings中有 CosmosDb 觸發器連接字符串。

function 實際上可以在本地工作(如果它已經在雲中運行),因為綁定在兩個地方查找: AppSettings它應該在的地方,然后回退到ConnectionStrings 然而,當 function“睡着”時,Azure 秤 controller 只在看AppSettings ,所以這就是它永遠不會醒來的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM