As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Associar funções com distribuições
Para usar uma função em CloudFront Funções com uma CloudFront distribuição, você associa 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. Antes de associar uma função, você deve publicá-la na fase LIVE
.
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 Functions executa a função. Existem dois tipos de eventos para selecionar:
Para obter mais informações sobre os tipos de evento, consulte CloudFront eventos que podem acionar uma função Lambda @Edge. Você não pode usar tipos de eventos voltados para a origem (solicitação de origem e resposta de origem) com CloudFront o Functions.
-
Solicitação do visualizador — A função é executada quando CloudFront recebe uma solicitação de um visualizador.
-
Resposta do visualizador — A função é executada antes de CloudFront retornar uma resposta ao visualizador.
Você pode associar uma função a uma distribuição no CloudFront console ou aoAWS CLI.
- Console
-
Você pode usar o CloudFront console para associar uma função a um comportamento de cache existente em uma CloudFront distribuição existente. Para obter informações sobre como criar uma distribuição, consulte Criar uma distribuição.
Para associar uma função a um comportamento de cache existente (console)
-
Abra a página Funções no CloudFront console em https://console.aws.amazon.com/cloudfront/v4/home#/functions e escolha a função que você deseja associar.
-
Na página de função, selecione a guia Publish (Publicar). A seção Distribuições associadas é exibida.
-
Selecione o botão Adicionar associação. 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 executar a função sempre que CloudFront receber uma solicitação, escolha Solicitação do visualizador.
-
Para executar a função sempre que CloudFront retornar uma resposta, escolha Viewer Response.
Para salvar a configuração, selecione Adicionar associação.
CloudFront associa a distribuição à função. Aguarde alguns minutos para que a distribuição associada termine a implantação. Para conferir o andamento, é possível selecionar Visualizar distribuição na página de detalhes da função.
- CLI
-
É possível associar uma função a qualquer um dos seguintes itens:
-
Existe um comportamento de cache.
-
Um novo comportamento de cache em uma distribuição existente.
-
Um novo comportamento de cache em uma nova distribuição.
O procedimento a seguir mostra como associar uma função a um comportamento de cache existente.
Como associar uma função a um comportamento de cache existente (AWS CLI)
-
Use o comando a seguir para salvar a configuração de distribuição para a 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ê acabou de criar. 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
Efeito da associação de uma distribuição
O Status
da distribuição muda para InProgress
enquanto a distribuição é reimplantada. Assim que a nova configuração de distribuição atinge uma localização de CloudFront borda, essa localização de borda começa a usar a função associada. Quando a distribuição é totalmente implantada, ela volta para Status
Deployed
, o que indica que a CloudFront função associada está ativa em todos os pontos de presença em todo CloudFront o mundo. Normalmente, isso demora alguns minutos.