为了账号安全,请及时绑定邮箱和手机立即绑定

Azure 函数未从存储队列获取消息

Azure 函数未从存储队列获取消息

C#
弑天下 2022-06-12 10:21:22
我已经创建了带有队列触发器的测试 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,因为它仅用于本地开发。


查看完整回答
反对 回复 2022-06-12
  • 1 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号