Utilizza i log di accesso in tempo reale - Amazon CloudFront

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizza i log di accesso in tempo reale

Con i log di accesso CloudFront in tempo reale, puoi ottenere informazioni sulle richieste fatte a una distribuzione in tempo reale (i log vengono consegnati entro pochi secondi dalla ricezione delle richieste). È possibile utilizzare i log di accesso in tempo reale per monitorare, analizzare e intraprendere azioni in base alle prestazioni di distribuzione dei contenuti.

CloudFront i registri di accesso in tempo reale sono configurabili. È possibile scegliere:

  • La frequenza di campionamento dei log in tempo reale, ovvero la percentuale di richieste per le quali desideri ricevere i record dei log di accesso in tempo reale.

  • I campi specifici che si desidera ricevere nei record di registro.

  • I comportamenti specifici della cache (pattern di percorso) per i quali si desidera ricevere i registri in tempo reale.

CloudFront i log di accesso in tempo reale vengono forniti al flusso di dati di tua scelta in Amazon Kinesis Data Streams. Puoi creare il tuo consumer Kinesis Data Stream o utilizzare Amazon Data Firehose per inviare i dati di log ad Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon Service (Service) o a un OpenSearch servizio di elaborazione dei OpenSearch log di terze parti.

CloudFront costi per i log di accesso in tempo reale, oltre ai costi sostenuti per l'utilizzo di Kinesis Data Streams. Per ulteriori informazioni sui prezzi, consulta i prezzi di Amazon e CloudFront i prezzi di Amazon Kinesis Data Streams.

Importante

Ti consigliamo di utilizzare i log per comprendere la natura delle richieste per i tuoi contenuti, non come contabilità completa di tutte le richieste. CloudFront fornisce registri di accesso in tempo reale con il massimo impegno. È possibile che la voce di log per una specifica richiesta venga distribuita molto tempo dopo l'elaborazione effettiva della richiesta e, in rari casi, che non venga distribuita affatto. Quando una voce di registro viene omessa dai registri di accesso in tempo reale, il numero di voci nei registri di accesso in tempo reale non corrisponderà all'utilizzo visualizzato nei report di fatturazione e utilizzo. AWS

Crea e utilizza configurazioni dei registri di accesso in tempo reale

Per ottenere informazioni sulle richieste fatte a una distribuzione in tempo reale, puoi utilizzare configurazioni di log di accesso in tempo reale. I log vengono consegnati entro pochi secondi dalla ricezione delle richieste. È possibile creare una configurazione del registro di accesso in tempo reale nella CloudFront console, con AWS Command Line Interface (AWS CLI) o con l' CloudFront API.

Per utilizzare una configurazione del registro degli accessi in tempo reale, è necessario collegarla a uno o più comportamenti della cache in una CloudFront distribuzione.

Console
Per creare una configurazione del registro di accesso in tempo reale
  1. Accedi Console di gestione AWS e apri la pagina dei log nella CloudFront console all'indirizzohttps://console.aws.amazon.com/cloudfront/v4/home?#/logs.

  2. Scegli la scheda Configurazioni in tempo reale.

  3. Scegli Crea configurazione.

  4. Per Nome, immetti un nome per la configurazione.

  5. Per Frequenza di campionamento, immetti la percentuale di richieste per cui desideri ricevere record di log.

  6. Per Fields, scegli i campi da ricevere nei log di accesso in tempo reale.

    • Per includere tutti i campi CMCD per i log, scegli Tutte le chiavi CMCD.

  7. Per Endpoint, scegli uno o più flussi di dati Kinesis per ricevere i log di accesso in tempo reale.

    Nota

    CloudFront i log di accesso in tempo reale vengono forniti al flusso di dati specificato in Kinesis Data Streams. Per leggere e analizzare i log di accesso in tempo reale, puoi creare il tuo utente Kinesis Data Stream Consumer. Puoi anche utilizzare Firehose per inviare i dati di registro ad Amazon S3, Amazon Redshift, OpenSearch Amazon Service o a un servizio di elaborazione dei log di terze parti.

  8. Per Ruolo IAM, scegli Crea nuovo ruolo di servizio o seleziona un ruolo esistente. È necessario disporre dell'autorizzazione per creare i ruoli IAM.

  9. (Facoltativo) Per la distribuzione, scegli un comportamento di CloudFront distribuzione e cache da allegare alla configurazione del log di accesso in tempo reale.

  10. Scegli Crea configurazione.

In caso di successo, la console mostra i dettagli della configurazione del registro di accesso in tempo reale appena creata.

Per ulteriori informazioni, consulta Comprendi le configurazioni dei log di accesso in tempo reale.

AWS CLI

Per creare una configurazione del registro di accesso in tempo reale con AWS CLI, usa il aws cloudfront create-realtime-log-config comando. È possibile utilizzare un file di input per fornire i parametri di input del comando, anziché specificare ogni singolo parametro come input della riga di comando.

