Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Amazon APi gateway fails to generate transformed request

I was trying the integration of Amazon API gateway with Lambda function. I was successfully able to achieve though but when I tried with curl it fails.

Lambda method, API gateway integration along with template mapping under integration request are setup.

When I run "test" from console, it works fine

Execution log for request test-request 
Wed Nov 04 07:27:30 UTC 2015 : Starting execution for request: test-invoke-request
Wed Nov 04 07:27:30 UTC 2015 : API Key: test-invoke-api-key
Wed Nov 04 07:27:30 UTC 2015 : Method request path: {service=xml}
Wed Nov 04 07:27:30 UTC 2015 : Method request query string: {}
Wed Nov 04 07:27:30 UTC 2015 : Method request headers: {}
Wed Nov 04 07:27:30 UTC 2015 : Method request body before transformations: Articletext
Wed Nov 04 07:27:30 UTC 2015 : Endpoint request body after transformations: {
  "prog" : "xml",
  "content" : "Articletext",
  "test" : "{path={service=xml}, querystring={}, header={}}"
}

but when I tries to access it through curl it is not able to create proper body after transformation

curl -X POST https://aaaaaaa.execute-api.us-west-2.amazonaws.com/beta/apitest/xml -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" --data-binary "Articletext"

Starting execution for request: 
Method request path: {service=xml}
Method request query string:
{}
Method request body before transformations: Articletext
Endpoint request body after transformations: Articletext
Endpoint response body before transformations:
{
    "Type": "User",
    "message": "Could not parse request body into json."
}

Can any one suggest me about missing part?

like image 237
Yawar Avatar asked Nov 04 '15 07:11

Yawar


People also ask

Can API gateway fail?

The API gateway doesn't introduce a single point of failure any more than a load balancer does. Any serious API gateway should be able to run in high availability mode removing the single point of failure.

How do I pass AWS API gateway request body?

In the Mapping Templates area, choose an option for Request body passthrough to configure how the method request body of an unmapped content type will be passed through the integration request without transformation to the Lambda function, HTTP proxy, or AWS service proxy.


1 Answers

In my case the problem was that I did not Deploy the API, so it was not updated for external use. See Amazon API Gateway : response body is not transformed when the API is called via Postman?

like image 101
Stef Heyenrath Avatar answered Oct 24 '22 16:10

Stef Heyenrath