![](/img/trans.png)
[英]Not able to run Cosmos DB Change Feed Trigger Azure Function locally
[英]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.