我尝试在我的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类的对象时,它给出了错误(剩下的两个注解对象logger
和app
工作正常。
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
和重新打包它,并重新添加到层仍然它给出相同的错误。
有谁能帮我一下吗?我刚到拉姆达。先谢了。
2条答案
按热度按时间63lcw9qa1#
通过使用AWS Arn
arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV2:18📋
而不是使用我自己的自定义重新打包的库层修复了错误。参考链接:https://awslabs.github.io/aws-lambda-powertools-python/2.6.0/
px9o7tmv2#
跟踪(如验证和解析)需要额外的依赖项。默认情况下不包括这些依赖项,以使生成的包尽可能小。
当使用AWS SAM打包时,我在我的
my_code/requirements.txt
中使用它,然后在我的本地虚拟环境中使用pip install
:此外,我将此包含在
tests/requirements.txt
中,我也在本地使用pip install
,但SAM * 不 * 拾取它(再次保持映像较小,无论如何在运行时不需要它)。