本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用即時記錄
透過 CloudFront 即時記錄,您可以即時取得對分發的要求的相關資訊 (記錄會在收到要求後的幾秒內傳送)。您可以使用即時日誌來監控、分析並根據內容交付效能採取動作。
CloudFront 即時記錄是可設定的。您可以選擇:
-
您可以為即時日誌選擇抽樣率,即要接收即時日誌的請求百分比。
-
您想要在日誌中接收的特定欄位。
-
您想要接收即時日誌的特定快取行為 (路徑模式)。
CloudFront 即時日誌會在 Amazon Kinesis 資料串流中傳送至您選擇的資料串流。您可以建立自己的 Kinesis 資料串流取用者,或使用 Amazon 資料 Firehose 將日誌資料傳送到 Amazon 簡單儲存服務 (Amazon S3)、Amazon Redshift、亞馬遜 OpenSearch 服務 (服OpenSearch 務) 或第三方日誌處理服務。
CloudFront 即時記錄的費用,以及您使用 Kinesis Data Streams 所產生的費用。如需有關定價的詳細資訊,請參閱 Amazon CloudFront 定價
重要
我們建議您使用這些記錄來瞭解內容要求的性質,而不是對所有要求進行完整記錄。 CloudFront 盡最大努力提供即時記錄。在實際處理請求之後,才可能長時間交付特定請求的日誌項目,在極少數的情況下,有可能完全不會交付日誌項目。當即時記錄中省略記錄項目時,即時記錄檔中的項目數量將與 AWS 帳單和使用情況報告中顯示的使用量不符。
建立並使用即時記錄設定
要獲取有關實時分發請求的信息。您可以使用實時日誌配置。記錄會在收到要求後的幾秒鐘內傳送。您可以使用 AWS Command Line Interface (AWS CLI) 或使用 CloudFront API 在 CloudFront 主控台中建立即時記錄設定。
若要使用即時記錄組態,請將其附加至 CloudFront 散發中的一或多個快取行為。
瞭解即時記錄組態
若要使用 CloudFront 即時記錄,請先建立即時記錄組態。即時日誌組態包含您要接收哪些日誌欄位、日誌的抽樣頻率,以及您要傳送日誌的 Kinesis 資料串流的相關資訊。
具體來說,即時日誌組態包含下列組態:
名稱
用來識別即時日誌組態的名稱。
抽樣頻率
抽樣率是介於 1 到 100 之間的整數 (含),可決定以即時日誌形式傳送至 Kinesis Data Streams 的檢視器請求百分比。若要在即時日誌中包含每個檢視器請求,請指定 100 的抽樣頻率。您可以選擇較低的抽樣頻率以降低成本,同時仍然在即時日誌中收到代表性的請求資料樣本。
欄位
包含在每個即時日誌中的欄位清單。每個日誌記錄最多包含 40 個欄位,而且您可以選擇接收所有可用欄位,或只接收監視和分析效能所需的欄位。
下列清單包含每個欄位名稱以及該欄位中資訊的描述。這些欄位會依它們交付給 Kinesis Data Streams 日誌中顯示的順序列出。
字段 46-63 是媒體播放器客戶端可以隨每個請求發送到 CDN 的常見媒體客戶端數據(CMCD)。您可以使用這些資料來瞭解每個要求,例如媒體類型 (音訊、視訊)、播放速率和串流長度。這些欄位只會在傳送至您的即時記錄時顯示 CloudFront。
-
timestamp
邊緣伺服器完成回應請求的日期和時間。
-
c-ip
檢視器的 IP 地址,該檢視器已執行請求,例如
192.0.2.183
或2001:0db8:85a3::8a2e:0370:7334
。如果檢視器使用 HTTP 代理或負載平衡器傳送請求,此欄位值則為代理或負載平衡器的 IP 地址。另請參閱x-forwarded-for
欄位。 -
time-to-first-byte
接收請求與寫入回應的第一個位元組之間的秒數 (如伺服器上所測量)。
-
sc-status
伺服器回應的 HTTP 狀態碼 (例如
200
)。 -
sc-bytes
回應請求時伺服器提供給檢視器的總位元數,包括標頭。對於 WebSocket 連線,這是透過連線從伺服器傳送至用戶端的位元組總數。
-
cs-method
從檢視器接收到的 HTTP 請求方法。
-
cs-protocol
檢視器請求的通訊協定 (
http
、https
、ws
或wss
)。 -
cs-host
包含在該請求
Host
標頭的檢視器值。如果您在物件網址中使用 CloudFront 網域名稱 (例如 d111111abcdef8.cloudfront.net),則此欄位會包含該網域名稱。如果您使用物件 URL 中的備用網域名稱 (CNAME),例如 www.example.com,則此欄位包含此備用網域名稱。 -
cs-uri-stem
整個請求 URL,包括查詢字串 (如果存在),但不包括網域名稱。例如,
/images/cat.jpg?mobile=true
。注意
在標準日誌中,該
cs-uri-stem
值不包括查詢字串。 -
cs-bytes
檢視器包含在請求中的資料位元組總數,包括標頭。對於 WebSocket 連線,這是連線上從用戶端傳送至伺服器的位元組總數。
-
x-edge-location
提供請求的節點。一個三字母代碼和任意指派的數字會辨識每個節點,例如 DFW3。三字母代碼通常會對應節點所在地理位置附近機場的國際航空運輸協會 (IATA) 機場代碼。(未來這些縮寫可能會改變。)
-
x-edge-request-id
唯一識別要求的不透明字串。 CloudFront 還會在
x-amz-cf-id
響應頭中發送此字符串。 -
x-host-header
CloudFront 分發的網域名稱 (例如,網域名稱)。
-
time-taken
從伺服器收到檢視者請求,到伺服器將回應的最後一個位元組寫入輸出佇列的秒數 (以千分之一秒為單位,例如 0.082),這會在伺服器上測量。從檢視器來看,取得完整回應的總時間會比該值來的長,因為網路延遲和 TCP 緩衝。
-
cs-protocol-version
檢視器在請求中指定的 HTTP 版本。可能的值包括
HTTP/0.9
、HTTP/1.0
、HTTP/1.1
、HTTP/2.0
及HTTP/3.0
。 -
c-ip-version
請求的 IP 版本 (IPv4 或 IPv6)。
-
cs-user-agent
請求中的
User-Agent
標頭值。識別請求來源的User-Agent
標頭,例如提交請求的裝置與瀏覽器類型,或如果請求來自搜尋引擎,則識別是哪一個搜尋引擎。 -
cs-referer
請求中的
Referer
標頭值。發出請求的網域名稱。常見推薦網站,包含搜尋引擎、其他直接連結到您物件的網站,以及您自己的網站。 -
cs-cookie
請求中的
Cookie
標頭,包括名稱值對和關聯的屬性。注意
此欄位會截斷為 800 位元組。
-
cs-uri-query
請求 URI 的查詢字串部分 (如果有)。
-
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。
-
-
x-forwarded-for
如果檢視器使用 HTTP 代理或負載平衡器傳送請求,
c-ip
欄位值則為代理或負載平衡器的 IP 地址。在這種情況下,此欄位是產生請求的檢視器 IP 地址。此欄位可包含多個以逗號分隔的 IP 位址。每個 IP 位址可以是 IPv4 位址 (例如,192.0.2.183
) 或 IPv6 位址 (例如2001:0db8:85a3::8a2e:0370:7334
)。 -
ssl-protocol
當請求使用 HTTPS 時,此欄位會包含檢視器和伺服器為傳輸請求和回應而交涉的 SSL/TLS 通訊協定。如需可能值的清單,請參閱 檢視器與之間支援的通訊協定和密碼 CloudFront 中支援的 SSL/TLS 通訊協定。
-
ssl-cipher
當請求使用 HTTPS 時,此欄位會包含檢視器和伺服器為加密請求和回應而交涉的 SSL/TLS 密碼。如需可能值的清單,請參閱 檢視器與之間支援的通訊協定和密碼 CloudFront 中支援的 SSL/TLS 密碼。
-
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。
-
-
fle-encrypted-fields
伺服器加密並轉寄至來源的欄位層級加密欄位數目。 CloudFront server 會在加密資料時將已處理的要求串流至來源,因此即使的值為錯誤,此欄位
fle-status
也可以具有值。 -
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
– 當配置了欄位層級加密時,請求本文的長度超過允許的長度上限。
-
-
sc-content-type
回應的 HTTP
Content-Type
標頭值。 -
sc-content-len
回應的 HTTP
Content-Length
標頭值。 -
sc-range-start
當回應包含 HTTP
Content-Range
標頭時,此欄位包含範圍起始值。 -
sc-range-end
當回應包含 HTTP
Content-Range
標頭時,此欄位包含範圍結束值。 -
c-port
來自檢視器之請求的連接埠號碼。
-
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
– 檢視器讀取訊息過慢,因而導致原始伺服器錯誤。
-
-
-
c-country
國家/地區代碼代表檢視者的地理位置,由檢視器的 IP 地址決定。如需國家/地區代碼的清單,請參閱 ISO 3166-1 alpha-2
。 -
cs-accept-encoding
檢視器請求中的
Accept-Encoding
標頭值。 -
cs-accept
檢視器請求中的
Accept
標頭值。 -
cache-behavior-path-pattern
識別符合檢視器請求之快取行為的路徑模式。
-
cs-headers
檢視器請求中的 HTTP 標頭 (名稱和值)。
注意
此欄位會截斷為 800 位元組。
-
cs-header-names
檢視器請求中 HTTP 標頭 (非值) 的名稱。
注意
此欄位會截斷為 800 位元組。
-
cs-headers-count
檢視器請求中的 HTTP 標頭數目。
-
origin-fbl
CloudFront 與您的來源之間的第一個位元組延遲的秒數。
-
origin-lbl
與原始位元組之間最後位元組延遲 CloudFront 的秒數。
-
asn
檢視器的自治系統編號 (ASN)。
-
primary-distribution-id
啟用持續部署時,此 ID 會識別哪個發行版是目前發行版中的主要發行版。
-
primary-distribution-dns-name
啟用持續部署時,此值會顯示與目前 CloudFront 分發相關的主要網域名稱 (例如,d111111abcdef8.cloudfront.net)。
即時記錄檔中的 CMCD 欄位
如需這些欄位的詳細資訊,請參閱 CTA 規格 Web 應用程式影片生態系統-通用媒體用戶端資料 CTA-5004
文件。 -
cmcd-encoded-bitrate
請求的音頻或視頻對象的編碼比特率。
-
cmcd-buffer-length
請求的媒體對象的緩衝區長度。
-
cmcd-buffer-starvation
無論是緩衝區在前面的請求和對象請求之間的某個點餓了。這可能會導致播放器處於重新緩衝狀態,這可能會阻止視頻或音頻播放。
-
cmcd-content-id
識別目前內容的唯一字串。
-
cmcd-object-duration
要求物件的播放持續時間 (以毫秒為單位)。
-
cmcd-deadline
從請求時間開始,此物件的第一個樣本必須可用的截止日期,以避免緩衝區不足狀態或其他播放問題。
-
cmcd-measured-throughput
用戶端與伺服器之間的輸送量 (由用戶端測量)。
-
cmcd-next-object-request
下一個要求物件的相對路徑。
-
cmcd-next-range-request
如果下一個請求是部分對象請求,則此字符串表示要請求的字節範圍。
-
cmcd-object-type
被請求的當前對象的媒體類型。
-
cmcd-playback-rate
1 如果是實時,2 如果雙速,0 如果不播放。
-
cmcd-requested-maximum-throughput
客戶認為足以交付資產的要求最大輸送量。
-
cmcd-streaming-format
定義目前要求的串流格式。
-
cmcd-session-id
識別目前播放工作階段的 GUID。
-
cmcd-stream-type
記號識別區段可用性。
v
= 所有段都可用。l
= 區段隨著時間的推移變為可用。 -
cmcd-startup
如果在緩衝區空事件之後啟動,搜索或恢復期間緊急需要對象,則密鑰將包含在沒有值的情況下。
-
cmcd-top-bitrate
用戶端可播放的最高位元速率轉譯。
-
cmcd-version
此規格的版本,用於解譯已定義的索引鍵名稱和值。如果省略此機碼,用戶端和伺服器必須將值解譯為版本 1 所定義的值。
端點 (Kinesis Data Streams)
端點包含您要傳送即時記錄的 Kinesis 資料串流的相關資訊。您提供資料串流的 Amazon Resource Name (ARN)。
如需有關建立 Kinesis 資料串流的詳細資訊,請參閱 Amazon Kinesis Data Streams 開發人員指南中的下列主題。
-
建立串流 (使用 AWS SDK for Java)
當您建立資料串流時,您需要指定分片的數目。使用下列資訊來協助您估計需要的碎片數量。
估計 Kinesis 資料串流的碎片數量
-
計算(或估計) CloudFront分佈每秒收到的請求數量。
您可以使用使用CloudFront情況報告
(在 CloudFront 主控台中) 和CloudFront 指標 (在 CloudFront 和 Amazon 主控 CloudWatch 台中) 來協助您計算每秒請求數。 -
確定單一即時日誌記錄的典型大小。
一般而言,單一日誌記錄大約是 500 個位元組。包含所有可用欄位的大型記錄一般約為 1 KB。
如果不確定日誌記錄的大小,您可以啟用取樣率較低 (例如 1%) 的即時日誌,然後使用 Kinesis Data Streams 中的監控資料,來計算平均記錄大小 (總傳入位元組數除以記錄總數)。
-
在 Amazon Kinesis Data Streams 定價頁面的 Pricing calculator
(定價計算工具) 中,輸入每秒請求數 (記錄) 和單一日誌記錄的平均記錄大小。然後選擇 Show calculations (顯示計算結果)。 定價計算工具會顯示您需要的分區數量。(它也會向您顯示預估成本。)
下列範例顯示平均記錄大小為 0.5 KB,以及每秒 50,000 個請求,您需要 50 個分區。
IAM 角色
授予將即時日誌傳遞至 Kinesis 資料串流之 CloudFront 權限的 AWS Identity and Access Management (IAM) 角色。
使用 CloudFront 主控台建立即時記錄組態時,可以選擇 [建立新服務角色],讓主控台為您建立 IAM 角色。
使用或 CloudFront API ( AWS CloudFormation AWS CLI 或 SDK) 建立即時記錄設定時,您必須自行建立 IAM 角色並提供角色 ARN。若要自行建立 IAM 角色,請使用下列政策。
IAM 角色信任原則
若要使用以下 IAM 角色信任政策,請將 111122223333
取代為您的 AWS 帳戶
號碼。此原則中的Condition
元素有助於防止混淆的副問題,因為只 CloudFront 能代表您的 AWS 帳戶.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
111122223333
" } } } ] }
未加密資料串流的 IAM 角色許可原則
若要使用下列原則,請將 arn: aw: 動作:美國東部-2:123456789012: 串流/取代為您的 Kinesis
資料串流的 ARN。StreamName
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStreamSummary", "kinesis:DescribeStream", "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": [ "
arn:aws:kinesis:us-east-2:123456789012:stream/StreamName
" ] } ] }
已加密資料串流的 IAM 角色許可原則
若要使用下列政策,請取代
AWS KMS keyARN:AWS:中國東部 2:123456789012:串流/與您的 Kinesis 動資料串流的 ARN 與您的運動資料串流的 ARN:AW:英文:美國東部 2 StreamName
:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:DescribeStreamSummary", "kinesis:DescribeStream", "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": [ "
arn:aws:kinesis:us-east-2:123456789012:stream/StreamName
" ] }, { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": [ "arn:aws:kms:us-east-2:123456789012:key/e58a3d0b-fe4f-4047-a495-ae03cc73d486
" ] } ] }
建立 Kinesis Data Streams 消費者
若要讀取和分析您的即時記錄,您可以建置或使用 Kinesis Data Streams 取用程式。當您建立 CloudFront 即時記錄檔的取用者時,請務必瞭解每個即時記錄檔記錄中的欄位一律以相同的順序傳遞,如欄位區段所列。請確定建立您的取用程式來適應此固定訂單。
例如,假設只包含下列三個欄位的即時日誌組態: time-to-first-byte
、sc-status
和 c-country
。在這個案例中,最後一個欄位 c-country
,永遠是每個日誌中的欄位編號 3。不過,如果您稍後將欄位新增至即時日誌組態,則日誌中每個欄位的位置可能會變更。
例如,如果您新增欄位 sc-bytes
和 time-taken
即時日誌組態,這些欄位會根據 欄位 區段中顯示的順序插入到每個日誌中。所有五個欄位的產生順序為 time-to-first-byte
、sc-status
、sc-bytes
、time-taken
和 c-country
。該 c-country
欄位原本是欄位編號 3,但現在是欄位編號 5。請確定您的取用者應用程式可以處理變更日誌中位置的欄位,以防您將欄位新增至即時日誌組態。
即時記錄疑難排
建立即時日誌組態之後,您可能會發現沒有任何日誌 (或不是所有日誌) 會交付至 Kinesis Data Streams。在這種情況下,您應該首先驗證您的 CloudFront 分發是否正在接收查看者請求。如果是,您可以檢查下列設定來繼續故障排除。
- IAM 角色許可
-
若要將即時日誌記錄傳遞至 Kinesis 資料串流,請在即時記錄設定中 CloudFront 使用 IAM 角色。請確定角色信任原則和角色許可原則符合 IAM 角色 中顯示的原則。
- Kinesis Data Streams 調節
-
如果 CloudFront 將即時日誌記錄寫入 Kinesis 資料串流的速度超過串流所能處理的速度,Kinesis Data Streams 可能會限制來源的要求。 CloudFront在此情況下,您可以增加 Kinesis 資料串流中的碎片數量。每個碎片可支援最高每秒 1,000 筆記錄的寫入數目,最高每秒 1 MB 的資料寫入上限。