Итак, мне нужно динамически получить идентификатор арендатора внутри конвейера фабрики данных. Может ли кто-нибудь помочь в построении динамического выражения? Итак, например, я запускаю запрос POST, чтобы получить токен аутентификации SharePoint, и для этого у меня есть URL-адрес:
https://accounts.accesscontrol.windows.net/<TenantID>/tokens/OAuth/2
Итак, часть
https://accounts.accesscontrol.windows.net/
будет храниться как глобальный параметр. И моя цель - построить динамическое выражение внутри активности, которое выглядело бы так
@concat(pipeline().globalParameters.MSFTAccessControl_BaseURL,**<getTenantId>**, '/tokens/OAuth/2')
Мне нужна помощь с функцией для создания части **<getTenantId>**
Вы можете использовать приведенный ниже сценарий Powershell, чтобы получить идентификатор арендатора.
Connect-AzureAD
$tenant=Get-AzureADTenantDetail
$tenant.ObjectId
Выполните этот сценарий Powershell из ADF, используя пользовательское действие.
Вы можете просмотреть этот учебник от @Deepak Goyal, чтобы узнать, как выполнить сценарий Powershell с помощью пользовательской активности.
После этого пользовательского действия получите приведенный выше идентификатор арендатора из его выходных данных, используя приведенное ниже динамическое содержимое.
@activity('<MyCustomActivity>').output.customOutput
Сохраните его в переменной и используйте при создании ссылки Sharepoint с помощью concat или интерполяции строк, как показано ниже.
@concat(pipeline().globalParameters.MSFTAccessControl_BaseURL,variables('tenant id'), '/tokens/OAuth/2')
Спасибо. Я действительно надеялся избежать вызова пользовательской активности, но, похоже, это так. Спасибо за подтверждение.