Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过java访问AWS API端点_Java_Web Services_Amazon Web Services_Aws Lambda_Endpoints - Fatal编程技术网

如何通过java访问AWS API端点

如何通过java访问AWS API端点,java,web-services,amazon-web-services,aws-lambda,endpoints,Java,Web Services,Amazon Web Services,Aws Lambda,Endpoints,我是AWS的初学者,在连接AWSAPI端点方面我没有明确的观点。 我无法从java客户端访问AWS API端点。每次都失败了 我可以知道它为什么无法连接吗? 我可以参考任何源代码吗? public interface LamdaInterface { @LambdaFunction(functionName="GetCategoryAction") public List<LamdaOutput> getAllCategory(LamdaInput input);

我是AWS的初学者,在连接AWSAPI端点方面我没有明确的观点。 我无法从java客户端访问AWS API端点。每次都失败了

  • 我可以知道它为什么无法连接吗?
  • 我可以参考任何源代码吗?

    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());
        }
    }
    
    }
    
    尽管我试图从浏览器连接,但还是失败了。它是GET请求,所以我不需要传递任何请求参数

    https://xxx.execute-api.ap-northeast-1.amazonaws.com/prod/listall
    
    Error is : **{"message":"Missing Authentication Token"}**
    

    看起来您正试图在设置为端点的URL处调用lambda函数。端点是API客户端发送其API调用的地方。它与浏览以调用lambda的位置无关。此处列出了有效的lambda端点:。顺便说一句,您应该设置端点,或者调用
    setRegion
    /
    configureRegion
    ,但不能同时调用两者

    要调用lambda,请使用上的
    invoke()
    API调用或AWS CLI(
    AWS lambda invoke--function name GetCategoryAction

    如果您希望将lambda作为API在web上进行访问,您可能需要查看amazonapi网关服务

    https://xxx.execute-api.ap-northeast-1.amazonaws.com/prod/listall
    
    Error is : **{"message":"Missing Authentication Token"}**