在使用API网关调用Lambda函数时,API网关默认不会将授权头(例如Bearer Token)传递给Lambda函数。如果需要在Lambda函数中获取授权头,可以通过以下方法解决:
# Lambda函数代码示例(Python)
def lambda_handler(event, context):
# 获取授权头
authorization_header = event['headers']['Authorization']
# 处理其他逻辑
# ...
return {
'statusCode': 200,
'body': 'Success'
}
API网关设置中的映射模板示例:
# 请求映射模板示例
{
"body": $input.json('$'),
"headers": {
# 将授权头添加到请求负载中
"Authorization": "$input.params().header.get('Authorization')"
},
"method": "$context.httpMethod",
"params": {
"path": "$input.params().path",
"querystring": "$input.params().querystring"
}
}
Lambda函数代码示例:
# Lambda函数代码示例(Python)
import json
def lambda_handler(event, context):
# 解析请求负载
body = json.loads(event['body'])
# 获取授权头
authorization_header = body['headers']['Authorization']
# 处理其他逻辑
# ...
return {
'statusCode': 200,
'body': 'Success'
}
通过以上方法,你可以在Lambda函数中获取API网关传递的授权头信息。请根据你的具体需求选择适合的方法。