问题的根源是API Gateway在传递请求时会对JSON进行转义,导致嵌入式事件变量无法正确获取。解决方法是在API Gateway中在集成请求中使用“Mapping Templates”设置转换模板来正确传递嵌入式事件变量。以下是一个示例Python Lambda函数和API Gateway设置:
Lambda函数代码:
import json
def my_lambda(event, context):
# Retrieving the value of the 'myVar' embedded event variable
my_var_value = event['myVar']
# Returning the value
return {
'statusCode': 200,
'body': json.dumps({
'myVarValue': my_var_value
})
}
API Gateway设置:
例如,使用以下内容创建模板:
{
"myVar": "$input.params('myVar')"
}
现在,API Gateway应该能够正确地将“myVar”嵌入式事件变量传递到Lambda函数中。