[英]AWS Lambda send response to API Gateway
我有一個lambda函數生成一些文本。 這是一個簡單的Twilio應用程序
<Say>Welcome to your conference room!</Say>
<Dial>
<Conference beep="true">waitingRoom</Conference>
</Dial>
當我使用郵遞員發出POST請求時,它會完全輸出。 但我有兩個問題:
我知道它必須對傳入的params映射做一些事情,並將響應從Lambda映射回API網關作為text / xml。 但我可以理解如何做到這一點。
我使用以下模板映射基本上只是刪除引號,它工作:
我很高興不成為唯一一個與AWS Api Gateway斗爭的人:)
據我所知,AWS Api Gateway主要面向JSON。 如果您可以更改返回的響應的內容(使用JSON),也許您可以解決您的問題:
{"say": "Welcome to your conference room!",
"dial": [{
"conference": [{
"beep": "true",
"name": "waitingRoom"
}]
}
]}
然后,您可以使用映射模板功能(在Integration響應屏幕中)映射此內容,方法是將內容類型設置為“application / json”的模板添加,並將映射模板設置為:
<Say>$input.json('say')</Say>
<Dial>
<Conference beep="$input.json('dial.conference.beep')">$input.json('dial.conference.name')</Conference>
</Dial>
這有助於你或我錯過了什么嗎?
要修改響應中的Content-Type,您需要在API網關中配置2個區域:方法響應和集成響應。
在方法響應中,您為200狀態代碼添加Content-Type響應標頭。
在Integration Response中,打開200響應並將Content-Type的值設置為text / xml。
以下是我在回復html內容時寫的一篇文章的截圖。 您的情況聽起來非常相似,因為您希望返回恰好包含xml並且發送了正確的Content-Type標頭的字符串類型。
以下是原始文章的鏈接: http : //kennbrodhagen.net/2016/01/31/how-to-return-html-from-aws-api-gateway-lambda/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.