Associar funções com distribuições - Amazon CloudFront

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)
  1. 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.

  2. Na página de função, selecione a guia Publish (Publicar). A seção Distribuições associadas é exibida.

  3. 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)
  1. 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.

  2. Abra o arquivo chamado dist-config.yaml que você acabou de criar. Edite o arquivo para fazer as alterações a seguir.

    1. Renomeie o campo ETag para IfMatch, mas não altere o valor do campo.

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

  3. 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 StatusDeployed, 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.