La implementación de una arquitectura efectiva es fundamental para gestionar y monetizar APIs de Inteligencia Artifical de manera eficiente. En este artículo, nos centraremos en el componente central de esta arquitectura y también exploraremos la concepción del modelo de negocio y la inicialización del proveedor de pagos, utilizando Stripe.
El componente central de la arquitectura es el Azure API Management, un servicio extraordinario de Azure que permite la integración y transformación de APIs de origen heterogéneo en un único componente que centraliza su gestión y su gobierno. Habitualmente, el Azure API Management se abrevia como APIM.
Con el APIM podrás afrontar, entre otros, los siguientes desafíos:
En ese sentido, la forma en alto nivel que tendrá la arquitectura que implementaremos es la siguiente:
En esta arquitectura contaremos con los siguientes componentes:
Concebir un modelo de negocio nunca es una tarea sencilla. Si tu equipo trabaja bajo un modelo de agilidad (digamos Scrum) es perfectamente normal que el concebir y establecer el modelo de negocio para tus APIs tome fácilmente de tres a cuatro Sprints.
Tras definir el modelo de negocio es probable que las siguientes tareas sean desarrollar una aplicación para su gestión que se integre con el Azure API Management (APIM) mediante su API REST de gestión para crear y actualizar los elementos del modelo de negocio, siendo de los principales los Productos y las APIs vinculadas a cada uno.
Por temas de espacio de tiempo, crear tal tipo de aplicación se escapa al propósito de esta publicación, por lo cual simularemos el modelo de negocio diseñado empleando un archivo JSON que podrás encontrar en el repo de GitHub aquí 👉 https://github.com/rliberoff/Global-Azure-Spain-2023-API-Monetization/blob/main/businessModel/monetizationModels.json
Como tal, el fichero se ve así (lo pongo en un GIF animado porque es muy largo):
Extracto del JSON que representa (simula) el modelo de negocio.
Este archivo JSON lo mantendremos y accederemos desde un contenedor de Blobs en el Azure Storage Account.
Así mismo, el equivalente en el APIM a este modelo de negocio fue creado manualmente y se ve de la siguiente forma:
Como se ve el modelo de negocio en el Azure API Management, en el apartado de «Productos».
Como he mencionado antes, usaremos Stripe como mecanismo de pagos, siendo las razones de mi elección las siguientes:
El único defecto que le veo a Stripe es que, de la variedad de sistemas ofrecidos en el mercado, está entre los más costosos.
Partiendo de que ya cuentas con una cuenta de desarrollador de Stripe, lo que haremos es ejecutar un script de PowerShell para inicializar el modelo de negocio dentro de Stripe. También la usaremos para inicializar un webhook que necesitaremos para la comunicación asíncrona entre Stripe y el Azure API Management.
Para poder ejecutar este script, necesitamos crear una API Key en Stripe con permisos específicos para la personalización de productos y servicios. Para ello:
Una vez que tenemos este API Key, vamos a ver qué hace este script, el cual encontrarás completo en el repo de GitHub aquí 👉 https://github.com/rliberoff/Global-Azure-Spain-2023-API-Monetization/blob/main/scripts/stripeInitialisation.ps1
Lo primero es que el script necesita cinco parámetros:
Ubicación de la URL del Azure API Management Gateway.
Ubicación de las claves de subscripción en el Azure API Management.
La llamada al script se ve de la siguiente forma:
Primera parte del script de PowerShell de configuración de Stripe que se encarga de capturar los parámetros y de instalar el CLI de Stripe.
La siguiente parte del script hace dos cosas, por un lado, descarga el JSON con la definición del modelo de negocio desde el contenedor de Blobs en el Azure Storage Account, y por otro se trae los productos definidos en el APIM a través del API REST de gestión.
Hago esto para poder asegurarme de que el producto que voy a crear en Stripe efectivamente existe configurado en el APIM y que concuerden los IDs de los mismos entre ambas plataformas, ya que será a través de dichos identificadores que, como veremos más adelante, se identificarán los consumos para generar la facturación y efectivamente monetizar nuestras APIs.
La siguiente parte del código es un poco más larga y os invito a leerla directamente del repo, y es la que se encarga de usar el CLI de Stripe para de forma recursiva hacer llamadas para crear los productos, sus características, sus precios y su frecuencia de facturación. Aquí es donde podríamos definir que un producto sea facturado semanal, mensual, trimestral, semestral o anualmente.
Por último, creamos el webhook y recuperamos su secreto para poder emplearlo como parámetro de configuración en la aplicación que desplegaremos en el Azure Container Application (ACA).
Tras ejecutar este script, si entramos en nuestra cuenta de Stripe veremos como los productos estarán configurados:
En el próximo artículo abordaremos la delegación de capacidades en Azure API Management, incluyendo la gestión de subscripciones y la integración con Stripe para la facturación 👉 Cómo monetizar nuestras APIs de Inteligencia Artificial con el Azure API Management (3ª parte) | ENCAMINA
Este sitio web utiliza cookies para que tengas la mejor experiencia de usuario. Si continuas navegando, estás dando tu consentimiento para aceptar las cookies y también nuestra política de cookies (esperemos que no te empaches con tanta cookie 😊)