【发布时间】:2018-02-24 02:07:59
【问题描述】:
我有以下函数,我在本地定义,可以正常调试。
[FunctionName("QueueTrigger")]
public static void DUMMYFUNCTION(
[QueueTrigger("myqueue", Connection = "AzureWebJobsStorage")]string myQueueItem, TraceWriter log)
{
log.Info($"C# function processed: {myQueueItem}");
}
在本地,“AzureWebJobsStorage”在 local.settings.json 文件中定义以使用具有“myqueue”的存储帐户。在 Azure 上的功能设置中,“AzureWebJobsStorage”也设置为正确的连接字符串(与本地设置的相同)。这意味着,我没有与Azure Function does not execute in Azure (No Error)中相同的问题
现在,我使用 Visual Studio Team Service 将我的源代码托管在 git 存储库中。我已将部署配置为使用源代码并部署其中包含的功能。 我认为该问题与 VSTS 无关,因为部署已成功执行,并且该功能显示在我的功能列表中:
部署后生成文件function.json,内容如下:
{
"generatedBy": "Microsoft.NET.Sdk.Functions.Generator-1.0.8",
"configurationSource": "attributes",
"bindings": [
{
"type": "queueTrigger",
"connection": "AzureWebJobsStorage",
"queueName": "myqueue",
"name": "myQueueItem"
}],
"disabled": false,
"scriptFile": "../bin/myAssembly.dll",
"entryPoint": "myAssembly.MyClass.DUMMYFUNCTION"
}
问题是,当我在本地调试时将项目添加到队列中时,该函数已执行,但当该函数在 azure 上运行时却没有。
我需要对代码进行哪些更改才能使其在 azure 上也能正常工作?我认为它可以开箱即用。
【问题讨论】:
-
应用设置中有 AzureWebJobsStorage 吗?您在本地和 Azure 中收听相同的队列吗?
-
是的@mikhail,如问题中所述。
-
检查 Azure 门户中的队列。它是否将消息显示为待处理、已传递或已发送到死信队列?
-
@McGuireV10 它们在两种情况下的显示完全相同,为待处理。如果我在本地运行它,它会被处理,但在 azure 上运行它什么也不做。
标签: c# .net azure azure-functions azure-functions-runtime