2017-02-09 4 views
4

Я пытался программным образом вызывать конвейер фабрики данных из azure. Это бросает следующую ошибку.Клиент с идентификатором объекта не имеет разрешения на выполнение действия «Microsoft.DataFactory/datafactories/datapipelines/read» по области

ссылка: http://eatcodelive.com/2016/02/24/starting-an-azure-data-factory-pipeline-from-c-net/

AuthorizationFailed: Клиент 'XXXX-XXXXX-XXXX' с объекта с идентификатором 'XXX829e05'XXXX-ХХХХХ' не имеет разрешения на выполнение действия «Microsoft.DataFactory/datafactories/datapipelines/read 'over scope ' /subscriptions/XXXXXX-4bf5-84c6-3a352XXXXXX/resourcegroups/fffsrg/providers/Microsoft.DataFactory/datafactories/ADFTestFFFS/datapipelines/ADFTutorialPipelineCustom '.

пытались найти аналогичные вопросы, но ни один из результатов поиска не дал мне решение моей проблемы, могли бы вы вести нас, что может быть проблема?

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

Любая помощь в этом отношении очень ценится.

Благодаря

ответ

0

Вы получаете сообщение об ошибке, что вы не уполномочены совершать действия «Microsoft.DataFactory/datafactories/datapipelines/чтение» над рамкой трубопровода, потому что у вас нет соответствующих разрешений на DataFactory.

Вы должны либо иметь разрешения «Contributor»/«DataFactoryContributor», чтобы создать & управление ресурсами фабрики данных или дочерними ресурсами. Более подробная информация о лазурных ролей RBAC в следующей ссылке:

https://docs.microsoft.com/en-us/azure/active-directory/role-based-access-built-in-roles

Поскольку клиент пытается использовать клиент ADF внутри Azure функции, рекомендация использовать приложение AAD и сервис принципала для аутентификации АПД клиент. Вы можете найти инструкции по созданию приложения AAD и услуг принципала здесь:

https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authenticate-service-principal

Пожалуйста, следуйте инструкциям о том, как создать приложение Active Directory, службы основного долга, а затем назначить ее на роль данных Factory Загрузил в следующую ссылку и образец кода для использования принципала обслуживания с клиентом ADF.

0

Решение:

  1. Шаг 1: Зарегистрировать приложение в активной директории Azure.
  2. Шаг 2: Назначьте роль Data Factory Contributor в том же приложении. мы можем добиться этого, используя силовую оболочку.

Этот код работает для меня. Пожалуйста, попробуйте в силовой оболочке после входа в систему с учетными данными Azure.
Реализация:

  1. Шаг 1: $azureAdApplication = New-AzureRmADApplication -DisplayName <AppName> -HomePage <URL> -IdentifierUris <URL with domain> -Password <Password>
  2. Шаг 2: New-AzureRmRoleAssignment -RoleDefinitionName "Data Factory Contributor" -ServicePrincipalName $azureAdApplication.ApplicationId