У меня есть лямбда-функция, подключенная к конечной точке шлюза API, которая перечисляет элементы под идентификатором в DynamoDB.
Я построил свою функцию с использованием Serverless Framework. Когда я вызываю функцию локально (serverless invoke local ...
), она работает нормально. Когда я тестирую его вручную на консоли AWS Lambda, он работает нормально, но когда я вызываю его из шлюза API, он не работает.
Он настроен на использование этой полезной нагрузки: (что я использовал для тестирования)
{
"requestContext": {
"identity": {
"cognitoIdentityId": "468648c5-b135-4075-910a-8a648d66e67d"
}
}
}
В моем приложении я использую пакет aws-amplify
. Вот как я называю конечную точку:
data = await API.get('endpoint-name', '/endpoint', {
body: {
requestContext: {
cognitoIdentityId: '468648c5-b135-4075-910a-8a648d66e67d'
}
}
});
Здесь я получаю ошибку 403
. Если я позвоню без дополнительных данных, то есть:
data = await API.get('endpoint-name', '/endpoint');
Я получаю пустой список [ ]
, но без ошибок. aws-amplify
автоматически заполняет поле cognitoIdentityId
? Я следую учебному пособию по serverless-stack , и они как бы замаскируют это.
У меня также настроено CloudWatch
, и я не вижу там ничего прикольного. Любые идеи о том, как исправить / отладить эту проблему?
Ура!