2015-12-20 7 views
14

मैं URL स्ट्रिंग में VAL1 और val2 पास करना चाहते हैं जब एक लैम्ब्डा समाप्ति बिंदु को GET अनुरोध बनाने कहते हैं:मैं जीईटी अनुरोधों का उपयोग कर एडब्ल्यूएस लैम्ब्डा कार्यों में तर्क कैसे पास करूं?

https://xyz.execute-api.amazonaws.com/prod/test?val1=5&val2=10 

और मैं एक साधारण समारोह है कि दो आदानों, VAL1 और val2 का योग है:

def lambda_handler(event, context): 
    # How do I get at val1 and val2?? 
    return {'result': val1 + val2} 

मैंने एडब्ल्यूएस एपीआई गेटवे पर विधि अनुरोध पर यूआरएल क्वेरी स्ट्रिंग पैरामीटर्स में वैल 1 और वैल 2 जोड़ा है। लेकिन मैं फ़ंक्शन के अंदर उन्हें कैसे एक्सेस करूं?

+0

क्या आपने 'ईवेंट' और 'संदर्भ' दोनों को मुद्रित करने का प्रयास किया है? आप [दस्तावेज़ों में नमूना] पर एक नज़र डाल सकते हैं (http://docs.aws.amazon.com/lambda/latest/dg/python-programming-model-handler-types.html) – albert

+0

यदि आप अपना डेटा पास करते हैं सही ढंग से, आप 'event.val1' जैसी कुछ चीज़ों के साथ' event' ऑब्जेक्ट तक पहुंचने में सक्षम होना चाहिए (कम से कम यह है कि आप जेएस में ऑब्जेक्ट की गुणों को कैसे एक्सेस करते हैं) – JohnAllen

उत्तर

16

एपीआई गेटवे की अनुभाग विधि अनुरोध में क्वेरी स्ट्रिंग पैरामीटर को परिभाषित करने के बाद, आप तो विधि निष्पादन अनुभाग में एक मानचित्रण खाका निर्धारित करने होंगे।

विधि निष्पादन अनुभाग में, मानचित्रण टेम्पलेट्स चयन करें और फिर क्लिक करें मानचित्रण खाका जोड़ें। के लिए सामग्री प्रकारapplication/json दर्ज करें और फिर कि कुछ इस तरह दिखता एक मानचित्रण टेम्पलेट बनाने:

{ 
    "va1": "$input.params('val1')", 
    "val2": "$input.params('val2')" 
} 

यह API गेटवे बता देंगे इनपुट पैरामीटर लेने के लिए (या तो रास्ते पर पारित किया है, या हेडर में, या में क्वेरी पैरामीटर) val1 और val2 कहा जाता है और उन्हें val1 और val2 के रूप में ईवेंट डेटा में लैम्ब्डा फ़ंक्शन में भेज दिया जाता है।

+2

धन्यवाद। मैं जोड़ता हूं कि मैपिंग टेम्पलेट विधि निष्पादन पृष्ठ पर एकीकरण अनुरोध के तहत हैं। यह लिंक उपयोगी था: https://forums.aws.amazon.com/thread.jspa?threadID=192601। अभी भी कुछ समस्याएं हैं, लेकिन कम से कम मुझे पता है कि कहां देखना है। – capitalistcuttle

+1

शायद मुझे इन सभी परतों के लिए कुछ कारण मिलेगा, लेकिन यह कहना है कि पहली नज़र में यह कल्पना की तुलना में काफी अधिक है। पायथन इतना आत्मनिर्भर है कि एडब्ल्यूएस लैम्ब्डा फ़ंक्शन हस्ताक्षर का निरीक्षण करके स्वचालित रूप से मैपिंग बना सकता है। – capitalistcuttle

+2

इस लिंक ने मैपिंग टेम्पलेट को संपादित करते समय विभिन्न प्रकार के पैरामीटर को शामिल करने के तरीके के बारे में कुछ विवरण साफ़ कर दिए: http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html # इनपुट चर संदर्भ – python1981

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