Per creare una configurazione del registro di accesso in tempo reale (CLI con file di input)
  1. Utilizzare il comando seguente per creare un file denominato rtl-config.yaml che contiene tutti i parametri di input per il comando create-realtime-log-config.

    aws cloudfront create-realtime-log-config --generate-cli-skeleton yaml-input > rtl-config.yaml
  2. Aprire il file rtl-config.yaml appena creato. Modifica il file per specificare le impostazioni di configurazione del registro di accesso in tempo reale che desideri, quindi salva il file. Tenere presente quanto segue:

    • Per StreamType, l'unico valore valido è Kinesis.

    Per ulteriori informazioni sulle impostazioni di configurazione di lunga durata in tempo reale, vedere Comprendi le configurazioni dei log di accesso in tempo reale.

  3. Utilizzate il comando seguente per creare la configurazione del registro di accesso in tempo reale utilizzando i parametri di input dal rtl-config.yaml file.

    aws cloudfront create-realtime-log-config --cli-input-yaml file://rtl-config.yaml

In caso di successo, l'output del comando mostra i dettagli della configurazione del registro di accesso in tempo reale appena creata.

Per allegare una configurazione del registro di accesso in tempo reale a una distribuzione esistente (CLI con file di input)
  1. Utilizzate il comando seguente per salvare la configurazione di distribuzione per la CloudFront distribuzione che desiderate aggiornare. Sostituisci distribution_ID con l'ID della distribuzione.

    aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
  2. Aprire il file dist-config.yaml appena creato. Modifica il file, apportando le seguenti modifiche a ogni comportamento della cache che stai aggiornando per utilizzare una configurazione del registro di accesso in tempo reale.

    • Nel comportamento della cache, aggiungere un campo denominato RealtimeLogConfigArn. Per il valore del campo, usa l'ARN della configurazione del log di accesso in tempo reale che desideri allegare a questo comportamento della cache.

    • Rinominare il campo ETag in IfMatch, ma non modificare il valore del campo.

    Salvare il file al termine.

  3. Usa il comando seguente per aggiornare la distribuzione in modo da utilizzare la configurazione del log di accesso in tempo reale. Sostituisci distribution_ID con l'ID della distribuzione.

    aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml

In caso di successo, l'output del comando mostra i dettagli della distribuzione appena aggiornata.

API

Per creare una configurazione del registro di accesso in tempo reale con l' CloudFront API, utilizza l'operazione CreateRealtimeLogConfigAPI. Per ulteriori informazioni sui parametri specificati in questa chiamata API, consulta Comprendi le configurazioni dei log di accesso in tempo reale la documentazione di riferimento sull'API per il tuo AWS SDK o altro client API.

Dopo aver creato una configurazione del registro di accesso in tempo reale, puoi collegarla a un comportamento della cache, utilizzando una delle seguenti operazioni API:

  • Per collegarlo a un comportamento di cache in una distribuzione esistente, usa UpdateDistribution.

  • Per collegarlo a un comportamento di cache in una nuova distribuzione, usa CreateDistribution.

Per entrambe queste operazioni API, fornisci l'ARN della configurazione del registro di accesso in tempo reale RealtimeLogConfigArn sul campo, all'interno di un comportamento di cache. Per ulteriori informazioni sugli altri campi specificati in queste chiamate API, Riferimento a tutte le impostazioni di distribuzione consulta la documentazione di riferimento sull'API per il tuo AWS SDK o altro client API.

Comprendi le configurazioni dei log di accesso in tempo reale

Per utilizzare i log di accesso CloudFront in tempo reale, iniziate creando una configurazione dei log di accesso in tempo reale. La configurazione dei log di accesso in tempo reale contiene informazioni sui campi di registro che si desidera ricevere, sulla frequenza di campionamento per i record di log e sul flusso di dati Kinesis a cui si desidera inviare i log.

In particolare, una configurazione dei log di accesso in tempo reale contiene le seguenti impostazioni:

Name

Un nome per identificare la configurazione del registro di accesso in tempo reale.

Velocità di campionamento

La frequenza di campionamento è un numero intero compreso tra 1 e 100 (inclusi) che determina la percentuale di richieste degli spettatori inviate a Kinesis Data Streams come record del registro di accesso in tempo reale. Per includere ogni richiesta di visualizzazione nei log di accesso in tempo reale, specifica 100 per la frequenza di campionamento. Potresti scegliere una frequenza di campionamento inferiore per ridurre i costi, pur continuando a ricevere un campione rappresentativo dei dati delle richieste nei registri di accesso in tempo reale.

Campi

Un elenco dei campi inclusi in ogni record del registro degli accessi in tempo reale. Ogni record di registro può contenere fino a 40 campi ed è possibile scegliere di ricevere tutti i campi disponibili o solo i campi necessari per il monitoraggio e l'analisi delle prestazioni.

L'elenco seguente contiene ogni nome di campo e una descrizione delle informazioni contenute in tale campo. I campi vengono elencati nell'ordine in cui vengono visualizzati nei record di registro che vengono recapitati a Kinesis Data Streams.

