2017-06-21 76 views
0

因此,在许多AWS Lambda教程中,它教会我们编写几行代码,打包并上载它。 enter image description hereAWS Lambda触发器代码; Java

是否有代码示例,您可以使用ARN或其他东西在当前项目中触发/调用lambda?我目前的项目非常庞大,我不能/不希望将函数包上传到AWS Lambda,我只是想在当前代码中触发它。

我找到的一个链接是:https://aws.amazon.com/blogs/developer/invoking-aws-lambda-functions-from-java/,但它迄今为止对我无效。

道歉,如果它已被问及;我没有找到对我有用的东西。

编辑:(即它不是我的主要项目的一部分,我只是做了它作为一个试验)

我的问题是lambda函数只被调用,因为我上传它作为一个JAR,但我想编写要在我的主项目中调用的代码。我不知道如何在我的Java代码中调用lambda。就像@MaxPower所说的,也许我有这个错误,这是不可能的。

+2

你能更详细地解释你面临的问题?您的评论*“将函数包上传到AWS Lambda并不可取,我只是想在我当前的代码中触发它”*根本没有意义。要么将您的Lambda函数的代码上传到AWS Lambda服务,要么完全不想使用AWS Lambda服务。 –

+0

我的问题是我不想通过AWS Lambda服务控制台上传我的lambda函数,但我确实想使用该服务(通过Java代码)。感谢您的反馈有帮助吗? – sallyp

+2

这没有任何意义。如果您没有将代码上传到Amazon Lambda服务,您打算调用哪些代码? – MaxPower

回答

2

我所做的是使用@LambdaFunction注释创建一个接口。

public interface Foo { 

@LambdaFunction(functionName = "LambdaName") 
OutputObject doFoo(InputObject inputObject); 

}

然后在要调用拉姆达类我做一个拉姆达客户

private final Foo fooCaller; 

RunTest() { 
    ProfileCredentialsProvider lambdaCredentialsProvider = new ProfileCredentialsProvider("lambda"); 
    AWSLambdaClientBuilder builder = AWSLambdaClientBuilder.standard().withCredentials(lambdaCredentialsProvider); 
    builder.setRegion("us-east-1"); 
    AWSLambda awsLambda = builder.build(); 

    LambdaInvokerFactory.Builder lambdaBuilder = LambdaInvokerFactory.builder(); 
    lambdaBuilder.lambdaClient(awsLambda); 

    fooCaller = lambdaBuilder.build(Foo.class); 
} 

那么当你要拨打的拉姆达

fooCaller.doFoo(); 
+0

让我试试这个并回复你..谢谢! – sallyp

+0

我可以私信给你吗?第二个我觉得我更加困惑。 – sallyp

+0

当然!请走! – MaxPower

相关问题