Paso 4: implementar y probar el componente en un dispositivo principal - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Paso 4: implementar y probar el componente en un dispositivo principal

En esta sección, implementará el componente en el dispositivo principal para probar su funcionalidad. En el dispositivo principal, se crea el archivo virtual de nivel de batería para imitar una batería real. A continuación, debe crear despliegues adicionales y observar los archivos de registro de los componentes del dispositivo principal para comprobar si el componente se aplaza y confirma las actualizaciones.

Para implementar y probar el componente Hello World que aplaza las actualizaciones
  1. Utilice un editor de texto para crear un archivo virtual del nivel de batería. Este archivo imita una batería real.

    • En los dispositivos principales de Linux, cree un archivo con el nombre/home/ggc_user/virtual_battery.json. Ejecute el editor de texto con sudo permisos.

    • En los dispositivos principales de Windows, cree un archivo con el nombreC:\Users\ggc_user\virtual_battery.json. Ejecute el editor de texto como administrador.

    Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano para crear el archivo.

    sudo nano /home/ggc_user/virtual_battery.json

    Copia el siguiente JSON en el archivo.

    { "battery_level": 50 }
  2. Implemente el componente Hello World en el dispositivo principal. Haga lo siguiente:

    1. En el menú de navegación de la AWS IoT Greengrassconsola, elija Componentes.

    2. En la página Componentes, seleccione la pestaña Mis componentes y, a continuación, elija com.example.BatteryAwareHelloWorld.

    3. En la página com.example.BatteryAwareHelloWorld, elija Implementar.

    4. En Añadir a la implementación, elija una implementación existente para revisarla o cree una nueva y, a continuación, elija Siguiente.

    5. Si opta por crear una nueva implementación, elija el dispositivo principal o el grupo de cosas de destino para la implementación. En la página Especificar el destino, en Destino del despliegue, elija un dispositivo principal o un grupo de cosas y, a continuación, elija Siguiente.

    6. En la página Seleccionar componentes, compruebe que el com.example.BatteryAwareHelloWorldcomponente esté seleccionado y seleccione Siguiente.

    7. En la página Configurar componentes, seleccione y com.example.BatteryAwareHelloWorld, a continuación, haga lo siguiente:

      1. Seleccione Configurar componente.

      2. En el com.example.BatteryAwareHelloWorld modal Configurar, en Actualización de configuración, en Configuración para fusionar, introduzca la siguiente actualización de configuración.

        { "BatteryThreshold": 70 }
      3. Elija Confirmar para cerrar el modal y, a continuación, elija Siguiente.

    8. En la página Confirmar la configuración avanzada, en la sección Políticas de despliegue, en Política de actualización de componentes, confirme que está seleccionada la opción Notificar componentes. La opción Notificar componentes está seleccionada de forma predeterminada al crear una nueva implementación.

    9. En la página Revisar, elija Implementar.

      La implementación puede tardar hasta un minuto en completarse.

  3. El software AWS IoT Greengrass Core guarda la salida estándar de los procesos de los componentes en los archivos de registro de la logs carpeta. Ejecute el siguiente comando para comprobar que el componente Hello World se ejecuta e imprime los mensajes de estado.

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.BatteryAwareHelloWorld.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log
    PowerShell
    gc C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log -Tail 10 -Wait

    Debería ver mensajes similares a los del siguiente ejemplo.

    Hello, World! Battery level (50) is below threshold (70), so the component will defer updates.
    nota

    Si el archivo no existe, es posible que la implementación aún no esté completa. Si el archivo no existe en 30 segundos, es probable que la implementación haya fallado. Esto puede ocurrir si el dispositivo principal no tiene permiso para descargar los artefactos del componente desde el depósito de S3, por ejemplo. Ejecute el siguiente comando para ver el archivo de registro del software AWS IoT Greengrass principal. Este archivo incluye registros del servicio de despliegue del dispositivo principal de Greengrass.

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/greengrass.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\greengrass.log

    El type comando escribe el contenido del archivo en la terminal. Ejecute este comando varias veces para observar los cambios en el archivo.

    PowerShell
    gc C:\greengrass\v2\logs\greengrass.log -Tail 10 -Wait
  4. Cree una nueva implementación en el dispositivo principal para comprobar que el componente aplaza la actualización. Haga lo siguiente:

    1. En el menú de navegación de la AWS IoT Greengrassconsola, seleccione Implementaciones.

    2. Elija la implementación que creó o revisó anteriormente.

    3. En la página de despliegue, elija Revisar.

    4. En el modal de despliegue Revisar, seleccione Revisar despliegue.

    5. Elija Siguiente en cada paso y, a continuación, elija Implementar.

  5. Ejecute el siguiente comando para volver a ver los registros del componente y comprobar que aplaza la actualización.

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.BatteryAwareHelloWorld.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log
    PowerShell
    gc C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log -Tail 10 -Wait

    Debería ver mensajes similares a los del siguiente ejemplo. El componente aplaza la actualización durante 30 segundos, por lo que imprime este mensaje repetidamente.

    Deferred update for deployment 50722a95-a05f-4e2a-9414-da80103269aa.
  6. Utilice un editor de texto para editar el archivo virtual de nivel de batería y cambie el nivel de batería a un valor superior al umbral, de modo que la implementación pueda continuar.

    • En los dispositivos principales de Linux, edite el nombre del archivo/home/ggc_user/virtual_battery.json. Ejecute el editor de texto con sudo permisos.

    • En los dispositivos principales de Windows, edite el archivo denominadoC:\Users\ggc_user\virtual_battery.json. Ejecute el editor de texto como administrador.

    Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano para crear el archivo.

    sudo nano /home/ggc_user/virtual_battery.json

    Cambie el nivel de la batería a. 80

    { "battery_level": 80 }
  7. Ejecute el siguiente comando para volver a ver los registros del componente y comprobar que reconoce la actualización.

    Linux or Unix
    sudo tail -f /greengrass/v2/logs/com.example.BatteryAwareHelloWorld.log
    Windows Command Prompt (CMD)
    type C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log
    PowerShell
    gc C:\greengrass\v2\logs\com.example.BatteryAwareHelloWorld.log -Tail 10 -Wait

    Debería ver mensajes similares a los siguientes ejemplos.

    Hello, World! Battery level (80) is above threshold (70), so the component will acknowledge updates. Acknowledged update for deployment f9499eb2-4a40-40a7-86c1-c89887d859f1.