[Function(nameof(MyTrigger))]
public async Task Run(
[ServiceBusTrigger("myqueue", Connection = "MyServiceBusNamespace")]
ServiceBusReceivedMessage message,
ServiceBusMessageActions messageActions)
{
_logger.LogInformation("Message Body: {body}", message.Body);
await messageActions.CompleteMessageAsync(message);
await Task.CompletedTask;
}
像这样的设置:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"AzureWebJobsSecretStorageType": "Files",
"FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated",
"MyServiceBusNamespace": "mynamespace.servicebus.windows.net"
}
}
现在我在本地运行Funciton时会出现错误:
[2025-02-17T17:22:14.636Z] The listener for function 'Functions.MyTrigger' was unable to start.
[2025-02-17T17:22:14.636Z] The listener for function 'Functions.MyTrigger' was unable to start. Azure.Messaging.ServiceBus: The connection string could not be parsed; either it was malformed or contains no well-known tokens.
如何将服务总线触发器与Azure函数(不是具有SAS键,而是RBAC的功能)?
ServiceBusClient
new AzureCliCredential()
,它之所以起作用,是因为它正在使用local.settings.json
或者需要在Azure门户中部署到Azure函数,并为托管或用户定义的身份赋予RBAC角色,然后将其作为名称空间,然后将其起作用:
部署后:可启用托管身份:
然后扮演此功能应用程序的身份。有关更多信息,请参阅
So-thread1
,So-thread2