运行ADF管道而不在订阅级别分配“贡献者”角色

问题描述 投票:0回答:1

如果有其他方法可以尝试,请感谢您的建议..

我想通过RestFul API / .Net SDK运行ADF管道,我已经为此完成了Microsoft教程。

Microsoft Run ADF Pipeline link via Restful / SDK

了解必须将贡献者角色分配给应用程序(订阅级别)。但是,由于安全策略,我的客户端环境不允许在订阅级别分配贡献者。仅在资源组级别允许使用者角色授权。

因此,如果有任何其他方法我可以运行ADF管道而无需在订阅级别分配贡献者角色,我可以获得您的建议吗?

以下是我从c#程序获得的错误消息:

System.AggregateException
HResult=0x80131500
Message=One or more errors occurred.
Source=mscorlib
StackTrace:
at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean 
includeTaskCanceledExceptions)
at System.Threading.Tasks.Task`1.GetResultCore(Boolean 
waitCompletionNotification)
at System.Threading.Tasks.Task`1.get_Result()
at ADFv2QuickStart.Program.Main(String[] args) in 
C:\Users\ADFv2QuickStart\Program.cs:line 59
Inner Exception 1:
CloudException: The client 'xxxxxx' with 
object id 'xxxxxx' does not have authorization 
to perform action 
'Microsoft.DataFactory/factories/pipelines/createRun/action' over scope 
'/subscriptions/xxxxxxxx/resourceGroups/rg-xxx/providers/Microsoft.DataFactory/factories/adf-xxxx/pipelines/pipeline12'.
azure azure-data-factory azure-rbac
1个回答
0
投票

资源组级别的Contributor角色已经足够了,我通过PowerShell启动了一个管道运行,它运行正常。该命令实质上调用REST API:Pipelines - Create Run,因此您还可以直接调用REST API。

Invoke-AzDataFactoryV2Pipeline -ResourceGroupName joywebapp -DataFactoryName joyfactoryv2 -PipelineName pipeline1
Get-AzDataFactoryV2PipelineRun -ResourceGroupName joywebapp -DataFactoryName joyfactoryv2 -PipelineRunId "xxxxxxx"

enter image description here

在屏幕截图中,您将发现如果我在另一个资源组中获取Web应用程序,它将给出错误,因此我们可以确保该角色正常工作。 Invoke-AzDataFactoryV2Pipeline将返回RunId,只需将它传递到Get-AzDataFactoryV2PipelineRun,就可以获得PipelineRun的详细信息。

抓住请求,我们可以找到我上面提到的,它调用REST API。你的问题与link中的那个相同。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.