我已經創建了帶有隊列觸發器的測試 Azure 函數。當我在本地模擬器中運行此功能時,它可以工作。但是當我在 Azure 上部署它時,它看起來不起作用(消息沒有從隊列中刪除)。功能[FunctionName("Function1")] public static void Run([QueueTrigger("azurefunc", Connection = "StorageConnectionString")]string myQueueItem, TraceWriter log) { log.Info($"C# Queue trigger function processed: {myQueueItem}"); // PERFORMANCE TEST for (int i = 0; i < 10000; i++) { for (int j = 0; j < 9000; j++) { // Do nothing. // Or do something string myAwesomeTempString = "How are you"; myAwesomeTempString += "?"; } } try { var queueMessage = new CloudQueueMessage (myQueueItem); QueueApi.DeleteMessage (QueueApi.AzureFunctionStorageQueue, queueMessage); } catch { } }local.settings.json{"IsEncrypted": false, "Values": { "AzureWebJobsStorage": "AZURE_STORAGE_CONNECTION_STRING", "AzureWebJobsDashboard": "AZURE_STORAGE_CONNECTION_STRING", "StorageConnectionString": "AZURE_STORAGE_CONNECTION_STRING", "serviceBusAccount": "SERVICE_BUS_CONNECTION_STRING" }}QueueApi 的一部分/// <summary> /// Creates instance of Queue Storage /// </summary> /// <param name="queueName">Name of queue storage</param> /// <returns>The instance of queue storage</returns> private static CloudQueue CreateStorageQueue (string queueName) { CloudStorageAccount storageAccount = CloudStorageAccount.Parse ("AZURE_STORAGE_CONNECTION_STRING"); CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient (); CloudQueue queue = queueClient.GetQueueReference (queueName); queue.CreateIfNotExists (); return queue; }我創建Azure Service Bus帳戶只是為了測試另一種方法,但我真的更愿意使用Azure Storage Queue。誰能幫幫我嗎?
1 回答

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
隊列觸發器將在函數執行結束時自動刪除傳入的消息,因此您不需要自己刪除它。您的代碼實際上創建了一條新消息,其消息內容與進入功能的消息內容相同,并嘗試刪除隊列中不存在的新消息。
代碼在 Azure 上不起作用的原因是您可能忘記添加StorageConnectionString
應用程序設置。local.settings.json
未發布到 Azure,因為它僅用于本地開發。
- 1 回答
- 0 關注
- 121 瀏覽
添加回答
舉報
0/150
提交
取消