消息未从 Azure 函数添加到 Azurite 队列
Message not added to Azurite Queue from Azure Function
按照下面的文档,我尝试创建一个将消息添加到队列的 azure 函数。
代码被触发并执行时没有错误,但我在 Azure 存储资源管理器队列中看不到任何消息。
我将 Azurite 存储帐户添加到我的本地存储资源管理器。但是没有创建队列,也没有添加消息。
AzureWebJobsStorage 设置为“UseDevelopmentStorage=true”。
如何在存储资源管理器中进行本地测试?步骤是什么?我需要什么?
我尝试通过以下步骤重现该问题:
- 在 Visual Studio.
中创建了 Azure Functions(堆栈:.Net Core 3.1 - Http 触发器)
- 通过项目的 Nuget 包解决方案安装了这个包
Microsoft.Azure.WebJobs.Extensions.Storage
。
- 将输出队列绑定添加到任务静态方法,如:
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"
}
}
运行 本地函数并将控制台中的函数 URL 连同如下参数一起复制到浏览器:
http://localhost:7071/api/Function1?name=HariKrishna
然后它应该在浏览器中显示为 Hello, HariKrishna. This HTTP triggered function executed successfully.
转到 Storage Explorer > 展开 Queues 并刷新它( 右键单击队列并单击刷新)以查看函数运行时创建的队列,而函数是 运行 并刷新输出队列 也可以在下面的屏幕截图中查看控制台输出、浏览器输出和队列消息中的消息:
按照下面的文档,我尝试创建一个将消息添加到队列的 azure 函数。
代码被触发并执行时没有错误,但我在 Azure 存储资源管理器队列中看不到任何消息。
我将 Azurite 存储帐户添加到我的本地存储资源管理器。但是没有创建队列,也没有添加消息。
AzureWebJobsStorage 设置为“UseDevelopmentStorage=true”。
如何在存储资源管理器中进行本地测试?步骤是什么?我需要什么?
我尝试通过以下步骤重现该问题:
- 在 Visual Studio. 中创建了 Azure Functions(堆栈:.Net Core 3.1 - Http 触发器)
- 通过项目的 Nuget 包解决方案安装了这个包
Microsoft.Azure.WebJobs.Extensions.Storage
。 - 将输出队列绑定添加到任务静态方法,如:
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"
}
}
运行 本地函数并将控制台中的函数 URL 连同如下参数一起复制到浏览器:
http://localhost:7071/api/Function1?name=HariKrishna
然后它应该在浏览器中显示为Hello, HariKrishna. This HTTP triggered function executed successfully.
转到 Storage Explorer > 展开 Queues 并刷新它( 右键单击队列并单击刷新)以查看函数运行时创建的队列,而函数是 运行 并刷新输出队列 也可以在下面的屏幕截图中查看控制台输出、浏览器输出和队列消息中的消息: