我已经设置了Azure Service Bus使用RBAC,并为自己分配了“ Azure Service Bus数据所有者”的角色。我可以将消息发送给队列:

问题描述 投票:0回答:1
[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

在您的用户签名上生成一个令牌,您可以将其连接到服务总线。 whereas对于Azure函数的工作
azure-functions azureservicebus rbac
1个回答
0
投票

或者需要在Azure门户中部署到Azure函数,并为托管或用户定义的身份赋予RBAC角色,然后将其作为名称空间,然后将其起作用:

部署后:

可启用托管身份:

然后扮演此功能应用程序的身份。
有关更多信息,请参阅

So-thread1

So-thread2

enter image description here

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.