我创建了一个如下所示的Azure函数(实际上,Microsoft模板完成了大部分工作!):
[FunctionName("Function1")]
public static void Run([ServiceBusTrigger("%queue-name%", AccessRights.Listen)]string myQueueItem, TraceWriter log)
{
log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
}
我的local.settings.json看起来像这样:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "..",
"AzureWebJobsDashboard": "..",
"AzureWebJobsServiceBus": "..",
"queue-name": "testqueue"
}
}
然后,我部署了此功能。这是一个奇怪的SO问题,因为我的问题是这可以立即起作用,但是我没想到它能起作用。function.json在这里:
{
"generatedBy": "Microsoft.NET.Sdk.Functions-1.0.0.0",
"configurationSource": "attributes",
"bindings": [
{
"type": "serviceBusTrigger",
"queueName": "%queue-name%",
"accessRights": "listen",
"name": "myQueueItem"
}
],
"disabled": false,
"scriptFile": "..\\bin\\FunctionApp8.dll",
"entryPoint": "FunctionApp8.Function1.Run"
}
显然,local.settings.json中的值已复制到函数设置中,但我在门户中看不到它们。我的问题是:这些设置现在存储在哪里(队列名称和AzureWebJobsServiceBus)?
编辑:
该功能的“我的应用程序设置”:
它们将位于Azure门户中已发布功能应用程序的“应用程序设置”选项卡下(请参见图片)。
有一点文档在这里!请注意,大多数应用程序设置不会自动发布,并且需要在发布步骤或发布后进行一些配置。
更新:如果两个函数正在侦听同一队列中的事件,则只会触发一个函数。这可能会导致看似错误的行为,因为某个函数在预期时会触发/不触发。
在这种情况下,意外行为来自竞争功能,而不是意外连接字符串。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句