要实现API网关Lambda CORS处理程序,可以使用以下步骤和示例代码:
在AWS控制台上创建一个Lambda函数,并设置正确的权限和角色,以便与API网关进行交互。
在Lambda函数中添加逻辑来处理CORS请求,并安全地获取来源。
下面是一个示例代码,展示了如何在Lambda函数中实现CORS处理程序和安全获取来源:
import json
def lambda_handler(event, context):
# 获取请求来源
if 'headers' in event:
origin = event['headers'].get('Origin', '')
else:
origin = ''
# 配置允许的来源
allowed_origins = ['http://example.com'] # 为了安全性考虑,只允许特定的来源
if origin in allowed_origins:
# 设置CORS头部
headers = {
'Access-Control-Allow-Origin': origin,
'Access-Control-Allow-Credentials': 'true', # 如果需要带凭证访问,则设置为'true'
'Content-Type': 'application/json'
}
# 处理其他逻辑
# ...
# 返回响应
response = {
'statusCode': 200,
'headers': headers,
'body': json.dumps({'message': 'Success'})
}
else:
# 不允许的来源,返回错误响应
response = {
'statusCode': 403,
'body': json.dumps({'message': 'Forbidden'})
}
return response
在这个示例代码中,我们首先从事件中获取请求的来源。然后,我们与允许的来源列表进行比较,以检查请求是否来自允许的来源之一。如果是,我们设置CORS头部来允许该来源,并继续处理其他逻辑。如果不是,我们返回一个403 Forbidden的错误响应。
请注意,为了安全性考虑,我们只允许特定的来源访问API,其他来源将被拒绝。你可以根据自己的需求和安全要求,调整允许的来源列表。