我有一个附加到 API Gateway 端点的 Lambda 函数,它列出了 DynamoDB 中 ID 下的项目。
我使用无服务器框架构建了我的函数。当我在本地调用函数 ( serverless invoke local ...
) 时,它工作正常。当我在 AWS Lambda 控制台上手动测试它时,它可以正常工作,但是当我从 API Gateway 调用它时,它就不起作用了。
它被配置为使用此有效负载:(我用于测试的内容)
{
"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
字段?我正在关注无服务器堆栈教程,他们对此有点掩饰。
我也CloudWatch
设置了,我在那里看不到任何时髦的东西。有关如何修复/调试此问题的任何想法?
干杯!