API Management e soluções baseadas em eventos

Resumo de políticas do APIM (rate-limit, ip-filter), Event Grid (tópicos/assinaturas) e Event Hubs (partições/captura).

No AZ-204, o API Management e os servicos de eventos sao o nucleo do dominio de integracao. Isso abrange como expor APIs com seguranca e construir arquiteturas baseadas em eventos.

 

Azure API Management (APIM)

O APIM e como o balcao de informacoes de um shopping center. Cada visitante (cliente) passa pelo balcao independentemente de qual loja (servico backend) queira visitar, e o balcao cuida da verificacao de identidade, orientacao e registro.

Com o APIM, voce pode agrupar multiplas APIs backend em um unico gateway consistente e expor ao mundo externo.

| Recurso | Descricao | |---------|-----------| | Publicacao de APIs | Expor APIs backend com seguranca a consumidores externos | | Protecao | Autenticacao, limitacao de taxa, filtragem por IP | | Transformacao | Converter formatos de requisicao/resposta, adicionar/remover cabecalhos | | Monitoramento | Logs de chamadas, painel de analise |

Produtos, Assinaturas e Chaves

| Conceito | Descricao | Exemplo | |---------|-----------|---------| | Produto | Pacote que agrupa uma ou mais APIs | "APIs do Plano Gratuito", "APIs Premium" | | Assinatura | Solicitacao para acessar um produto | Um desenvolvedor assina o "Plano Gratuito" | | Chave de assinatura | Token de autenticacao para chamar a API | Enviada no cabecalho |

Os clientes incluem a chave de assinatura em um cabecalho HTTP ou parametro de consulta ao fazer chamadas de API.

 

Politicas do APIM (Policies)

Politicas sao regras que interceptam e processam requisicoes ou respostas no gateway do APIM. Sao escritas em formato XML.

O pipeline de politicas

Cada requisicao e resposta passa por quatro etapas:

Entrada (Inbound): Processa a requisicao do cliente antes de chegar ao gateway Backend: Processa a requisicao antes de encaminha-la ao backend Saida (Outbound): Processa a resposta do backend antes de envia-la ao cliente Em erro (On-Error): Trata qualquer erro que ocorra

Referencia de politicas comuns

| Politica | Posicao | Descricao | |---------|---------|-----------| | rate-limit | Entrada | Limitar numero de chamadas (retorna 429 ao exceder) | | ip-filter | Entrada | Permitir ou bloquear por endereco IP | | set-header | Entrada / Saida | Adicionar, modificar ou excluir cabecalhos | | rewrite-uri | Entrada | Transformar o caminho da URL enviada ao backend | | mock-response | Entrada | Retornar uma resposta falsa sem chamar o backend real | | cache-lookup / cache-store | Entrada / Saida | Armazenar respostas em cache |

 

Azure Event Grid

O Event Grid e como o servico de notificacoes de uma agencia dos Correios. Quando alguem (a fonte de eventos) envia uma carta, os Correios (Event Grid) recebem e entregam para as pessoas que se inscreveram para receber aquele tipo de carta.

Use-o para construir uma arquitetura reativa que responde assim que um evento ocorre. Por exemplo, quando uma imagem e carregada no Blob Storage, voce pode disparar automaticamente uma Azure Function para gerar uma miniatura.

Componentes principais

| Componente | Funcao | Exemplo | |----------|--------|---------| | Fonte de eventos | O servico que gera eventos | Blob Storage, Grupo de recursos, app personalizado | | Topico | O canal pelo qual os eventos sao entregues | Topicos do sistema (criados automaticamente) / Topicos personalizados | | Assinatura de evento | Define quais eventos vao para qual manipulador | Evento de criacao de Blob → Function App | | Manipulador de eventos | O servico que recebe e processa o evento | Azure Function, Logic App, Webhook, Event Hubs |

O formato CloudEvents e suportado como padrao.

 

Azure Event Hubs

O Event Hubs e como as catracas de entrada de um grande estadio. Quando dezenas de milhares de pessoas chegam ao mesmo tempo, sao distribuidas entre multiplas entradas (particoes) para processamento paralelo, e a ordem de entrada fica registrada para consulta posterior.

Use-o para cenarios de streaming de big data que precisam lidar com milhoes de eventos por segundo.

Conceitos principais

| Conceito | Descricao | |---------|-----------| | Particao | Unidade que divide eventos para processamento paralelo (padrao: 4) | | Grupo de consumidores | Conjunto de consumidores que leem independentemente o mesmo fluxo de eventos | | Captura | Salva automaticamente eventos no Blob Storage ou Data Lake | | Retencao | Padrao 1 dia, ate 90 dias |

 

Comparacao: Event Grid vs Event Hubs

| Aspecto | Event Grid | Event Hubs | |--------|-----------|-----------| | Uso principal | Reagir imediatamente quando um evento ocorre | Processamento de fluxo de dados em grande escala | | Modelo de processamento | Entrega eventos um a um (push) | Processamento de fluxo ordenado | | Escala | Ate milhares por segundo | Ate milhoes por segundo | | Retencao | Nenhuma (excluido apos entrega) | Ate 90 dias | | Cenario tipico | Upload de arquivo dispara processamento | Dados de sensores IoT, streaming de logs |

!Event Grid vs Event Hubs

Pontos-chave do exame

"Consolidar multiplas APIs backend em um unico gateway" -- Azure API Management (APIM)

"Limitar chamadas de API a N por minuto" -- politica rate-limit (entrada)

"Permitir ou bloquear IPs especificos de acessar a API" -- politica ip-filter

"Transformar o caminho da URL antes de encaminhar ao backend" -- politica rewrite-uri

"Retornar uma resposta de teste sem um backend real" -- politica mock-response

"Ordem de execucao das politicas" -- Entrada → Backend → Saida → Em erro

"Disparar automaticamente uma Function quando um evento ocorre (reativo)" -- Azure Event Grid

"Componente-chave que se inscreve em eventos de upload de Blob" -- Assinatura de evento

"Lidar com milhoes de eventos por segundo para streaming em grande escala" -- Azure Event Hubs

"Salvar automaticamente dados do Event Hubs no Blob Storage" -- Captura (Capture)

"Multiplas equipes lendo o mesmo fluxo de forma independente" -- Grupo de consumidores

Voltar à lista do blog