2016-08-31 4 views
0

에서 UnknownoperationException을 반환합니다. Visual Studio 및 AWS .NET V 3.0을 사용합니다.AWS Machine Learning RealTimePredictor는 C#

실시간 Predict 작업을 수행하고 기본 설정 작업을 확인하기 위해 먼저 GetMLModel()을 실행하여 끝점을 반환합니다 (문서의 어딘가에서 해당 결과를 사용하도록 언급 됨). 서비스 엔드 포인트로 표시되지만 콘솔에 나열된 것과 동일합니다. 상태가 "준비 중"입니다. 지금까지는 그렇게 좋았습니다.

"Prediction P = RTP.Predict (Data)"아래 줄에 예외가 발생합니다. 데이터에는 모든 예측 값이 포함 된 사전이 있습니다.

오류 :오류 코드 UnknownOperationException 및 Http 상태 코드 BadRequest로 요청하는 중에 오류가 발생합니다. 서비스에서 더 이상 오류 정보를 리턴하지 않았습니다.

public static APIResult GetRealTimePrediction(Dictionary<string, string> Data, string PayloadJSON = null) { 

     AmazonMachineLearningConfig MLConfig = new AmazonMachineLearningConfig(); 

     MLConfig.RegionEndpoint = Amazon.RegionEndpoint.USEast1; 
     MLConfig.Validate(); 

     AmazonMachineLearningClient MLClient = new AmazonMachineLearningClient("xxx", "xxx", MLConfig); 
     GetMLModelResponse MLMOdelResp = MLClient.GetMLModel("xxx"); // <-- WORKS 

     MLConfig.ServiceURL = MLMOdelResp.EndpointInfo.EndpointUrl; 
     Console.WriteLine(MLConfig.ServiceURL); 
     MLConfig.Validate(); 

     Amazon.MachineLearning.Util.RealtimePredictor RTP = new Amazon.MachineLearning.Util.RealtimePredictor(MLClient, "xxx"); 
     Prediction P = RTP.Predict(Data); // <----------------EXCEPTION HERE 

} 

는 (물론 관련 값 XXX교체) :

답변

1

그것은이 줄을 밝혀 :

MLConfig.ServiceURL = MLMOdelResp.EndpointInfo.EndpointUrl; 

가지 경우 MLConfig.RegionEndpoint 리셋 할 수 있습니다. 설명서에 ServiceERL에서 RegionEndpoint를 확인할 수 있다고 나와 있지만 (실제로 읽었 음을 확신합니다) RegionEndpoint를 RTP.Predict (Data) 호출 전에 다시 설정해야합니다.

일단 내가 알아 냈어. 다른 누구에게 도움이 필요한 경우를 대비해이 코드를 줄일 수있었습니다. 구성에 너무 많은 정보를 추가하는 것이 AWS처럼 좋은 것은 아니라고 생각합니다. NET 라이브러리는이 모든 것을 독자적으로 파악한 것으로 보입니다.

public static APIResult GetRealTimePrediction(Dictionary<string, string> Data, string PayloadJSON = null) { 
     AmazonMachineLearningConfig MLConfig = new AmazonMachineLearningConfig(); 
     MLConfig.RegionEndpoint = Amazon.RegionEndpoint.USEast1; 
     MLConfig.Validate(); // Just in case, not really needed 

     AmazonMachineLearningClient MLClient = new AmazonMachineLearningClient("xxx", "xxx", MLConfig); 

     Amazon.MachineLearning.Util.RealtimePredictor RTP = new Amazon.MachineLearning.Util.RealtimePredictor(MLClient, "xxx"); 
     Prediction P = RTP.Predict(Data); 
}