python-3.x 无法导入模块“lambda_function”:没有名为“aws_xray_sdk”的模块

tkqqtvp1  于 2023-01-18  发布在  Python
关注(0)|答案(2)|浏览(168)

我尝试在我的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

但是当我创建上面的Tracer类的对象时,它给出了错误(剩下的两个注解对象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和重新打包它,并重新添加到层仍然它给出相同的错误。
有谁能帮我一下吗?我刚到拉姆达。先谢了。

63lcw9qa

63lcw9qa1#

通过使用AWS Arn arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV2:18📋而不是使用我自己的自定义重新打包的库层修复了错误。
参考链接:https://awslabs.github.io/aws-lambda-powertools-python/2.6.0/

px9o7tmv

px9o7tmv2#

跟踪(如验证和解析)需要额外的依赖项。默认情况下不包括这些依赖项,以使生成的包尽可能小。
当使用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

相关问题