मुझे boto3 AWS लैम्ब्डा का उपयोग करके कॉल करना है। मैं करता हूँ:

client = boto3.client("lambda")

dtime1 = str(datetime.datetime.now())
#After some computations
dtime2 = str(datetime.datetime.now())

elapsed =  time.time() - start_time

payload = {"key_id":"1",
        "data_start":dtime1,
        "data_stop":dtime2,
        "elapsed_t": int(elapsed)}

r = client.invoke(
            FunctionName='mylambda',
            InvocationType='RequestResponse',
            Payload=bytes(str(payload), 'utf-8')
        )

print(r.read())

लेकिन जब मैं इसे चलाता हूं तो एक त्रुटि होती है:

"इनवोक ऑपरेशन को कॉल करते समय एक त्रुटि हुई (InvalidRequestContentException): अनुरोध निकाय को json में पार्स नहीं कर सका: अनपेक्षित वर्ण (''' (कोड 39)): [स्रोत: [बी] पर फ़ील्ड नाम \ n शुरू करने के लिए डबल-कोट की अपेक्षा कर रहा था @4cb02e4e; लाइन: 1, कॉलम: 3]"

मैं अपनी समस्या का समाधान कैसे कर सकता हूं?

अग्रिम में धन्यवाद

2
Manuel Santi 18 सितंबर 2018, 18:55

2 जवाब

सबसे बढ़िया उत्तर

यदि आप किसी JSON ऑब्जेक्ट को एक स्ट्रिंग के रूप में पास करना चाहते हैं, तो आप https://docs.python.org/3/library/json.html

2
mweiss1 18 सितंबर 2018, 19:11

लैम्ब्डा आमंत्रण में पेलोड पास करने पर मैंने जो सभी आधिकारिक दस्तावेज देखे हैं, वे गायब या गलत हैं। यही मेरे लिए काम किया है:

# Construct a dict object
payload = {"key": "value"}

# Invoke the Lambda function, passing the payload
lambda_client.invoke(FunctionName='myFunctionName',
                     InvocationType='RequestResponse',
                     Payload=json.dumps(payload))
1
Mark B 18 सितंबर 2018, 20:29