Associar funções a distribuições
Para usar uma função com uma distribuição, associe a função a um ou mais comportamentos de cache na distribuição. Você pode associar uma função a vários comportamentos de cache em várias distribuições.
É possível associar uma função a qualquer um dos seguintes itens:
-
Um comportamento de cache existente.
-
Um novo comportamento de cache em uma distribuição existente.
-
Um novo comportamento de cache em uma nova distribuição.
Quando você associa uma função a um comportamento de cache, você deve selecionar um tipo de evento. O tipo de evento determina quando o CloudFront executa a função.
É possível escolher entre os seguintes tipos de evento:
-
Solicitação do visualizador: a função é executada quando o CloudFront recebe uma solicitação de um visualizador.
-
Resposta do visualizador: a função é executada antes que o CloudFront retorne uma resposta ao visualizador.
Não é possível usar tipos de evento voltados para a origem (solicitação de origem e resposta de origem) com o CloudFront Functions. Em vez disso, você pode usar o Lambda@Edge. Para ter mais informações, consulte Eventos do CloudFront que podem acionar uma função do Lambda@Edge.
Antes de associar uma função, você deve publicá-la na fase LIVE
.
É possível associar uma função a uma distribuição no console do CloudFront ou à AWS Command Line Interface (AWS CLI). O procedimento a seguir mostra como associar uma função a um comportamento de cache existente.
- Console
-
Como associar uma função a um comportamento de cache existente
-
Faça login no console do CloudFront em https://console.aws.amazon.com/cloudfront/v4/home#/functions e selecione a página Funções.
-
Escolha a função que você deseja associar.
-
Na página Função, selecione a guia Publicar.
-
Selecione a função Publish (Publicar).
-
Escolha Add association. Na caixa de diálogo exibida, selecione uma distribuição, um tipo de evento e/ou um comportamento de cache.
Para o tipo de evento, selecione quando deseja que essa função seja executada:
-
Para salvar a configuração, selecione Adicionar associação.
O CloudFront associa a distribuição à função. Aguarde alguns minutos para que a distribuição associada termine a implantação. É selecionar Visualizar distribuição na página de detalhes da função para conferir o andamento.
- CLI
-
Como associar uma função a um comportamento de cache existente
-
Abra a janela de linha de comando.
-
Insira o comando a seguir para salvar a configuração da distribuição cujo comportamento de cache você deseja associar a uma função. Esse comando salva a configuração de distribuição em um arquivo chamado dist-config.yaml
. Para usar esse comando, faça o seguinte:
-
Substitua DistributionID
pelo ID da distribuição.
-
Execute o comando em uma linha. No exemplo, as quebras de linha são fornecidas para tornar o exemplo mais legível.
aws cloudfront get-distribution-config \
--id DistributionID
\
--output yaml > dist-config.yaml
Quando o comando é bem-sucedido, a AWS CLI não retorna nenhuma saída.
-
Abra o arquivo chamado dist-config.yaml
que você criou. Edite o arquivo para fazer as alterações a seguir.
-
Renomeie o campo ETag
para IfMatch
, mas não altere o valor do campo.
-
No comportamento do cache, localize o objeto chamado FunctionAssociations
. Atualize esse objeto para adicionar uma associação de função. A sintaxe YAML para uma associação de função se parece com o exemplo a seguir.
-
O exemplo a seguir mostra um tipo de evento de solicitação de visualizador (trigger). Para usar um tipo de evento de resposta do visualizador, substitua viewer-request
por viewer-response
.
-
Substitua arn:aws:cloudfront::111122223333:function/ExampleFunction
pelo nome do recurso da Amazon (ARN) da função que você está associando a esse comportamento de cache. Para obter o ARN da função, você pode usar o comando aws cloudfront
list-functions.
FunctionAssociations:
Items:
- EventType: viewer-request
FunctionARN: arn:aws:cloudfront::111122223333:function/ExampleFunction
Quantity: 1
-
Depois de fazer essas alterações, salve o arquivo.
-
Use o comando a seguir para atualizar a distribuição, adicionando a associação de função. Para usar esse comando, faça o seguinte:
-
Substitua DistributionID
pelo ID da distribuição.
-
Execute o comando em uma linha. No exemplo, as quebras de linha são fornecidas para tornar o exemplo mais legível.
aws cloudfront update-distribution \
--id DistributionID
\
--cli-input-yaml file://dist-config.yaml
Quando o comando é bem-sucedido, você vê uma saída como a seguinte que descreve a distribuição que foi atualizada apenas com a associação de função. O exemplo de saída a seguir é truncado para legibilidade.
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
O Status
da distribuição muda para InProgress
enquanto a distribuição é reimplantada. Quando a nova configuração de distribuição atingir um local da borda do CloudFront, esse local começará a usar a função associada. Quando a distribuição estiver totalmente implantada, o Status
mudará de volta para Deployed
. Isso indica que a função do CloudFront associada está ativa em todos os locais da borda do CloudFront no mundo todo. Normalmente, isso demora alguns minutos.