Associazione delle funzioni alle distribuzioni
Per utilizzare una funzione con una distribuzione, è necessario associare la funzione a uno o più comportamenti cache nella distribuzione. Puoi associare una funzione a più comportamenti della cache in più distribuzioni.
Puoi associare una funzione con uno qualsiasi di questi elementi:
-
Un comportamento cache esistente
-
Un nuovo comportamento cache in una distribuzione esistente
-
Un nuovo comportamento cache in una nuova distribuzione
Quando associ una funzione a un comportamento di cache, è necessario scegliere un tipo di evento. Il tipo di evento determina quando CloudFront esegue la funzione.
Puoi scegliere i seguenti tipi di evento:
-
Richiesta visualizzatore: la funzione viene eseguita quando CloudFront riceve una richiesta da un visualizzatore.
-
Risposta visualizzatore: la funzione viene eseguita prima che CloudFront restituisca una risposta al visualizzatore.
Non puoi utilizzare tipi di eventi rivolti all’origine (richiesta origine e risposta origine) con Funzioni CloudFront. Puoi invece usare Lambda@Edge. Per ulteriori informazioni, consulta Eventi CloudFront che possono attivare una funzione LambdaòEdge.
Prima di associare una funzione, è necessario pubblicarla nella fase LIVE.
Puoi associare una funzione a una distribuzione nella console CloudFront o tramite AWS Command Line Interface (AWS CLI). Nella procedura seguente viene illustrato come associare una funzione a un comportamento della cache esistente.
- Console
-
Come associare una funzione a un comportamento cache esistente
-
Accedi alla console CloudFront all’indirizzo https://console.aws.amazon.com/cloudfront/v4/home#/functions e scegli la pagina Funzioni.
-
Scegli la funzione che desideri associare.
-
Nella pagina Funzioni, seleziona la scheda Pubblica.
-
Scegli Funzione Pubblica.
-
Scegliere Add Association (Aggiungi associazione). Nella finestra di dialogo che viene visualizzata, scegli una distribuzione, un tipo di evento e/o un comportamento cache.
Per il tipo di evento, scegli quando eseguire questa funzione:
-
Per salvare la configurazione, scegli Aggiungi associazione.
CloudFront associa la distribuzione alla funzione. Attendere alcuni minuti affinché la distribuzione associata finisca la distribuzione. Per controllare l’avanzamento, puoi scegliere Visualizza distribuzione nella pagina dei dettagli della funzione.
- CLI
-
Come associare una funzione a un comportamento cache esistente
-
Aprire una finestra a riga di comando.
-
Inserisci il comando seguente per salvare la configurazione di distribuzione per la distribuzione di cui desideri associare il comportamento cache a una funzione. Questo comando salva la configurazione di distribuzione in un file denominato dist-config.yaml. Per utilizzare questo comando, effettua le seguenti operazioni:
aws cloudfront get-distribution-config \
--id DistributionID \
--output yaml > dist-config.yaml
Se il comando viene eseguito correttamente, l'AWS CLI non restituisce alcun output.
-
Apri il file denominato dist-config.yaml creato. Modifica il file per apportare le modifiche seguenti.
-
Rinominare il campo ETag in IfMatch, ma non modificare il valore del campo.
-
Nel comportamento della cache, trova l'oggetto denominato FunctionAssociations. Aggiorna questo oggetto per aggiungere un'associazione di funzioni. La sintassi YAML per un'associazione di funzioni è simile all'esempio seguente.
-
L'esempio seguente mostra un oggetto evento Richiesta visualizzatore (trigger). Per utilizzare un tipo di evento Risposta del visualizzatore, sostituisci viewer-request con viewer-response.
-
Sostituisci arn:aws:cloudfront::111122223333:function/ExampleFunction con il nome della risorsa Amazon (ARN) della funzione che stai associando a questo comportamento della cache. Per ottenere l’ARN della funzione, puoi utilizzare il comando aws cloudfront
list-functions.
FunctionAssociations:
Items:
- EventType: viewer-request
FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
Quantity: 1
-
Dopo aver apportato queste modifiche, salva il file.
-
Utilizza il comando seguente per aggiornare la distribuzione, aggiungendo l'associazione di funzioni. Per utilizzare questo comando, effettua le seguenti operazioni:
aws cloudfront update-distribution \
--id DistributionID \
--cli-input-yaml file://dist-config.yaml
Se il comando ha esito positivo, viene visualizzato un output simile al seguente che descrive la distribuzione appena aggiornata con l'associazione di funzioni. L'output di esempio seguente è stato troncato per una maggiore leggibilità.
Distribution:
ARN: arn:aws:cloudfront::111122223333:distribution/EBEDLT3BGRBBW
... truncated ...
DistributionConfig:
... truncated ...
DefaultCacheBehavior:
... truncated ...
FunctionAssociations:
Items:
- EventType: viewer-request
FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
Quantity: 1
... truncated ...
DomainName: d111111abcdef8.cloudfront.net
Id: EDFDVBD6EXAMPLE
LastModifiedTime: '2021-04-19T22:39:09.158000+00:00'
Status: InProgress
ETag: E2VJGGQEG1JT8S
Lo Status della distribuzione cambia in InProgress mentre la distribuzione viene ridistribuita. Quando la nuova configurazione di distribuzione raggiunge una posizione edge CloudFront, tale posizione edge inizia a utilizzare la funzione associata. Quando la distribuzione è completamente distribuita, Status torna a Deployed. Ciò indica che la funzione CloudFront associata è attiva in tutte le posizioni edge CloudFront in tutto il mondo. In genere sono necessari pochi minuti.