簡體   English   中英

將查詢參數從雲端傳遞到 api 網關

[英]pass query params from cloudfront to api gateway

我創建了一個 lambda function ,前面有一個 API 網關和 Cloudfront 分布

在雲端行為中,我禁用了緩存

在此處輸入圖像描述

這是 lambda function:

exports.handler = async (event) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify('rawQueryString is: ' + event.rawQueryString),
    };
    return response;
};

調用 api 網關我在 lambda 響應https://xxx.execute-api.us-east-1.amazonaws.com/中看到查詢字符串

rawQueryString is: '?name=john'

調用雲端分發我在 lambda 響應https://xxx.cloudfront.net/api?name=john 中看不到查詢字符串

rawQueryString is: ''

我嘗試使用“原始請求策略”

在此處輸入圖像描述

但現在當我打電話給https://xxx.cloudfront.net/api?name=john

我明白了

{
    "message": "Forbidden"
}

您應該為您的緩存行為設置原始請求策略 您可以嘗試使用 AWS 托管的 Managed-AllViewer策略或創建新策略以轉發查詢字符串:

在此處輸入圖像描述

暫無
暫無

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

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