I campi 46-63 sono dati comuni dei client multimediali (CMCD) a cui i client dei lettori multimediali possono inviare CDNs con ogni richiesta. Puoi utilizzare questi dati per comprendere ogni richiesta, come il tipo di supporto (audio, video), la velocità di riproduzione e la durata dello streaming. Questi campi verranno visualizzati nei registri di accesso in tempo reale solo se inviati a. CloudFront

  1. timestamp

    Data e ora in cui il server edge ha terminato di rispondere alla richiesta.

  2. c-ip

    L'indirizzo IP del visualizzatore che ha effettuato la richiesta, ad esempio, 192.0.2.183 o 2001:0db8:85a3::8a2e:0370:7334. Se il visualizzatore ha utilizzato un proxy HTTP o un sistema di bilanciamento del carico (load balancer) per inviare la richiesta, il valore di questo campo è l'indirizzo IP del proxy o del sistema di bilanciamento (load balancer) del carico. Vedere anche il campo x-forwarded-for.

  3. s-ip

    L'indirizzo IP del CloudFront server che ha fornito la richiesta, ad esempio, 192.0.2.183 o2001:0db8:85a3::8a2e:0370:7334.

  4. time-to-first-byte

    Il numero di secondi tra la ricezione della richiesta e la scrittura del primo byte della risposta, misurato sul server.

  5. sc-status

    Il codice di stato HTTP della risposta del server (ad esempio, 200).

  6. sc-bytes

    Il numero totale di byte che il server ha inviato al visualizzatore in risposta alla richiesta, incluse le intestazioni. Per le connessioni WebSocket e gRPC, questo è il numero totale di byte inviati dal server al client tramite la connessione.

  7. cs-method

    Il metodo di richiesta HTTP ricevuto dal visualizzatore.

  8. cs-protocol

    Protocollo della richiesta del visualizzatore (http, https, grpcs, ws o wss).

  9. cs-host

    Il valore che il visualizzatore ha incluso nell'intestazione Host per questa richiesta. Se utilizzi il nome di CloudFront dominio nel tuo oggetto URLs (ad esempio d111111abcdef8.cloudfront.net), questo campo contiene quel nome di dominio. Se utilizzi nomi di dominio alternativi () nell'oggetto (come www.example.comCNAMEs), questo campo contiene il nome di dominio URLs alternativo.

  10. cs-uri-stem

    L'intero URL della richiesta, inclusa la stringa di query (se presente), ma senza il nome di dominio. Ad esempio, /images/cat.jpg?mobile=true.

    Nota

    Nei log standard, il valore cs-uri-stem non include la stringa di query.

  11. cs-bytes

    Numero totale di byte di dati che il visualizzatore ha incluso nella richiesta, incluse le intestazioni. Per le connessioni WebSocket e gRPC, questo è il numero totale di byte inviati dal client al server sulla connessione.

  12. x-edge-location

    La edge location che ha servito la richiesta. Ogni edge location è identificata da un codice di tre lettere e da un numero assegnato arbitrariamente (ad esempio,). DFW3 Il codice di tre lettere di solito corrisponde al codice aeroportuale della IATA (International Air Transport Association) per l'aeroporto vicino alla posizione geografica della posizione edge. (Queste abbreviazioni potrebbero cambiare in futuro).

  13. x-edge-request-id

    Una stringa opaca che identifica in modo univoco una richiesta. CloudFront invia anche questa stringa nell'intestazione della x-amz-cf-id risposta.

  14. x-host-header

    Il nome di dominio della CloudFront distribuzione (ad esempio, d111111abcdef8.cloudfront.net).

  15. time-taken

    Il numero di secondi (al millesimo di secondo, ad esempio 0,082) da quando il server riceve la richiesta del visualizzatore a quando il server scrive l'ultimo byte della risposta alla coda di output, misurato sul server. Dal punto di vista del visualizzatore, il tempo totale per ottenere l'oggetto sarà maggiore di questo valore a causa della latenza di rete e del buffering TCP.

  16. cs-protocol-version

    La versione HTTP che il visualizzatore ha specificato nella richiesta. I valori possibili sono HTTP/0.9, HTTP/1.0, HTTP/1.1, HTTP/2.0 e HTTP/3.0.

  17. c-ip-version

    La versione IPv6 IP della richiesta (IPv4 o).

  18. cs-user-agent

    Il valore dell'intestazione User-Agent nella richiesta. L'intestazione User-Agent identifica l'origine della richiesta, ad esempio il tipo di dispositivo e browser che ha inviato la richiesta e, se la richiesta proveniva da un motore di ricerca, il motore di ricerca.

  19. cs-referer

    Il valore dell'intestazione Referer nella richiesta. Questo è il nome del dominio all'origine della richiesta. I referrer comuni includono motori di ricerca, altri siti Web con collegamenti diretti ai tuoi oggetti e il tuo sito Web.

  20. cs-cookie

    L'intestazione Cookie nella richiesta, incluse le coppie nome-valore e gli attributi associati.

    Nota

    Questo campo viene troncato a 800 byte.

  21. cs-uri-query

    L'eventuale parte della stringa di query nell'URL.

  22. x-edge-response-result-type

    Il modo in cui il server edge ha classificato la risposta appena prima di restituire la risposta al visualizzatore. Vedere anche il campo x-edge-result-type. I valori possibili includono:

    • Hit – Il server ha servito l'oggetto al visualizzatore dalla cache.

    • RefreshHit – Il server ha trovato l'oggetto nella cache, ma l'oggetto era scaduto, pertanto il server ha contattato l'origine per verificare che la cache disponesse della versione più recente dell'oggetto.

    • Miss – La richiesta non poteva essere soddisfatta da un oggetto nella cache, per cui il server ha inoltrato la richiesta al server di origine e ha restituito il risultato al visualizzatore.

    • LimitExceeded— La richiesta è stata rifiutata perché è stata superata una CloudFront quota (precedentemente denominata limite).

    • CapacityExceeded: il server ha restituito un errore 503 in quanto non disponeva di capacità sufficiente al momento della richiesta per servire l'oggetto.

    • Error – In genere, ciò significa che la richiesta ha provocato un errore client (il valore del campo sc-status è compreso nell'intervallo 4xx) o un errore del server (il valore del campo sc-status è nell'intervallo 5xx).

      Se il valore del campo x-edge-result-type è Error e il valore di questo campo non è Error, il client è stato disconnesso prima del completamento del download.

    • Redirect – Il server ha reindirizzato il visualizzatore da HTTP a HTTPS in base alle impostazioni di distribuzione.

    • LambdaExecutionError— La funzione Lambda @Edge associata alla distribuzione non è stata completata a causa di un'associazione non valida, di un timeout della funzione, di un problema di AWS dipendenza o di un altro problema di disponibilità generale.

  23. x-forwarded-for

    Se il visualizzatore ha utilizzato un proxy HTTP o un sistema di bilanciamento del carico (load balancer) per inviare la richiesta, il valore di questo campo c-ip è l'indirizzo IP del proxy o del sistema di bilanciamento (load balancer) del carico. In tal caso, questo campo è l'indirizzo IP del visualizzatore all'origine della richiesta. Questo campo può contenere più indirizzi IP separati da virgole. Ogni indirizzo IP può essere un IPv4 indirizzo (ad esempio,192.0.2.183) o un IPv6 indirizzo (ad esempio,). 2001:0db8:85a3::8a2e:0370:7334

  24. ssl-protocol

    Quando la richiesta utilizza HTTPS, questo campo contiene il SSL/TLS protocollo negoziato dal visualizzatore e dal server per trasmettere la richiesta e la risposta. Per un elenco dei valori possibili, consulta i SSL/TLS protocolli supportati in. Protocolli e cifrari supportati tra visualizzatori e CloudFront

  25. ssl-cipher

    Quando la richiesta utilizzava HTTPS, questo campo contiene il SSL/TLS codice negoziato dal visualizzatore e dal server per crittografare la richiesta e la risposta. Per un elenco dei valori possibili, consulta i cifrari supportati in. SSL/TLS Protocolli e cifrari supportati tra visualizzatori e CloudFront

  26. x-edge-result-type

    Come il server ha classificato la risposta dopo che l'ultimo byte ha lasciato il server. In alcuni casi, il tipo di risultato può variare tra il momento in cui il server è pronto a inviare la risposta e il momento in cui ha finito di inviare la risposta. Vedere anche il campo x-edge-response-result-type.

    Ad esempio, in streaming HTTP, si supponga che il server trovi un segmento del flusso nella cache. In questo scenario, il valore di questo campo sarebbe normalmente Hit. Tuttavia, se il visualizzatore chiude la connessione prima che il server abbia distribuito l'intero segmento, il tipo di risultato finale, e quindi il valore di questo campo, è Error.

    WebSocket e le connessioni gRPC avranno un valore Miss per questo campo perché il contenuto non è memorizzabile nella cache e viene inviato tramite proxy direttamente all'origine.

    I valori possibili includono:

    • Hit – Il server ha servito l'oggetto al visualizzatore dalla cache.

    • RefreshHit – Il server ha trovato l'oggetto nella cache, ma l'oggetto era scaduto, pertanto il server ha contattato l'origine per verificare che la cache disponesse della versione più recente dell'oggetto.

    • Miss – La richiesta non è stata soddisfatta da un oggetto nella cache, per cui il server ha inoltrato la richiesta all’origine e ha restituito il risultato al visualizzatore.

    • LimitExceeded— La richiesta è stata rifiutata perché è stata superata una CloudFront quota (precedentemente denominata limite).

    • CapacityExceeded: il server ha restituito un codice di stato HTTP 503 in quanto non disponeva di capacità sufficiente al momento della richiesta per servire l'oggetto.

    • Error – In genere, ciò significa che la richiesta ha provocato un errore client (il valore del campo sc-status è compreso nell'intervallo 4xx) o un errore del server (il valore del campo sc-status è nell'intervallo 5xx). Se il valore del campo sc-status è 200, o se il valore di questo campo è Error e il valore del campo x-edge-response-result-type non è Error, significa che la richiesta HTTP ha avuto esito positivo, ma il client si è disconnesso prima di ricevere tutti i byte.

    • Redirect – Il server ha reindirizzato il visualizzatore da HTTP a HTTPS in base alle impostazioni di distribuzione.

    • LambdaExecutionError— La funzione Lambda @Edge associata alla distribuzione non è stata completata a causa di un'associazione non valida, di un timeout della funzione, di un problema di AWS dipendenza o di un altro problema di disponibilità generale.

  27. fle-encrypted-fields

    Il numero di campi di crittografia a livello di campo che il server ha crittografato e inoltrato all'origine. CloudFront i server trasmettono la richiesta elaborata all'origine mentre crittografano i dati, quindi questo campo può avere un valore anche se il valore di è un errore. fle-status

  28. fle-status

    Quando la crittografia a livello di campo è configurata per una distribuzione, questo campo contiene un codice che indica se il corpo della richiesta è stato elaborato correttamente. Quando il server elabora il corpo della richiesta, crittografa valori nei campi specificati e inoltra la richiesta all'origine, il valore di questo campo è Processed. Il valore di x-edge-result-type in questo caso può ancora indicare un errore lato client o lato server.

    I valori possibili per questo campo sono:

    • ForwardedByContentType – Il server ha inoltrato la richiesta all'origine senza analisi o crittografia poiché non è stato configurato alcun tipo di contenuto.

    • ForwardedByQueryArgs: il server ha inoltrato la richiesta all'origine senza analisi o crittografia in quanto la richiesta contiene un argomento di query che non era nella configurazione per la crittografia a livello di campo.

    • ForwardedDueToNoProfile – Il server ha inoltrato la richiesta all'origine senza analisi o crittografia in quanto nessun profilo è stato specificato nella configurazione per la crittografia a livello di campo.

    • MalformedContentTypeClientError – Il server ha rifiutato la richiesta e ha restituito un codice di stato HTTP 400 al visualizzatore perché il valore dell'intestazione Content-Type era in un formato non valido.

    • MalformedInputClientError – Il server ha rifiutato la richiesta e restituito un codice di stato HTTP 400 al visualizzatore poiché il corpo della richiesta non era in un formato valido.

    • MalformedQueryArgsClientError – Il server ha rifiutato la richiesta e restituito un codice di stato HTTP 400 al visualizzatore poiché un argomento di query era vuoto o non era in un formato valido.

    • RejectedByContentType – Il server ha rifiutato la richiesta e restituito un codice di stato HTTP 400 al visualizzatore poiché nessun tipo di contenuto è stato specificato nella configurazione per la crittografia a livello di campo.

    • RejectedByQueryArgs – Il server ha rifiutato la richiesta e restituito un codice di stato HTTP 400 al visualizzatore poiché nessun argomento di query è stato specificato nella configurazione per la crittografia a livello di campo.

    • ServerError – Il server di origine ha restituito un errore.

    Se la richiesta supera una quota di crittografia a livello di campo (in precedenza definita limite), questo campo contiene uno dei seguenti codici di errore e il server restituisce il codice di stato HTTP 400 al visualizzatore. Per un elenco delle quote correnti della crittografia a livello di campo, consulta Quote della crittografia a livello di campo.

    • FieldLengthLimitClientError – Un campo configurato per essere crittografato quando viene superata la massima lunghezza.

    • FieldNumberLimitClientError – Una richiesta che la distribuzione è configurata per crittografare contiene più campi di quelli consentiti.

    • RequestLengthLimitClientError – La lunghezza del corpo della richiesta supera la lunghezza massima consentita quando è configurata la crittografia a livello di campo.

  29. sc-content-type

    Il valore dell'intestazione HTTP Content-Type della risposta.

  30. sc-content-len

    Il valore dell'intestazione HTTP Content-Length della risposta.

  31. sc-range-start

    Quando la risposta contiene l'intestazione HTTP Content-Range, questo campo contiene il valore iniziale dell'intervallo.

  32. sc-range-end

    Quando la risposta contiene l'intestazione HTTP Content-Range, questo campo contiene il valore finale dell'intervallo.

  33. c-port

    Il numero di porta della richiesta del visualizzatore.

  34. x-edge-detailed-result-type

    Questo campo contiene lo stesso valore del campo x-edge-result-type, tranne nei seguenti casi:

    • Quando l'oggetto è stato servito al visualizzatore dal livello Origin Shield, questo campo contiene OriginShieldHit.

    • Quando l'oggetto non era nella CloudFront cache e la risposta è stata generata da una funzione Lambda @Edge di richiesta di origine, questo campo contiene. MissGeneratedResponse

    • Quando il valore del campo x-edge-result-type è Error, questo campo contiene uno dei seguenti valori con ulteriori informazioni sull'errore:

      • AbortedOrigin – Il server ha riscontrato un problema con l'origine.

      • ClientCommError – La risposta al visualizzatore è stata interrotta a causa di un problema di comunicazione tra il server edge e il visualizzatore.

      • ClientGeoBlocked: la distribuzione è configurata per rifiutare le richieste dalla posizione geografica del visualizzatore.

      • ClientHungUpRequest — Il visualizzatore si è arrestato prematuramente durante l'invio della richiesta.

      • Error: si è verificato un errore per il quale il tipo di errore non si adatta a nessuna delle altre categorie. Questo tipo di errore può verificarsi quando il server edge serve una risposta di errore dalla cache.

      • InvalidRequest – Il server ha ricevuto una richiesta non valida dal visualizzatore.

      • InvalidRequestBlocked — L'accesso alla risorsa richiesta è bloccato.

      • InvalidRequestCertificate— La distribuzione non corrisponde al SSL/TLS certificato per il quale è stata stabilita la connessione HTTPS.

      • InvalidRequestHeader —-La richiesta conteneva un'intestazione non valida.

      • InvalidRequestMethod — La distribuzione non è configurata per gestire il metodo di richiesta HTTP utilizzato. Questo può accadere quando la distribuzione supporta solo le richieste memorizzabili nella cache.

      • OriginCommError - La richiesta è scaduta durante la connessione a un'origine o durante la lettura di dati da un'origine.

      • OriginConnectError: il server non è riuscito a connettersi all'origine.

      • OriginContentRangeLengthError: l'intestazione Content-Length nella risposta dell'origine non corrisponde alla lunghezza dell'intestazione Content-Range.

      • OriginDnsError: il server non è riuscito a risolvere il nome di dominio dell'origine.

      • OriginError — L'origine ha restituito una risposta errata.

      • OriginHeaderTooBigError - Un'intestazione restituita dall'origine è troppo grande per essere elaborata dal server edge.

      • OriginInvalidResponseError — L'origine ha restituito una risposta non valida.

      • OriginReadError: il server non è in grado di leggere dall'origine.

      • OriginWriteError: il server non è in grado di scrivere sull'origine.

      • OriginZeroSizeObjectError — Un oggetto di dimensione zero inviato dall'origine ha generato un errore.

      • SlowReaderOriginError — Il visualizzatore ha letto lentamente il messaggio che ha causato l'errore di origine.

  35. c-country

    Codice paese che rappresenta la posizione geografica del visualizzatore, determinata dal relativo indirizzo IP. Per un elenco dei codici paese, vedere ISO 3166-1 alpha-2.

  36. cs-accept-encoding

    Il valore dell'intestazione Accept-Encoding nella richiesta del visualizzatore.

  37. cs-accept

    Il valore dell'intestazione Accept nella richiesta del visualizzatore.

  38. cache-behavior-path-pattern

    Il modello di percorso che identifica il comportamento della cache corrispondente alla richiesta del visualizzatore.

  39. cs-headers

    Le intestazioni HTTP (nomi e valori) nella richiesta del visualizzatore.

    Nota

    Questo campo viene troncato a 800 byte.

  40. cs-header-names

    I nomi delle intestazioni HTTP (non dei valori) nella richiesta del visualizzatore.

    Nota

    Questo campo viene troncato a 800 byte.

  41. cs-headers-count

    Il numero di intestazioni HTTP nella richiesta del visualizzatore.

  42. primary-distribution-id

    Quando è abilitata l’implementazione continua, questo ID identifica quale distribuzione è quella primaria nella distribuzione corrente.

  43. primary-distribution-dns-name

    Quando la distribuzione continua è abilitata, questo valore mostra il nome di dominio primario correlato alla CloudFront distribuzione corrente (ad esempio, d111111abcdef8.cloudfront.net).

  44. origin-fbl

    Il numero di secondi di latenza del primo byte tra e l'origine. CloudFront

  45. origin-lbl

    Il numero di secondi di latenza dell'ultimo byte tra e l'origine. CloudFront

  46. asn

    Il numero di sistema autonomo (ASN) del visualizzatore.

  47. Campi CMCD nei log di accesso in tempo reale

    Per ulteriori informazioni su questi campi, consulta il documento CTA Specification Web Application Video Ecosystem - Common Media Client Data CTA-5004.

  48. cmcd-encoded-bitrate

    Il bitrate codificato dell’oggetto audio o video richiesto.

  49. cmcd-buffer-length

    La lunghezza del buffer dell’oggetto multimediale richiesto.

  50. cmcd-buffer-starvation

    Se il buffer è stato esaurito in un momento compreso tra la richiesta precedente e la richiesta dell’oggetto. Ciò può causare una situazione di rebuffering del lettore, che può bloccare la riproduzione video o audio.

  51. cmcd-content-id

    Una stringa univoca che identifica il contenuto corrente.

  52. cmcd-object-duration

    La durata di riproduzione dell’oggetto richiesto (in millisecondi).

  53. cmcd-deadline

    Il termine ultimo dal momento della richiesta entro il quale deve essere disponibile il primo campione di questo oggetto, in modo da evitare uno stato di buffer underrun o altri problemi di riproduzione.

  54. cmcd-measured-throughput

    Il throughput tra client e server, come misurato dal client.

  55. cmcd-next-object-request

    Il percorso relativo dell’oggetto successivo richiesto.

  56. cmcd-next-range-request

    Se la richiesta successiva è una richiesta di oggetto parziale, questa stringa indica l’intervallo di byte da richiedere.

  57. cmcd-object-type

    Il tipo di supporto dell’oggetto corrente richiesto.

  58. cmcd-playback-rate

    1 se in tempo reale, 2 se a doppia velocità, 0 se non in riproduzione.

  59. cmcd-requested-maximum-throughput

    Il throughput massimo richiesto che il client ritiene sufficiente per la consegna degli asset.

  60. cmcd-streaming-format

    Il formato di streaming che definisce la richiesta corrente.

  61. cmcd-session-id

    Un GUID che identifica la sessione di riproduzione corrente.

  62. cmcd-stream-type

    Token che identifica la disponibilità del segmento. v = tutti i segmenti sono disponibili. l = i segmenti diventano disponibili nel tempo.

  63. cmcd-startup

    La chiave è inclusa senza un valore se l’oggetto è necessario con urgenza durante lo startup, la ricerca o il ripristino dopo un evento di buffer vuoto.

  64. cmcd-top-bitrate

    La resa con il bitrate più elevato che il client è in grado di riprodurre.

  65. cmcd-version

    La versione di questa specifica utilizzata per interpretare i nomi e i valori delle chiavi definiti. Se questa chiave viene omessa, il client e il server devono interpretare i valori come definiti dalla versione 1.

  66. r-host

    Questo campo viene inviato per le richieste di origine e indica il dominio del server di origine utilizzato per servire l’oggetto. In caso di errori, puoi utilizzare questo campo per trovare l’ultima origine tentata, ad esempio: cd8jhdejh6a.mediapackagev2.us-east-1.amazonaws.com.

  67. sr-reason

    Questo campo fornisce il motivo per cui è stata selezionata l’origine. È vuoto quando una richiesta all’origine primaria ha esito positivo.

    Se si verifica un failover dell’origine, il campo conterrà il codice di errore HTTP che ha causato il failover, ad esempio Failover:403 o Failover:502. In caso di failover dell’origine, se anche il nuovo tentativo di richiesta non va a buon fine e non sono state configurate pagine di errore personalizzate, r-status indica la risposta della seconda origine. Tuttavia, se sono state configurate pagine di errore personalizzate insieme al failover dell’origine, questa conterrà la risposta della seconda origine se la richiesta non è andata a buon fine ed è stata restituita una pagina di errore personalizzata.

    Se non si verifica alcun failover dell’origine ma viene effettuata una selezione dell’origine basata sulla resilienza sensibile alla qualità multimediale (MQAR), ciò verrà registrato come MediaQuality. Per ulteriori informazioni, consulta MQAR (Media Quality-Aware Resiliency).

  68. x-edge-mqcs

    Questo campo indica il Media Quality Confidence Score (MQCS) (intervallo: 0 - 100) per i segmenti multimediali CloudFront recuperati nelle intestazioni di risposta CMSD dalla v2. MediaPackage Questo campo è disponibile per le richieste che corrispondono a un comportamento della cache con un gruppo di origine abilitato per MQAR. CloudFront registra questo campo per i segmenti multimediali che vengono serviti anche dalla sua cache oltre alle richieste di origine. Per ulteriori informazioni, consulta MQAR (Media Quality-Aware Resiliency).

  69. distribution-tenant-id

    L’ID del tenant di distribuzione.

  70. connection-id

    Un identificatore univoco per la connessione TLS.

    È necessario abilitare MTL per le distribuzioni prima di poter ottenere informazioni per questo campo. Per ulteriori informazioni, consulta Visualizzatore TLS reciproco (mTLS).

Endpoint (flusso di dati Kinesis)

L’endpoint contiene informazioni sul flusso di dati Kinesis a cui si desidera inviare log in tempo reale. Fornisci il Amazon Resource Name (ARN) del flusso di dati.

Per ulteriori informazioni sulla creazione di flussi di dati Kinesis, consulta i seguenti argomenti nella Guida per gli sviluppatori di Flusso di dati Amazon Kinesis.

Quando si crea un flusso di dati, è necessario specificare il numero di partizioni. Utilizzare le seguenti informazioni per stimare il numero di frammenti necessari.

Per stimare il numero di frammenti per il flusso di dati Kinesis
  1. Calcola (o stima) il numero di richieste al secondo ricevute dalla distribuzione CloudFront.

    Puoi utilizzare i report CloudFront sull'utilizzo (nella CloudFront console) e le CloudFront metriche (nelle CloudWatch console CloudFront e Amazon) per aiutarti a calcolare le tue richieste al secondo.

  2. Determina la dimensione tipica di un singolo record di registro degli accessi in tempo reale.

    In generale, un singolo record di log è di circa 500 byte. Un record di grandi dimensioni che include tutti i campi disponibili è generalmente di circa 1 KB.

    Se non sei sicuro di quale sia la dimensione del record di log, puoi abilitare i log in tempo reale con una bassa frequenza di campionamento (ad esempio, 1%), quindi calcolare la dimensione media del record utilizzando i dati di monitoraggio nei flussi di dati Kinesis (numero totale di byte in ingresso diviso per il numero totale di record).

  3. Nella pagina dei prezzi di Amazon Kinesis Data Streams Calcolatore dei prezzi AWS, sotto, scegli Crea subito il tuo preventivo personalizzato.

    • Nella calcolatrice, inserisci il numero di richieste (record) al secondo.

    • Immetti la dimensione media dei record di un singolo record di log.

    • Scegli Mostra calcoli.

    Il calcolatore dei prezzi mostra il numero di shard necessari e il costo stimato.

Ruolo IAM

Il ruolo AWS Identity and Access Management (IAM) che consente di CloudFront fornire log di accesso in tempo reale al flusso di dati Kinesis.

Quando crei una configurazione del log di accesso in tempo reale con la CloudFront console, puoi scegliere Crea nuovo ruolo di servizio per consentire alla console di creare il ruolo IAM per te.

Quando crei una configurazione del log di accesso in tempo reale con AWS CloudFormation o l' CloudFront API (AWS CLI o SDK), devi creare tu stesso il ruolo IAM e fornire il ruolo ARN. Per creare autonomamente un ruolo IAM, utilizzare le seguenti policy.

Policy di attendibilità del ruolo IAM

Per utilizzare la seguente policy di fiducia dei ruoli IAM, sostituiscila 111122223333 con il tuo Account AWS numero. L'Conditionelemento di questa policy aiuta a prevenire il confuso problema del vicesceriffo, in quanto CloudFront può assumere questo ruolo solo per conto di una distribuzione del proprio territorio Account AWS.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" } } } ] }

Policy di autorizzazioni del ruolo IAM per un flusso di dati non crittografato

Per utilizzare la seguente politica, sostituiscila arn:aws:kinesis:us-east-2:123456789012:stream/StreamName con l'ARN del flusso di dati Kinesis.

