Compartir a través de


Personalización y reimplementación de un microservicio

En este tutorial se muestra cómo editar uno de los microservicios de la solución de supervisión remota, crear una imagen del microservicio, implementar la imagen en el centro de Docker y, a continuación, usarla en la solución de supervisión remota. Para presentar este concepto, el tutorial usa un escenario básico en el que se llama a una API de microservicios y se cambia el mensaje de estado de "Alive and Well" a "New Edits Made Here!"

La solución de supervisión remota usa microservicios creados mediante imágenes de Docker que se extraen de un centro de Docker.

En este tutorial, aprenderá a:

  • Edición y compilación de un microservicio en la solución de supervisión remota
  • Compilación de una imagen de Docker
  • Sube una imagen de Docker a tu Docker Hub.
  • Extrae la nueva imagen de Docker
  • Visualización de los cambios

Prerrequisitos

Para seguir este tutorial, necesita:

Llamada a la API y visualización del estado de respuesta

En esta parte, llamará a la API predeterminada de microservicios del administrador de IoT Hub. La API devuelve un mensaje de estado que cambia más adelante personalizando el microservicio.

  1. Asegúrese de que la solución de supervisión remota se ejecuta localmente en la máquina.

  2. Localice dónde descargó Postman y ábralo.

  3. En Postman, escriba lo siguiente en GET: https://localhost:8080/iothubmanager/v1/status.

  4. Vea la devolución y debería ver "Estado": "OK: Vivo y Bien".

    Mensaje de Alive y Well Postman

Cambiar el estado y crear la imagen

Ahora cambie el mensaje de estado del microservicio Iot Hub Manager a "New Edits Made Here!" (Nuevas modificaciones realizadas aquí) y vuelva a generar la imagen de Docker con este nuevo estado. Si tiene problemas aquí, consulte la sección Solución de problemas .

  1. Asegúrese de que el terminal está abierto y cambie al directorio donde ha clonado la solución de supervisión remota.

  2. Cambie el directorio a "azure-iot-pcs-remote-monitoring-dotnet/services/iothub-manager/Services".

  3. Abra StatusService.cs en cualquier editor de texto o IDE que desee.

  4. Busque el siguiente código:

    var result = new StatusServiceModel(true, "Alive and well!");
    

    y cámbielo por el código de abajo y guárdelo.

    var result = new StatusServiceModel(true, "New Edits Made Here!");
    
  5. Vuelva al terminal, pero ahora cambie al siguiente directorio: "azure-iot-pcs-remote-monitoring-dotnet/services/iothub-manager/scripts/docker".

  6. Para construir tu nueva imagen de Docker, escribe

    sh build
    

    o en Windows:

    ./build.cmd
    
  7. Para comprobar que la nueva imagen se creó correctamente, escriba

    docker images 
    

El repositorio debe ser "azureiotpcs/iothub-manager-dotnet".

Imagen de Docker correcta

Etiquetar y empujar la imagen

Para poder insertar la nueva imagen de Docker en un centro de Docker, Docker espera que las imágenes se etiqueten. Si tiene problemas aquí, consulte la sección Solución de problemas .

  1. Para buscar el identificador de imagen de la imagen de Docker que creó, escriba:

    docker images
    
  2. Para etiquetar la imagen con el tipo "testing"

    docker tag [Image ID] [docker ID]/iothub-manager-dotnet:testing 
    
  3. Para subir la imagen recién etiquetada a Docker Hub, escriba

    docker push [docker ID]/iothub-manager-dotnet:testing
    
  4. Abra el explorador de Internet y vaya al centro de Docker e inicie sesión.

  5. Ahora debería ver su imagen de Docker recién subida en el Docker Hub. Imagen de Docker en docker hub

Actualización de la solución de supervisión remota

Ahora debe actualizar el archivo docker-compose.yml local para obtener la nueva imagen de Docker desde Docker Hub. Si tiene problemas aquí, consulte la sección Solución de problemas .

  1. Vuelva al terminal y cambie al directorio siguiente: "azure-iot-pcs-remote-monitoring-dotnet/services/scripts/local".

  2. Abra docker-compose.yml en cualquier editor de texto o IDE que desee.

  3. Busque el siguiente código:

    image: azureiotpcs/iothub-manager-dotnet:testing
    

    y cámbielo para que tenga el aspecto de la imagen de abajo y guárdelo.

    image: [docker ID]/iothub-manager-dotnet:testing
    

Visualización del nuevo estado de respuesta

Para finalizar, vuelva a implementar una instancia local de la solución de supervisión remota y vea la nueva respuesta de estado en Postman.

  1. Vuelva al terminal y cambie al directorio siguiente: "azure-iot-pcs-remote-monitoring-dotnet/scripts/local".

  2. Inicie la instancia local de la solución de supervisión remota escribiendo el siguiente comando en el terminal:

    docker-compose up
    
  3. Localice dónde descargó Postman y ábralo.

  4. En Postman, escriba la siguiente solicitud en GET: https://localhost:8080/iothubmanager/v1/status. Ahora debería ver, "Estado": "OK, ¡Nuevas ediciones realizadas aquí!".

Mensaje postman de nuevas modificaciones realizadas aquí

Solución de problemas

Si tiene problemas, intente quitar las imágenes y contenedores de Docker en el equipo local.

  1. Para quitar todos los contenedores, primero deberá detener todos los contenedores en ejecución. Abra el terminal y escriba

    docker stop $(docker ps -aq)
    docker rm $(docker ps -aq)
    
  2. Para quitar todas las imágenes, abra el terminal y escriba.

    docker rmi $(docker images -q)
    
  3. Para comprobar si hay algún contenedor en la máquina, escriba .

    docker ps -aq 
    

    Si quitó correctamente todos los contenedores, no debería aparecer nada.

  4. Puede comprobar si hay imágenes en la máquina escribiendo

    docker images
    

    Si quitó correctamente todos los contenedores, no debería aparecer nada.

Pasos siguientes

En este tutorial, ha visto cómo:

  • Edición y compilación de un microservicio en la solución de supervisión remota
  • Compilación de una imagen de Docker
  • Sube una imagen de Docker a tu Docker Hub.
  • Extrae la nueva imagen de Docker
  • Visualización de los cambios

Lo siguiente que debe probar es personalizar el microservicio del simulador de dispositivos en la solución de supervisión remota.

Para obtener más información para desarrolladores sobre la solución de supervisión remota, consulte: