Adicionar a política SpikeArrest à API

Esta página se aplica à Apigee e à Apigee híbrida.

Confira a documentação da Apigee Edge.

O que você vai aprender

Neste tutorial, você aprenderá a:

  • Adicione uma política que afete a solicitação e a resposta.
  • Veja os efeitos da política.

Pré-requisitos

Adicionar a política SpikeArrest

Neste tutorial, você verá como adicionar e configurar a política de detenção de pico para proteger o serviço de destino contra picos de tráfego repentinos que podem ser causados por um aumento no uso, clientes problemáticos ou ataques maliciosos. Quando o número de solicitações excede o limite de taxa, a API retorna um erro HTTP 429.

Novo Editor de proxy

Para adicionar a política SpikeArrest a um proxy de API:

  1. Se você estiver usando https://console.cloud.google.com/apigee: selecione Desenvolvimento de proxy > Proxies de API.

    Se você estiver usando a interface clássica da Apigee: selecione Desenvolver > proxies de API e no painel Proxies, selecione o ambiente do proxy.

    Se você seguiu o tutorial de primeiros passos, é possível adicioná-lo ao proxy de API que você criou em Criar um proxy de API.

  2. Clique na guia Desenvolver.
  3. No painel à esquerda, clique no botão + na linha Políticas.
  4. Na caixa de diálogo Criar política clique no campo Selecionar tipo de políticae role para baixo atéGerenciamento de tráfego e selecioneSpikeArrest.

  5. Também é possível alterar o Nome e o Nome de exibição da política. Por padrão, a Apigee fornece um prefixo curto para o nome da política. Neste caso, SA-. É possível adicionar uma sequência de palavras descritivas separadas por traços, após o prefixo. Consulte as convenções de nomenclatura.

    Caixa de diálogo "Criar política".

    Quando terminar, clique em Criar para criar a política.

Agora que você criou a política "Spike Arrest", pode adicioná-la a uma etapa no PreFlow.

  1. Selecione Proxy Endpoints > default > PreFlow no painel à esquerda:

    Os endpoints de destino do Pré-fluxo são selecionados no explorador de Proxy.

    Observação: talvez seja necessário expandir o editor visual no painel à direita para ver todos os elementos. Para fazer isso, clique e arraste um pouco o divisor entre o editor visual e o editor de texto.

  2. Clique no botão + ao lado de PreFlow no painel Response no canto inferior direito do Editor de recursos visuais:

    Clique no botão "+" ao lado de "PreFlow" no painel "Response".

  3. Na caixa de diálogo Adicionar política, selecione a política Spike Arrest.
  4. Clique em Adicionar para anexar a política.

    A política Spike Arrest agora é exibida no painel Response:

    Política "Spike Arrest" exibida no painel "Response".

Agora que você anexou a política do Spike Arrest ao PreFlow, tente alterar o código da política:

  1. No painel Resposta, selecione SA-.

    Política do Spike Arrest exibida na guia "Policies".

  2. O editor de texto exibe o código XML do proxy, incluindo a etapa da política de Spike Arrest no elemento Response do PreFlow.
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <SpikeArrest continueOnError="false" enabled="true" name="SA-">
        <DisplayName>SA-</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>
  3. No XML da política, altere o valor do elemento <Rate> para 1pm (que se traduz em aproximadamente duas solicitações permitidas a cada 60 segundos na nuvem).

    Você pode especificar a taxa como um valor inteiro por minuto (pm) ou por segundo (ps). Esse é um limite muito baixo e é usado somente para este tutorial para demonstrar a política. Normalmente, você define um limite muito maior.

    Observe que o valor Rate no Inspetor de propriedades também muda para 1pm. Se preferir, altere o valor Taxa no Inspetor de propriedades e isso será refletido na visualização de XML.

  4. Clique em Save para salvar a revisão atual com as alterações.

Editor de proxy clássico