JSON
{ "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" ] } ] }

Policy di autorizzazioni del ruolo IAM per un flusso di dati crittografato

Per utilizzare la seguente policy, sostituiscila arn:aws:kinesis:us-east-2:123456789012:stream/StreamName con l'ARN del tuo flusso di dati Kinesis e con arn:aws:kms:us-east-2:123456789012:key/e58a3d0b-fe4f-4047-a495-ae03cc73d486 l'ARN del tuo. AWS KMS key

JSON
{ "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" ] } ] }

Creazione di un consumer Flussi di dati Kinesis

Per leggere e analizzare i log di accesso in tempo reale, devi creare o utilizzare un consumer Kinesis Data Streams. Quando crei un utente per i log CloudFront in tempo reale, è importante sapere che i campi di ogni record di log di accesso in tempo reale vengono sempre consegnati nello stesso ordine, come indicato nella sezione. Campi Assicurati di creare il tuo consumatore per soddisfare questo ordine fisso.

Ad esempio, si consideri una configurazione dei log di accesso in tempo reale che includa solo questi tre campi: time-to-first-bytesc-status, ec-country. In questo scenario, l'ultimo campo, c-country, è sempre il numero di campo 3 in ogni record di registro. Tuttavia, se in un secondo momento si aggiungono campi alla configurazione del registro degli accessi in tempo reale, la posizione di ogni campo in un record può cambiare.

Ad esempio, se si aggiungono i campi sc-bytes e time-taken alla configurazione del registro degli accessi in tempo reale, questi campi vengono inseriti in ogni record di registro secondo l'ordine mostrato nella Campi sezione. L'ordine risultante di tutti e cinque i campi è time-to-first-byte, sc-status, sc-bytes, time-taken e c-country. Il campo c-country era originariamente il numero 3, ma ora è il campo numero 5. Assicurati che la tua applicazione consumer sia in grado di gestire i campi che cambiano posizione in un record di registro, nel caso in cui aggiungi campi alla configurazione del registro di accesso in tempo reale.

Risolvi i problemi relativi ai log di accesso in tempo reale

Dopo aver creato una configurazione del registro di accesso in tempo reale, potresti scoprire che nessun record (o non tutti i record) viene consegnato a Kinesis Data Streams. In questo caso, è necessario prima verificare che la distribuzione CloudFront stia ricevendo richieste di visualizzatore. In tal caso, è possibile controllare le seguenti impostazioni per continuare la risoluzione dei problemi.

Autorizzazioni del ruolo IAM

Per fornire record di log di accesso in tempo reale al flusso di dati Kinesis, CloudFront utilizza il ruolo IAM nella configurazione dei log di accesso in tempo reale. Assicurarsi che la policy di attendibilità del ruolo e la policy delle autorizzazioni del ruolo corrispondano alle policy mostrate in Ruolo IAM.

Throttling di Kinesis Data Streams

Se CloudFront scrive i record dei log di accesso in tempo reale sul flusso di dati Kinesis più velocemente di quanto il flusso sia in grado di gestire, Kinesis Data Streams potrebbe limitare le richieste da. CloudFront In questo caso, è possibile aumentare il numero di frammenti nel flusso di dati Kinesis. Ogni shard può supportare scritture fino a 1.000 record al secondo, fino a un massimo di 1 MB al secondo in scrittura dei dati.