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à.
Metodi di assistente di gestione per la modifica dell’origine
Questa sezione si applica se aggiorni o modifichi dinamicamente l'origine utilizzata nella richiesta all'interno del codice CloudFront Functions. Puoi aggiornare l'origine solo su richiesta del visualizzatore CloudFront Functions. CloudFront Functions dispone di un modulo che fornisce metodi di supporto per aggiornare o modificare dinamicamente l'origine.
Per utilizzare questo modulo, create una CloudFront funzione utilizzando JavaScript runtime 2.0 e includete la seguente dichiarazione nella prima riga del codice della funzione:
import cf from 'cloudfront';
Per ulteriori informazioni, consulta Funzionalità di runtime JavaScript 2.0 per Funzioni CloudFront.
Nota
Le pagine della console Esegui test API ed Esegui test non controllano se si è verificata una modifica dell’origine. Tuttavia, il test garantisce che il codice della funzione venga eseguito senza errori.
Scegli tra CloudFront Functions e Lambda @Edge
Puoi aggiornare le tue origini utilizzando CloudFront Functions o Lambda @Edge.
Quando si utilizza CloudFront Functions per aggiornare le origini, si utilizza il trigger dell'evento Viewer Request, il che significa che questa logica verrà eseguita su ogni richiesta quando viene utilizzata questa funzione. Quando si utilizza Lambda@Edge, le funzionalità di aggiornamento dell’origine si trovano nel trigger dell’evento di richiesta origine, il che significa che questa logica viene eseguita solo in caso di perdita della cache.
La scelta dipende in gran parte dal carico di lavoro e dall'eventuale utilizzo esistente di CloudFront Functions e Lambda @Edge nelle distribuzioni. Le seguenti considerazioni possono aiutarti a decidere se utilizzare CloudFront Functions o Lambda @Edge per aggiornare le tue origini.
CloudFront Functions è particolarmente utile nelle seguenti situazioni:
-
Quando le tue richieste sono dinamiche (il che significa che non possono essere memorizzate nella cache) e andranno sempre all'origine. CloudFront Functions offre prestazioni migliori e costi complessivi inferiori.
-
Se disponi già di una CloudFront funzione di richiesta del visualizzatore che verrà eseguita su ogni richiesta, puoi aggiungere la logica di aggiornamento dell'origine alla funzione esistente.
Per utilizzare CloudFront Functions per aggiornare le origini, consultate i metodi di supporto nei seguenti argomenti.
Lambda@Edge è particolarmente utile nelle seguenti situazioni:
-
Quando si dispone di contenuti altamente memorizzabili nella cache, Lambda @Edge può essere più efficiente in termini di costi perché viene eseguito solo in caso di errori di cache, mentre Functions viene eseguito su ogni richiesta. CloudFront
-
Se disponi già di una funzione Lambda@Edge per le richieste origine, puoi aggiungere la logica di aggiornamento dell’origine alla funzione esistente.
-
Quando la logica di aggiornamento dell’origine richiede il recupero di dati da origini dati di terze parti, come Amazon DynamoDB o Amazon S3.
Per ulteriori informazioni su Lambda@Edge, consulta Personalizzazione al livello di edge con Lambda@Edge.
updateRequestOriginmetodo ()
Utilizza il metodo updateRequestOrigin() per aggiornare le impostazioni di origine per una richiesta. Puoi utilizzare questo metodo per aggiornare le proprietà di origine esistenti per le origini già definite nella distribuzione o per definire una nuova origine per la richiesta. A tale scopo, specifica le proprietà che desideri modificare.
Importante
Tutte le impostazioni non specificate in updateRequestOrigin() erediteranno le stesse impostazioni dalla configurazione dell’origine esistente.
L'origine impostata dal updateRequestOrigin() metodo può essere qualsiasi endpoint HTTP e non è necessario che sia un'origine esistente all'interno della CloudFront distribuzione.
Note
-
Se stai aggiornando un’origine che fa parte di un gruppo di origine, viene aggiornata solo l’origine principale del gruppo di origine. L’origine secondaria rimane invariata. Qualsiasi codice di risposta proveniente dall’origine modificata che soddisfi i criteri di failover attiverà un failover all’origine secondaria.
-
Se stai modificando il tipo di origine e hai abilitato l’OAC, assicurati che il tipo di origine in
originAccessControlConfigcorrisponda al nuovo tipo di origine. -
Non puoi utilizzare il metodo
updateRequestOrigin()per aggiornare VPC Origins. La richiesta non andrà a buon fine.
Richiesta
updateRequestOrigin({origin properties})
Le origin properties possono contenere i seguenti valori:
- domainName (facoltativo)
-
Il nome di dominio dell'origine. Se non è fornito, viene utilizzato il nome di dominio dell’origine assegnata.
- Per origini personalizzate
-
Specifica un nome di dominio DNS, ad esempio
www.example.com. Il nome di dominio non può includere i due punti (:) e non può essere un indirizzo IP. Il nome di dominio può contenere fino a 253 caratteri. - Per origini S3
-
Specifica il nome di dominio DNS del bucket Amazon S3, ad esempio
amzn-s3-demo-bucket.s3.eu-west-1.amazonaws.com. Il nome può contenere fino a 128 caratteri e deve essere tutto in minuscolo.
- HostHeader (opzionale, per origini personalizzate non S3)
-
L'intestazione host da utilizzare quando si effettua la richiesta all'origine. Se questo non viene fornito, viene utilizzato il valore del parametro DomainName. Se non vengono forniti né l'intestazione host né il parametro del nome di dominio, viene utilizzato il nome di dominio dell'origine assegnata o l'intestazione host della richiesta in entrata se la politica di inoltro all'origine (FTO) include l'host. L'intestazione host non può includere i due punti (
:) e non può essere un indirizzo IP. L'intestazione host può contenere fino a 253 caratteri. - originPath (facoltativo)
-
Il percorso di directory sul server di origine in cui la richiesta deve trovare il contenuto. Il percorso può iniziare, ma non deve terminare, con una barra (/). Ad esempio, non deve terminare con
example-path/. Se questo non è fornito, viene utilizzato il percorso di origine dall’origine assegnata.- Per origini personalizzate
-
Il percorso deve essere codificato URL e avere una lunghezza massima di 255 caratteri.
- customHeaders (facoltativo)
-
Puoi includere intestazioni personalizzate con la richiesta specificando un nome di intestazione e una coppia di valori per ogni intestazione personalizzata. Il formato è diverso da quello delle intestazioni di richiesta e risposta nella struttura dell’evento. Utilizza la seguente sintassi della coppia chiave-valore:
{"key1": "value1", "key2": "value2", ...}Non è possibile aggiungere intestazioni non consentite e un’intestazione con lo stesso nome non può essere presente anche nelle
headersdella richiesta in entrata. Il nome dell’intestazione deve essere in minuscolo nel codice della funzione. Quando CloudFront Functions riconverte l'oggetto evento in una richiesta HTTP, la prima lettera di ogni parola nei nomi delle intestazioni viene scritta in maiuscolo e le parole sono separate da un trattino.Ad esempio, se il codice di funzione aggiunge un'intestazione denominata
example-header-name, la CloudFront converte in nella richiesta HTTP.Example-Header-NamePer ulteriori informazioni, consultare Intestazioni personalizzate che CloudFront non può aggiungere alle richieste di origine e Restrizioni sulle funzioni edge.Se questo non viene fornito, vengono utilizzate le intestazioni personalizzate dell’origine assegnata.
- connectionAttempts (facoltativo)
-
Il numero di volte che CloudFront tenta di connettersi all'origine. Il valore minimo è 1 e il valore massimo è 3. Se questo non viene fornito, vengono utilizzati i tentativi di connessione dall’origine assegnata.
- originShield (facoltativo)
-
Ciò abilita o aggiorna CloudFront Origin Shield. L'utilizzo di Origin Shield può contribuire a ridurre il carico sulla tua origine. Per ulteriori informazioni, consulta Usa Amazon CloudFront Origin Shield. Se questo non è fornito, vengono utilizzate le impostazioni Origin Shield dall’origine assegnata.
- enabled (obbligatorio)
-
Espressione booleana per abilitare o disabilitare Origin Shield. Accetta un valore
trueofalse. - region (obbligatorio se abilitato)
-
The Regione AWS for Origin Shield. Specifica la Regione AWS con la latenza più bassa all'origine. Utilizza il codice della regione, non il nome della regione. Ad esempio, utilizza
us-east-2per specificare la regione Stati Uniti orientali (Ohio).Quando abiliti CloudFront Origin Shield, devi specificare Regione AWS il nome. Per un elenco delle Regioni AWS disponibili e informazioni sulla scelta della regione migliore per l’origine, consulta Scegli la AWS regione per Origin Shield.
- originAccessControlConfig (opzionale)
-
L’identificativo univoco di un controllo di accesso origine (OAC) per tale origine. Viene utilizzato solo quando l'origine supporta un CloudFront OAC, come Amazon S3, la URLs funzione MediaStore Lambda e V2. MediaPackage Se questo non viene fornito, vengono utilizzate le impostazioni OAC dell’origine assegnata.
Questo non supporta l’identità di accesso origine (OAI) legacy. Per ulteriori informazioni, consulta Limitazione dell’accesso a un’origine AWS.
- enabled (obbligatorio)
-
Espressione booleana per abilitare o disabilitare OAC. Accetta un valore
trueofalse. - signingBehavior (obbligatorio se abilitato)
-
Speciifica a quali richieste si riferisce (aggiunge le CloudFront informazioni di autenticazione). Specifica
alwaysper il caso d'uso più comune. Per ulteriori informazioni, consulta Impostazioni avanzate per il controllo dell'accesso all'origine.Questo campo può avere uno dei seguenti valori:
-
always— CloudFront firma tutte le richieste di origine, sovrascrivendo l'Authorizationintestazione della richiesta del visualizzatore, se ne esiste una. -
never— CloudFront non firma alcuna richiesta di origine. Questo valore disattiva il controllo di accesso origine per l’origine. -
no-override— Se la richiesta del visualizzatore non contiene l'Authorizationintestazione, CloudFront firma la richiesta di origine. Se la richiesta del visualizzatore contiene l'Authorizationintestazione, CloudFront non firma la richiesta di origine e trasmette invece l'Authorizationintestazione della richiesta del visualizzatore.avvertimento
Per trasmettere l’intestazione
Authorizationdalla richiesta visualizzatore, è necessario aggiungerla a una policy di richiesta origine per tutti i comportamenti cache che utilizzano origini associate a questo controllo di accesso origine. Per ulteriori informazioni, consulta Controllo delle richieste di origine con una policy.
-
- signingProtocol (richiesto se abilitato)
-
Il protocollo di firma dell'OAC, che determina il modo in cui CloudFront firma (autentica) le richieste. L’unico valore valido è
sigv4. - originType (richiesto se abilitato)
-
Il tipo di origine per questo OAC. I valori validi includono
s3,mediapackagev2,mediastoreelambda.
- timeout (facoltativo)
-
I timeout che puoi specificare per quanto tempo CloudFront devono cercare di attendere che le origini rispondano o inviino dati. Se questo non viene fornito, vengono utilizzate le impostazioni di timeout dell’origine assegnata.
Nota
Se non diversamente specificato, questi timeout supportano sia origini personalizzate che origini Amazon S3.
- readTimeout (facoltativo)
-
readTimeoutsi applica a entrambi i seguenti valori:-
Quanto tempo (in secondi) CloudFront attende una risposta dopo l'inoltro di una richiesta all'origine.
-
Quanto tempo (in secondi) CloudFront attende dopo aver ricevuto un pacchetto di risposta dall'origine e prima di ricevere il pacchetto successivo.
Il timeout minimo è di 1 secondo e quello massimo è di 120 secondi. Per ulteriori informazioni, consulta Timeout di risposta.
-
- responseCompletionTimeout (facoltativo)
-
Il tempo (in secondi) durante il quale una richiesta dall' CloudFront origine può rimanere aperta e attendere una risposta. Se la risposta completa non viene ricevuta dall'origine entro quest'ora, CloudFront termina la connessione.
Il valore per
responseCompletionTimeoutdeve essere maggiore o uguale al valore perreadTimeout. Per ulteriori informazioni, consulta Timeout completamento risposta. - keepAliveTimeout (facoltativo)
-
Questo timeout si applica solo alle origini personalizzate, non alle origini Amazon S3. Le configurazioni di origine S3 ignoreranno queste impostazioni.
keepAliveTimeoutIndica per quanto tempo CloudFront deve cercare di mantenere la connessione all'origine dopo aver ricevuto l'ultimo pacchetto della risposta. Il timeout minimo è di 1 secondo e quello massimo è di 120 secondi. Per ulteriori informazioni, consulta Timeout keep-alive (solo origini personalizzate e VPC). - connectionTimeout (facoltativo)
-
Il numero di secondi che CloudFront attendono quando si tenta di stabilire una connessione all'origine. Il timeout minimo è di 1 secondo e quello massimo è di 10 secondi. Per ulteriori informazioni, consulta Timeout di connessione.
- customOriginConfig (facoltativo)
-
Utilizza
customOriginConfigper specificare le impostazioni di connessione per origini che non sono un bucket Amazon S3. C’è un’eccezione: puoi specificare queste impostazioni se il bucket S3 è configurato con hosting di siti web statici. Altri tipi di configurazioni di bucket S3 ignoreranno queste impostazioni. SecustomOriginConfignon viene fornito, vengono utilizzate le impostazioni dell’origine assegnata.- port (obbligatorio)
-
La porta HTTP CloudFront utilizzata per connettersi all'origine. La porta HTTP sulla quale l'origine è in ascolto.
- protocol (obbligatorio)
-
Speciifica il protocollo (HTTP o HTTPS) CloudFront utilizzato per connettersi all'origine. I valori validi sono:
-
http— utilizza CloudFront sempre HTTP per connettersi all'origine -
https— utilizza CloudFront sempre HTTPS per connettersi all'origine
-
- sslProtocols (obbligatorio)
-
Un elenco che specifica il SSL/TLS protocollo minimo da CloudFront utilizzare per la connessione all'origine tramite HTTPS. I valori validi includono
SSLv3,TLSv1,TLSv1.1eTLSv1.2. Per ulteriori informazioni, consulta Protocollo SSL di origine minimo. - ipAddressType (facoltativo)
-
Speciifica il tipo di indirizzo IP CloudFront utilizzato per la connessione all'origine. I valori validi includono
ipv4,ipv6edualstack. La modifica diipAddressTypeè supportata solo quando viene modificata anche la proprietàdomainName.
- sni (opzionale, per origini personalizzate non S3)
-
La Server Name Indication (SNI) è un'estensione del protocollo Transport Layer Security (TLS) con cui un client indica a quale nome host sta tentando di connettersi all'inizio del processo di handshake TLS. Questo valore deve corrispondere a un nome comune su un certificato TLS sul server di origine. In caso contrario, il server di origine potrebbe generare un errore.
Se questo non viene fornito, viene utilizzato il valore del
hostHeaderparametro. Se l'intestazione dell'host non viene fornita, viene utilizzato il valore deldomainNameparametro.Se non vengono forniti né l'intestazione host né il parametro del nome di dominio, viene utilizzato il nome di dominio dell'origine assegnata o l'intestazione host della richiesta in entrata se la politica di inoltro all'origine (FTO) include l'host. L'SNI non può includere i due punti (
:) e non può essere un indirizzo IP. Il codice SNI può contenere fino a 253 caratteri. - allowedCertificateNames (opzionale, per origini personalizzate non S3)
-
È possibile includere un elenco di nomi di certificati validi da utilizzare per CloudFront convalidare la corrispondenza del dominio con il certificato TLS del server di origine durante l'handshake TLS con il server di origine. Questo campo prevede una matrice di nomi di dominio validi e può includere domini wildcard, come.
*.example.comÈ possibile specificare fino a 20 nomi di certificato consentiti. Ogni nome di certificato può contenere fino a 64 caratteri.
Esempio — Aggiornamento dell’origine richiesta Amazon S3
Nell’esempio seguente viene modificata l’origine della richiesta visualizzatore in un bucket S3, abilitato OAC e ripristinate le intestazioni personalizzate inviate all’origine.
cf.updateRequestOrigin({ "domainName" : "amzn-s3-demo-bucket-in-us-east-1.s3.us-east-1.amazonaws.com", "originAccessControlConfig": { "enabled": true, "signingBehavior": "always", "signingProtocol": "sigv4", "originType": "s3" }, // Empty object resets any header configured on the assigned origin "customHeaders": {} });
Esempio — Aggiornamento dell’origine richiesta di Application Load Balancer
Nell’esempio seguente viene modificata l’origine della richiesta visualizzatore in un’origine Application Load Balancer e impostata un’intestazione e timeout personalizzati.
cf.updateRequestOrigin({ "domainName" : "example-1234567890.us-east-1.elb.amazonaws.com", "timeouts": { "readTimeout": 30, "connectionTimeout": 5 }, "customHeaders": { "x-stage": "production", "x-region": "us-east-1" } });
Esempio — Aggiornamento dell’origine con Origin Shield abilitato
Nell’esempio seguente, Origin Shield è abilitato nell’origine della distribuzione. Il codice funzione aggiorna solo il nome di dominio utilizzato per l’origine e omette tutti gli altri parametri opzionali. In questo caso, Origin Shield continuerà a essere utilizzato con il nome di dominio di origine modificato poiché i parametri di Origin Shield non sono stati aggiornati.
cf.updateRequestOrigin({ "domainName" : "www.example.com" });
Esempio — Aggiorna l'intestazione dell'host, l'SNI e i nomi dei certificati consentiti
avvertimento
Nella maggior parte dei casi d'uso, non è necessario utilizzare questo tipo di modifica per le richieste che arrivano all'origine. Questi parametri non devono essere utilizzati a meno che non si comprenda l'impatto della modifica di questi valori.
L'esempio seguente modifica il nome di dominio, l'intestazione dell'host, l'SNI e i certificati consentiti dalla richiesta all'origine.
cf.updateRequestOrigin({ "domainName": "www.example.com", "hostHeader": "test.example.com", "sni": "test.example.net", "allowedCertificateNames": ["*.example.com", "*.example.net"], });
selectRequestOriginByIdmetodo ()
Utilizza selectRequestOriginById() per aggiornare un’origine esistente selezionando un’origine diversa già configurata nella distribuzione. Questo metodo utilizza tutte le stesse impostazioni definite dall’origine aggiornata.
Questo metodo accetta solo origini già definite nella stessa distribuzione utilizzata durante l’esecuzione della funzione. Le origini sono identificate dall’ID origine, ovvero il nome origine definito durante la configurazione dell’origine.
Se nella distribuzione è configurata un’origine VPC, puoi utilizzare questo metodo per aggiornare l’origine all’origine VPC. Per ulteriori informazioni, consulta Limitazione dell’accesso con VPC Origins.
Richiesta
cf.selectRequestOriginById(origin_id, {origin_overrides})
Nell'esempio precedente, origin_id è una stringa che punta al nome di origine di un'origine nella distribuzione che esegue la funzione. Il origin_overrides parametro può contenere quanto segue:
- HostHeader (opzionale, per origini personalizzate non S3)
-
L'intestazione host da utilizzare quando si effettua la richiesta all'origine. Se non viene fornito, viene utilizzato il valore del
domainNameparametro.Se non vengono forniti né l'intestazione host né il parametro del nome di dominio, viene utilizzato il nome di dominio dell'origine assegnata o l'intestazione host della richiesta in entrata se la politica di inoltro all'origine (FTO) include l'host. L'intestazione host non può includere i due punti (
:) e non può essere un indirizzo IP. L'intestazione host può contenere fino a 253 caratteri. - sni (opzionale, per origini personalizzate non S3)
-
La Server Name Indication (SNI) è un'estensione del protocollo Transport Layer Security (TLS) con cui un client indica a quale nome host sta tentando di connettersi all'inizio del processo di handshake TLS. Questo valore deve corrispondere a un nome comune su un certificato TLS sul server di origine. In caso contrario, il server di origine potrebbe generare un errore.
Se questo non viene fornito, viene utilizzato il valore del
hostHeaderparametro. Se l'intestazione dell'host non viene fornita, viene utilizzato il valore deldomainNameparametro.Se non vengono forniti né l'intestazione host né il parametro del nome di dominio, viene utilizzato il nome di dominio dell'origine assegnata o l'intestazione host della richiesta in entrata se la politica di inoltro all'origine (FTO) include l'host. L'SNI non può includere i due punti (
:) e non può essere un indirizzo IP. Il codice SNI può contenere fino a 253 caratteri. - allowedCertificateNames (opzionale, per origini personalizzate non S3)
-
È possibile includere un elenco di nomi di certificati validi da utilizzare per CloudFront convalidare la corrispondenza del dominio con il certificato TLS del server di origine durante l'handshake TLS con il server di origine. Questo campo prevede una matrice di nomi di dominio validi e può includere domini wildcard, come.
*.example.comÈ possibile specificare fino a 20 nomi di certificato consentiti. Ogni nome di certificato può contenere fino a 64 caratteri.
Richiesta
selectRequestOriginById(origin_id)
Nell’esempio precedente, origin_id è una stringa che punta al nome dell’origine nella distribuzione che esegue la funzione.
Esempio — Selezione dell’origine della richiesta Amazon S3
Nell’esempio seguente viene selezionata l’origine denominata amzn-s3-demo-bucket-in-us-east-1 dall’elenco delle origini associate alla distribuzione e applicate le impostazioni di configurazione dell’origine amzn-s3-demo-bucket-in-us-east-1 alla richiesta.
cf.selectRequestOriginById("amzn-s3-demo-bucket-in-us-east-1");
Esempio — Selezione dell’origine della richiesta Application Load Balancer
Nell’esempio seguente viene selezionata un’origine Application Load Balancer denominata myALB-prod dall’elenco delle origini associate alla distribuzione e applicate le impostazioni di configurazione di myALB-prod alla richiesta.
cf.selectRequestOriginById("myALB-prod");
Esempio — Seleziona l'origine della richiesta Application Load Balancer e sovrascrivi l'intestazione dell'host
Come nell'esempio precedente, l'esempio seguente seleziona un'origine Application Load Balancer myALB-prod denominata dall'elenco di origini associate alla distribuzione e applica le impostazioni myALB-prod di configurazione di alla richiesta. Tuttavia, questo esempio sostituisce il valore dell'intestazione dell'host utilizzando. origin_overrides
cf.overrideRequestOrigin("myALB-prod",{ "hostHeader" : "test.example.com" });
createRequestOriginMetodo Group ()
Utilizza createRequestOriginGroup() per definire due origini da utilizzare come gruppo di origine per il failover in scenari che richiedono un’elevata disponibilità.
Un gruppo di origine include due origini (una primaria e una secondaria) e un criterio di failover specificato. Si crea un gruppo di origine per supportare il failover di origine in CloudFront. Quando si crea o si aggiorna un gruppo di origine utilizzando questo metodo, è possibile specificare il gruppo di origine anziché una singola origine. CloudFront eseguirà il failover dall'origine primaria all'origine secondaria, utilizzando i criteri di failover.
Se nella distribuzione è configurata un’origine VPC, puoi utilizzare questo metodo per creare un gruppo di origini utilizzando un’origine VPC. Per ulteriori informazioni, consulta Limitazione dell’accesso con VPC Origins.
Richiesta
createRequestOriginGroup({origin_group_properties})
Nell’esempio precedente, origin_group_properties può contenere quanto segue:
- originIds (obbligatorio)
-
Array di
origin_ids, doveorigin_idè una stringa che punta al nome di origine di un’origine nella distribuzione che esegue la funzione. È necessario fornire due origini come parte dell’array. La prima origine nell’elenco è l’origine primaria, mentre la seconda funge da origine secondaria per il failover. - OriginOverrides (opzionale)
-
È possibile sovrascrivere alcune impostazioni avanzate utilizzando il parametro.
{origin_overrides}Leorigin overridespossono contenere i seguenti valori:- HostHeader (opzionale, per origini personalizzate non S3)
-
L'intestazione host da utilizzare quando si effettua la richiesta all'origine. Se non viene fornito, viene utilizzato il valore del
domainNameparametro.Se non vengono forniti né l'intestazione host né il parametro del nome di dominio, viene utilizzato il nome di dominio dell'origine assegnata o l'intestazione host della richiesta in entrata se la politica di inoltro all'origine (FTO) include l'host. L'intestazione host non può includere i due punti (
:) e non può essere un indirizzo IP. L'intestazione host può contenere fino a 253 caratteri. - sni (opzionale, per origini personalizzate non S3)
-
La Server Name Indication (SNI) è un'estensione del protocollo Transport Layer Security (TLS) con cui un client indica a quale nome host sta tentando di connettersi all'inizio del processo di handshake TLS. Questo valore deve corrispondere a un nome comune su un certificato TLS sul server di origine, altrimenti il server di origine potrebbe generare un errore.
Se questo non viene fornito, viene utilizzato il valore del
hostHeaderparametro. Se l'intestazione dell'host non viene fornita, viene utilizzato il valore deldomainNameparametro.Se non vengono forniti né l'intestazione host né il parametro del nome di dominio, viene utilizzato il nome di dominio dell'origine assegnata o l'intestazione host della richiesta in entrata se la politica di inoltro all'origine (FTO) include l'host. L'SNI non può includere i due punti (
:) e non può essere un indirizzo IP. Il codice SNI può contenere fino a 253 caratteri. - allowedCertificateNames (opzionale, per origini personalizzate non S3)
-
È possibile includere un elenco di nomi di certificati validi da utilizzare per CloudFront convalidare la corrispondenza del dominio con il certificato TLS del server di origine durante l'handshake TLS con il server di origine. Questo campo prevede una matrice di nomi di dominio validi e può includere domini wildcard, come.
*.example.comÈ possibile specificare fino a 20 nomi di certificato consentiti. Ogni nome di certificato può contenere fino a 64 caratteri.
- selectionCriteria (facoltativo)
-
Scegli se utilizzare i criteri di failover di origine
defaulto la logica di failover basata sumedia-quality-score. I valori validi sono:-
defaultutilizza i criteri di failover, in base ai codici di stato specificati infailoverCriteria. Se non si impostaselectionCriterianella funzione, verrà utilizzatodefault. -
media-quality-scoreviene utilizzato quando è attiva la funzionalità di instradamento sensibile ai contenuti multimediali.
-
- failoverCriteria (obbligatorio)
-
Una serie di codici di stato che, se restituiti dall'origine principale, attivano CloudFront il failover sull'origine secondaria. Se si sovrascrive un gruppo di origine esistente, questo array sovrascriverà tutti i codici di stato di failover impostati nella configurazione originale del gruppo di origine.
Quando lo utilizzi
media-quality-scoreselectionCriteria, CloudFront tenterà di indirizzare le richieste in base al punteggio di qualità multimediale. Se l'origine selezionata restituisce un codice di errore impostato in questo array, CloudFront eseguirà il failover sull'altra origine.
Esempio — Creazione del gruppo di origini della richiesta
L'esempio seguente crea un gruppo di origine per una richiesta utilizzando l'origine IDs. Queste origini IDs provengono dalla configurazione del gruppo di origine per la distribuzione utilizzata per eseguire questa funzione.
Facoltativamente, è possibile utilizzare originOverrides per sovrascrivere le configurazioni del gruppo di origine persni, hostHeader e. allowedCertificateNames
import cf from 'cloudfront'; function handler(event) { cf.createRequestOriginGroup({ "originIds": [ { "originId": "origin-1", "originOverrides": { "hostHeader": "hostHeader.example.com", "sni": "sni.example.com", "allowedCertificateNames": ["cert1.example.com", "cert2.example.com", "cert3.example.com"] } }, { "originId": "origin-2", "originOverrides": { "hostHeader": "hostHeader2.example.com", "sni": "sni2.example.com", "allowedCertificateNames": ["cert4.example.com", "cert5.example.com"] } } ], "failoverCriteria": { "statusCodes": [500] } }); event.request.headers['x-hookx'] = { value: 'origin-overrides' }; return event.request; }