Controlar solicitações de origem - Amazon CloudFront

Controlar solicitações de origem

Quando uma solicitação do visualizador para o CloudFront resulta em uma falha de cache (o objeto solicitado não está armazenado em cache no ponto de presença), o CloudFront envia uma solicitação à origem para recuperar o objeto. É o que chamamos de solicitação de origem. A solicitação de origem sempre inclui as seguintes informações da solicitação do visualizador:

  • O caminho da URL (somente o caminho, sem strings de consulta de URL ou o nome de domínio)

  • O corpo da solicitação (se houver)

  • Os cabeçalhos HTTP que o CloudFront inclui automaticamente em cada solicitação de origem, incluindo Host, User-Agent e X-Amz-Cf-Id.

Outras informações da solicitação do visualizador, como strings de consulta de URL, cabeçalhos HTTP e cookies, não são incluídas na solicitação de origem por padrão. Mas talvez você queira receber algumas dessas outras informações na origem, por exemplo, para coletar dados para análise ou telemetria. É possível usar uma política de solicitação de origem para controlar as informações incluídas em uma solicitação de origem.

As políticas de solicitação de origem são separadas das políticas de cache que controlam a chave de cache. Essa separação permite que você receba informações adicionais na origem e também mantenha uma boa taxa acertos do cache (a proporção de solicitações do visualizador que resultam em um acerto de cache). Você faz isso controlando separadamente quais informações são incluídas nas solicitações de origem (usando a política de solicitação de origem) e são estão incluídas na chave de cache (usando a política de cache).

Embora os dois tipos de política sejam separados, eles estão relacionados. Todas as strings de consulta de URL, cabeçalhos HTTP e cookies que você inclui na chave de cache (usando uma política de cache) são automaticamente incluídos nas solicitações de origem. Use a política de solicitação de origem para especificar as informações que você deseja incluir nas solicitações de origem, mas não incluir na chave de cache. Assim como uma política de cache, você anexa uma política de solicitação de origem a um ou mais comportamentos de cache em uma distribuição do CloudFront.

Você também pode usar uma política de solicitação de origem para adicionar cabeçalhos HTTP adicionais a uma solicitação de origem que não foram incluídos na solicitação do visualizador. Esses cabeçalhos adicionais são adicionados pelo CloudFront antes de enviar a solicitação de origem, com valores de cabeçalho determinados automaticamente com base na solicitação do visualizador. Para obter mais informações, consulte Adição dos cabeçalhos de HTTP do CloudFront.

Criar políticas de solicitação de origem

É possível usar uma política de solicitação de origem para controlar os valores (strings de consulta de URL, cabeçalhos HTTP e cookies) incluídos em solicitações que o CloudFront envia para a origem. Você pode criar uma política de solicitação de origem no console do CloudFront com a AWS Command Line Interface (AWS CLI) ou a API do CloudFront.

Depois de criar uma política de solicitação de origem, anexe-a a um ou mais comportamentos de cache em uma distribuição do CloudFront.

As políticas de solicitação de origem não são necessárias. Quando um comportamento de cache não tem uma política de solicitação de origem anexada, a solicitação de origem inclui todos os valores especificados na política de cache, mas nada a mais.

nota

Para usar uma política de solicitação de origem, o comportamento de cache também deve usar uma política de cache. Não é possível usar uma política de solicitação de origem em um comportamento de cache sem uma política de cache.

Console

Como criar uma política de solicitação de origem (console)

  1. Faça login no AWS Management Console e abra a página Policies (Políticas) no console do CloudFront em https://console.aws.amazon.com/cloudfront/v3/home?#/policies.

  2. Escolha Origin request (Solicitação de origem) e escolha Create origin request policy (Criar política de solicitação de origem).

  3. Escolha a configuração desejada para esta política de solicitação de origem. Para obter mais informações, consulte Noções básicas sobre políticas de solicitação de origem.

  4. Quando terminar, escolha Create (Criar).

Depois de criar uma política de solicitação de origem, é possível anexá-la a um comportamento de cache.

