Adicione a política de detenção de pico à API

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

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.

O que é necessário

  • Pelo menos uma política no proxy (também parte do tutorial de primeiros passos).
  • curl instalado na máquina para fazer chamadas de API a partir da linha de comando.

Adicionar a política de detenção de pico

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 de detenção de pico a um proxy de API:

  1. Faça login em apigee.com/edge.
  2. Selecione Desenvolvedor > API Proxies na barra de navegação à esquerda.
  3. Selecione o proxy de API a que você quer adicionar a política de controle de pico.

    Se você seguiu o tutorial de primeiros passos, adicione-o ao proxy "getstarted" criado em Criar um proxy de API.

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

    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" em "Solicitar pré-fluxo"

  7. Selecione detenção de pico na categoria "Gerenciamento de tráfego". A caixa de diálogo "Nova política" é exibida:

    Criar política de controle de pico

  8. Mantenha os nomes padrão e clique em Adicionar. A nova política é anexada ao fluxo PreFlow de uma solicitação.
  9. No Navigator, verifique se o PreFlow em Proxy Endpoints > default ainda está selecionado e observe o seguinte no Editor de proxy da API:
    • A nova política de detenção de pico está adicionada em Políticas no Navegador à esquerda da API Proxy Editor.
    • O ícone Spike Arrest-1 será adicionado à visualização de designer no centro superior da API Proxy Editor, 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.

    Acessar a política de PreFlow com controle de pico

  10. No navegador, selecione Spike Arrest-1 em "Policies" e observe o seguinte no editor de proxy da 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.

  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 Property também muda para "1pm". Se preferir, altere o valor da Taxa no inspetor Property para que ele seja refletido na visualização XML.

  12. Clique em Salvar para salvar a revisão atual com as alterações.
  13. Chame a API usando curl, substituindo o nome da sua organização no Apigee por org_name:

    curl "http://org_name-test.apigee.net/getstarted"

    Exemplo:

    curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool

    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) mais duas ou três vezes em um minuto e observe que você recebe 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 sua política para definir o limite de <Rate> para 15pm (o que se traduz em aproximadamente duas chamadas permitidas a cada quatro segundos na nuvem) e, em seguida, salva o proxy da 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 das 1pm).