¿Cómo crear un microservicio que comunique con la Plataforma?
- 1 Introducción
- 2 Paso 1: descargar el código fuente de la plataforma
- 3 Paso 2: copiar la plantilla del microservicio y editarla
- 4 Paso 3: compilar el código fuente del microservicio
- 5 Paso 4: Ejecutar el microservicio (con y sin Eclipse)
- 6 Paso 5: Generar imagen Docker del microservicio y ejecutar el contenedor
Introducción
Podemos comunicarnos con la Plataforma a través de un microservicio, para ello se ha dejado disponible una plantilla con un pequeño ejemplo de código.
Paso 1: descargar el código fuente de la plataforma
Para poder descargar la plantilla debes descargar el código fuente de la plataforma:
git clone https://github.com/onesaitplatform/onesait-cloud-platform-examples.gitPaso 2: copiar la plantilla del microservicio y editarla
Una vez descargado el código fuente de la plataforma, ve hasta el directorio /onesait-cloud-platform/sources/examples y seleccionamos el directorio microservice-template:
Si analizas este directorio, encontrarás el archivo pom.xml que es un fichero que necesita Maven y que contiene información del proyecto así como la configuración del mismo, dependencias de librerías, plugins de empaquetado, etc...
Por un lado tenemos las dependencias de Spring y por otro tenemos la librería onesaitplatform-iotclient4springboot que permite comunicar con plataforma. Para más información, lee este post
Es recomendable utilizar la última versión disponible en el repositorio.
<dependency>
<groupId>com.minsait.onesait.platform</groupId>
<artifactId>onesaitplatform-iotclient4springboot</artifactId>
<version>1.3.6</version>
</dependency>Esta dependencia se encuentra en el repositorio público de onesaitplatform.
<repositories>
<repository>
<id>onesait</id>
<url>https://nexus.onesaitplatform.com/nexus/content/repositories/releases/</url>
</repository>
</repositories>
Es en esta sección donde tendrán que ser añadidas todas las dependencias que necesite tu microservicio.
Paso 3: compilar el código fuente del microservicio
Desde el directorio en el que hayamos copiado la plantilla, lanza el comando:
mvn clean install
Este comando se encargará de descargar las dependencias y compilar los fuentes, así como generar los .class y empaquetados del microservicio.
Una vez ejecutado el comando, deberías ver algo como esto:
Paso 4: Ejecutar el microservicio (con y sin Eclipse)
Este microservicio está escrito en lenguaje Java y usa el stack de Spring como framework de desarrollo, en concreto SpringBoot. Para ello se ha dejado definida la clase principal de la aplicación con las anotaciones necesarias, las principales:
@EnableAutoConfiguration
@ComponentScan
Dentro del Eclipse, si clicas con el botón derecho sobre la clase MicroserviceTemplateApplication.java y seleccionas Run As > Java Application
Si todo va correctamente, verás algo como:
También puedes arrancar tu microservicio fuera del Eclipse.
Lo primero es haber ejecutado el paso 3 para que se genera el .jar correspondiente. Si vas al directorio \microservice-template\target, encontrarás dos ficheros .jar.
Uno de ellos, el acabado en-exec.jar, es un fichero que incluye todas las dependencias, así como un Tomcat embebido en el cual se ejecutará tu módulo con el comando:
java -jar microservice-example-0.0.1-SNAPSHOT-exec.jarPaso 5: Generar imagen Docker del microservicio y ejecutar el contenedor
El fichero application-docker.yml contiene propiedades específicas, y que sobreescriben las del fichero application.yml, para la ejecución del módulo dentro de un contenedor Docker:
Por otro lado, también tienes el fichero Dockerfile que contiene las instrucciones necesarias para generar la imagen Docker del microservicio. Para ello es necesario tener el Docker engine previamente instalado. Para generar la imagen sólo es necesario copiar el jar microservice-example-1.1.0-SNAPSHOT-exec.jar ubicado en el directorio /target del módulo al directorio /docker:
Y desde este directorio ejecutar la sentencia:
docker build -t onesaitplatform/microservice:latest
Con esto ya tienes la imagen generada en local. Para poder arrancar el contenedor, ejecuta el comando:
docker run -t -p 10000:10000 onesaitplatform/microservice:latestPuedes acceder a tu módulo mediante un navegador web escuchando en el puerto 10000: http://localhost:10000/