Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
O que vai aprender
Neste tutorial, vai aprender a:
- Adicione uma política que afete o pedido e a resposta.
- Veja os efeitos da política.
O que precisa
- Uma instalação do Apigee. Consulte a Vista geral e os pré-requisitos.
- Um proxy de API funcional com, pelo menos, uma política anexada. Consulte o artigo Crie o seu primeiro proxy de API: vista geral.
- Um cliente da API HTTP instalado no seu computador para fazer chamadas à API. Os exemplos do tutorial
usam
curl
.
Adicione a política SpikeArrest
Neste tutorial, vai adicionar e configurar a política SpikeArrest para proteger o serviço de destino contra picos de tráfego súbitos que podem ser causados por um aumento na utilização, clientes com erros ou ataques maliciosos. Quando o número de pedidos excede o limite de velocidade, a API devolve um erro HTTP 429
.
Novo editor de proxy
Para adicionar a política SpikeArrest a um proxy de API:
Se estiver a usar a IU do Apigee na consola do Google Cloud: selecione Desenvolvimento de proxy > Proxies de API.
Se estiver a usar a IU do Apigee clássica: selecione Develop > API Proxies e, no painel Proxies, selecione o ambiente para o proxy.
Se seguiu o tutorial Começar, pode adicioná-lo ao proxy da API que criou em Criar um proxy da API.
- Clique no separador Desenvolver.
- No painel do lado esquerdo, clique no botão + na linha Políticas.
Na caixa de diálogo Criar política, clique no campo Selecionar tipo de política e desloque a página para baixo até Gestão de tráfego e selecione SpikeArrest.
Opcionalmente, pode alterar o Nome e o Nome a apresentar da política. Por predefinição, o Apigee fornece um prefixo curto para o nome da política, neste caso, SA-. Pode adicionar uma sequência de palavras descritivas, separadas por travessões, após o prefixo. Consulte as Convenções de nomenclatura.
Quando terminar, clique em Criar para criar a política.
Agora que criou a política de restrição de picos, pode adicioná-la a um passo no PreFlow.
- Selecione Proxy Endpoints > default > PreFlow no painel do lado esquerdo:
Nota: pode ter de expandir o editor visual no painel do lado direito para ver todos os elementos. Para o fazer, clique e arraste ligeiramente a barra de divisão entre o editor visual e o editor de texto.
- Clique no botão + junto a PreFlow no painel Resposta
na parte inferior direita do editor visual:
- Na caixa de diálogo Passo Adicionar política, selecione a política Spike Arrest.
Clique em Adicionar para anexar a política.
A política Spike Arrest é agora apresentada no painel Resposta:
Agora que anexou a política Spike Arrest ao PreFlow, pode tentar alterar o código da política:
No painel Resposta, selecione SA-.
- O editor de texto apresenta o código XML do proxy, incluindo o passo 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
(o que se traduz em aproximadamente duas solicitações permitidas a cada 60 segundos na nuvem).Pode especificar a taxa como um valor inteiro por minuto (
pm
) ou por segundo (ps
). Este é um limite muito baixo e é usado apenas para este tutorial para demonstrar a política. Normalmente, define-o para um limite muito superior.Repare que o valor
Rate
no inspetor de propriedades também muda para1pm
. Em alternativa, pode alterar o valor da Taxa no Inspetor de propriedades e este será refletido na vista XML. - Clique em Guardar para guardar a revisão atual com as suas alterações.
Editor de proxy clássico
Para adicionar a política SpikeArrest a um proxy de API:
- Inicie sessão na IU do Apigee.
- Selecione Desenvolver > Proxies de API na barra de navegação do lado esquerdo.
- Selecione o proxy de API ao qual quer adicionar a política SpikeArrest.
Se seguiu o tutorial Começar, pode adicioná-lo ao proxy da API que criou em Criar um proxy da API.
- No editor do novo proxy de API, clique no separador Develop:
O editor de proxy de API permite-lhe ver a estrutura do seu proxy de API e configurar o respetivo fluxo. O editor apresenta uma representação visual do fluxo de mensagens de pedido e resposta do proxy, bem como uma apresentação editável do XML subjacente que define o proxy.
- No painel do navegador do lado esquerdo, clique em PreFlow em Proxy Endpoints > default. (Outros tutoriais abordam o conceito de fluxos.)
- Clique no botão +Passo superior, correspondente ao pedido PreFlow. Esta opção
apresenta uma lista categorizada de todas as políticas que pode criar.
- Selecione SpikeArrest na categoria Gestão de tráfego. É apresentada a caixa de diálogo Nova
política:
- Deixe os nomes predefinidos e clique em Adicionar. A nova política está anexada ao fluxo PreFlow de um pedido.
- No navegador, certifique-se de que a opção PreFlow em Proxy Endpoints
> default continua selecionada e tome nota do seguinte no editor de proxy de API:
- A nova política SpikeArrest-1 é adicionada em Policies no navegador no lado esquerdo do editor de proxy de API.
- O ícone SpikeArrest-1 é adicionado à vista de designer na parte superior central do editor de proxy de API, que é uma representação visual dos fluxos de mensagens do seu proxy.
- O XML da política é apresentado na vista de código na parte inferior central do editor do proxy da API.
- No navegador, selecione SpikeArrest-1 em Policies e tome nota do seguinte no editor de proxy de API:
- Os detalhes da política são apresentados na vista de designer na parte superior central do editor de proxy de API.
- O XML da política é apresentado na vista de código na parte inferior central do editor de proxy da API.
- Os valores dos atributos e dos elementos XML da política são apresentados no inspetor de propriedades no lado direito do editor de proxy da API.
-
No XML da política, altere o valor do elemento
<Rate>
para1pm
(o que se traduz em aproximadamente duas solicitações permitidas a cada 60 segundos na nuvem).Pode especificar a taxa como um valor inteiro por minuto (
pm
) ou por segundo (ps
). Este é um limite muito baixo e é usado apenas para este tutorial para demonstrar a política. Normalmente, define-o para um limite muito superior.Repare que o valor
Rate
no inspetor de propriedades também muda para1pm
. Em alternativa, pode alterar o valor da Taxa no Inspetor de propriedades e este será refletido na vista XML. - Clique em Guardar para guardar a revisão atual com as suas alterações.
- Implemente as alterações através do botão Implementar em:.
-
Chame a API usando
curl
, usando o URL do seu domínio:curl "http://YOUR_DOMAIN/myproxy"
where:
ENV_GROUP_HOSTNAME
é o nome do anfitrião do grupo de ambientes que definiu durante o aprovisionamento.DOMAIN_HOSTNAME
é o nome do anfitrião do seu domínio.
Consulte Teste o proxy da API para mais informações.
Certifique-se de que o pedido é bem-sucedido e que vê a mesma resposta XML que viu anteriormente. (Também pode introduzir apenas o URL num navegador de Internet.)
Em seguida, experimente testar a definição
Rate
de diferentes formas:- Execute o comando
curl
(ou atualize a janela do navegador) mais duas ou três vezes no prazo de um minuto e repare que 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 tentar fazer mais chamadas no espaço de um minuto, continua a receber a mensagem de erro.
- Edite a sua política para definir o limite de <
Rate>
para15pm
(o que se traduz em aproximadamente duas chamadas permitidas a cada quatro segundos na nuvem) e, em seguida, guarde e implemente o proxy de API. - Execute o comando
curl
ou atualize o navegador repetidamente (curl
é mais rápido). Repare que, se fizer uma ou duas chamadas com intervalos de quatro segundos, as chamadas são bem-sucedidas. Se fizer as chamadas rapidamente, mais de duas em quatro segundos, deve receber o erro de falha. No entanto, após cada intervalo de 4 segundos, pode continuar a fazer chamadas, em vez de ficar bloqueado durante um minuto inteiro (com a definição1pm
).