本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
一般協助程式方法
此頁面提供 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=BostonrawQueryString()傳回:"name=John&age=25&city=Boston" - 案例 2:傳回空字串 (當
?存在但沒有參數時) -
傳入請求 URL:
https://example.com/page?rawQueryString()傳回:"" - 案例 3:
undefined傳回 (沒有查詢字串,也沒有?) -
傳入請求 URL:
https://example.com/pagerawQueryString()傳回:undefined