Como anexar uma política de solicitação de origem a uma distribuição existente (console)

  1. Abra a página Distributions (Distribuições) no console do CloudFront em https://console.aws.amazon.com/cloudfront/v3/home#/distributions.

  2. Escolha a distribuição a ser atualizada e escolha a guia Behaviors (Comportamentos).

  3. Escolha o comportamento de cache a ser atualizado e escolha Edit (Editar).

    Ou, para criar um novo comportamento de cache, escolha Create behavior (Criar comportamento).

  4. Na seção Cache key and origin requests (Solicitações da chave de cache e de origem), verifique se a opção Cache policy and origin request policy (Política de cache e política de solicitação de origem) está selecionada.

  5. Para Origin request policy (Política de solicitação de origem), escolha a política de solicitação de origem a ser anexada a esse comportamento de cache.

  6. Na parte inferior da página, escolha Save changes (Salvar alterações).

Como anexar uma política de solicitação de origem a uma nova distribuição (console)

  1. Abra o console do CloudFront em https://console.aws.amazon.com/cloudfront/v3/home.

  2. Escolha Create distribution (Criar distribuição).

  3. Na seção Cache key and origin requests (Solicitações da chave de cache e de origem), verifique se a opção Cache policy and origin request policy (Política de cache e política de solicitação de origem) está selecionada.

  4. Em Origin request policy (Política de solicitação de origem), escolha a política de solicitação de origem a ser anexada ao comportamento de cache padrão dessa distribuição.

  5. Escolha as configurações desejadas para a origem, o comportamento padrão do cache e outras configurações de distribuição. Para obter mais informações, consulte Valores especificados ao criar ou atualizar uma distribuição na.

  6. Ao concluir, escolha Create distribution (Criar distribuição).

CLI

Para criar uma política de solicitação de origem com a AWS Command Line Interface (AWS CLI), use o comando aws cloudfront create-origin-request-policy. É possível usar um arquivo de entrada para fornecer os parâmetros de entrada do comando, em vez de especificar cada parâmetro individual como entrada na linha de comando.

Como criar uma política de solicitação de origem (CLI com arquivo de entrada)

  1. Use o comando a seguir para criar um arquivo chamado origin-request-policy.yaml que contém todos os parâmetros de entrada para o comando create-origin-request-policy.

    aws cloudfront create-origin-request-policy --generate-cli-skeleton yaml-input > origin-request-policy.yaml
    nota

    A opção yaml-input está disponível apenas na versão 2 da AWS CLI. Com a versão 1 da AWS CLI, é possível gerar um arquivo de entrada no formato JSON. Para obter mais informações, consulte Gerar um esqueleto AWS CLI e parâmetros de entrada usando um arquivo de entrada JSON ou YAML no Guia do usuário do AWS Command Line Interface.

  2. Abra o arquivo chamado origin-request-policy.yaml que você acabou de criar. Edite o arquivo para especificar as configurações de política de solicitação de origem desejadas e salve o arquivo. É possível remover campos opcionais do arquivo, mas não remover os campos obrigatórios.

    Para obter mais informações sobre as configurações de política de solicitação de origem, consulte Noções básicas sobre políticas de solicitação de origem.

  3. Use o comando a seguir para criar a política de solicitação de origem usando parâmetros de entrada do arquivo origin-request-policy.yaml.

    aws cloudfront create-origin-request-policy --cli-input-yaml file://origin-request-policy.yaml

    Anote o valor do Id na saída do comando. Esse é o ID da política de solicitação de origem, e você precisa dele para anexar essa política ao comportamento de cache de uma distribuição do CloudFront.

