【问题标题】:asyncio not working on AWS Lambda (python 3.6)asyncio 不适用于 AWS Lambda(python 3.6)
【发布时间】:2020-10-22 17:47:49
【问题描述】:

这在我的本地机器上有效,但在 AWS Lambda 上我得到了下面提到的错误。

import asyncio
import os

async def abc():
    await asyncio.sleep(1)
    print("abc")

def handler(event, context):
    print("RANDOM")
    loop = asyncio.get_event_loop()
    loop.run_until_complete(abc())

错误:

A Future or coroutine is required: TypeError
Traceback (most recent call last):
  File "/var/task/index.py", line 11, in handler
    loop.run_until_complete(abc())
  File "/var/task/asyncio/base_events.py", line 296, in run_until_complete
    future = tasks.async(future, loop=self)
  File "/var/task/asyncio/tasks.py", line 516, in async
    raise TypeError('A Future or coroutine is required')
TypeError: A Future or coroutine is required

在本地我通过调用 handler("random_1", "random_2") 来运行它

在 AWS 上,它是由事件触发的。

【问题讨论】:

    标签: python amazon-web-services aws-lambda python-3.6 python-asyncio


    【解决方案1】:

    我有时在 lambdas 和 asyncio 上遇到问题,但我一直不明白。

    您可以尝试使用更新的 python 版本吗?

    我使用 python 3.8 和 asyncio.run 而不是 get_event_loop + run_until_complete 并且它可以工作。

    【讨论】:

      猜你喜欢
      • 2022-11-26
      • 2020-04-20
      • 1970-01-01
      • 2021-07-27
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      • 2018-02-10
      • 2021-02-13
      相关资源
      最近更新 更多