I am beginner of AWS and I have unclear points on connecting AWS API endpoints. I was unable to access AWS API endpoints from java client. Every times, it failed.
- May I know why it failed to connect?
Is there any source code I can reference to do?
public interface LamdaInterface { @LambdaFunction(functionName="GetCategoryAction") public List<LamdaOutput> getAllCategory(LamdaInput input); } public class LamdaTest { public static void main(String[] args) { AWSCredentials credentails = new AWSCredentials() { @Override public String getAWSSecretKey() { // my aws secret key return "xxxx"; } @Override public String getAWSAccessKeyId() { // my aws access key Id return "xxx"; } }; AWSLambdaClient lambda = new AWSLambdaClient(credentails); lambda.configureRegion(Regions.AP_NORTHEAST_1); lambda.setEndpoint("https://xxx.execute-api.ap-northeast-1.amazonaws.com/prod/listall"); LamdaInterface service = LambdaInvokerFactory.build(LamdaInterface.class, lambda); System.out.println("Calling..."); List<LamdaOutput> list = service.getAllCategory(new LamdaInput()); System.out.println("list : " + list); for (LamdaOutput l : list) { System.out.println("Name : " + l.getName()); } } }
It failed by this error.
Calling...
Exception in thread "main" com.amazonaws.AmazonClientException: Unable to execute HTTP request: Connection timed out: connect
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:642)
at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:400)
at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:362)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:311)
at com.amazonaws.services.lambda.AWSLambdaClient.invoke(AWSLambdaClient.java:1925)
at com.amazonaws.services.lambda.AWSLambdaClient.invoke(AWSLambdaClient.java:1029)
at com.amazonaws.services.lambda.invoke.LambdaInvokerFactory$LambdaInvocationHandler.invoke(LambdaInvokerFactory.java:121)
at com.sun.proxy.$Proxy7.getAllCategory(Unknown Source)
at testPrj.LamdaTest.main(LamdaTest.java:43) Caused by: java.net.ConnectException: Connection timed out: connect
Even though I tried to connect from the browser, it failed. It is GET request so I don't need to pass any request parameters.
https://xxx.execute-api.ap-northeast-1.amazonaws.com/prod/listall
Error is : **{"message":"Missing Authentication Token"}**