簡體   English   中英

Python錯誤格式化AWS Lambda請求

[英]Python error formatting an AWS lambda request

我必須使用boto3調用AWS lambda。 我做:

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())

但是當我運行它時發生錯誤:

“調用Invoke操作時發生錯誤(InvalidRequestContentException):無法將請求正文解析為json:意外字符('''(代碼39)):希望雙引號在[源:[B: @ 4cb02e4e;行:1,列:3]“

我該如何解決我的問題?

提前致謝

如果您想將JSON對象作為字符串傳遞,則可以使用https://docs.python.org/3/library/json.html中所述的json.dumps(payload)。

我看到的有關在Lambda調用中傳遞有效負載的所有官方文檔都丟失或不正確。 這對我有用:

# 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))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM