Amazon web services 我可以通过Amazon API网关异步启动长期运行的AWS Lambda进程吗?
我需要启动一个长时间运行的AWS Lambda作业(几分钟),将其输出写入S3。它将用Java编写(实际上是Kotlin,但这不重要) 我正在研究AmazonAPI网关,它是这个和其他AWS Lambda作业以及与之对话的iOS移动应用程序之间的接口Amazon web services 我可以通过Amazon API网关异步启动长期运行的AWS Lambda进程吗?,amazon-web-services,aws-lambda,aws-api-gateway,Amazon Web Services,Aws Lambda,Aws Api Gateway,我需要启动一个长时间运行的AWS Lambda作业(几分钟),将其输出写入S3。它将用Java编写(实际上是Kotlin,但这不重要) 我正在研究AmazonAPI网关,它是这个和其他AWS Lambda作业以及与之对话的iOS移动应用程序之间的接口 可以直接从API网关或从另一个Lambda函数异步调用此类长时间运行的Lambda进程吗?我不认为可以直接通过API网关异步调用Lambda,但可以通过API从另一个Lambda调用Lambda。在Java中,您将使用事件的调用类型 在长时间运行的
可以直接从API网关或从另一个Lambda函数异步调用此类长时间运行的Lambda进程吗?我不认为可以直接通过API网关异步调用Lambda,但可以通过API从另一个Lambda调用Lambda。在Java中,您将使用
事件的调用类型
在长时间运行的作业中使用Lambda时要小心:Lambda调用有300秒的严格限制。我建议在持久性资源(如EC2)中使用Lambda invoke代码,用于长时间运行的后端进程。API网关支持这种情况,但您无法从控制台设置集成。为此,必须使用CLI工具或SDK
这里有一个提示可以引导你去那里
aws apigateway put-integration \
--rest-api-id <value> \
--resource-id <value> \
--http-method POST \
--type AWS \
--integration-http-method POST \
--uri arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:Hello_World/invocations?Qualifier=$LATEST \
--credentials arn:aws:iam::123456789012:role/lambda \
--request-parameters integration.request.header.X-Amz-Invocation-Type='Event'
aws APIP网关集成\
--RESTAPI id\
--资源id\
--http方法POST\
--AWS型\
--集成http方法POST\
--uri-arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:123456789012:function:Hello\u World/invocations?限定符=$LATEST\
--凭证arn:aws:iam::123456789012:role/lambda\
--请求参数integration.request.header.X-Amz-Invocation-Type='Event'