Associa le funzioni alle distribuzioni - 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à.

Associa le funzioni alle distribuzioni

Per utilizzare una funzione con una distribuzione, è necessario associare la funzione a uno o più comportamenti della 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 di cache esistente

  • Un nuovo comportamento della cache in una distribuzione esistente

  • Un nuovo comportamento della 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 viene eseguita la funzione.

È possibile scegliere i seguenti tipi di eventi:

  • Richiesta del visualizzatore: la funzione viene eseguita quando CloudFront riceve una richiesta da un visualizzatore.

  • Risposta del visualizzatore: la funzione viene eseguita prima di CloudFront restituire una risposta al visualizzatore.

Non è possibile utilizzare tipi di eventi rivolti all'origine (richiesta di origine e risposta all'origine) con CloudFront Functions. Puoi invece usare Lambda @Edge. Per ulteriori informazioni, consulta CloudFront eventi che possono attivare una funzione Lambda @Edge.

Nota

Prima di associare una funzione, è necessario pubblicarla nella fase LIVE.

È possibile associare una funzione a una distribuzione nella CloudFront console o alla AWS Command Line Interface (AWS CLI). Nella procedura seguente viene illustrato come associare una funzione a un comportamento della cache esistente.

Console
Per associare una funzione a un comportamento della cache esistente
  1. Accedi alla CloudFront console 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 Funzione, scegliete la scheda Pubblica.

  4. Scegliete la funzione Pubblica.

  5. Scegliere Add Association (Aggiungi associazione). Nella finestra di dialogo che appare, scegli una distribuzione, un tipo di evento e/o un comportamento nella cache.

    Per il tipo di evento, scegli quando eseguire questa funzione:

    • Viewer Request: esegue la funzione ogni volta CloudFront che riceve una richiesta.

    • Viewer Response: esegue 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. Puoi scegliere Visualizza distribuzione nella pagina dei dettagli della funzione per controllare lo stato di avanzamento.

CLI
Per associare una funzione a un comportamento della cache esistente
  1. Aprire una finestra a riga di comando.

  2. Immettete il comando seguente per salvare la configurazione di distribuzione per la distribuzione di cui desiderate associare il comportamento della 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

    Quando il comando ha successo, non AWS CLI restituisce alcun output.

  3. Apri il file con il nome dist-config.yaml che hai 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 CloudFront periferica, tale posizione inizia a utilizzare la funzione associata. Quando la distribuzione è completamente distribuita, Status torna aDeployed. Ciò indica che la CloudFront funzione associata è attiva in tutte le CloudFront edge location del mondo. In genere sono necessari pochi minuti.