在 AWS Lambda 中使用依赖注入时,您需要确保函数的类具有无参数的构造函数。如果未定义无参数的构造函数,Lambda 在动态创建实例时会抛出上述错误。
以下是一个示例解决方案,包含一个带有无参数构造函数的 Lambda 函数类:
import boto3
from botocore.exceptions import ClientError
class TestDep:
def __init__(self):
self.s3_client = boto3.client('s3')
def lambda_handler(self, event, context):
# 处理 Lambda 事件的逻辑
# 可以使用 self.s3_client 调用 AWS 服务
# ...
# 创建一个实例并调用 lambda_handler 方法
def lambda_handler(event, context):
test_dep = TestDep()
return test_dep.lambda_handler(event, context)
在上面的示例中,TestDep 类具有一个无参数的构造函数,并初始化了一个 S3 客户端。在 lambda_handler 方法中,我们创建了一个 TestDep 的实例,并调用了 lambda_handler 方法来处理 Lambda 事件。
确保您的类具有无参数的构造函数将解决“无法动态创建类型为 'TestDep.Function' 的实例。原因:未定义无参数的构造函数。”错误。