设置后端 Lambda 函数的异步调用
在 Lambda 非代理(自定义)集成中,默认情况下后端 Lambda 函数是同步调用的。这是大多数 REST API 操作的预期行为。但是,某些应用程序通常需要由某个单独的后端组件进行异步执行(如分批操作或长延迟操作)才能运行。在这种情况下,后端 Lambda 函数将进行异步调用,而且前端 REST API 方法不会返回结果。
您可以通过将 'Event' 指定为 Lambda 调用类型,为要异步调用的 Lambda 非代理集成配置 Lambda 函数。按如下所示完成此操作:
在 API Gateway 控制台中配置 Lambda 异步调用
要使所有调用均为异步,请执行以下操作:
-
在 Integration Request (集成请求) 中,添加具有静态值
X-Amz-Invocation-Type的'Event'标头。
要让客户端决定调用为异步还是同步,请执行以下操作:
-
在 Method Request (方法请求) 中,添加
InvocationType标头。 -
在 Integration Request (集成请求) 中,添加具有映射表达式
X-Amz-Invocation-Type的method.request.header.InvocationType标头。 -
在 API 请求中,对于异步调用,客户端可以包含
InvocationType: Event标头,对于同步调用则可以包含InvocationType: RequestResponse。