我知道如何在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请求?
发布于 2021-04-23 09:36:24
没有AWS凭证,您无法访问Lambda函数。即使您实现了自己的HTTP请求(重新发明轮子),也需要使用有效的凭据和权限对请求进行签名,才能调用Lambda函数。
您需要的是API Gateway与您的Lambda的集成。它将公开一个HTTP API,您可以使用requests
库调用该API。
如果您希望API Gateway的Lambda调用是异步的,请遵循以下说明:Set up asynchronous invocation of the backend Lambda function
https://stackoverflow.com/questions/67193098
复制相似问题