要解决API Gateway Lambda代理集成CORS问题,可以按照以下步骤进行操作:
def lambda_handler(event, context):
# Lambda函数的具体逻辑
# 添加CORS头部
response = {
'statusCode': 200,
'headers': {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'Content-Type',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS'
},
'body': json.dumps({"message": "Hello, World!"})
}
return response
在这个例子中,我们使用Python编写了一个Lambda函数,并在返回的响应头部中添加了CORS相关的头部信息。
#set($corsTemplate = "{
\"statusCode\": 200,
\"headers\": {
\"Access-Control-Allow-Origin\": \"*\",
\"Access-Control-Allow-Headers\": \"Content-Type\",
\"Access-Control-Allow-Methods\": \"GET, POST, OPTIONS\"
},
\"body\": $input.json('$.body')
}")
$corsTemplate
这段模板将会将返回的响应转换为带有CORS头部的JSON格式。
{ "body": $input.json('$') }
这段模板将会将请求的主体内容传递给Lambda函数。
这样,API Gateway就会将CORS相关的头部信息添加到每个响应中,允许跨域请求。