Amazon web services 如何获取从主函数调用的另一个函数返回的输出?
这将有点难以解释,但我们开始吧 我有一个AWS Lambda函数,它使用Amazon web services 如何获取从主函数调用的另一个函数返回的输出?,amazon-web-services,aws-lambda,Amazon Web Services,Aws Lambda,这将有点难以解释,但我们开始吧 我有一个AWS Lambda函数,它使用youtube dl从youtube下载视频,然后上传到S3并返回S3链接供下载。我们将其命名为function1,以供参考 我将它连接到API网关,然后发现AWS中的API网关超时29秒。这意味着,如果我使用YouTube URL从API网关触发Lambda函数进行下载,它将等待29秒,如果没有得到任何输出,它将超时,并用它终止函数 当然,下载时间通常超过29秒,这个限制很烦人 我想出了一个解决办法,创建了另一个Lambd
youtube dl
从youtube下载视频,然后上传到S3并返回S3链接供下载。我们将其命名为function1
,以供参考
我将它连接到API网关,然后发现AWS中的API网关超时29秒。这意味着,如果我使用YouTube URL从API网关触发Lambda函数进行下载,它将等待29秒,如果没有得到任何输出,它将超时,并用它终止函数
当然,下载时间通常超过29秒,这个限制很烦人
我想出了一个解决办法,创建了另一个Lambda函数(function2
)。我将它链接到API网关,这样,我就可以使用YouTube URL向function2
发出http请求,然后function2
将调用function1
将URL传递给它
然而,我现在遇到了一个问题。如何获取function1
返回的S3链接
发生的情况是,我使用URL向function2
发出请求,然后它将其传递给function1
,function2
将返回一个字符串,表示它正在下载。但是我真的不知道如何从下载视频然后上传到S3的函数中获取S3链接
我想把S3链接放在S3存储桶中,但是客户端怎么知道函数把链接放在了那里呢?我能想到的唯一方法是让客户反复请求,看看链接是否存在,老实说,我真的不想做不必要的请求
哦,如果调用function2
时让它等待function1
的响应,则无法达到此解决方法的目的
顺便说一句,如果有什么不同的话,我正在使用Python。Lambda和API网关并不是真正为长时间运行的进程创建的,就像您正在尝试做的那样。这是一个为作业使用正确工具的场景。您最好使用EC2实例,并在EC2实例上使用API来处理视频下载、上传到S3以及返回S3对象的URL