aws-lambda - 从 AWS java SDK 调用 AWS Lambda 函数
问题描述
在此处输入图像描述是否可以从 aws 发布订阅示例 java 代码中调用 aws lambda 函数?我们可以从我们的 java 代码中调用 lambda 函数吗?如果是,那怎么办?
解决方案
从 Java 调用 AWS Lambda 函数
import com.amazonaws.regions.Regions;
import com.amazonaws.services.lambda.AWSLambda;
import com.amazonaws.services.lambda.AWSLambdaClientBuilder;
import com.amazonaws.services.lambda.model.InvokeRequest;
import com.amazonaws.services.lambda.model.InvokeResult;
// ...
// (1) Define the AWS Region in which the function is to be invoked
Regions region = Regions.fromName("us-east-1");
// (2) Instantiate AWSLambdaClientBuilder to build the Lambda client
AWSLambdaClientBuilder builder = AWSLambdaClientBuilder.standard()
.withRegion(region);
// (3) Build the client, which will ultimately invoke the function
AWSLambda client = builder.build();
// (4) Create an InvokeRequest with required parameters
InvokeRequest req = new InvokeRequest()
.withFunctionName("myFunctionName")
.withPayload("{ ... }"); // optional
// (5) Invoke the function and capture response
InvokeResult result = client.invoke(req);
// (6) Handle result
...
上面会同步调用 Lambda;但是,您也可以使用 Java 期货或回调异步调用。
使用访问密钥和秘密密钥调用 上述示例在调用函数时将利用 DefaultAWSCredentialsProviderChain 来利用环境变量、EC2 实例配置文件等。虽然这通常是最佳实践,但在某些情况下您可能需要提供访问和密钥。为此,我们只需要对上面的代码做一点小改动:
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
// (1a) Instantiate credentials
BasicAWSCredentials credentials = new
BasicAWSCredentials("myAccessKey", "mySecretKey");
// (2) Modify to leverage credentials
AWSLambdaClientBuilder builder = AWSLambdaClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials));
.withRegion(region);
推荐阅读
- javascript - 如何遍历地图并仅获取前几个键值对并将它们传递给另一个函数?
- java - 每当我将文件保存为文件类型 java 时,VS 代码都会打开 .class 文件而不是“.java”文件,并且不会创建 .java 文件
- javascript - 表单提交的时间戳
- python - 如何手动实现 pytorch 卷积的填充
- excel - 根据下拉选择自动填充单元格
- javascript - 我们可以用 4Catalyzer/found 的 'withRouter' HOC 包装非反应函数吗?
- python - 为什么输出显示池在实际处理时多次关闭?
- vue.js - 未知的自定义元素:
验证 - c# - 在第一场比赛后停止 Regex positive Lookbehind
- javascript - 为什么在异步函数中捕获后仍然抛出异常?