消息未从 Azure 函数添加到 Azurite 队列

Message not added to Azurite Queue from Azure Function

按照下面的文档,我尝试创建一个将消息添加到队列的 azure 函数。

https://docs.microsoft.com/en-us/azure/azure-functions/functions-add-output-binding-storage-queue-vs?tabs=in-process#add-an-output-binding

代码被触发并执行时没有错误,但我在 Azure 存储资源管理器队列中看不到任何消息。

我将 Azurite 存储帐户添加到我的本地存储资源管理器。但是没有创建队列,也没有添加消息。

AzureWebJobsStorage 设置为“UseDevelopmentStorage=true”。

如何在存储资源管理器中进行本地测试?步骤是什么?我需要什么?

我尝试通过以下步骤重现该问题:

  1. 在 Visual Studio.
  2. 中创建了 Azure Functions(堆栈:.Net Core 3.1 - Http 触发器)
  3. 通过项目的 Nuget 包解决方案安装了这个包 Microsoft.Azure.WebJobs.Extensions.Storage
  4. 将输出队列绑定添加到任务静态方法,如:

public static async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = null)] HttpRequest req, [Queue("outqueue"), StorageAccount("AzureWebJobsStorage")] ICollector<string> msg, ILogger log)

添加了将函数 URL 中传递的参数写入输出队列的代码(在解析响应消息代码之前):

if (!string.IsNullOrEmpty(name))
    {
    // Add a message to the output collection.
    msg.Add(string.Format("Name passed to the function: {0}", name));
    }

现在完整的代码看起来是:

local.settings.json

{
    "IsEncrypted": false,
    "Values": {
        "AzureWebJobsStorage": "UseDevelopmentStorage=true",
        "FUNCTIONS_WORKER_RUNTIME": "dotnet"
    }
}
  1. 运行 本地函数并将控制台中的函数 URL 连同如下参数一起复制到浏览器: http://localhost:7071/api/Function1?name=HariKrishna 然后它应该在浏览器中显示为 Hello, HariKrishna. This HTTP triggered function executed successfully.

  2. 转到 Storage Explorer > 展开 Queues 并刷新它( 右键单击​​队列并单击刷新)以查看函数运行时创建的队列,而函数是 运行 并刷新输出队列 也可以在下面的屏幕截图中查看控制台输出、浏览器输出和队列消息中的消息: