1

私はAmazonの新しい認識APIを使用していますが、example JavaアプリケーションをIntelliJから実行する際に問題があります。私は、プロジェクトをビルドするMavenを使用していますし、次のように私のpom.xmlにAWS SDKが含まれている:IntelliJからAWS認識APIに接続できません

<dependency> 
    <groupId>com.amazonaws</groupId> 
    <artifactId>aws-java-sdk</artifactId> 
    <version>${aws-java-sdk.version}</version> 
</dependency> 

私が言うことができるものから、私のアプリケーションは、ここの周りのどこかに障害が発生しているように見える:

AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(credentials) 
     .withEndpoint("s3-us-west-2.amazonaws.com"); 
rekognitionClient.setSignerRegionOverride("us-west-2"); 
try { 
    DetectFacesResult result = rekognitionClient.detectFaces(request); 
    ObjectMapper objectMapper = new ObjectMapper(); 
    System.out.println("Result = " + objectMapper.writeValueAsString(result)); 
} catch (AmazonRekognitionException e) { 
    e.printStackTrace(); 
} 

...そして、私は取得していますエラーは次のとおりです。

com.amazonaws.services.rekognition.model.AmazonRekognitionException: null (Service: AmazonRekognition; Status Code: 400; Error Code: null; Request ID: null) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1545) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1183) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:964) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:676) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:650) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:633) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$300(AmazonHttpClient.java:601) 
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:583) 
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:447) 
    at com.amazonaws.services.rekognition.AmazonRekognitionClient.doInvoke(AmazonRekognitionClient.java:1130) 
    at com.amazonaws.services.rekognition.AmazonRekognitionClient.invoke(AmazonRekognitionClient.java:1106) 
    at com.amazonaws.services.rekognition.AmazonRekognitionClient.detectFaces(AmazonRekognitionClient.java:599) 
    at com.github.jhenningsgaard.DetectFaces.main(DetectFaces.java:39) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 

また、私はAWS CLIで(下記参照)の操作を実行し、成功したことに注意してください。

aws rekognition detect-faces \ 
--image '{"S3Object":{"Bucket":"Bucketname","Name":"s3ObjectKey"}}' \ 
--attributes "ALL" \ 
--region us-east-1 \ 
--profile adminuser 
+0

は、あなたの 'request'を示してもらえますか? –

+0

私のリクエスト: '{Image:{S3Object:{Bucket:rekognitionexample、Name:obama.jpg、}}、属性:[ALL]}' –

+0

S3エンドポイントを使用して認識サービスに接続しようとしているのはなぜですか?認識エンドポイントを使用する必要があります。http://docs.aws.amazon.com/general/latest/gr/rande.html#rekognition_regionを参照してください。 – mickzer

答えて

0

あなたはrekognitionクライアントのインスタンスを作成するために、次のコードを使用することができます。

AWSCredentials credentials; 
try { 
    credentials = new ProfileCredentialsProvider("default").getCredentials(); 
} catch (Exception e) { 
    throw new AmazonClientException("Cannot load the credentials from the credential profiles file. " 
      + "Please make sure that your credentials file is at the correct " 
      + "location (/Users/<userid>/.aws/credentials), and is in a valid format.", e); 
} 
AmazonRekognitionClient rekognitionClient = new AmazonRekognitionClient(credentials) 
     .withEndpoint("rekognition.eu-west-1.amazonaws.com"); 
rekognitionClient.setSignerRegionOverride("eu-west-1"); 
関連する問題