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à.
Usa i log in tempo reale
Con i log 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 registri in tempo reale per monitorare, analizzare e agire in base alle prestazioni di distribuzione dei contenuti.
CloudFront i log in tempo reale sono configurabili. È possibile scegliere:
-
Puoi scegliere la frequenza di campionamento per i log in tempo reale, ossia la percentuale di richieste per cui desideri ricevere log 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 in tempo reale vengono inviati 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 addebiti per i log 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
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 log in tempo reale con la massima diligenza possibile. È 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 in tempo reale, il numero di voci nei registri in tempo reale non corrisponderà all'utilizzo visualizzato nei report di fatturazione e utilizzo. AWS
Argomenti
Crea e utilizza configurazioni di registro in tempo reale
Per ottenere informazioni sulle richieste fatte a una distribuzione in tempo reale, puoi utilizzare configurazioni di registro in tempo reale. I log vengono consegnati entro pochi secondi dalla ricezione delle richieste. È possibile creare una configurazione di log in tempo reale nella CloudFront console, con AWS Command Line Interface (AWS CLI) o con. CloudFront API
Per utilizzare una configurazione di registro in tempo reale, è necessario collegarla a uno o più comportamenti della cache in una CloudFront distribuzione.
Comprendi le configurazioni dei log in tempo reale
Per utilizzare i log CloudFront in tempo reale, iniziate creando una configurazione di log in tempo reale. La configurazione del registro in tempo reale contiene informazioni sui campi di registro che si desidera ricevere, la frequenza di campionamento per i record di registro e il flusso di dati Kinesis in cui si desidera consegnare i registri.
In particolare, una configurazione di registro in tempo reale contiene le seguenti impostazioni:
Nome
Un nome per identificare la configurazione del registro in tempo reale.
Velocità di campionamento
La frequenza di campionamento è un numero intero compreso tra 1 e 100 (incluso) che determina la percentuale di richieste di visualizzatore inviate a Kinesis Data Streams come record di registro in tempo reale. Per includere ogni richiesta di visualizzatore nei registri in tempo reale, specificare 100 per la frequenza di campionamento. È possibile scegliere una frequenza di campionamento inferiore per ridurre i costi pur ricevendo un campione rappresentativo di dati di richiesta nei registri in tempo reale.
Campi
Un elenco di campi inclusi in ogni record di log 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. È possibile utilizzare questi dati per comprendere ogni richiesta, ad esempio il tipo di file multimediale (audio, video), la velocità di riproduzione e la durata dello streaming. Questi campi verranno visualizzati nei registri in tempo reale solo se inviati a. CloudFront
-
timestamp
Data e ora in cui il server edge ha terminato di rispondere alla richiesta.
-
c-ip
L'indirizzo IP del visualizzatore che ha effettuato la richiesta, ad esempio,
192.0.2.183
o2001:0db8:85a3::8a2e:0370:7334
. Se il visualizzatore ha utilizzato un HTTP proxy o un sistema di bilanciamento del carico per inviare la richiesta, il valore di questo campo è l'indirizzo IP del proxy o del sistema di bilanciamento del carico. Vedere anche il campox-forwarded-for
. -
s-ip
L'indirizzo IP del CloudFront server che ha fornito la richiesta, ad esempio,
192.0.2.183
o.2001:0db8:85a3::8a2e:0370:7334
-
time-to-first-byte
Il numero di secondi tra la ricezione della richiesta e la scrittura del primo byte della risposta, misurato sul server.
-
sc-status
Il codice di HTTP stato della risposta del server (ad esempio,
200
). -
sc-bytes
Il numero totale di byte che il server ha inviato al visualizzatore in risposta alla richiesta, incluse le intestazioni. Per WebSocket le connessioni, si tratta del numero totale di byte inviati dal server al client tramite la connessione.
-
cs-method
Il metodo di HTTP richiesta ricevuto dal visualizzatore.
-
cs-protocol
Protocollo della richiesta del visualizzatore (
http
,https
,ws
owss
). -
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. -
cs-uri-stem
L'intera richiestaURL, inclusa la stringa di query (se esistente), 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. -
cs-bytes
Numero totale di byte di dati che il visualizzatore ha incluso nella richiesta, incluse le intestazioni. Per WebSocket le connessioni, si tratta del numero totale di byte inviati dal client al server tramite la connessione.
-
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 a tre lettere corrisponde in genere al codice aeroportuale dell'International Air Transport Association (IATA) per un aeroporto vicino alla posizione geografica della edge location. (Queste abbreviazioni potrebbero cambiare in futuro).
-
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. -
x-host-header
Il nome di dominio della CloudFront distribuzione (ad esempio, d111111abcdef8.cloudfront.net).
-
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 dell'utente, il tempo totale necessario per ottenere la risposta completa sarà più lungo di questo valore a causa della latenza e del buffering della rete. TCP
-
cs-protocol-version
La HTTP versione specificata dal visualizzatore nella richiesta. I valori possibili sono
HTTP/0.9
,HTTP/1.0
,HTTP/1.1
,HTTP/2.0
eHTTP/3.0
. -
c-ip-version
La versione IP della richiesta (IPv4oIPv6).
-
cs-user-agent
Il valore dell'intestazione
User-Agent
nella richiesta. L'intestazioneUser-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. -
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. -
cs-cookie
L'intestazione
Cookie
nella richiesta, incluse le coppie nome-valore e gli attributi associati.Nota
Questo campo viene troncato a 800 byte.
-
cs-uri-query
La parte della richiesta relativa alla stringa di queryURL, se presente.
-
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 camposc-status
è compreso nell'intervallo4xx
) o un errore del server (il valore del camposc-status
è nell'intervallo5xx
).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 in HTTPS base alle impostazioni di distribuzione.
-
-
x-forwarded-for
Se il visualizzatore ha utilizzato un HTTP proxy o un sistema di bilanciamento del carico per inviare la richiesta, il valore del
c-ip
campo è l'indirizzo IP del proxy o del bilanciatore 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
-
ssl-protocol
Quando viene utilizzata la richiestaHTTPS, questo campo contiene i SSL/TLS protocol that the viewer and server negotiated for transmitting the request and response. For a list of possible values, see the supported SSL/TLS protocolli inProtocolli e cifrari supportati tra visualizzatori e CloudFront.
-
ssl-cipher
Quando viene utilizzata la richiestaHTTPS, questo campo contiene i SSL/TLS cipher that the viewer and server negotiated for encrypting the request and response. For a list of possible values, see the supported SSL/TLS codici in. Protocolli e cifrari supportati tra visualizzatori e CloudFront
-
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 HTTP streaming, supponiamo 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 le connessioni 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 respinta perché è stata superata una CloudFront quota (precedentemente denominata limite). -
CapacityExceeded
— Il server ha restituito un codice di stato HTTP 503 perché al momento della richiesta non aveva una capacità sufficiente per servire l'oggetto. -
Error
– In genere, ciò significa che la richiesta ha provocato un errore client (il valore del camposc-status
è compreso nell'intervallo4xx
) o un errore del server (il valore del camposc-status
è nell'intervallo5xx
). Se il valore delsc-status
campo è200
, o se il valore di questo campo èError
e il valore delx-edge-response-result-type
campo noError
, significa che la HTTP richiesta è andata a buon fine 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.
-
-
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
-
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 dix-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'Content-Type
intestazione era in un formato non valido. -
MalformedInputClientError
— Il server ha rifiutato la richiesta e ha restituito un codice di stato HTTP 400 al visualizzatore perché il corpo della richiesta era in un formato non valido. -
MalformedQueryArgsClientError
— Il server ha rifiutato la richiesta e ha restituito un codice di stato HTTP 400 al visualizzatore perché un argomento della query era vuoto o in un formato non valido. -
RejectedByContentType
— Il server ha rifiutato la richiesta e ha restituito un codice di stato HTTP 400 al visualizzatore perché non è stato specificato alcun tipo di contenuto nella configurazione per la crittografia a livello di campo. -
RejectedByQueryArgs
— Il server ha rifiutato la richiesta e ha restituito un codice di stato HTTP 400 al visualizzatore perché non è stato specificato alcun argomento di interrogazione 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 (precedentemente denominata limite), questo campo contiene uno dei seguenti codici di errore e il server restituisce HTTP il codice di stato 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.
-
-
sc-content-type
Il valore dell'intestazione della risposta. HTTP
Content-Type
-
sc-content-len
Il valore dell'HTTP
Content-Length
intestazione della risposta. -
sc-range-start
Quando la risposta contiene l'HTTP
Content-Range
intestazione, questo campo contiene il valore iniziale dell'intervallo. -
sc-range-end
Quando la risposta contiene l'HTTP
Content-Range
intestazione, questo campo contiene il valore finale dell'intervallo. -
c-port
Il numero di porta della richiesta del visualizzatore.
-
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 TLS certificatoSSL/per il quale è stata stabilita la HTTPS connessione. -
InvalidRequestHeader
—-La richiesta conteneva un'intestazione non valida. -
InvalidRequestMethod
— La distribuzione non è configurata per gestire il metodo di HTTP richiesta 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'intestazioneContent-Length
nella risposta dell'origine non corrisponde alla lunghezza dell'intestazioneContent-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.
-
-
-
c-country
Codice paese che rappresenta la posizione geografica del visualizzatore, determinata dal relativo indirizzo IP. Per un elenco dei codici dei paesi, vedere ISO3166-1
alpha-2. -
cs-accept-encoding
Il valore dell'intestazione
Accept-Encoding
nella richiesta del visualizzatore. -
cs-accept
Il valore dell'intestazione
Accept
nella richiesta del visualizzatore. -
cache-behavior-path-pattern
Il modello di percorso che identifica il comportamento della cache corrispondente alla richiesta del visualizzatore.
-
cs-headers
Le HTTP intestazioni (nomi e valori) nella richiesta del visualizzatore.
Nota
Questo campo viene troncato a 800 byte.
-
cs-header-names
I nomi delle HTTP intestazioni (non i valori) nella richiesta del visualizzatore.
Nota
Questo campo viene troncato a 800 byte.
-
cs-headers-count
Il numero di HTTP intestazioni nella richiesta del visualizzatore.
-
origin-fbl
Il numero di secondi di latenza del primo byte tra e CloudFront l'origine.
-
origin-lbl
Il numero di secondi di latenza dell'ultimo byte tra e l'origine. CloudFront
-
asn
Il numero di sistema autonomo (ASN) del visualizzatore.
-
primary-distribution-id
Quando la distribuzione continua è abilitata, questo ID identifica quale distribuzione è la principale nella distribuzione corrente.
-
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).
CMCDcampi nei log in tempo reale
Per ulteriori informazioni su questi campi, consultate il documento CTASpecification Web Application Video Ecosystem - Common Media Client Data CTA -5004
. -
cmcd-encoded-bitrate
Il bitrate codificato dell'oggetto audio o video richiesto.
-
cmcd-buffer-length
La lunghezza del buffer dell'oggetto multimediale richiesto.
-
cmcd-buffer-starvation
Se il buffer si è esaurito a un certo punto tra la richiesta precedente e la richiesta dell'oggetto. Ciò può far sì che il player si trovi in una statistica di rebuffering, che può bloccare la riproduzione di video o audio.
-
cmcd-content-id
Una stringa univoca che identifica il contenuto corrente.
-
cmcd-object-duration
La durata di riproduzione dell'oggetto richiesto (in millisecondi).
-
cmcd-deadline
Scadenza dal momento della richiesta entro cui deve essere disponibile il primo campione di questo oggetto, in modo da evitare uno stato di esecuzione insufficiente del buffer o altri problemi di riproduzione.
-
cmcd-measured-throughput
La velocità effettiva tra client e server, misurata dal client.
-
cmcd-next-object-request
Il percorso relativo del successivo oggetto richiesto.
-
cmcd-next-range-request
Se la richiesta successiva è una richiesta parziale di oggetto, questa stringa indica l'intervallo di byte da richiedere.
-
cmcd-object-type
Il tipo di supporto dell'oggetto corrente richiesto.
-
cmcd-playback-rate
1 se in tempo reale, 2 se a doppia velocità, 0 se non è in riproduzione.
-
cmcd-requested-maximum-throughput
Il throughput massimo richiesto che il cliente ritiene sufficiente per la consegna degli asset.
-
cmcd-streaming-format
Il formato di streaming che definisce la richiesta corrente.
-
cmcd-session-id
A che GUID identifica la sessione di riproduzione corrente.
-
cmcd-stream-type
Token che identifica la disponibilità del segmento.
v
= tutti i segmenti sono disponibili.l
= i segmenti diventano disponibili nel tempo. -
cmcd-startup
La chiave viene inclusa senza un valore se l'oggetto è necessario urgentemente durante l'avvio, la ricerca o il ripristino dopo un evento di vuotamento del buffer.
-
cmcd-top-bitrate
La resa in bitrate più elevata che il client può riprodurre.
-
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.
Endpoint (Kinesis Data Streams)
L'endpoint contiene informazioni sui Kinesis Data Streams a cui si desidera inviare i log in tempo reale. Fornisci l'Amazon Resource Name (ARN) del flusso di dati.
Per ulteriori informazioni sulla creazione di un Kinesis Data Streams, consulta i seguenti argomenti nella Amazon Kinesis Data Streams Developer Guide.
-
Esegui le operazioni di base di Kinesis Data Streams utilizzando AWS CLI
-
Creazione di uno stream (utilizza il) AWS SDK for Java
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
-
Calcola (o stima) il numero di richieste al secondo ricevute dalla tua CloudFront distribuzione.
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. -
Determina la dimensione tipica di un singolo record di log 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).
-
Nella pagina dei prezzi di Amazon Kinesis Data Streams
AWS Pricing Calculator, sotto, scegli Crea subito il tuo preventivo personalizzato. Nella calcolatrice, inserisci il numero di richieste (record) al secondo.
Immettete la dimensione media dei record di un singolo record di registro.
Scegli Mostra calcoli.
Il calcolatore dei prezzi mostra il numero di frammenti necessari e il costo stimato.
IAMruolo
Il ruolo AWS Identity and Access Management (IAM) che CloudFront autorizza a fornire log in tempo reale al flusso di dati Kinesis.
Quando crei una configurazione di log in tempo reale con la CloudFront console, puoi scegliere Crea nuovo ruolo di servizio per consentire alla console di creare il IAM ruolo per te.
Quando crei una configurazione di log in tempo reale con AWS CloudFormation AWS CLI o CloudFront API (orSDK), devi creare tu stesso il IAM ruolo e fornire il ruoloARN. Per creare il IAM ruolo da soli, utilizza le seguenti politiche.
Criterio di trust dei ruoli IAM
Per utilizzare la seguente politica di attendibilità dei IAM ruoli, sostituisci 111122223333
con il tuo Account AWS
numero. L'Condition
elemento contenuto in questa politica aiuta a prevenire il confuso problema del vicesceriffo perché CloudFront può assumere questo ruolo solo per conto di una distribuzione del suo territorio Account AWS.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudfront.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
111122223333
" } } } ] }
IAMpolitica di autorizzazione dei ruoli per un flusso di dati non crittografato
Per utilizzare la seguente politica, sostituisci arn:aws:kinesis:us-east-2:123456789012:stream/StreamName
con il tuo flusso ARN di dati Kinesis.
{ "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
" ] } ] }
IAMpolitica di autorizzazione dei ruoli per un flusso di dati crittografato
Per utilizzare la seguente politica, sostituisci arn:aws:kinesis:us-east-2:123456789012:stream/StreamName
con il ARN flusso di dati Kinesis e arn:aws:kms:us-east-2:123456789012:key/e58a3d0b-fe4f-4047-a495-ae03cc73d486
con i ARN tuoi. AWS KMS key
{ "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
" ] } ] }
Crea un consumatore Kinesis Data Streams
Per leggere e analizzare i log in tempo reale, si crea o si utilizza un consumer Kinesis Data Streams. Quando crei un consumatore per i log CloudFront in tempo reale, è importante sapere che i campi di ogni record di log in tempo reale vengono sempre forniti 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 di registro in tempo reale che include solo i tre campi seguenti: time-to-first-byte
, sc-status
e c-country
. In questo scenario, l'ultimo campo, c-country
, è sempre il numero di campo 3 in ogni record di registro. Tuttavia, se successivamente si aggiungono campi alla configurazione del registro in tempo reale, il posizionamento di ciascun campo in un record può cambiare.
Ad esempio, se si aggiungono i campi sc-bytes
e time-taken
alla configurazione del registro in tempo reale, questi campi vengono inseriti in ogni record di registro in base all'ordine mostrato nella sezione Campi. 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. Assicurarsi che l'applicazione consumer sia in grado di gestire i campi che cambiano posizione in un record di registro, nel caso in cui si aggiungono campi alla configurazione del registro in tempo reale.
Risolvi i problemi relativi ai log in tempo reale
Dopo aver creato una configurazione di log in tempo reale, è possibile che non vengano recapitati record (o non tutti i record) a Kinesis Data Streams. In questo caso, devi prima verificare che la tua CloudFront distribuzione riceva le richieste degli spettatori. In tal caso, è possibile controllare le seguenti impostazioni per continuare la risoluzione dei problemi.
- IAMautorizzazioni di ruolo
-
Per fornire record di log in tempo reale al flusso di dati Kinesis, CloudFront utilizza il IAM ruolo nella configurazione dei log in tempo reale. Assicurarsi che la policy di attendibilità del ruolo e la policy delle autorizzazioni del ruolo corrispondano alle policy mostrate in IAMruolo.
- Throttling di Kinesis Data Streams
-
Se CloudFront scrive record di log in tempo reale nel 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.