在AWS API Gateway中,可以配置将通过base64编码生成的请求体传递给Lambda函数。下面是一个示例代码,演示了如何实现这个解决方法:
import base64
def lambda_handler(event, context):
# 获取base64编码的请求体
body = event['body']
decoded_body = base64.b64decode(body).decode('utf-8')
# 处理请求
# ...
return {
'statusCode': 200,
'body': 'Request processed successfully'
}
在API Gateway中创建一个REST API,并添加一个POST方法。
在POST方法的Integration Request配置中,选择Lambda函数作为目标,并在"Mapping Templates"中添加一个新的模板。
在模板中,使用以下代码将base64编码的请求体传递给Lambda函数:
{
"body": "$input.body"
}
现在,当API Gateway收到一个带有base64编码请求体的请求时,它将使用模板中的配置将请求体传递给Lambda函数。在Lambda函数中,可以使用event['body']获取base64编码的请求体,并使用base64.b64decode()解码它。