搭配原始伺服器交互 TLS 使用 CloudFront 函數 - Amazon CloudFront

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

搭配原始伺服器交互 TLS 使用 CloudFront 函數

CloudFront Functions 在邊緣提供輕量的無伺服器運算,以自訂內容交付。搭配 CloudFront Functions 使用原始伺服器交互 TLS 時,需要注意有關原始伺服器選取和操作的特定行為和限制。

支援的 CloudFront Functions 操作

CloudFront Functions 可以透過以下方式與啟用 mTLS 的原始伺服器互動:

updateRequestOrigin()

使用啟用 mTLS 的原始伺服器時,updateRequestOrigin() 函數支援有限的修改:

  • 在原始伺服器 mTLS 原始伺服器之間切換:您可以更新請求,以路由到使用原始伺服器 mTLS 的不同原始伺服器,前提是兩個原始伺服器都使用相同的用戶端憑證。這可讓您實作自訂路由邏輯,同時維持交互 TLS 身分驗證。

  • 停用原始伺服器 mTLS:您可以透過在 函數mTLSConfig: 'off'中設定 ,從啟用 mTLS 的原始伺服器切換到非 mTLS 原始伺服器。這可提供靈活性,以根據請求特性有條件地停用交互 TLS 身分驗證。

範例:在具有相同憑證的原始伺服器 mTLS 原始伺服器之間切換

function handler(event) { var request = event.request; // Route to different origin based on request path if (request.uri.startsWith('/api/v2')) { request.origin = { domainName: 'api-v2.example.com', customHeaders: {}, // Both origins must use the same certificate }; } return request; }

範例:有條件停用原始伺服器 mTLS

function handler(event) { var request = event.request; // Disable mTLS for specific paths if (request.uri.startsWith('/public')) { request.origin = { domainName: 'public-origin.example.com', customHeaders: {}, mTLSConfig: 'off' }; } return request; }

不支援的 CloudFront Functions 操作

下列 CloudFront Functions 操作不支援一般可用性啟用 mTLS 的原始伺服器:

selectRequestOriginById()

selectRequestOriginById() 函數無法選取已啟用原始伺服器 mTLS 的原始伺服器。嘗試使用此函數選取已啟用 mTLS 的原始伺服器會導致驗證錯誤。

如果您的使用案例需要使用原始伺服器 mTLS 進行動態原始伺服器選擇,請updateRequestOrigin()改用 ,確保所有目標原始伺服器都使用相同的用戶端憑證。

createRequestOriginGroup()

createRequestOriginGroup() 函數不支援建立包含啟用 mTLS 之原始伺服器的原始伺服器群組。無法透過 CloudFront Functions 動態建立具有原始 mTLS 原始伺服器的原始伺服器群組。

如果您需要具有原始伺服器 mTLS 的原始伺服器容錯移轉功能,請直接在 CloudFront 分佈設定中設定原始伺服器群組,而不是在函數中動態建立原始伺服器群組。