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
- Uma instalação da Apigee Consulte Visão geral e pré-requisitos.
- Um proxy de API em funcionamento com pelo menos uma política anexada. Consulte Visão geral do proxy de sua API.
- Um cliente da API HTTP instalado na sua máquina para fazer chamadas de API. Os exemplos de tutorial
usam
curl
.
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:
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.
- Clique na guia Desenvolver.
- No painel à esquerda, clique no botão + na linha Políticas.
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.
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.
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.
- Selecione Proxy Endpoints > default > PreFlow no painel à esquerda:
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.
- Clique no botão + ao lado de PreFlow no painel Response no canto inferior direito do Editor de recursos visuais:
- Na caixa de diálogo Adicionar política, selecione a política Spike Arrest.
Clique em Adicionar para anexar a política.
A política Spike Arrest agora é exibida no painel Response:
Agora que você anexou a política do Spike Arrest ao PreFlow, tente alterar o código da política:
No painel Resposta, selecione SA-.
- 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>
-
No XML da política, altere o valor do elemento
<Rate>
para1pm
(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 para1pm
. Se preferir, altere o valor Taxa no Inspetor de propriedades e isso será refletido na visualização de XML. - 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:
- Faça login na IU da Apigee.
- Selecione Develop > API Proxies na barra de navegação à esquerda.
- 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.
- No editor do novo proxy de API, clique na guia Desenvolvedor:
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.
- No painel lateral esquerdo do navegador, clique em PreFlow em Proxy Endpoints > padrão. Outros tutoriais abrangem o conceito de fluxos.
- 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.
- Selecione SpikeArrest na categoria "Gerenciamento de tráfego". A caixa de diálogo Nova política será exibida:
- Mantenha os nomes padrão e clique em Adicionar. A nova política é anexada ao fluxo PreFlow de uma solicitação.
- 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.
- 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.
-
No XML da política, altere o valor do elemento
<Rate>
para1pm
(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 para1pm
. Se preferir, altere o valor Taxa no Inspetor de propriedades e isso será refletido na visualização de XML. - Clique em Save para salvar a revisão atual com as alterações.
- Implante suas alterações usando o botão Implantar em:.
-
Chame a API usando
curl
, usando o URL do seu domínio:curl "http://YOUR_DOMAIN/myproxy"
onde:
ENV_GROUP_HOSTNAME
é o nome do host do grupo de ambientes definido durante o provisionamento.DOMAIN_HOSTNAME
é o nome do host do seu domínio.
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>
para15pm
(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 de1pm
).