好了之後的研究小時的在互聯網上找到的信息比特我有一個解決方案,並希望這是對別人有用。
要傳遞的HTTP報頭是一個不能用AWS API網關提供的默認值,然後訪問經由lambda函數數據並返回,在響應標頭數據按照以下
在步驟「方法請求「轉到」HTTP請求標題「並添加您想要的標題進行捕獲。即。如果我們想要獲取API url的主機值,可以在這裏輸入「Host」。如果你想獲得呼叫者的網站主機使用「Origin」
在「集成請求」中,如果「application/json」不存在,則轉到映射模板並創建一個新模板,如果它只是更新它。
這是重要的部分,傳遞您在步驟1中設置的標題值。要做到這一點,請在模板框中寫下類似以下內容。
{
"origin" : "$input.params().header.Origin",
"host" : "$input.params().header.Host"
}
您也可以傳入您在同一個JSON中定義的任何url參數。
從Lambda訪問數據,如果使用Node作爲Lambda後端代碼,集成請求會將信息傳遞到「Event」參數中。檢索任何頭的值只需在你的處理程序中使用以下內容。
event.origin;
當送回從LAMBDA您迴應API網關,最好是格式化JSON響應。類似的東西。
{
"origin" : event.origin,
"host" : event.host,
"nonHeaderOutput" : "Hello World"
}
在「合併響應」到「頭映射」,如果你需要的頭未列出您可以在「方法響應」添加它,然後它會出現在這裏。在這個例子中,我使用了「Access-Control-Allow-Origin」,並將映射值編輯爲integration.response.body.origin
現在轉到「映射模板並選擇要使用的內容類型,然後編輯模板以訪問加入這個在模板框中
$input.path("$.nonHeaderOutput")
這就是它現在被送到API可以在你的方法響應使用的頭非頭的響應。
感謝您的反饋。我們最近剛剛增加了對通過'Host'a的支持nd'User-Agent'標題本週。你可以嘗試再次訪問這些頭文件嗎?請讓我知道它是否適合你。謝謝,尤爾根 - API網關 – Jurgen