使用API Gateway调用DynamoDB的DeleteItem时出现500内部服务器错误
问题:API Gateway调用DynamoDB DeleteItem返回内部服务器错误
问题重现步骤
- 创建名为
Events的DynamoDB表,分区键为id
- 在
Events表中创建一条id为123456的条目,其余字段留空
- 创建API Gateway,创建
events路径,并在其下添加remove-event资源
- 创建
POST方法,关联AWS服务DynamoDB,动作选择DeleteItem,添加具备Events表访问权限的IAM角色
- 打开Postman,配置授权后使用以下请求地址:
POST https://<DB GOES HERE>.execute-api.us-east-2.amazonaws.com/prod/events/remove-event - 请求体按照DynamoDB官方示例填写:
{ "TableName": "Events", "Key": { "id": { "S": "123456" } }, "ReturnValues": "NONE" } - 发送请求后返回:
{ "message": "Internal server error" }
目前创建、更新、读取操作均正常,仅Delete操作失败,无法定位原因。
补充说明
附上当前使用的IAM策略:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "execute-api:Invoke", "Resource": "arn:aws:execute-api:*:<sensitive infomation>:*/**/**/**" } ] }
移除该策略会返回403错误,因此可排除权限问题。
内容的提问来源于stack exchange,提问作者JeremiahDuane
相关产品推荐
相关产品推荐

