Ответ прокси должен быть словарем, который должен содержать только следующие ключи :
headers
body
isBase64Encoded
multiValueHeaders
statusCode
В вашем примере у вас есть один дополнительный ключ Access-Control-Allow-Origin
, и поэтому API Gateway утверждает, что он это неправильный ответ. В документации, указанной выше, даже явно указано, что Access-Control-Allow-Origin
должен быть частью headers
:
Чтобы включить CORS для интеграции прокси-сервера Lambda, вы должны добавить Access-Control-Allow-Origin:domain-name
к выходным данным headers.domain-name
can быть *
для любого доменного имени.
Если вы измените ответ на следующий, он должен работать нормально:
return {
'statusCode': 200,
'headers': {
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json'
},
'isBase64Encoded': False,
'body': json.dumps(data)
}