无法导入模块"lambda_function":没有名为'aws_xray_sdk'的模块



我试图在Lambda代码中实现这个AWS Lambda Rest API处理程序来处理适当的响应代码。为此,我需要重新打包库aws_lambda_powertools,并在lambda函数中添加一个层。

下面与这个库相关的所有导入都可以正常工作。

from aws_lambda_powertools import Logger, Tracer
from aws_lambda_powertools.event_handler import APIGatewayRestResolver
from aws_lambda_powertools.logging import correlation_paths
from aws_lambda_powertools.utilities.typing import LambdaContext

但是当我创建上面的跟踪器类的对象低于其给出的错误(休息两个评论对象loggerapp工作良好。

tracer = Tracer()
# logger = Logger()
# app = APIGatewayRestResolver()

在下面声明跟踪对象时遇到的错误:

Response
{
"errorMessage": "Unable to import module 'lambda_function': No module named 'aws_xray_sdk'",
"errorType": "Runtime.ImportModuleError",
"stackTrace": []
}
Function Logs
OpenBLAS WARNING - could not determine the L2 cache size on this system, assuming 256k
START RequestId: ae8b006b-e7f7-495b-99a0-eb5231c3f81c Version: $LATEST
[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named 'aws_xray_sdk'
Traceback (most recent call last):

我试图安装pip install aws_xray_sdk并重新包装它并重新添加到层,但它仍然给出相同的错误。

有谁能帮我一下吗?我是新来的。提前谢谢。

修复了使用AWS Arnarn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV2:18📋而不是使用我自己自定义重新打包的库层的错误。

参考链接:https://awslabs.github.io/aws-lambda-powertools-python/2.6.0/

跟踪(如验证和解析)需要额外的依赖项。默认情况下不包含它们,以使生成的包尽可能小。

使用AWS SAM打包时,我在my_code/requirements.txt中使用它,然后在本地虚拟环境中使用pip install:

aws-lambda-powertools[parser, validation, tracer]==2.6.0

此外,我将其包括在tests/requirements.txt中,我也在本地pip install,但这是而不是SAM拾取的(再次保持图像小,并且在运行时无论如何都不需要)。

aws-lambda-powertools[aws-sdk]==2.6.0
pytest==7.2.1

在2.0版本中,默认情况下不包括xray SDK,因为即使对于那些不使用Tracer的人来说,这也会引入大小开销。要解决这个问题,只需使用aws-lambda-powertools[tracer]将跟踪器依赖项或使用aws-lambda-powertools[all]将所有依赖项放入requirements.txt。

参考此链接:https://github.com/awslabs/aws-lambda-powertools-python/issues/1872

相关内容

  • 没有找到相关文章

最新更新