Ошибка HTTP 401 при попытке отправить сообщение из фабрики данных Azure в служебную шину

Я попытался воспроизвести эксперимент Хью Вудса (https://medium.com/asos-techblog/sending-messages-from-azure-data-factory-to-service-bus-86d4be6dd357) в своей лазурной среде, чтобы отправить сообщения из Azure DataFactory в служебную шину Azure.

Я выполнил инструкции, назначив роль «Отправитель данных служебной шины Azure» управляемому удостоверению моей фабрики данных.

Но когда я попытался отправить сообщение в служебную шину, я получил эту ошибку:

Error code   : 2108
Failure type : User configuration issue
Details      : Invoking Web Activity failed with HttpStatusCode - 
               '401 : Unauthorized', message - ''
Source       : Pipeline Service Bus REST API

Что я делаю не так в этом случае? У меня есть эта конфигурация в моем конвейере:

   {
    "name": "Service Bus REST API",
    "properties": {
        "activities": [
            {
                "name": "Service Bus REST API",
                "description": "Teste",
                "type": "WebActivity",
                "dependsOn": [],
                "policy": {
                    "timeout": "7.00:00:00",
                    "retry": 0,
                    "retryIntervalInSeconds": 30,
                    "secureOutput": false,
                    "secureInput": false
                },
                "userProperties": [],
                "typeProperties": {
                    "url": "https://sb-namespace-dv.servicebus.windows.net/sbt-azure-adf-ntt-data-test/messages",
                    "method": "POST",
                    "headers": {
                        "CustomHeader-Version": "\"1.0\"",
                        "Content-Type": "application/json",
                        "BrokerProperties": {
                            "value": "@concat('{\"CorrelationId\": \"',pipeline().RunId,'\"}')",
                            "type": "Expression"
                        }
                    },
                    "body": {
                        "value": "{\"message\":{\"value\":\"@variables('OutputDetails')\",\"type\":\"Expression\"}}",
                        "type": "Expression"
                    },
                    "httpRequestTimeout": "00:10:00",
                    "authentication": {
                        "type": "MSI",
                        "resource": "https://servicebus.azure.net"
                    }
                }
            }
        ],
        "folder": {
            "name": "999_Others/9910_DevTest/TesteServiceBusADF"
        },
        "annotations": []
    }
}

Я выполнил все шаги статьи Хью Вудса. Я ожидал получить такие же результаты своего эксперимента (ниже), но не добился успеха.

{
message : "Snapshot Avaliable"
}
Как установить 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
0
92
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы получаете сообщение HTTP 401 Unauthorized. Таким образом, вызов записи данных в служебную шину отклоняется.

Есть 2 возможности:

  • Аутентификация настроена неправильно
  • Вы протестировали его до распространения назначений ролей (может занять 5 минут).

См.: https://learn.microsoft.com/en-us/azure/service-bus-messaging/service-bus-managed-service-identity

Привет Шираз Бхаиджи. Спасибо за Ваш ответ. Я думаю, что второй вариант не применяется в моем случае, потому что я повторял тесты более 2 дней. Но я внимательно рассмотрю предоставленную вами ссылку и подумаю, может быть, моя проблема вызвана первой возможностью. С уважением !

Sergio Coutinho 18.12.2022 02:59

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