V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rizon
V2EX  ›  Amazon Web Services

aws lambda 里怎么实现 waituntil

  •  
  •   rizon ·
    othorizon · 2024-10-02 09:32:41 +08:00 via iPhone · 2968 次点击
    这是一个创建于 365 天前的主题,其中的信息可能已经有所发展或是发生改变。

    cloudflare 的 worker 和 vercel 里都有一个 waituntil 函数,这个函数可以在 http 请求返回后继续执行异步函数。 但是 aws lambda 里好像没有这种函数,该怎么实现这个效果呢

    15 条回复    2024-10-03 07:36:45 +08:00
    billzhuang
        1
    billzhuang  
       2024-10-02 09:42:25 +08:00 via iPhone
    各个语言自带的异步不行么
    rizon
        2
    rizon  
    OP
       2024-10-02 09:52:13 +08:00 via iPhone
    补充一下忘了说了。我是 nodejs 。
    因为 http 请求返回后函数就会被直接终止了。所以才需要这个东西,在接口返回数据后依然继续运行。
    crazywind
        3
    crazywind  
       2024-10-02 10:16:09 +08:00
    lambda 只有在你代码执行完后才终止,你 hppt 请求做个阻塞,数据返回后直接运行不行吗?
    rizon
        4
    rizon  
    OP
       2024-10-02 10:18:08 +08:00 via iPhone
    @crazywind http 响应速度变慢了啊。这个东西场景必然是有的。不然 vercel 和 cloudflare 也不会去做
    rizon
        5
    rizon  
    OP
       2024-10-02 10:19:07 +08:00 via iPhone
    @crazywind 哦,不好意思我理解错了。你的意思是 http 请求结束后,继续阻塞运行是吧。
    我也想这样,但是不知道 nodejs 里怎么做到
    crazywind
        6
    crazywind  
       2024-10-02 10:21:55 +08:00
    直接在 http 请求后面加代码就行了
    honk
        7
    honk  
       2024-10-02 11:32:06 +08:00 via Android
    alansfinal
        8
    alansfinal  
       2024-10-02 11:34:56 +08:00   ❤️ 3
    http response 返回以后 lambda function 就终止了,想实现后台任务可以看这篇 https://aws.amazon.com/blogs/compute/running-code-after-returning-a-response-from-an-aws-lambda-function/
    rizon
        9
    rizon  
    OP
       2024-10-02 12:07:47 +08:00 via iPhone
    @alansfinal 靠谱啊兄弟,感谢。
    然后再问一句,如果是腾讯或阿里云函数怎么做呢
    Belmode
        10
    Belmode  
       2024-10-02 12:48:43 +08:00 via Android
    这种一直后台运行,消耗的 GBS 岂不是海量的
    jenrey
        11
    jenrey  
       2024-10-02 15:33:09 +08:00
    wudiiiii
        12
    wudiiiii  
       2024-10-02 17:08:32 +08:00
    把你的异步函数写在另一个 lambda 里,调用一下不就完了
    mrcotter2013
        13
    mrcotter2013  
       2024-10-02 20:56:09 +08:00
    一般在 lambda 里直接调用另一个 lambda 需要等待返回的结果,如果需要执行其它异步处理可以使用 SNS 或者 SQS 去触发
    ClericPy
        14
    ClericPy  
       2024-10-02 23:45:50 +08:00
    听着怎么像是用 step 拆异步,一般 serverless 尽量避免等待和空转吧,保存个上下文逻辑同步调用异步应该可以吧
    yuankui
        15
    yuankui  
       364 天前
    SNS/SQS/EventBridge

    先 Google 一下这三个吧,可以满足你的需求。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1053 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:03 · PVG 01:03 · LAX 10:03 · JFK 13:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.