AWS Lambda触发器代码; Java
问题描述:
因此,在许多AWS Lambda教程中,它教会我们编写几行代码,打包并上载它。 AWS Lambda触发器代码; Java
是否有代码示例,您可以使用ARN或其他东西在当前项目中触发/调用lambda?我目前的项目非常庞大,我不能/不希望将函数包上传到AWS Lambda,我只是想在当前代码中触发它。
我找到的一个链接是:https://aws.amazon.com/blogs/developer/invoking-aws-lambda-functions-from-java/,但它迄今为止对我无效。
道歉,如果它已被问及;我没有找到对我有用的东西。
编辑:(即它不是我的主要项目的一部分,我只是做了它作为一个试验)
我的问题是lambda函数只被调用,因为我上传它作为一个JAR,但我想编写要在我的主项目中调用的代码。我不知道如何在我的Java代码中调用lambda。就像@MaxPower所说的,也许我有这个错误,这是不可能的。
答
我所做的是使用@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();
你能更详细地解释你面临的问题?您的评论*“将函数包上传到AWS Lambda并不可取,我只是想在我当前的代码中触发它”*根本没有意义。要么将您的Lambda函数的代码上传到AWS Lambda服务,要么完全不想使用AWS Lambda服务。 –
我的问题是我不想通过AWS Lambda服务控制台上传我的lambda函数,但我确实想使用该服务(通过Java代码)。感谢您的反馈有帮助吗? – sallyp
这没有任何意义。如果您没有将代码上传到Amazon Lambda服务,您打算调用哪些代码? – MaxPower