Подключение к служебной шине из стандартного рабочего процесса приложения логики в сравнении с кодом

У меня есть рабочий процесс с триггером темы служебной шины:

"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. Есть идеи?

См. github.com/Azure/logicapps/discussions/715, похоже, что управляемое удостоверение не поддерживается локально. Вам необходимо использовать строку подключения при локальном использовании соединителя служебной шины в коде.

Ikhtesam Afrin 06.08.2024 16:30

управляемое удостоверение не работает локально. когда локально вам нужен явный метод аутентификации, например строка подключения или секреты (при поддержке ресурса)

wenbo 07.08.2024 05:03

Не уверен, что схема этого serviceProviderConnections объекта является общедоступной, но без возможности указать такие вещи, как аудитория, управляемая аутентификация на основе удостоверений из локального контекста/контекста приложения не будет работать, поскольку соединения загружаются с помощью The resource principal named <ABC> was not found in the tenant [...]. Использование соединения строка, все работает. Для меня это был единственный способ инструментировать этап рабочего процесса чтения больших двоичных объектов, выполняемый из AppService, с частными конечными точками и всем остальным.

reim 10.08.2024 07:07
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
3
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ошибка рабочего процесса: OperationName = 'WorkflowFunctionDefinitionProvider.ProcessWorkflow', message = 'Проверка и создание рабочего процесса 'NvpOneWay' не удалось. Ошибка: «Указанное имя соединения «serviceBus» для типа «ServiceProvider» содержит недопустимый раздел «authProvider». Управляемое удостоверение либо не включено, либо неправильно настроено в приложении логики. Перед использованием включите или восстановите управляемую идентификацию».

Вы получаете эту ошибку, поскольку управляемое удостоверение не поддерживается локально.

Вы можете обратиться к этой проблеме github, поднятой командой разработчиков, чтобы добавить эту функцию для локальной разработки.

Вам необходимо использовать строку подключения в соединителе служебной шины при локальной работе с кодом. Кроме того, в настоящее время управляемое удостоверение поддерживается только на портале Azure.

При создании соединения в vs-коде, если вы выберете управляемое удостоверение в дизайнере, вы получите сообщение об ошибке ниже, добавив в него необходимую информацию.

Вместо этого я выбрал строку подключения.

Сделав это, вы сможете запустить этот рабочий процесс.

Другие вопросы по теме

Похожие вопросы