Associazione delle funzioni alle distribuzioni - Amazon CloudFront

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.

Nota

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
  1. Accedi alla console CloudFront all’indirizzo https://console.aws.amazon.com/cloudfront/v4/home#/functions e scegli la pagina Funzioni.

  2. Scegli la funzione che desideri associare.

  3. Nella pagina Funzioni, seleziona la scheda Pubblica.

  4. Scegli Funzione Pubblica.

  5. 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:

    • Richiesta visualizzatore: esegui la funzione ogni volta che CloudFront riceve una richiesta.

    • Risposta visualizzatore: esegui la funzione ogni volta che CloudFront restituisce una risposta.

  6. 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
  1. Aprire una finestra a riga di comando.

  2. 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:

    • Sostituisci DistributionID con l'ID della distribuzione.

    • Esegui il comando su una riga. Nell'esempio vengono fornite interruzioni di riga per rendere l'esempio più leggibile.

    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.

  3. Apri il file denominato dist-config.yaml creato. Modifica il file per apportare le modifiche seguenti.

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

    2. 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
    3. Dopo aver apportato queste modifiche, salva il file.

  4. Utilizza il comando seguente per aggiornare la distribuzione, aggiungendo l'associazione di funzioni. Per utilizzare questo comando, effettua le seguenti operazioni:

    • Sostituisci DistributionID con l'ID della distribuzione.

    • Esegui il comando su una riga. Nell'esempio vengono fornite interruzioni di riga per rendere l'esempio più leggibile.

    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.