【发布时间】:2022-09-29 11:36:53
【问题描述】:
我是 aws 新手,并围绕 aws lambda 和 step 函数进行 PoC。 所以我的问题陈述是: 一个 http 请求到达 API 网关,它触发了一个 lambda 函数,通过那个 lambda 我触发了一个类似的阶跃函数awsStepFunction.startExecution(executionRequest)
现在,由于这本质上是异步的,它只会触发 step 函数并返回响应,但是 我只想在 lambda 执行完成或失败时从 lambda 返回响应。
我在用获取执行历史递归地获得执行的响应,但这会影响我的执行时间以及在进行负载测试时限制异常说速率超出
ExecutionResult result = awsStepFunction.startExecution(executionRequest);
getHistory(awsStepFunction, result);
private void getHistory(awsStepFunction, result){
List<HistoryEvents> list = GetExecutionHistory(request).getEvents;
while(true) {
If(list.get(0).getId == 71 || list.get(0).getStatus.equals("ExecutionFailed")){
return;
} else {
Thread.sleep(1000);
getHistory(awsStepFuncrion,result);
}
return;
}
}
71 是确认执行成功的事件的最终 id。
但是在这里,当触发多个请求时,会出现错误 400超出限制异常率在 cloudwatch 日志中,因此得到 http 响应502错误的网关
【问题讨论】:
标签: java amazon-web-services aws-lambda aws-step-functions aws-java-sdk