因此,在很多AWS Lambda教程中,它教会我们编写几行代码,将其打包并上传。
是否有一个代码示例,您可以使用ARN或其他东西在当前项目中触发/调用lambda?我当前的项目非常庞大,我不能/不可能将功能包上传到AWS Lambda,我只想在我当前的代码中触发它。
我找到的一个链接是:https://aws.amazon.com/blogs/developer/invoking-aws-lambda-functions-from-java/但到目前为止它对我不起作用。
如果已经被问过,请道歉;我没有发现任何对我有用的东西。
编辑:
我的问题是lambda函数只被调用,因为我已经将它作为JAR上传(即它不是我主项目的一部分,我只是把它作为测试),但是我想把代码编写到在我的主项目中调用。我不知道如何在我的Java代码中调用lambda。就像@MaxPower说的那样,也许我错了,这是不可能的。
答案 0 :(得分:2)
我所做的是使用@LambdaFunction注释创建一个接口。
public interface Foo {
@LambdaFunction(functionName = "LambdaName")
OutputObject doFoo(InputObject inputObject);
}
然后在要调用lambda的类中,我创建一个Lambda客户端
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);
}
然后当你想调用lambda
时fooCaller.doFoo();