要不通过API Gateway,使用代理集成从另一个Lambda函数调用Lambda函数,您可以使用AWS SDK for Python(Boto3)在代码中调用Lambda函数。下面是一个示例代码,展示了如何通过代理集成从一个Lambda函数调用另一个Lambda函数:
import boto3
def lambda_handler(event, context):
# 创建 Boto3 客户端
client = boto3.client('lambda')
# 设置目标 Lambda 函数的ARN
target_lambda_arn = 'arn:aws:lambda:region:account_ID:function:function_name'
# 构建要传递给目标 Lambda 函数的参数
payload = {
'key1': 'value1',
'key2': 'value2'
}
# 构建调用目标 Lambda 函数的请求
invoke_response = client.invoke(
FunctionName=target_lambda_arn,
InvocationType='RequestResponse', # 同步调用
Payload=json.dumps(payload)
)
# 提取目标 Lambda 函数的响应
response_payload = invoke_response['Payload'].read()
response_data = json.loads(response_payload)
# 处理目标 Lambda 函数的响应
return {
'statusCode': 200,
'body': response_data
}
在上面的示例中,我们首先创建了一个Boto3客户端,然后设置了目标Lambda函数的ARN。接下来,我们构建了要传递给目标Lambda函数的参数,并使用client.invoke
方法调用了目标Lambda函数。最后,我们提取了目标Lambda函数的响应并进行处理。
请确保将target_lambda_arn
替换为您实际目标Lambda函数的ARN,并根据需要修改传递给目标Lambda函数的参数。