I followed as the documentation says, and on execution of the below method -
https://XXXXXXX.execute-api.us-east-1.amazonaws.com/devTest/users
with following body
{
"action" :"com.amazonaws.apigatewaydemo.action.RegisterDemoAction",
"body" : {
"username":"test",
"password":"test123"
}
}
{ how ever it was not mentioned anywhere in the documentation that how to send the request }
And it gave following error -
{
"errorMessage": "null (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: AccessDeniedException; Request ID: 1TM4POAKDQ2KIEIUEPIOLTH0RNVV4KQNSO5AEMVJF66Q9ASUAAJG)",
"errorType": "com.amazonaws.AmazonServiceException",
"stackTrace": [
"com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1182)",
"com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:770)",
"com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489)",
"com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:310)",
"com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:1772)",
"com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.getItem(AmazonDynamoDBClient.java:1141)",
"com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:454)",
"com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:532)",
"com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:398)",
"com.amazonaws.apigatewaydemo.model.user.DDBUserDAO.getUserByName(DDBUserDAO.java:64)",
"com.amazonaws.apigatewaydemo.action.RegisterDemoAction.handle(RegisterDemoAction.java:101)",
"com.amazonaws.apigatewaydemo.RequestRouter.lambdaHandler(RequestRouter.java:98)",
"sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
"sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)",
"sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
"java.lang.reflect.Method.invoke(Method.java:497)"
]
}
I followed as the documentation says, and on execution of the below method -
https://XXXXXXX.execute-api.us-east-1.amazonaws.com/devTest/users
with following body
{
"action" :"com.amazonaws.apigatewaydemo.action.RegisterDemoAction",
"body" : {
"username":"test",
"password":"test123"
}
}
{ how ever it was not mentioned anywhere in the documentation that how to send the request }
And it gave following error -
{
"errorMessage": "null (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: AccessDeniedException; Request ID: 1TM4POAKDQ2KIEIUEPIOLTH0RNVV4KQNSO5AEMVJF66Q9ASUAAJG)",
"errorType": "com.amazonaws.AmazonServiceException",
"stackTrace": [
"com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1182)",
"com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:770)",
"com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:489)",
"com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:310)",
"com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:1772)",
"com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.getItem(AmazonDynamoDBClient.java:1141)",
"com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:454)",
"com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:532)",
"com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.load(DynamoDBMapper.java:398)",
"com.amazonaws.apigatewaydemo.model.user.DDBUserDAO.getUserByName(DDBUserDAO.java:64)",
"com.amazonaws.apigatewaydemo.action.RegisterDemoAction.handle(RegisterDemoAction.java:101)",
"com.amazonaws.apigatewaydemo.RequestRouter.lambdaHandler(RequestRouter.java:98)",
"sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
"sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)",
"sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
"java.lang.reflect.Method.invoke(Method.java:497)"
]
}