Crear productos, políticas de limites y cuotas en Azure API Management

Nota:

Este post es la continuación de la guía: Conectar .NET Web API con Azure API Management , favor de realizar primero los paso del post antes de seguir con esta publicación.

API Management nos ofrece una manera de encapsular funcionalidad de nuestra Web API en productos. Estos productos pueden ser configurados con políticas, lo que nos permite limitar las llamada a nuestros productos y controlar el acceso a ellos.

Les comparto un enlace donde podrán encontrar el detalle de los conceptos principales de API Management:

https://docs.microsoft.com/en-us/azure/api-management/api-management-key-concepts

Pre requisitos

 
Crear un producto nuevo en API Management
Ingresamos al portal de Azure y buscamos nuestro recurso de API Management (AAMDemo).
Ahora vamos a la sección del menú “Products” y creamos un nuevo producto:
  1. Ingresar nombre y descripción del producto
  2. Seleccionamos el estado: “ Not Published” (configuraremos las políticas antes de publicar)
  3. Seleccionamos “Requires subscription”
  4. Agregamos nuestra API: “WebAPI.AMM.Demo”
  5. Creamos recurso
1
2
 
Crear política de limite de tarifa (rate limit)

Para crear la política de nuestro producto: “Limite de 5 llamadas por minuto”, ingresamos al recurso AAMDemo (API Management), vamos a ir a la sección de productos y elegimos “Free Trial” para luego seleccionar la opción de “Policies”.
3

 

Seleccionamos la opción “Limit call rate per subscription” (parte izquierda de la pantalla)

4

 

Luego ingresamos el siguiente código:

6

 

El código que ingresamos significa que vamos a restringir las llamadas a la API de todos los usuarios subscritos al producto: “Free Trial”, cuando no especificamos qué API y operaciones vamos a restringir en el producto (se identifica con la etiqueta “<api></api>”) la política de limite de tarifa se aplica a todo el producto, sin importar cuantos métodos o APIs existan en el producto.

 

Publicar y probar producto
Publicaremos nuestro producto para poder probar la nueva politica.
Ingresamos a “Free Trial –> Settings –> Publish
9
 

Ahora vamos a probar que nuestra nueva política funciona correctamente.

Ingresamos a nuestro recurso “AAMDemo” (API Management) en el portal de Azure, y vamos a la sección de APIs –> WebAPI.AAM.Demo –> Test:

12

14

15

17


Con esto logramos limitar las llamadas a 5 por minuto en el producto Free Trial.

Crear política de quota de consumo
En nuestro recurso AAMDemo, vamos a ir a la sección de productos y vamos a elegir “Free Trial” para luego seleccionar la opción de “Policies”
De acuerdo con la descripción de nuestro producto, se limitará a 5 llamadas a la API por minuto, con un limite de 50 peticiones por día.
Para agregar una quota damos clic en “Set usage quota per subscription”:
7
 
Luego ingresamos el siguiente código:
Nota: Renewal-period es la sumatoria en segundos de un día: 3600seg(1hr) x 24hrs = 86400 
8
 
Crear accesos para dar visibilidad a grupos (developer, guest)
Los productos pueden ser limitados por “Grupos”, cada grupo está conformado por usuarios, los cuales puedes agregar desde el portal de publicador. Esto sirve para ofrecer diferentes características de nuestra API a cada grupo de usuarios.
 
Para agregar “Grupos” a un producto, vamos a la opción de menú de nuestro producto y agregamos los grupos existentes para nuestro caso de “Free Trial”:
10
11
 
 
Probar políticas usando portal de Azure
Probemos que las politicas del producto Free Trial funcionan.

Las características de este producto son:

  1. Cuota de un máximo de 5 peticiones por minuto.
  2. Limité de 50 peticiones a la API por día.

Ingresamos a nuestro recurso “AAMDemo” (API Management) en el portal de Azure, y vamos a la sección de APIs –> WebAPI.AAM.Demo –> Test:

12

14
15
17
18

Éxito! hemos logrado configurar quotas y limites en nuestra capa de entrada de API Management.
Ahora podremos agregar autenticación para que API Management se comunique de manera segura con nuestra API que se encuentra en App Services.

Siguientes pasos:

  • Agregar autenticación por tokens en Azure API Management

Popular posts from this blog

How to implement OAuth 2.0 server with Redis

Integrar Web API de .NET en proyecto de Xamarin.Forms utilizando Visual Studio y Azure API App

Como crear una aplicación .NET Core y almacenarla en un contenedor de Docker usando Visual Studio

Geospatial queries in Azure Redis Cache using Node.js Azure API App

Configurar y desplegar una Web API en Azure App Service Environment