Recientemente he estado jugando con Tubo de vapor para consultar diferentes servicios en la nube que uso. Esto me hizo pensar, sería genial si pudiera consultar mi cuenta de SAP Business Technology Platform (SAP BTP) con Steampipe. En esta publicación de blog, compartiré lo que puede hacer con un Complemento de Steampipe que se comunica con SAP BTP.
Desde el Sitio web de Steampipe, Steampipe expone las API y los servicios como una base de datos relacional de alto rendimiento, lo que le permite escribir consultas basadas en SQL para explorar datos dinámicos. En resumen, puede consultar, utilizando SQL, sus servicios en la nube a través de Steampipe. Puede escribir consultas SQL para conocer el estado de sus recursos en la nube, por ejemplo, ¿quiere saber cuántas funciones sin servidor se ejecutan en su cuenta de AWS?
select runtime, count(*)
from aws_lambda_function
group by runtime;
Bajo el capó, Steampipe aprovecha los contenedores de datos externos (FDW) de PostgreSQL para proporcionar una interfaz SQL para servicios y sistemas externos. Dado que hay una base de datos de Postgres involucrada, puede usarla para exportar sus datos o conectarla con herramientas de terceros disponibles en el ecosistema de Postgres.
La plataforma en la nube con la que más interactúo es SAP BTP. Naturalmente, mientras me familiarizaba con Steampipe, pensé que sería genial si estuviera disponible un complemento para SAP BTP. Desafortunadamente, no hubo ninguno, pero como desarrolladores, siempre podemos seguir adelante y crear/contribuir con uno.
El documentación de la tubería de vapor incluye todo lo que se requiere para desarrollar un nuevo complemento…. cómo escribir un complementocómo definir una tablacómo convertir de una respuesta JSON a Columnas, etc. Usando el ejemplo de zendesk Como se muestra en el sitio web como punto de partida, decidí crear un complemento para SAP BTP.
En la versión PoC del complemento, el complemento solo interactúa con el servicio de cuentasparte de Servicios principales de SAP BTP. He definido las siguientes tablas: – btp_accounts_global_account – btp_accounts_subaccounts – btp_accounts_directories
Al consultar las tablas anteriores, el complemento llamará a la API en nuestro nombre y convertirá los datos para que se puedan mostrar en formato de tabla. Por ejemplo, select * from btp_trial.btp_accounts_global_account
llamará al /accounts/v1/globalaccount
método parte de la API del servicio Cuentas.
Dado que hay PostgreSQL en segundo plano, podemos aprovechar las capacidades de SQL para filtrar y agrupar los datos.
-- Apply filter in your queries, e.g. retrieve all subaccounts in a specific region.
select guid, display_name, region
from btp_trial.btp_accounts_subaccounts
where region = 'ap21'
+--------------------------------------+------------------+--------+
| guid | display_name | region |
+--------------------------------------+------------------+--------+
| 4e923803-c32b-4cb6-b008-738892b7cd8f | subaccount_under | ap21 |
| a6285f10-2dae-4318-b2c6-2075f2fcc3f3 | subaccount_2 | ap21 |
+--------------------------------------+------------------+--------+
-- Count all subaccounts per region
select region, count(1) as total
from btp_trial.btp_accounts_subaccounts
group by region
order by total desc
+--------+-------+
| region | total |
+--------+-------+
| ap21 | 2 |
| us10 | 1 |
+--------+-------+
Hay muchos desarrolladores que conocen bien SQL, pero es posible que no hayan tenido tiempo de familiarizarse con las API. No todo el mundo está familiarizado con las API y toda la complejidad que podría rodearlas. Dicho esto, no estoy disuadiendo a nadie de aprender cómo funcionan las API de servicios en la nube. Si no sabe cómo funcionan las API, debe invertir algo de tiempo en conocerlas. Dicho esto, esto es algo que podría ayudar a familiarizarse con los datos expuestos por estas API.
Si llegó hasta aquí, le resultó interesante usar SQL para interactuar con estos servicios en la nube. Planeo invertir más tiempo en este complemento y expandir sus capacidades para incluir los servicios de derechos, eventos, aprovisionamiento y consumo de recursos que forman parte del Servicios principales de SAP BTP. Si tienes alguna sugerencia, te animo a que la compartas conmigo a través de los comentarios a continuación.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073