2017-12-22 10 views
1

새 Datafactory 관리 API에 문제가 있습니다. IRM을 만들 때 BadRequest를 얻습니다. 잘못된 것에 대한 설명이 없습니다.BadRequest를 사용하여 DatafactoryV2에 대한 IntegrationRuntimeResource를 만들지 못했습니다.

아래의 간단한 코드 샘플. 무엇이 잘못 되었을지에 대한 제안? 내가 오류에 대한 자세한 정보를 얻을 수있는 파워 쉘에서 만들어보십시오되어 이러한 경우에 무슨 오류가 발생할 때 어떤 설명을 얻을 해달라고 .NET 라이브러리를 사용하여 내 경험에서

private async Task<IntegrationRuntimeResource> GetOrCreateIntegrationRuntime(string irmName) 
    { 
     Log.Information("Creating IntegrationRuntime Resource with name {IrmName}", irmName); 

     var irmResource = new IntegrationRuntimeResource(new IntegrationRuntime(), type: IntegrationRuntimeType.SelfHosted, name: irmName); 
     return await AzureServiceFactory.GetDatafactoryManagementClient().IntegrationRuntimes 
      .CreateOrUpdateAsync(Config.ResourceGroupName, EnvironmentSettings.Datafactory.Name, 
       irmName, irmResource); 
    } 

답변

0

, 당신은 -Verbose을 추가 할 수 있습니다 명령의 끝에서 셸에서 한 단계 씩 나아 간다. 파워 쉘에서 IR을 만들 수

기본 스크립트입니다 :

$SubscriptionName = "" 
$ResourceGroupName = "" 
$DataFactoryName = "" 
$DataFactoryLocation = "eastus2" 
$SelfHostedIntegrationRuntimeName = "" 

Login-AzureRmAccount 

Select-AzureRmSubscription -SubscriptionName $SubscriptionName 

Set-AzureRmDataFactoryV2IntegrationRuntime -DataFactoryName $DataFactoryName -Name $SelfHostedIntegrationRuntimeName -ResourceGroupName $ResourceGroupName -Type SelfHosted -Location $DataFactoryLocation 

은 당신이 다음 통합 런타임을 작성하려고합니다 마지막으로 가입을 선택합니다, 로그인을 할 것, 값으로 입력하고 그것을 실행합니다. 그래도 오류가 발생하면 마지막 명령 끝에 -Verbose를 추가하십시오.

건배!

편집 : 위치가 필수 항목임을 잊지 마세요. 라이브러리가 이것을 지정하지 않았기 때문에 코드가 아마도 실패로 끝날 것입니다. 이것이 SelfHosted IRs에 적용되는지 완전히 확신 할 수는 없지만 Managed type IRs에 반드시 필요한 것입니다.

0

그래서 나는 피들러를 꺼내서 마틴의 예를 사용하여 빠진 것이 무엇인지 알아 냈습니다. API가 IRM 유형을 지정할 수 있지만 완전히 무시합니다. Integrationruntime 유형이 유형으로 직렬화됩니다.

그래서 IRM을 업데이트하기위한 코드는 다음과 같습니다.

public async Task<IntegrationRuntimeResource> CreateorUpdateIntegrationRuntime(string irmName) 
     { 
      Log.Information("Creating IntegrationRuntime Resource with name {IrmName}", irmName); 
      var irmResource = new IntegrationRuntimeResource(new SelfHostedIntegrationRuntime(), 
       type: IntegrationRuntimeType.SelfHosted, // this is ignored by the API but persisted for my sanity (or an api upgrade) 
       name: irmName); 
      return await AzureServiceFactory.GetDatafactoryManagementClient().IntegrationRuntimes 
       .CreateOrUpdateAsync(Config.ResourceGroupName, EnvironmentSettings.Datafactory.Name, 
        irmName, irmResource); 
     }