У меня есть поток ADF, в котором я сначала получаю токен Oauth 2.0, который затем следует использовать в запросе Odata. Это отлично работает, если я сначала извлеку токен, а затем жестко запрограммирую его в заголовках аутентификации (Bearer xxxxxxxx).
Однако я хочу использовать переменную, которую я установил ранее в потоке, в этом значении. Например, «Предъявитель [переменная]». Я пробовал следующее: "Bearer @variables('Token')", но это не работает. Я дважды проверил, и переменная «Токен» получает правильное значение токена, поэтому это не должно быть проблемой.
введите здесь описание изображения
Итак, мой вопрос: можно ли использовать переменные в разделе заголовка Auth?
Я попытался использовать «Bearer @variables («Token»)» в поле «Значение» для заголовков аутентификации. Это не работает, к сожалению.
@ScottMildenberger Когда я использую это как значение заголовка аутентификации, я получаю эту ошибку: ErrorCode=ODataFailedClientCreation,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Failed to create odata connection to RequestUrl.,Source =Microsoft.DataTransfer.Runtime.ODataConnector, ''Type=System.FormatException,Message=формат значения '@concat('Bearer', variable('Token'))' недействителен.,Источник =Система.Net.Http
Кажется, что ADF не нравится динамический контент в значении заголовка Auth.
Вы пытаетесь сделать это в самой связанной службе? Я предполагаю, потому что это единственное изображение, которое вы показываете. Это должен быть параметр связанной службы, который задается при ее использовании.
Я воспроизвел то же самое в своей среде и получил этот результат
Token
@activity('Web1').output.data.Token
* Затем я создал действие копирования с помощью Additional headers
.
По предложению @Scott Mildenberger*
Authorization: @concat('Bearer ', variables('token'))
Конвейер успешно выполнен и получил результат:
возможно, вам придется использовать @concat('Bearer ', variable('Token')) , убедитесь, что у вас есть пробел после Bearer.