Para adicionar a política SpikeArrest a um proxy de API:

  1. Faça login na IU da Apigee.
  2. Selecione Develop > API Proxies na barra de navegação à esquerda.
  3. Selecione o proxy de API ao qual você quer adicionar a política de SpikeArrest.

    Se você seguiu o tutorial de primeiros passos, é possível adicioná-lo ao proxy de API que você criou em Criar um proxy de API.

  4. No editor do novo proxy de API, clique na guia Desenvolvedor:

    A guia &quot;Desenvolvedor&quot; está entre as guias &quot;Visão geral&quot; e &quot;Trace&quot;.

    Com o editor de proxy de API, você vê a estrutura do proxy de API e configura seu fluxo. O editor apresenta uma representação visual do fluxo de mensagens de solicitação e de resposta do proxy, bem como uma exibição editável do XML subjacente que define o proxy.

  5. No painel lateral esquerdo do navegador, clique em PreFlow em Proxy Endpoints > padrão. Outros tutoriais abrangem o conceito de fluxos.
  6. Clique no botão +Step na parte superior, que corresponde ao campo "Request PreFlow". Isso exibirá uma lista categorizada de todas as políticas que podem ser criadas.

    Clique em &quot;Etapa&quot; na solicitação PreFlow.

  7. Selecione SpikeArrest na categoria "Gerenciamento de tráfego". A caixa de diálogo Nova política será exibida:

    Crie a política SpikeArrest.

  8. Mantenha os nomes padrão e clique em Adicionar. A nova política é anexada ao fluxo PreFlow de uma solicitação.
  9. No Navegador, verifique se a opção PreFlow em Proxy Endpoints > padrão ainda está selecionada e observe o seguinte na API Proxy Editor:
    • A nova política SpikeArrest-1 foi adicionada em Políticas no Navegador à esquerda do Editor de proxy de API.
    • O ícone SpikeArrest-1 foi adicionado à Visualização de designer no centro superior do Editor de proxy de API, que é uma representação visual dos fluxos de mensagens do seu proxy.
    • O XML da política é exibido na visualização de código na parte inferior central da API Proxy Editor.

    Visualize o PreFlow com a política SpikeArrest.

  10. No Navegador, selecione SpikeArrest-1 em "Políticas" e observe o seguinte no Editor de proxy de API:
    • Os detalhes da política são exibidos na Visualização de designer na parte superior central da API Proxy Editor.
    • O XML da política é exibido na visualização de código na parte inferior central da API Proxy Editor.
    • O elemento XML e os valores de atributo da política são exibidos no Inspetor de propriedades no lado direito da API Proxy Editor.

    O painel do Inspetor de propriedades mostra os valores da política Spike Arrest-1.

  11. No XML da política, altere o valor do elemento <Rate> para 1pm (que se traduz em aproximadamente duas solicitações permitidas a cada 60 segundos na nuvem).

    Você pode especificar a taxa como um valor inteiro por minuto (pm) ou por segundo (ps). Esse é um limite muito baixo e é usado somente para este tutorial para demonstrar a política. Normalmente, você define um limite muito maior.

    Observe que o valor Rate no Inspetor de propriedades também muda para 1pm. Se preferir, altere o valor Taxa no Inspetor de propriedades e isso será refletido na visualização de XML.

  12. Clique em Save para salvar a revisão atual com as alterações.
  13. Implante suas alterações usando o botão Implantar em:.
  14. Chame a API usando curl, usando o URL do seu domínio:

    curl "http://YOUR_DOMAIN/myproxy"

    onde:

    Consulte Testar o proxy de API para mais informações.

    Verifique se a solicitação foi bem-sucedida e se você vê a mesma resposta XML, como fez anteriormente. Você também pode inserir apenas o URL em um navegador da Web.

    Em seguida, tente testar a configuração Rate de maneiras diferentes:

    • Execute o comando curl (ou atualize a janela do navegador) duas ou três vezes mais em um minuto e observe que você recebeu a seguinte mensagem porque excedeu o limite de taxa da política:
      {
      "fault": {
        "faultstring":"Spike arrest violation. Allowed rate : 1pm",
        "detail": {
          "errorcode":"policies.ratelimit.SpikeArrestViolation"}
        }
      }

      Se você tentar fazer mais chamadas dentro de um minuto, continuará a receber a mensagem de falha.

    • Edite a política para definir o limite do <Rate> para 15pm (que se traduz em aproximadamente duas chamadas permitidas a cada quatro segundos na nuvem), em seguida, salve e implante o proxy de API.
    • Execute o comando curl ou atualize o navegador repetidamente (curl é mais rápido). Se você fizer uma ou duas chamadas dentro de intervalos de quatro segundos, as chamadas serão bem-sucedidas. Se você fizer as chamadas rapidamente, mais de dois em quatro segundos, receberá a mensagem de erro de falha. No entanto, depois de cada intervalo de quatro segundos, é possível continuar fazendo chamadas, em vez de ser bloqueado por um minuto inteiro (com a configuração de 1pm).