如果有其他可以尝试的方法,请多谢您的建议。
我想通过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'.
答案 0 :(得分:0)
在资源组级别的贡献者角色就足够了,我通过powershell启动了一个管道运行,它工作正常。该命令实质上会调用REST API:Pipelines - Create Run,因此您也可以直接调用REST API。
Invoke-AzDataFactoryV2Pipeline -ResourceGroupName joywebapp -DataFactoryName joyfactoryv2 -PipelineName pipeline1
Get-AzDataFactoryV2PipelineRun -ResourceGroupName joywebapp -DataFactoryName joyfactoryv2 -PipelineRunId "xxxxxxx"
在屏幕截图中,您会发现我是否将该Web应用程序放在另一个资源组中,但会出现此错误,因此我们可以确保该角色正常工作。 Invoke-AzDataFactoryV2Pipeline
将返回RunId
,只需将其传递到Get-AzDataFactoryV2PipelineRun
,即可获得PipelineRun的详细信息。
捕获请求,我们可以找到我上面提到的内容,它称为REST API。与您的问题link中的内容相同。