python - 如何使用 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 请求?
解决方案
如果没有 AWS 凭证,您将无法访问 Lambda 函数。即使您实施自己的 HTTP 请求(重新发明轮子),您也需要使用有效凭证和权限对请求进行签名,以调用 Lambda 函数。
您需要的是与您的 Lambda 的 API 网关集成。它将公开一个 HTTP API,您可以使用该requests
库调用它。
如果您希望 API Gateway 的 Lambda 调用是异步的,请按照以下说明操作:设置后端 Lambda 函数的异步调用
推荐阅读
- javascript - 模式内可扩展文本的 CSS 问题
- css - 所有 HTML 容器的 CSS 高度是否应为 100%
- powershell - FTP PowerShell 设置 - 高级设置
- rasa-nlu - 在 rasa 中训练模型后查找表不起作用
- python - python包不打包子目录下的文件
- vb.net - 我需要一些帮助来确定 vb.net 中函数的语法
- django - 对 Django 文本使用多个过滤器?
- python - 如何在熊猫中正确使用 .loc?
- asp.net - 在 UpdatePanel 内的 Gridview 中单击 LinkButton 后,引导数据表不起作用
- amazon-web-services - 如何使 AWS Codebuild 提示确认