配置和使用標準日誌(訪問日誌) - Amazon CloudFront

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

配置和使用標準日誌(訪問日誌)

您可以設定 CloudFront 為建立記錄檔,其中包含有關 CloudFront 接收之每個使用者要求的詳細資訊。這些稱為 標準日誌,也稱為存取日誌。如果啟用標準日誌,也可以指定要 CloudFront 在其中儲存檔案的 Amazon S3 儲存貯體。

您可以在建立或更新分佈時啟用標準日誌。如需詳細資訊,請參閱 日誌

CloudFront 也提供即時記錄,提供即時對分發的要求的相關資訊 (記錄會在收到要求後的幾秒內傳送)。您可以使用即時日誌來監控、分析並根據內容交付效能採取動作。如需詳細資訊,請參閱 使用即時記錄

標準記錄的運作方式

下圖顯示有關物件要求的 CloudFront 記錄資訊的方式。

存取日誌的基本流程

以下說明如何 CloudFront 記錄物件請求的相關資訊,如上圖所示。

  1. 在此圖中,您有兩個網站 A 和 B,以及兩個對應的 CloudFront 發行版。使用者使用與分佈相關聯的 URL 請求物件。

  2. CloudFront 將每個請求路由到適當的邊緣位置。

  3. CloudFront 將有關每個請求的數據寫入特定於該分發的日誌文件中。在這個範例中,有關與分佈 A 相關的請求資訊只會進入分佈 A 的日誌檔案,且有關與分佈 B 相關的請求資訊只會進入分佈 B 的日誌檔案。

  4. CloudFront 定期將分發的日誌檔儲存在啟用記錄時指定的 Amazon S3 儲存貯體中。CloudFront 然後開始將有關後續請求的信息保存在新的日誌文件中以進行分發。

如果在指定的某小時內沒有使用者存取您的內容,您不會收到該小時的任何日誌檔案。

每個日誌檔案中的項目提供單一請求的詳細資訊。如需關於日誌檔案格式的詳細資訊,請參閱標準日誌檔案格式

注意

我們建議您使用這些記錄來瞭解內容要求的性質,而不是對所有要求進行完整記錄。 CloudFront 盡最大努力提供存取記錄。在實際處理請求之後,才可能長時間交付特定請求的日誌項目,在極少數的情況下,有可能完全不會交付日誌項目。當存取記錄中省略記錄項目時,存取記錄檔中的項目數量將與 AWS 帳單和使用情況報告中顯示的使用量不符。

為標準日誌選擇 Amazon S3 儲存貯體

啟用分發的記錄功能時,您可CloudFront 以指定要在其中存放日誌檔的 Amazon S3 儲存貯體。如果您使用 Amazon S3 做為原始伺服器,建議您為日誌檔使用單獨的儲存貯體。

您可以在同一個儲存貯體存放多個分佈的日誌檔案。啟用記錄時,您可以指定檔案名稱的選用字首,以便您可以繼續追蹤哪個日誌檔案與那個分佈關聯。

關於選擇 S3 儲存貯體
  • 您的值區必須啟用存取控制清單 (ACL)。如果您從 CloudFront 主控台選擇未啟用 ACL 的值區,則會出現錯誤訊息。請參閱設定標準記錄和存取記錄檔所需的權限

  • 不要選擇 S3 物件擁有權設定為強制執行儲存貯體擁有者的 Amazon S3 儲存貯體。該設定會停用值區及其中物件的 ACL,以防 CloudFront 止將記錄檔傳送至值區。

  • 不要在下面選擇 Amazon S3 存儲桶 AWS 區域。 CloudFront 不會將標準記錄傳送至下列區域中的儲存貯體:

    • 非洲 (開普敦)

    • 亞太區域 (香港)

    • 亞太區域 (海德拉巴)

    • 亞太區域 (雅加達)

    • 亞太區域 (墨爾本)

    • 加拿大西部 (卡加利)

    • 歐洲 (米蘭)

    • 歐洲 (西班牙)

    • 歐洲 (蘇黎世)

    • 以色列 (特拉維夫)

    • Middle East (Bahrain)

    • 中東 (阿拉伯聯合大公國)

