我已经创建了带有队列触发器的测试 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 关注
- 111 浏览
添加回答
举报
0/150
提交
取消