Como anexar uma política de solicitação de origem a uma distribuição existente (CLI com arquivo de entrada)

  1. Use o comando a seguir para salvar a configuração da distribuição do CloudFront que você deseja atualizar. Substitua distribution_ID pelo ID da distribuição.

    aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
    nota

    A opção --output yaml está disponível apenas na versão 2 da AWS CLI. Com a versão 1 da AWS CLI, é possível gerar a saída no formato JSON. Para obter mais informações, consulte Controlar a saída do comando na AWS CLI no Guia do usuário do AWS Command Line Interface.

  2. Abra o arquivo chamado dist-config.yaml que você acabou de criar. Edite o arquivo, fazendo as seguintes alterações em cada comportamento de cache que você está atualizando para usar uma política de solicitação de origem.

    • No comportamento de cache, adicione um campo chamado OriginRequestPolicyId. Para o valor do campo, use o ID da política de solicitação de origem que você anotou após criar a política.

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

    Ao concluir, salve o arquivo.

  3. Use o comando a seguir para atualizar a distribuição para usar a política de solicitação de origem. Substitua distribution_ID pelo ID da distribuição.

    aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml

Para anexar uma política de solicitação de origem a uma nova distribuição (CLI com arquivo de entrada)

  1. Use o comando a seguir para criar um arquivo chamado distribution.yaml que contém todos os parâmetros de entrada para o comando create-distribution.

    aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
    nota

    A opção yaml-input está disponível apenas na versão 2 da AWS CLI. Com a versão 1 da AWS CLI, é possível gerar um arquivo de entrada no formato JSON. Para obter mais informações, consulte Gerar um esqueleto AWS CLI e parâmetros de entrada usando um arquivo de entrada JSON ou YAML no Guia do usuário do AWS Command Line Interface.

  2. Abra o arquivo chamado distribution.yaml que você acabou de criar. No comportamento de cache padrão, no campo OriginRequestPolicyId, insira o ID da política de solicitação de origem que você anotou após criar a política. Continue editando o arquivo para especificar as configurações de distribuição desejadas e salve o arquivo ao concluir.

    Para obter mais informações sobre as configurações de distribuição, consulte Valores especificados ao criar ou atualizar uma distribuição na.

  3. Use o seguinte comando para criar a distribuição usando parâmetros de entrada do arquivo distribution.yaml.

    aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
API

Para criar uma política de solicitação de origem com a API do CloudFront, use CreateOriginRequestPolicy. Para obter mais informações sobre os campos especificados nessa chamada de API, consulte Noções básicas sobre políticas de solicitação de origem e a documentação de referência de API do seu AWS SDK ou de outro cliente de API.

Depois de criar uma política de solicitação de origem, é possível anexá-la a um comportamento de cache usando uma das seguintes chamadas de API:

  • Para anexá-la a um comportamento de cache em uma distribuição existente, use UpdateDistribution.

  • Para anexá-la a um comportamento de cache em uma nova distribuição, use CreateDistribution.

Para as duas chamadas de API, forneça o ID da política de solicitação de origem no campo OriginRequestPolicyId, dentro de um comportamento de cache. Para mais informações sobre os outros campos especificados nessas chamadas de API, consulte Valores especificados ao criar ou atualizar uma distribuição na e a documentação de referência da API do AWS SDK ou de outro cliente de API.

Noções básicas sobre políticas de solicitação de origem

O CloudFront fornece algumas políticas de solicitação de origem predefinidas, conhecidas como políticas gerenciadas, para casos de uso comuns. É possível usar essas políticas gerenciadas ou criar sua própria política de solicitação de origem específica para suas necessidades. Para obter mais informações sobre políticas gerenciadas, consulte Usar políticas de solicitação de origem gerenciadas.

Uma política de solicitação de origem contém as seguintes configurações, que são categorizadas em informações de política e configurações de solicitação de origem.

Informações de política

Nome

Um nome exclusivo para identificar a política da solicitação de origem. No console, você usa o nome para anexar a política de solicitação de origem a um comportamento de cache.

Descrição

Um comentário para descrever a política da solicitação de origem. Isso é opcional.

Configurações da solicitação de origem