設定標準記錄和存取記錄檔所需的權限

重要

從 2023 年 4 月開始,您必須為用於 CloudFront標準日誌的新 S3 儲存貯體啟用 S3 ACL。您可以在建立值區時啟用 ACL,或為現有值區啟用 ACL。

有關變更的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的新 S3 儲存貯體的預設設定常見問答集AWS 新聞部落格中的 Heads-Up: Amazon S3 Security Changes Are Coming in April of 2023

對於您為記錄檔指定的值區,您 AWS 帳戶 必須具備下列權限:

  • 值區的 ACL 必須授予您FULL_CONTROL。如果您是儲存貯體擁有者,您的帳戶會有預設的該許可。如果您不是,儲存貯體擁有者則必須更新儲存貯體的 ACL。

  • s3:GetBucketAcl

  • s3:PutBucketAcl

儲存貯體的 ACL

當您建立或更新發行版並啟用記錄時, CloudFront 會使用這些權限來更新值區的 ACL,以授與awslogsdelivery帳戶FULL_CONTROL權限。awslogsdelivery 帳戶將日誌檔案寫入儲存貯體。如果您的帳戶沒有更新 ACL 所需的許可,則建立或更新分佈會失敗。

在某些情況下,如果您以程式設計的方式提交請求建立儲存貯體,但有指定名稱的儲存貯體已存在,則 S3 在儲存貯體上重設許可為預設值。如果您設定將存 CloudFront 取日誌儲存在 S3 儲存貯體中,而您停止在該儲存貯體中取得日誌,請檢查儲存貯體的許可以確保 CloudFront 具有必要的權限。

還原儲存貯體的 ACL

如果您移除awslogsdelivery帳戶的許可,將CloudFront 無法將日誌儲存到 S3 儲存貯體。要啟用 CloudFront 以再次開始保存分發的日誌,請執行以下操作之一來恢復 ACL 權限:

  • 禁用分發的日誌記錄 CloudFront,然後再次啟用它。如需詳細資訊,請參閱 日誌

  • 在 Amazon S3 主控台中瀏覽至 S3 儲存貯體,接著新增許可,即可為 awslogsdelivery 手動新增 ACL 許可。若要為 awslogsdelivery 新增 ACL,您必須提供該帳戶的正式 ID,如下所示:

    c4c1ede66af53448b93c283ce9448c4ba468c9432aa01d700d3878632f77d2d0

    如需將 ACL 新增至 S3 儲存貯體的詳細資訊,請參Amazon 簡單儲存服務使用者指南中的設定 ACL

每個日誌檔案的 ACL

除了儲存貯體上的 ACL,每個日誌檔案上都有一個 ACL。每個日誌檔案上儲存貯體擁有者擁有 FULL_CONTROL 許可,分佈擁有者 (如果與儲存貯體擁有者不同) 沒有許可,且 awslogsdelivery 帳戶擁有讀取和寫入許可。

停用記錄

如果您停用記錄功 CloudFront 能,請勿刪除值區或記錄檔的 ACL。如果需要,您可以刪除 ACL。

適用於 SSE-KMS 儲存貯體的必要金鑰政策

如果標準日誌的 S3 儲存貯體透過客戶受管金鑰來使用 AWS KMS keys (SSE-KMS) 實現伺服器端加密,則必須將下列陳述式新增至客戶受管金鑰的金鑰政策。這允許 CloudFront 將日誌文件寫入存儲桶。您無法搭配使用 SSE-KMS, AWS 受管金鑰 因為 CloudFront 無法將記錄檔寫入值區。

