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

Esta é a documentação do Apigee Edge.
Acesse 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 ao qual você quer adicionar a política de detenção 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 "Step" em "Request PreFlow".

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

    Conferir o PreFlow com a política de controle de pico

  10. No Navegador, selecione Spike Arrest-1 em "Políticas" e observe o seguinte na API Proxy Editor:
    • 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) 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 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).