首页 > 解决方案 > 如何使用 Python 请求异步调用 aws lambda 函数

问题描述

我知道如何在 python 中使用 boto3 异步调用 AWS lambda 函数。

这是我正在使用的代码:


import boto3
import json

lambda_client = boto3.client('lambda',
                             region_name='ap-northeast-2',
                             aws_access_key_id='XXXXXXXXXX',
                             aws_secret_access_key='XXXXXXXXXXX')
data = {"data1":"mydata"}

response = lambda_client.invoke(FunctionName="my_lambda_function",
                                InvocationType="Event",         ###for asynchronous purposes
                                Payload=json.dumps(data)
                                )

但我想使用请求而不是调用方法异步调用 lambda

前任):

import requests
param= data = {"data1":"mydata"}
url = "https://xxxxx.execute-api.ap-northeast-2.amazonaws.com/my_lambda_function)"
res = requests.get(url, params=param)

我应该自己实现异步调用的代码吗?有没有一种简单的异步方式来调用 lambda 请求?

标签: pythonasynchronousaws-lambda

解决方案


如果没有 AWS 凭证,您将无法访问 Lambda 函数。即使您实施自己的 HTTP 请求(重新发明轮子),您也需要使用有效凭证和权限对请求进行签名,以调用 Lambda 函数。

您需要的是与您的 Lambda 的 API 网关集成。它将公开一个 HTTP API,您可以使用该requests库调用它。

如果您希望 API Gateway 的 Lambda 调用是异步的,请按照以下说明操作:设置后端 Lambda 函数的异步调用


推荐阅读