Acceder a toda la información de SCP con APIs

Introducción

La entrada de hoy era un pequeño reto que me marque. Como acceder a la información de SAP Cloud Platform mediante las APIS oficiales. La idea idea surgió ya que quiero extraer datos de deploys a modo analíticos y añadir algun aviso cuando hay errores.

SAP Cloud Platform API Management – API Security Best Practices Blog Series  | SAP Blogs

Una parte de este reto ha sido con la ayuda de Gregor Wolf que a raíz de una pregunta en la SAP Community me guio a obtener el resultado.

No es un secreto que cuando algo funciona, te tienes que plantearte añadirlo en tu tecnologia por eso al mas puro estilo Amazon ahora disponemos de las siguientes herramientas para gestionar nuestros entornos cloud de SAP:

  • SAP CF CLI y SAPCP CLI: Dos clientes para que a modo consola de comandos podamos gestionar y obtener informaciones tanto del cockpid como del entorno cloud foundry. Aquí teneis mas detalle de cada uno de ellos.
    • SAP CF CLI: https://developers.sap.com/tutorials/cp-cf-download-cli.html
    • SAPCP CLI: https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/7c6df2db6332419ea7a862191525377c.html
  • SAP Cockpit: Este tiene poco a contar, esta evolucionando en los últimos meses. Cualquier persona que haya entrado en su cuenta trial habrá pasado horas en el cockpid preparando cosas. Es una herramienta grafica online que permite la gestión de las cuentas cloud
  • APIs: El motivo de la entrada de hoy. SAP pone a nuestra disposicion APIS que podemos utilizar para automatizas nuestros procesos cloud.

Aunque las APIs son una buena herramienta, también se puede utilizar los clientes SAP para automatizar tareas, por ejemplo, utilizando Jewkins.

API para Audit Logs Management

Esta API nos permite saber la información relacionada con las modificaciones de configuración del entorno cloud. Desde la modificación de una destiantion hasta quien modifico un rol.

Para ello necesitamos una instancia del tipo Audit Log Viewer:

En la creación de instancias añadiremos la siguiente configuración:

Lo siguiente es crear una key para poder acceder a la API:

En el wizard añadimos el nombre que queramos en Service key name:

Una vez creada la Key, ya podemos ver los datos que necesitaremos para poder llamar a la API. En rojo os marco las cosas importantes:

Ya tenemos todo lo necesario. Para realizar una prueba rápida sacaremos los logs de actividad de nuestra subcuenta trial, para ello llamaremos a la siguiente URL:

https://auditlog-management.cfapps.eu10.hana.ondemand.com/auditlog/v2/auditlogrecords

Con postman realizaremos los siguientes pasos:

En autorización marcaremos el protocolo «Oauth 2.0». Una vez seleccionado pulsaremos sobre el botón «Get New Access Token»

En la pantalla de generación de token añadiremos los siguientes datos obtenidos en el paso anterior:

  • Access Token URL = URL + «/oauth/token»
  • Client ID = clientid
  • Client Secret = clientsecret

Con el paso anterior tendremos disponible el Bearer, con el ya podemos ejecutar la consulta:

Si queréis mas información aquí tenéis el link oficial:

https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/en-US/f92c86ab11f6474ea5579d839051c334.html

Nuevas APIS de administración especificas de SCP

Estas nuevas APIS nos permiten gestionar la plataforma igual que utilizando el cockpit. El procedimiento de activación es muy parecido al anterior pero en esta ocasión crearemos el servicio «Cloud Management (Beta) (cis)»

Como en el caso anterior, añadiremos una Key para poder acceder a las APIS:

En este caso tendremos mas endpoints, cada uno dedicado a una de las areas a gestionar:

Con el listado de endpoints podemos acceder a la documentación oficial concatenando al final de la URL «/swagger-ui.html».

Por ejemplo, para ver las opciones disponibles del enpoint de cuentas podemos ir a la url:

Aquí tendremos las entidades disponibles y toda su documentación.

Como en el caso anterior, para obtener los datos de la API en POSTMAN utilizaremos el protocolo «Oauth 2.0» y sacaremos el Bearer token. Una nota importante, en este caso utilizáremos la opción Password Credentials y añadiremos nuestro usuario cloud.

Al ejecutar la llamada ya tenemos los datos de la subcuenta:

Resumen de todas las APIS para gestionar nuestras cuentas cloud de manera remota y introducción a las nuevas APIS de gestión

API estandard de cloud foundry

Este método es el mas estándar, ya que permite interactuar con la plataforma Cloud Foundry con sus APIs. Si quieres obtener mas informació de sus métodos puedes dirigirte a su documentación oficial.

https://apidocs.cloudfoundry.org/

Obteniendo el endpoint

Para acceder a la API, necesitamos el endpoint que podremos obtener en el mismo cockpit, la url es la misma que os solicita SAP Application Studio y el cliente foundry para poder funcionar:

Obteniendo la Autentificacion

Para obtener la autentificación, una vez tenemos el endpoind realizaremos una llamada GET a la entidad «/info» para obtener el login. Esta seria la URL definitiva para la cuenta trial de Frankfurt https://api.cf.eu10.hana.ondemand.com/info .

Del resultado nos quedaremos con el campo «Authorization_endpoint».

El siguiente punto será obtener el token de autorización (también llamado bearer token). Para ello, utilizaremos la URL extraída anteriormente mediante un metodo POST con los siguientes parámetros:

  • Parámetros: Aquí añadiremos el literal «password» ya que utilizaremos un tipo de autentificación con nuestro usuario cloud. En postman veremos como la URL se modifica
  • Cabecera: Añadiremos el tipo de autorización Basic con el literal Y2Y6… Si, algo un poco raro, pero hay poca documentación al respecto. Así que si alguien conoce el porque de ese literal o podéis dejar en comentarios 😉
  • Body: Con formato «x-www-form-urlencoded» tu usuario y password

Al ejecutar la petición, ya tenemos nuestro token para poder interactuar con la API. Nos interesa el «access_token»

Realizando las llamadas a la API

Ya tenemos todo lo necesario para obtener información de la plataforma. Para obtener los parámetros a utilizar podemos consultar la API oficial y/o hacer una llamada a la API de entrada que nos devolverá la version de la API y las entidades disponibles:

Por ejemplo, podemos ver como estan los deploys en curso. Utilizaremos el bearer antes obtenido que añadiremos en la opción de autorización de POSTMAN.

https://deploy-service.cfapps.eu10.hana.ondemand.com/api/v1/spaces/<<SpaceID>>/operations?state=RUNNING&state=ERROR&state=ACTION_REQUIRED


Con estas APIs se abre un nuevo abanico de possibilitades para monitorizar y controlar los entornos cloud. Ya solo queda utilizar tu imaginación para integrarlas con todo tipo de sistemas o artilugios 😉

Como siempre suscribete, dale a la campanita de notificaciones y comparte en redes para estar a la última.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.