{ "Sid": "Allow CloudFront to use the key to deliver logs", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*" }

如果標準日誌的 S3 儲存貯體使用 SSE-KMS 搭配 S3 儲存貯體金鑰,您還需要將 kms:Decrypt 權限新增至政策陳述式。在此情況下,完整的政策陳述式如下所示。

{ "Sid": "Allow CloudFront to use the key to deliver logs", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }

檔案名稱格式

儲存在 Amazon S3 CloudFront 儲存貯體中的每個日誌檔案名稱使用下列檔案名稱格式:

<optional prefix>/<distribution ID>.YYYY-MM-DD-HH.unique-ID.gz

使用國際標準時間 (UTC) 的日期與時間。

例如,如果您使用 example-prefix 做為前綴,且您的分佈 ID 為 EMLARXS9EXAMPLE,則檔案名稱看起來像這樣:

example-prefix/EMLARXS9EXAMPLE.2019-11-14-20.RT4KCN4SGK9.gz

啟用分佈的記錄時,您可以指定檔案名稱的選用字首,以便您可以繼續追蹤哪個日誌檔案與那個分佈關聯。如果您包含記錄檔前置詞的值,且前置詞的結尾不是正斜線 (/),則會自動 CloudFront 附加一個值。如果您的前綴確實以正斜杠結尾,則 CloudFront 不要添加另一個。

檔案名稱末尾的表示 CloudFront 已使用 gzip 壓縮記錄檔。.gz

標準日誌檔案交付的時間

CloudFront 每小時最多可提供數次發佈的標準記錄。一般而言,記錄檔包含指定期間內 CloudFront 收到之要求的相關資訊。 CloudFront 通常會在日誌中出現的事件發生後一小時內,將該期間的日誌檔交付到 Amazon S3 儲存貯體。不過,請注意,一個時段的部分或全部日誌檔案項目有時會延遲高達 24 小時。延遲記錄項目時,會 CloudFront 將它們儲存在記錄檔中,檔案名稱包含要求發生的期間的日期和時間,而不是傳送檔案的日期和時間。

建立記錄檔時,會在記錄檔涵蓋的期間內,從收到物件要求的所有邊緣位置 CloudFront 合併發佈的資訊。

CloudFront 可以在一段時間內保存多個文件,具體取決於 CloudFront 收到與發布相關聯的對象的請求數量。

CloudFront 啟用記錄大約四小時後,便會開始可靠地傳遞存取記錄。該時段之前,您可能會收到幾個存取日誌。

注意

如果在時段內沒有使用者請求您的物件,您便不會收到該時段的任何日誌檔案。

CloudFront 也提供即時記錄,提供即時對分發的要求的相關資訊 (記錄會在收到要求後的幾秒內傳送)。您可以使用即時日誌來監控、分析並根據內容交付效能採取動作。如需詳細資訊,請參閱 使用即時記錄

請求 URL 或標頭超過大小上限時,記錄請求的方式

如果所有要求標頭 (包括 Cookie) 的總大小超過 20 KB,或者 URL 超過 8192 個位元組,則 CloudFront 無法完全剖析要求,也無法記錄要求。因為沒有記錄請求,您將無法在日誌檔案中看到傳回的 HTTP 錯誤狀態代碼。

如果要求主體超過大小上限,則會記錄請求,包含 HTTP 錯誤狀態代碼。

分析標準記錄

由於您每個小時可以收到多個存取日誌,我們建議您將指定期間內收到的所有日誌檔案整合成一個檔案。然後,您可以更準確且完整地分析該期間的資料。

使用 Amazon Athena 是分析存取日誌的其中一種方法。Athena 是一項互動式查詢服務,可協助您分析 AWS 服務的資料,包括 CloudFront. 若要進一步了解,請參閱 Amazon Athena 使用者指南中的查詢亞馬遜 CloudFront 日誌

此外,下面的 AWS 博客文章討論了一些分析訪問日誌的方法。

重要

我們建議您使用這些記錄來瞭解內容要求的性質,而不是對所有要求進行完整記錄。 CloudFront 盡最大努力提供存取記錄。在實際處理請求之後,才可能長時間交付特定請求的日誌項目,在極少數的情況下,有可能完全不會交付日誌項目。當存取記錄中省略記錄項目時,存取記錄檔中的項目數量將與使用量和帳單報告中顯示的 AWS 使用量不符。

編輯標準記錄設定

您可以使用CloudFront 主控台或 CloudFront API 啟用或停用記錄、變更存放日誌的 Amazon S3 儲存貯體,以及變更日誌檔的前置詞。記錄設定的變更在 12 小時內生效。

如需詳細資訊,請參閱下列主題:

  • 若要使用 CloudFront 主控台更新發行版本,請參閱更新分佈

  • 若要使用 CloudFront API 更新分發,請參閱 Amazon CloudFront API 參考UpdateDistribution中的。

從 Amazon S3 儲存貯體刪除標準日誌檔

CloudFront 不會自動從您的 Amazon S3 儲存貯體刪除日誌檔。如需從 Amazon S3 儲存貯體將日誌檔案刪除的詳細資訊,請參閱下列主題:

  • 使用 Amazon S3 主控台:在 Amazon Simple Storage Service 主控台使用者指南中的刪除物件

  • 使用 REST API:DeleteObjectAmazon 簡單存儲服務 API 參考中。

標準日誌檔案格式

日誌檔案中的每個項目會提供有關單一檢視器請求的詳細資訊。日誌檔案具有下列特性:

  • 使用 W3C 延伸日誌檔案格式

  • 包含索引標籤分隔值。

  • 包含不一定按時間順序排列的記錄。

  • 包含兩個標頭行:一個有檔案格式版本,而另一個則列出包含在每個記錄的 W3C 欄位。

  • 在欄位值中包含空格和特定其他字元的 URL 編碼對等字元。

    以下字元會使用 URL 編碼的對等字元:

    • ASCII 字元碼 0 到 32 (含)

    • ASCII 字元碼 127 及更高

    • 下表中的所有字元

    URL 編碼標準定義於 RFC 1738

URL 編碼的值

字元

%3C

<

%3E

>

%22

"

%23

#

%25

%

%7B

{

%7D

}

%7C

|

%5C

\

%5E

^

%7E

~

%5B

[

%5D

]

%60

`

%27

'

%20

空格

標準日誌檔案欄位

分佈的日誌檔案包含 33 個欄位。下列清單依序包含每個欄位名稱,以及該欄位中資訊的描述。

  1. date

    事件發生的日期格式 YYYY-MM-DD。例如,2019-06-30。使用國際標準時間 (UTC) 的日期與時間。對於 WebSocket連線,這是連線關閉的日期。

  2. time

    CloudFront 伺服器完成回應要求的時間 (以 UTC 為單位),例如01:42:39。對於 WebSocket 連接,這是關閉連接的時間。

  3. x-edge-location

    提供請求的節點。一個三字母代碼和任意指派的數字會辨識每個節點,例如 DFW3。三字母代碼通常會對應節點所在地理位置附近機場的國際航空運輸協會 (IATA) 機場代碼。(未來這些縮寫可能會改變。)

  4. sc-bytes

    回應請求時伺服器提供給檢視器的總位元數,包括標頭。對於 WebSocket 連線,這是透過連線從伺服器傳送至用戶端的位元組總數。

  5. c-ip

    檢視器的 IP 地址,該檢視器已執行請求,例如 192.0.2.1832001:0db8:85a3::8a2e:0370:7334。如果檢視器使用 HTTP 代理或負載平衡器傳送請求,此欄位值則為代理或負載平衡器的 IP 地址。另請參閱 x-forwarded-for 欄位。

  6. cs-method

    從檢視器接收到的 HTTP 請求方法。

  7. cs(Host)

    CloudFront 分發的網域名稱 (例如,網域名稱)。

  8. cs-uri-stem

    識別路徑和物件的請求 URL 部分 (例如 /images/cat.jpg)。URL 中包含問號 (?),而且查詢字串不包含在日誌中。

  9. sc-status

    包含以下其中一個值:

    • 伺服器回應的 HTTP 狀態碼 (例如 200)。

    • 000,這表示檢視器在伺服器回應請求之前已關閉連線。如果檢視器在伺服器開始傳送回應之後關閉連線,此欄位會包含伺服器開始傳送回應的 HTTP 狀態碼。

  10. cs(Referer)

    請求中的 Referer 標頭值。發出請求的網域名稱。常見推薦網站,包含搜尋引擎、其他直接連結到您物件的網站,以及您自己的網站。

  11. cs(User-Agent)

    請求中的 User-Agent 標頭值。識別請求來源的 User-Agent 標頭,例如提交請求的裝置與瀏覽器類型,或如果請求來自搜尋引擎,則識別是哪一個搜尋引擎。

  12. cs-uri-query

    請求 URI 的查詢字串部分 (如果有)。

    當 URL 不包含查詢字串時,此欄位的值是一個連字號 (-)。如需詳細資訊,請參閱 根據查詢字串參數快取內容

  13. cs(Cookie)

    請求中的 Cookie 標頭,包括名稱值對和關聯的屬性。

    如果您啟用 Cookie 記錄功能, CloudFront 則無論您選擇轉發到來源的哪些 Cookie,都會在所有請求中記錄 Cookie。當請求不包含 Cookie 標頭時,此欄位的值是一個連字號 (-)。如需 Cookie 的詳細資訊,請參閱根據餅乾緩存內容

  14. x-edge-result-type

    在最後一個位元組離開伺服器之後,伺服器如何將回應分類。在某些情況下,結果類型會在伺服器準備好傳送回應的時間,以及完成傳送回應的時間中發生改變。另請參閱 x-edge-response-result-type 欄位。

    例如,在 HTTP 串流中,假設伺服器在快取中找到串流的區段。在這種情況下,這個欄位的值通常是 Hit。不過,如果在伺服器已交付整個區段之前,檢視器關閉檢視器,則最終結果類型 (此欄位的值) 為 Error

    WebSocket 此欄位的Miss值為,因為內容無法快取,而且會直接代理至原點。

    可能的值包括:

    • Hit – 該伺服器從快取提供物件給檢視器。

    • RefreshHit – 該伺服器在邊緣快取中找到物件,但物件已過期,因此伺服器會聯絡原始伺服器,以確認快取具有該物件的最新版本。

    • Miss – 快取中的物件無法滿足請求,因此會將請求轉送至原始伺服器,並將結果傳回至檢視器。

    • LimitExceeded— 因為超過 CloudFront 配額 (先前稱為限制),因此要求遭到拒絕。

    • CapacityExceeded – 伺服器會傳回 HTTP 503 狀態碼,因為在請求提供物件時沒有足夠的容量。

    • Error – 通常,這表示請求導致客戶端錯誤 (sc-status 欄位的值在 4xx 範圍內) 或伺服器錯誤 (sc-status 欄位的值在 5xx 範圍內)。如果 sc-status 欄位的值是 200,或者如果該欄位的值是 Error 並且 x-edge-response-result-type 欄位的值不是 Error,這代表 HTTP 請求成功,但用戶端在接收所有位元組之前中斷連線。

    • Redirect – 伺服器會根據分佈設定,將檢視器從 HTTP 重新引導至 HTTPS。

  15. x-edge-request-id

    唯一識別要求的不透明字串。 CloudFront 還會在x-amz-cf-id響應頭中發送此字符串。

  16. x-host-header

    包含在該請求 Host 標頭的檢視器值。如果您在物件網址中使用 CloudFront 網域名稱 (例如 d111111abcdef8.cloudfront.net),則此欄位會包含該網域名稱。如果您使用物件 URL 中的備用網域名稱 (CNAME),例如 www.example.com,則此欄位包含此備用網域名稱。

    如果您使用備用網域名稱,請參閱網域名稱的欄位 7 中的 cs(Host),此網域名稱與分佈相關聯。

  17. cs-protocol

    檢視器請求的通訊協定 (httphttpswswss)。

  18. cs-bytes

    檢視器包含在請求中的資料位元組總數,包括標頭。對於 WebSocket 連線,這是連線上從用戶端傳送至伺服器的位元組總數。

  19. time-taken

    從伺服器收到檢視者請求,到伺服器將回應的最後一個位元組寫入輸出佇列的秒數 (以千分之一秒為單位,例如 0.082),這會在伺服器上測量。從檢視器來看,取得完整回應的總時間會比該值來的長,因為網路延遲和 TCP 緩衝。

  20. x-forwarded-for

    如果檢視器使用 HTTP 代理或負載平衡器傳送請求,c-ip 欄位值則為代理或負載平衡器的 IP 地址。在這種情況下,此欄位是產生請求的檢視器 IP 地址。此欄位可包含多個以逗號分隔的 IP 位址。每個 IP 位址可以是 IPv4 位址 (例如,192.0.2.183) 或 IPv6 位址 (例如2001:0db8:85a3::8a2e:0370:7334)。

    如果檢視器無法使用 HTTP 代理或負載平衡器,則此欄位值是一個連字號 (-)。

  21. ssl-protocol

    當請求使用 HTTPS 時,此欄位會包含檢視器和伺服器為傳輸請求和回應而交涉的 SSL/TLS 通訊協定。如需可能值的清單,請參閱 檢視器與之間支援的通訊協定和密碼 CloudFront 中支援的 SSL/TLS 通訊協定。

    當欄位 17 中的 cs-protocolhttp 時,此欄位的值是一個連字號 (-)。

  22. ssl-cipher

    當請求使用 HTTPS 時,此欄位會包含檢視器和伺服器為加密請求和回應而交涉的 SSL/TLS 密碼。如需可能值的清單,請參閱 檢視器與之間支援的通訊協定和密碼 CloudFront 中支援的 SSL/TLS 密碼。

    當欄位 17 中的 cs-protocolhttp 時,此欄位的值是一個連字號 (-)。

  23. x-edge-response-result-type

    在將回應傳回至檢視器之前,伺服器如何將回應分類。另請參閱 x-edge-result-type 欄位。可能的值包括:

    • Hit – 該伺服器從快取提供物件給檢視器。

    • RefreshHit – 該伺服器在邊緣快取中找到物件,但物件已過期,因此伺服器會聯絡原始伺服器,以確認快取具有該物件的最新版本。

    • Miss – 快取中的物件無法滿足請求,因此伺服器會將請求轉送至原始伺服器,並將結果傳回至檢視器。

    • LimitExceeded— 因為超過 CloudFront 配額 (先前稱為限制),因此要求遭到拒絕。

    • CapacityExceeded – 該伺服器會傳回 503 錯誤,因為在請求提供物件時沒有足夠的容量。

    • Error – 通常,這表示請求導致客戶端錯誤 (sc-status 欄位的值在 4xx 範圍內) 或伺服器錯誤 (sc-status 欄位的值在 5xx 範圍內)。

      如果 x-edge-result-type 欄位的值為 Error 且此欄位的值不為 Error,則用戶端在完成下載之前中斷連線。

    • Redirect – 伺服器會根據分佈設定,將檢視器從 HTTP 重新引導至 HTTPS。

  24. cs-protocol-version

    檢視器在請求中指定的 HTTP 版本。可能的值包括 HTTP/0.9HTTP/1.0HTTP/1.1HTTP/2.0HTTP/3.0

  25. fle-status

    為分佈配置欄位層級加密時,此欄位包含可指出要求主體是否已成功處理的代碼。當伺服器成功處理要求主體時,會加密指定欄位中的值,並將請求轉送至原始伺服器,此欄位的值為 Processed。在這種情況下,x-edge-result-type 的值仍然可以表示用戶端或伺服器端的錯誤。

    此欄位可能的值包含:

    • ForwardedByContentType – 伺服器無須剖析與加密便將請求轉送到原始伺服器,因為沒有配置任何內容類型。

    • ForwardedByQueryArgs – 伺服器無需剖析或加密便將請求轉送到原始伺服器,因為請求包含查詢參數,此參數不在欄位層級加密的組態裡。

    • ForwardedDueToNoProfile – 伺服器無需剖析或加密便將請求轉送到原始伺服器,因為在欄位層級加密的組態裡沒有指定設定檔。

    • MalformedContentTypeClientError – 因為 Content-Type 標頭的值不是有效格式,因此伺服器拒絕請求並將 HTTP 400 狀態碼傳回至檢視器。

    • MalformedInputClientError – 伺服器拒絕請求且將 HTTP 400 狀態碼傳回給檢視器,因為要求主體不是有效格式。

    • MalformedQueryArgsClientError – 伺服器拒絕請求且將 HTTP 400 狀態碼傳回給檢視器,因為查詢參數空白或不是有效格式。

    • RejectedByContentType – 伺服器拒絕請求且將 HTTP 400 狀態碼傳回給檢視器,因為在欄位層級加密的組態中沒有指定內容類型。

    • RejectedByQueryArgs – 伺服器拒絕請求且將 HTTP 400 狀態碼傳回給檢視器,因為在欄位層級加密的組態中沒有指定查詢參數。

    • ServerError – 原始伺服器傳回錯誤。

    如果請求超過欄位層級的加密配額 (先前稱為限制),此欄位會包含下列其中一個錯誤碼,而伺服器會將 HTTP 狀態碼傳回給檢視器 400。如需目前欄位層級加密的配額的詳細資訊,請參閱欄位層級加密的配額

    • FieldLengthLimitClientError – 配置為加密的欄位已超過允許的長度上限。

    • FieldNumberLimitClientError – 將分佈配置為加密的請求所包含的欄位數超過了允許的欄位數。

    • RequestLengthLimitClientError – 當配置了欄位層級加密時,要求主體的長度超過允許的長度上限。

    如果不為分佈設定欄位層級加密,則此欄位的值是一個連字號 (-)。

  26. fle-encrypted-fields

    伺服器加密並轉寄至來源的欄位層級加密欄位數目。 CloudFront server 會在加密資料時將已處理的要求串流至來源,因此即使的值為錯誤,此欄位fle-status也可以具有值。

    如果不為分佈設定欄位層級加密,則此欄位的值是一個連字號 (-)。

  27. c-port

    來自檢視器之請求的連接埠號碼。

  28. time-to-first-byte

    接收請求與寫入回應的第一個位元組之間的秒數 (如伺服器上所測量)。

  29. x-edge-detailed-result-type

    此欄位包含與 x-edge-result-type 欄位相同的值,但下列情況除外:

    • 該物件已從 Origin Shield 層提供給檢視器時,此欄位包含 OriginShieldHit

    • 當物件不在 CloudFront 快取中,且回應是由原始請求 Lambda @Edge 函數產生時,此欄位會包含MissGeneratedResponse

    • x-edge-result-type 欄位的值為 Error 時,此欄位會包含下列其中一個值,以及有關該錯誤的詳細資訊:

      • AbortedOrigin – 該伺服器發生原始伺服器問題。

      • ClientCommError – 檢視器的回應因伺服器與檢視器之間發生通訊問題而遭到中斷。

      • ClientGeoBlocked – 分佈設定為拒絕來自檢視者地理位置的請求。

      • ClientHungUpRequest – 檢視器在傳送請求的同時提早停止。

      • Error – 發生錯誤,其錯誤類型不符合任何其他類別。當此伺服器提供來自快取的錯誤回應時,可能會發生此錯誤類型。

      • InvalidRequest – 該伺服器收到來自檢視器的無效請求。

      • InvalidRequestBlocked – 對請求的資源的存取遭到封鎖。

      • InvalidRequestCertificate – 分佈不符合建立 HTTPS 連線的 SSL/TLS 憑證。

      • InvalidRequestHeader — 請求包含無效的標頭。

      • InvalidRequestMethod – 分佈未設定為處理使用的 HTTP 請求方法。當分佈只支援可快取的請求時會發生此情況。

      • OriginCommError – 在連接到原始伺服器或從原始伺服器讀取資料時,請求逾時。

      • OriginConnectError – 該伺服器無法連線到原始伺服器。

      • OriginContentRangeLengthError – 原始伺服器回應中的 Content-Length 標頭不符合 Content-Range 標頭中的長度。

      • OriginDnsError – 該伺服器無法解析原始伺服器的網域名稱。

      • OriginError – 原始伺服器傳回不正確的回應。

      • OriginHeaderTooBigError – 原始伺服器傳回的標頭對邊緣伺服器太大,因而無法處理。

      • OriginInvalidResponseError – 原始伺服器傳回無效的回應。

      • OriginReadError – 該伺服器無法從原始伺服器讀取。

      • OriginWriteError – 該伺服器無法寫入原始伺服器。

      • OriginZeroSizeObjectError – 從原始伺服器傳送大小為零的物件,因而導致錯誤。

      • SlowReaderOriginError – 檢視器讀取訊息過慢,因而導致原始伺服器錯誤。

  30. sc-content-type

    回應的 HTTP Content-Type 標頭值。

  31. sc-content-len

    回應的 HTTP Content-Length 標頭值。

  32. sc-range-start

    當回應包含 HTTP Content-Range 標頭時,此欄位包含範圍起始值。

  33. sc-range-end

    當回應包含 HTTP Content-Range 標頭時,此欄位包含範圍結束值。

以下是分佈的範例日誌檔案:

#Version: 1.0 #Fields: date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer) cs(User-Agent) cs-uri-query cs(Cookie) x-edge-result-type x-edge-request-id x-host-header cs-protocol cs-bytes time-taken x-forwarded-for ssl-protocol ssl-cipher x-edge-response-result-type cs-protocol-version fle-status fle-encrypted-fields c-port time-to-first-byte x-edge-detailed-result-type sc-content-type sc-content-len sc-range-start sc-range-end 2019-12-04 21:02:31 LAX1 392 192.0.2.100 GET d111111abcdef8.cloudfront.net /index.html 200 - Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36 - - Hit SOX4xwn4XV6Q4rgb7XiVGOHms_BGlTAC4KyHmureZmBNrjGdRLiNIQ== d111111abcdef8.cloudfront.net https 23 0.001 - TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 Hit HTTP/2.0 - - 11040 0.001 Hit text/html 78 - - 2019-12-04 21:02:31 LAX1 392 192.0.2.100 GET d111111abcdef8.cloudfront.net /index.html 200 - Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36 - - Hit k6WGMNkEzR5BEM_SaF47gjtX9zBDO2m349OY2an0QPEaUum1ZOLrow== d111111abcdef8.cloudfront.net https 23 0.000 - TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 Hit HTTP/2.0 - - 11040 0.000 Hit text/html 78 - - 2019-12-04 21:02:31 LAX1 392 192.0.2.100 GET d111111abcdef8.cloudfront.net /index.html 200 - Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36 - - Hit f37nTMVvnKvV2ZSvEsivup_c2kZ7VXzYdjC-GUQZ5qNs-89BlWazbw== d111111abcdef8.cloudfront.net https 23 0.001 - TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 Hit HTTP/2.0 - - 11040 0.001 Hit text/html 78 - - 2019-12-13 22:36:27 SEA19-C1 900 192.0.2.200 GET d111111abcdef8.cloudfront.net /favicon.ico 502 http://www.example.com/ Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36 - - Error 1pkpNfBQ39sYMnjjUQjmH2w1wdJnbHYTbag21o_3OfcQgPzdL2RSSQ== www.example.com http 675 0.102 - - - Error HTTP/1.1 - - 25260 0.102 OriginDnsError text/html 507 - - 2019-12-13 22:36:26 SEA19-C1 900 192.0.2.200 GET d111111abcdef8.cloudfront.net / 502 - Mozilla/5.0%20(Windows%20NT%2010.0;%20Win64;%20x64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/78.0.3904.108%20Safari/537.36 - - Error 3AqrZGCnF_g0-5KOvfA7c9XLcf4YGvMFSeFdIetR1N_2y8jSis8Zxg== www.example.com http 735 0.107 - - - Error HTTP/1.1 - - 3802 0.107 OriginDnsError text/html 507 - - 2019-12-13 22:37:02 SEA19-C2 900 192.0.2.200 GET d111111abcdef8.cloudfront.net / 502 - curl/7.55.1 - - Error kBkDzGnceVtWHqSCqBUqtA_cEs2T3tFUBbnBNkB9El_uVRhHgcZfcw== www.example.com http 387 0.103 - - - Error HTTP/1.1 - - 12644 0.103 OriginDnsError text/html 507 - -

標準日誌的費用

標準記錄是的選擇性功能 CloudFront。啟用標準記錄沒有額外的費用。不過,在 Amazon S3 上的存放和存取檔案會依一般 Amazon S3 費用計費 (您可以隨時將它們刪除)。

如需 Amazon S3 定價的詳細資訊,請參閱 Amazon S3 定價

如需有關 CloudFront 定價的詳細資訊,請參閱CloudFront 定價