У меня есть рабочий процесс с триггером темы служебной шины:
"triggers": {
"When_messages_are_available_in_a_topic": {
"type": "ServiceProvider",
"inputs": {
"parameters": {
"topicName": "sbt-intg-procman-dev-inbox",
"subscriptionName": "sbs-intg-procman-dev-inbox",
"isSessionsEnabled": false
},
"serviceProviderConfiguration": {
"connectionName": "serviceBus",
"operationId": "receiveTopicMessages",
"serviceProviderId": "/serviceProviders/serviceBus"
}
},
"splitOn": "@triggerOutputs()?['body']"
}
Мой файл Connection.json содержит следующее:
{
"serviceProviderConnections": {
"serviceBus": {
"displayName": "svcbus",
"parameterSetName": "ManagedServiceIdentity",
"parameterValues": {
"authProvider": {
"Type": "ManagedServiceIdentity"
},
"fullyQualifiedNamespace": "@appsetting('serviceBus_fullyQualifiedNamespace')"
},
"serviceProvider": {
"id": "/serviceProviders/serviceBus"
}
}
},
"managedApiConnections": {}
}
У меня есть файл local.settings.json со следующей записью в массиве значений:
"serviceBus_fullyQualifiedNamespace": "sb-mynamespace.servicebus.windows.net"
Я вошел на портал Azure и проверил, есть ли у моего пользователя соответствующие назначения ролей на служебной шине.
Используя расширение Azure в VS Code, я вошел в систему как пользователь и выбрал целевую подписку.
Когда я отлаживаю подписку из VS Code, я получаю следующую ошибку:
Ошибка рабочего процесса: OperationName = 'WorkflowFunctionDefinitionProvider.ProcessWorkflow', message = 'Проверка и создание рабочего процесса 'NvpOneWay' не удалось. Ошибка: «Указанное имя соединения «serviceBus» для типа «ServiceProvider» содержит недопустимый раздел «authProvider». Управляемое удостоверение либо не включено, либо неправильно настроено в приложении логики. Перед использованием включите или исправьте управляемое удостоверение.'',Exception='Microsoft.Azure.Workflows.Common.ErrorResponses.ErrorResponseMessageException: указанное имя соединения "serviceBus" для типа "ServiceProvider" содержит недопустимый раздел "authProvider". Управляемое удостоверение либо не включено, либо неправильно настроено в приложении логики. Перед использованием включите или восстановите управляемую идентификацию.
Приложение логики работает нормально при запуске в Azure, я просто сталкиваюсь с проблемой при попытке отладки из VS Code. Есть идеи?
управляемое удостоверение не работает локально. когда локально вам нужен явный метод аутентификации, например строка подключения или секреты (при поддержке ресурса)
Не уверен, что схема этого serviceProviderConnections
объекта является общедоступной, но без возможности указать такие вещи, как аудитория, управляемая аутентификация на основе удостоверений из локального контекста/контекста приложения не будет работать, поскольку соединения загружаются с помощью The resource principal named <ABC> was not found in the tenant [...].
Использование соединения строка, все работает. Для меня это был единственный способ инструментировать этап рабочего процесса чтения больших двоичных объектов, выполняемый из AppService, с частными конечными точками и всем остальным.
Ошибка рабочего процесса: OperationName = 'WorkflowFunctionDefinitionProvider.ProcessWorkflow', message = 'Проверка и создание рабочего процесса 'NvpOneWay' не удалось. Ошибка: «Указанное имя соединения «serviceBus» для типа «ServiceProvider» содержит недопустимый раздел «authProvider». Управляемое удостоверение либо не включено, либо неправильно настроено в приложении логики. Перед использованием включите или восстановите управляемую идентификацию».
Вы получаете эту ошибку, поскольку управляемое удостоверение не поддерживается локально.
Вы можете обратиться к этой проблеме github, поднятой командой разработчиков, чтобы добавить эту функцию для локальной разработки.
Вам необходимо использовать строку подключения в соединителе служебной шины при локальной работе с кодом. Кроме того, в настоящее время управляемое удостоверение поддерживается только на портале Azure.
При создании соединения в vs-коде, если вы выберете управляемое удостоверение в дизайнере, вы получите сообщение об ошибке ниже, добавив в него необходимую информацию.
Вместо этого я выбрал строку подключения.
Сделав это, вы сможете запустить этот рабочий процесс.
См. github.com/Azure/logicapps/discussions/715, похоже, что управляемое удостоверение не поддерживается локально. Вам необходимо использовать строку подключения при локальном использовании соединителя служебной шины в коде.