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 a interface da Apigee no console do Cloud: 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 "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. 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).