2016-04-11 11 views
8

मैं एपीआई गेटवे में एक जेसन स्ट्रिंग पोस्ट करने की कोशिश कर रहा हूं और बदले में एपीआई गेटवे एक ईसी 2 सर्वर पर JSON भेजता है।एडब्ल्यूएस एपीआई गेटवे और ईसी 2 सेवा प्रॉक्सी

मेरा मुद्दा यह है कि मुझे इसे पूरा करने के तरीके पर अमेज़ॅन से अच्छा प्रलेखन नहीं मिल रहा है।

जब मैं सेटअप के परीक्षण मैं इस

"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Response><Errors><Error><Code>InvalidHttpRequest</Code><Message>The HTTP request is invalid. Reason: Unable to parse request</Message></Error></Errors><RequestID>1fa47f52-d75c-4ff8-8992-3eac11a79015</RequestID></Response>" 

कौन सा मेरे लिए बहुत कम मतलब है मिलता है। मुझे लगता है कि यह एपीआई गेटवे के साथ ईसी 2 को अनुरोध भेजने की कोशिश कर रहा है और ऐसा नहीं हो सकता है कि यह इस त्रुटि को उत्पन्न करता है। तो शायद मैं एपीआई गेटवे में गलत तरीके से ईसी 2 एडब्ल्यूएस सेवा प्रॉक्सी स्थापित कर रहा हूं। जो संभवतः है क्योंकि मुझे नहीं पता कि मुझे अभी क्या 'एक्शन' सेट करना है, मैंने इसे ईसी 2 इंस्टेंस पर इंगित किया है, केवल इसलिए कि मुझे यह जानकारी रखने के लिए कोई अन्य जगह नहीं दिखाई दे रही है।

यह वास्तव में है कि मुश्किल नहीं होना चाहिए मैं सफलतापूर्वक इस बात लैम्ब्डा से कनेक्ट कर किया है और सभी प्रलेखन के माध्यम से देखा है और सब मैं पा सकते हैं यह है: http://docs.aws.amazon.com/apigateway/latest/developerguide/getting-started-aws-proxy.html#getting-started-aws-proxy-add-resources

कौन इस परिदृश्य के लिए मददगार से कम है। कोई विचार?

उत्तर

11

मुझे लगता है कि आपने एडब्ल्यूएस सेवा प्रॉक्सी और HTTP सेवा प्रॉक्सी को भ्रमित कर दिया है।

एपीआई गेटवे बैकेंड के विभिन्न प्रकार के लिए API कॉल अग्रेषित कर सकते हैं:
- एक लैम्ब्डा समारोह
- एक एडब्ल्यूएस सेवा (एक उदाहरण के लिए http://docs.aws.amazon.com/apigateway/latest/developerguide/integrating-api-with-aws-services-s3.html देखें)
- एक मौजूदा एपीआई, एडब्ल्यूएस पर या परिसर में चल रहा है (अपने मामले का उपयोग करें)

जब आप API को परिभाषित करने, एक पोस्ट क्रिया को परिभाषित करने और अपने EC2 उदाहरण यूआरएल के लिए Endpoint यूआरएल बात करने के लिए सुनिश्चित हो

मैं सिर्फ http://gurujsonrpc.appspot.com/ में एक परीक्षण JSON पोस्ट सेवा उपलब्ध ऑनलाइन का उपयोग किया और यह काम करता जैसा सोचा था।

यहां मेरे परीक्षण API का स्वैगर निर्यात है।

{ 
    "swagger": "2.0", 
    "info": { 
    "version": "2016-04-11T20:46:13Z", 
    "title": "test" 
    }, 
    "host": "c22wfjg4d7.execute-api.eu-west-1.amazonaws.com", 
    "basePath": "/prod", 
    "schemes": [ 
    "https" 
    ], 
    "paths": { 
    "/": { 
     "post": { 
     "produces": [ 
      "application/json" 
     ], 
     "responses": { 
      "200": { 
      "description": "200 response", 
      "schema": { 
       "$ref": "#/definitions/Empty" 
      } 
      } 
     }, 
     "x-amazon-apigateway-integration": { 
      "responses": { 
      "default": { 
       "statusCode": "200" 
      } 
      }, 
      "uri": "http://gurujsonrpc.appspot.com/guru", 
      "httpMethod": "POST", 
      "type": "http" 
     } 
     } 
    } 
    }, 
    "definitions": { 
    "Empty": { 
     "type": "object" 
    } 
    } 
} 
+0

हाँ यह वही है जो मैं उलझन में था। धन्यवाद। – wmfrancia

+0

@wmfrancia तो, क्या आप लोग कह रहे हैं कि, यदि मैं अपने ईसी 2 पर एक PHP फ़ाइल का आह्वान करने के लिए एपीआई गेटवे का उपयोग करना चाहता हूं, तो मुझे वास्तव में "एकीकरण प्रकार: ->" HTTP "चुनना होगा, और" एडब्ल्यूएस सेवा "नहीं? –

संबंधित मुद्दे