繁体   English   中英

无法导入模块“lambda_function”:没有名为“aws_xray_sdk”的模块

[英]Unable to import module 'lambda_function': No module named 'aws_xray_sdk'

我正在尝试在我的 lambda 代码中实现此AWS Lambda Rest API 处理程序以处理正确的响应代码。 为此,我需要重新打包库aws_lambda_powertools并添加为 lambda function 中的一个层。

下面与此库相关的所有导入均有效。

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

但是当我在其给出的错误下方创建 object 以上 Tracer class 时(其余两个评论 object loggerapp工作正常。

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

我在声明跟踪器 object 时遇到的错误如下:

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并将其重新打包并重新添加到层中,但仍然出现相同的错误。

谁能帮我这个? 我是 lambda 的新用户。提前致谢。

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

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

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

使用 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM