2016-07-17 10 views
8

मैं नीचे के रूप में एक मौजूदा लैम्ब्डा fucntion से दूसरे लैम्ब्डा समारोह कॉल करने के लिए कोशिश कर रहा हूँ (अजगर 2,7)अजगर पर एक मौजूदा लैम्ब्डा समारोह से एडब्ल्यूएस लैम्ब्डा समारोह कॉल 2.7

from __future__ import print_function 
import boto3 
import json 

lambda_client = boto3.client('lambda') 

def lambda_handler(event, context): 

    invoke_response = lambda_client.invoke(FunctionName="teststack", 
              InvocationType='RequestResponse' 
              ) 
    print(invoke_response) 

    return str(invoke_response) 

मैं बजाय प्रतिक्रिया नीचे gettting कर रहा हूँ एक वास्तविक परिणाम के। जब मैं टेस्टस्टैक लैम्ब्डा को आक्रमण करता हूं तो यह ठीक काम करता है, लेकिन teststack लैम्ब्डा फ़ंक्शन द्वारा लौटाए गए "परीक्षण" की बजाय प्रतिक्रिया से नीचे हो रहा है।

{u'Payload': <botocore.response.StreamingBody object at ****>, 'ResponseMetadata': {'HTTPStatusCode': 200, 'RequestId': '******', 'HTTPHeaders': {'x-amzn-requestid': '******', 'content-length': '155', 'x-amzn-remapped-content-length': '0', 'connection': 'keep-alive', 'date': 'Sun, 17 Jul 2016 21:02:01 GMT', 'content-type': 'application/json'}}, u'StatusCode': 200} 
+1

मैं इस धागे से समाधान मिल गया http://stackoverflow.com/questions/36784925/how-to-get-:

Boto डॉक्स के अनुसार, आप read पद्धति का उपयोग करके वस्तु पढ़ सकते हैं रिटर्न-प्रतिक्रिया-से-aws-lambda-function? rq = 1 धन्यवाद !! – shiv455

+1

संभावित डुप्लिकेट [एडब्ल्यूएस लैम्ब्डा फ़ंक्शन से वापसी प्रतिक्रिया कैसे प्राप्त करें] (http://stackoverflow.com/questions/36784925/how-to-get-return-response-from-aws-lambda- कार्यक्षमता) – Gricey

+0

@Gricey, दूसरा प्रश्न एसिंक्रोनस कॉल (HTTP 202, "इवेंट") से संबंधित है। यहां यह एक सिंक्रोनस कॉल है (HTTP 200, "RequestResponse")। तो ... एक डुप्लिकेट नहीं। कम से कम यह नहीं। –

उत्तर

3

प्रतिक्रिया डेटा आप देख रहे हैं नहीं है, यह सिर्फ एक StreamingBody वस्तु के रूप में Payload अंदर क्या है।

invoke_response['Payload'].read() 
संबंधित मुद्दे