As configurações de solicitação de origem especificam os valores nas solicitações do visualizador que estão incluídos nas solicitações que o CloudFront envia para a origem (conhecidas como solicitações de origem). Os valores podem incluir strings de consulta de URL, cabeçalhos HTTP e cookies. Os valores especificados são incluídos nas solicitações de origem, mas não estão incluídos na chave de cache. Para obter informações sobre como controlar a chave de cache, consulte Controlar a chave de cache.

Cabeçalhos

Os cabeçalhos HTTP em solicitações do visualizador que o CloudFront inclui em solicitações de origem. Para cabeçalhos, é possível escolher uma das seguintes configurações:

  • None (Nenhum): os cabeçalhos HTTP nas solicitações do visualizador não são incluídos nas solicitações de origem.

  • All viewer headers (Todos os cabeçalhos do visualizador): todos os cabeçalhos HTTP nas solicitações do visualizador são incluídos nas solicitações de origem.

  • Include the following headers (Incluir os seguintes cabeçalhos): você especifica quais cabeçalhos HTTP serão incluídos nas solicitações de origem.

  • All viewer headers and the following CloudFront headers (Todos os cabeçalhos do visualizador e os seguintes cabeçalhos do CloudFront): todos os cabeçalhos HTTP nas solicitações do visualizador serão incluídos nas solicitações de origem. Além disso, você especifica quais dos cabeçalhos do CloudFront você deseja adicionar às solicitações de origem. Para obter mais informações sobre os cabeçalhos do CloudFront, consulte Adição dos cabeçalhos de HTTP do CloudFront.

Ao usar a configuração Include the following headers (Incluir todos os seguintes cabeçalhos) ou All viewer headers and the following CloudFront headers (Todos os cabeçalhos do visualizador e cabeçalhos do CloudFront), você especifica cabeçalhos HTTP pelo nome, não pelo valor. Por exemplo, considere o seguinte cabeçalho HTTP:

Accept-Language: en-US,en;q=0.5

Nesse caso, você especifica o cabeçalho como Accept-Language, não como Accept-Language: en-US,en;q=0.5. No entanto, o CloudFront inclui o cabeçalho completo, incluindo seu valor, em solicitações de origem.

Cookies

Os cookies em solicitações do visualizador que o CloudFront inclui em solicitações de origem. Para cookies, é possível escolher uma das seguintes configurações:

  • None (Nenhum): os cookies nas solicitações do visualizador não são incluídos nas solicitações de origem.

  • All (Todos): todos os cookies em solicitações do visualizador são incluídos em solicitações de origem.

  • Include specified cookies (Incluir cookies especificados): você especifica quais dos cookies nas solicitações do visualizador serão incluídos nas solicitações de origem.

Ao usar a configuração Include specified cookies (Incluir os cookies especificados), você especifica os cookies pelo nome, não pelo valor. Por exemplo, considere o seguinte cabeçalho Cookie:

Cookie: session_ID=abcd1234

Nesse caso, você especifica o cookie como session_ID, não como session_ID=abcd1234. No entanto, o CloudFront inclui o cookie completo, incluindo o seu valor, em solicitações de origem.

Strings de consulta

As strings de consulta de URL em solicitações do visualizador que o CloudFront inclui em solicitações de origem. Para strings de consulta, é possível escolher uma das seguintes configurações:

  • None (Nenhuma): as strings de consulta nas solicitações do visualizador não são incluídas nas solicitações de origem.

  • All (Todas): todas as strings de consulta em solicitações do visualizador são incluídas em solicitações de origem.

  • Include specified query strings (Incluir as strings de consulta especificadas): você especifica quais das strings de consulta nas solicitações do visualizador serão incluídas nas solicitações de origem.

Ao usar a configuração Include specified query strings (Incluir as strings de consulta especificadas), você especifica as strings de consulta pelo nome, não pelo valor. Por exemplo, considere o seguinte caminho do URL:

/content/stories/example-story.html?split-pages=false

Nesse caso, você especifica a string de consulta como split-pages, não como split-pages=false. No entanto, o CloudFront inclui a string de consulta completa, incluindo seu valor, em solicitações de origem.