Adicionar a política SpikeArrest à API

Você está vendo a documentação do Apigee X.
Veja a documentação do Apigee Edge.

O que você 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 500 para uma solicitação.

Adicione 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 "Desenvolvedor" está entre as guias "Visão geral" e "Trace".

    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 "Etapa" 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. Chame a API usando curl, usando o URL do seu domínio:

    curl "http://YOUR_DOMAIN/myproxy"

    Por exemplo:

    curl "http://apitest.example.com/myproxy"

    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.

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

  15. 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) e, em seguida, salve o proxy de API.
  16. 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 duas em menos de quatro segundos, a falha ocorrerá. 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).