一般協助程式方法 - Amazon CloudFront

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

一般協助程式方法

此頁面提供 CloudFront Functions 內的其他協助程式方法。若要使用這些方法,請使用 JavaScript 執行期 2.0 建立 CloudFront 函數。

import cf from 'cloudfront';

如需詳細資訊,請參閱適用於 CloudFront Functions 的 JavaScript 執行時期 2.0 功能

edgeLocation 中繼資料

此方法需要使用 cloudfront模組。

注意

您只能將此方法用於檢視器請求函數。對於檢視器-回應函數,此方法為空。

使用此 JavaScript 物件來取得節點機場代碼、預期的區域節點快取區域或用於處理請求的 CloudFront 伺服器 IP 地址。此中繼資料僅適用於檢視器請求事件觸發。

cf.edgeLocation = { name: SEA serverIp: 1.2.3.4 region: us-west-2 }

cf.edgeLocation 物件可以包含下列項目:

name

處理請求之節點的三個字母 IATA 代碼

serverIp

處理請求之伺服器的 IPv4 或 IPv6 地址。

region

如果發生快取遺漏,預期請求使用的 CloudFront Regional Edge Cache (REC)。如果預期的 REC 無法使用,且請求使用備份 REC,則不會更新此值。這不包括正在使用的 Origin Shield 位置,除非主要 REC 和 Origin Shield 是相同的位置。

注意

當 CloudFront 設定為使用原始伺服器容錯移轉時,不會再次叫用 CloudFront Functions。如需詳細資訊,請參閱透過 CloudFront 原始伺服器容錯移轉最佳化高可用性

rawQueryString() 方法

此方法不需要 cloudFront模組。

使用 rawQueryString()方法將未剖析和未變更的查詢字串擷取為字串。

請求

function handler(event) { var request = event.request; const qs = request.rawQueryString(); }

回應

將傳入請求的完整查詢字串傳回為字串值,而不含前置 ?

  • 如果沒有查詢字串,但 ? 存在,則函數會傳回空字串。

  • 如果沒有查詢字串且 ? 不存在,則函數會傳回 undefined

案例 1:傳回完整查詢字串 (沒有前置 ?)

傳入請求 URL: https://example.com/page?name=John&age=25&city=Boston

rawQueryString() 傳回: "name=John&age=25&city=Boston"

案例 2:傳回空字串 (當 ? 存在但沒有參數時)

傳入請求 URL: https://example.com/page?

rawQueryString() 傳回: ""

案例 3:undefined傳回 (沒有查詢字串,也沒有 ?)

傳入請求 URL: https://example.com/page

rawQueryString() 傳回: undefined