我是 AWS lambda 新手,我已经创建了一个带有处理程序的 lambda 函数
example.Orders::orderHandler
这是自定义处理程序,现在我想从我的 Java 程序中调用它,我需要如何调用它。
最佳答案
这个类中的两个方法应该能够帮助你。一个是如果您需要传入有效负载,另一个是如果有效负载为空。
但是,您需要记住一件事:函数名称可能与处理程序不同(这里后者是 example.Orders::orderHandler
)。调用其函数时不使用处理程序名称。
因此,如果您有一个函数名称“myFunction”的函数,该函数在幕后调用您的example.Orders::orderHandler
处理程序,那么这就是您要传递到下面的 run 方法中的内容。
import com.amazonaws.regions.Regions;
import com.amazonaws.services.lambda.AWSLambdaAsyncClient;
import com.amazonaws.services.lambda.model.InvokeRequest;
import com.amazonaws.services.lambda.model.InvokeResult;
class LambdaInvoker {
public void runWithoutPayload(String region, String functionName) {
runWithPayload(region, functionName, null);
}
public void runWithPayload(String region, String functionName, String payload) {
AWSLambdaAsyncClient client = new AWSLambdaAsyncClient();
client.withRegion(Regions.fromName(region));
InvokeRequest request = new InvokeRequest();
request.withFunctionName(functionName).withPayload(payload);
InvokeResult invoke = client.invoke(request);
System.out.println("Result invoking " + functionName + ": " + invoke);
}
}
关于java - 如何从 Java 代码调用 AWS lambda 函数/处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41616806/