作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 API 网关通过 https 调用 Java AWS Lambda。
我有一个案例,我很快就知道我想从我的 Lambda 返回什么状态,但我还有更多工作要做,这不会影响状态。
有没有办法向调用者提供状态,但不结束 Lambda 的执行?
我试过了:
@Override
public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context) throws IOException {
JsonWriter writer = new JsonWriter(new OutputStreamWriter(outputStream));
writer.beginObject();
writer.name("statusCode").value("200");
writer.endObject();
writer.flush();
writer.close();
try {
// this wait represents other work my Lambda is doing,
// e.g. DB calls, requests to other webservices
Thread.sleep(10 * 1000);
} catch (InterruptedException e) {
}
}
最佳答案
如果您知道应该返回给调用者的状态并且您必须做的其他工作不会影响状态代码或 http 响应,那么为什么要保持 lambda 执行(这是一个坏主意,因为您按执行时间 x 内存重新计费)?
使用 SNS 触发另一个 lambda 以继续该过程。它看起来像:
caller -> Lambda -> SNS -> Lambda
|
caller <---(status)----
关于java - 有没有办法从 Java AWS Lambda RequestStreamHandler 获取 'return early',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46068936/
我正在使用 API 网关通过 https 调用 Java AWS Lambda。 我有一个案例,我很快就知道我想从我的 Lambda 返回什么状态,但我还有更多工作要做,这不会影响状态。 有没有办法向
我是一名优秀的程序员,十分优秀!