簡體   English   中英

如何通過 API 網關將輸入(事件)參數傳遞到 Lambda

[英]How can I pass input (event) parameters through API Gateway into Lambda

我了解 API 網關(AG)將參數作為 JSON 有效負載傳遞到 Lambda。

我在 AG 中設置了一個帶有 Lambda 代理的 POST API。 我的 lambda function 采用以下參數列表:

{
  "fullname": "Mr xxxxx",
  "clientemail": "xxxxxx@xxx.com",
  "clientphone": "0800 088 8888",
  "locationtext": "Laxxxxxx Hotel , CA, USA",
  "subject": "Gxxxxxrth",
  "appointmentblock_min": "60",
  "buffer": "120",
  "calendar_id": "xxxxx",
  "thedate": "2021-03-2xxxxxx",
  "thetime": "xxxxx"
}

直接在 Lambda 控制台內進行測試。 一切正常。 I map代碼中所有參數使用lambda EVENT object代碼如下:

fullname = event['fullname']  
clientemail = event['clientemail']
appointmentblock_min = int(event['appointmentblock_min'])

... 等等。

所有代碼都可以正常工作。

在頂部添加 API 網關組件......但事情不起作用。

具體問題:map lambda輸入參數如何從API網關(AG)到Z945F3FZF449518A466CZ輸入參數? 我意識到 AG 正在將 JSON 發送到 Lambda。 如何解析此有效負載以提取和使用我需要的參數。

我試圖創建一個包含所有參數的字典:

Event = {}
Event = json.loads(body)
Event = json.loads(event.body)

沒有文檔明確解釋如何通過 AG 獲取事件 object 參數。

任何幫助,將不勝感激。

PS 我希望將數據返回給 AG,如下所示:

return {
            'statusCode': 200,
            'headers': {'Content-Type': 'application/json'},
            'body': json.dumps(out_message),
            'isBase64Encoded': 'false'
        }

謝謝您的考慮。

根據 Lambda 中的 TestEvents,您在 Lambda 上獲得的輸入將是

LambdaTest

因此,您可以將有效負載(或正文)加載為

Event = json.loads(event['body'])

暫無
暫無

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

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