Crear subdespliegues - 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.

Crear subdespliegues

nota

La función de subdespliegue está disponible en la versión 2.9.0 y posteriores del núcleo de Greengrass. No es posible implementar una configuración en una subimplementación con versiones de componentes anteriores del núcleo de Greengrass.

Una subimplementación es una implementación que se dirige a un subconjunto más pequeño de dispositivos dentro de una implementación principal. Puede usar las subimplementaciones para implementar una configuración en un subconjunto más pequeño de dispositivos. También puede crear subimplementaciones para volver a intentar una implementación principal que no funciona cuando fallan uno o más dispositivos de esa implementación principal. Con esta función, puede seleccionar los dispositivos que fallaron en esa implementación principal y crear una subimplementación para probar las configuraciones hasta que la subimplementación se realice correctamente. Una vez que la subimplementación se haya realizado correctamente, puede volver a implementar esa configuración en la implementación principal.

Siga los pasos de esta sección para crear una subimplementación y comprobar su estado. Para obtener más información sobre cómo crear despliegues, consulte Crear despliegues.

Para crear una subimplementación () AWS CLI
  1. Ejecute el siguiente comando para recuperar las últimas implementaciones de un grupo de cosas. Sustituya el ARN del comando por el ARN del grupo de cosas que se va a consultar. --history-filterLATEST_ONLYConfigúrelo para ver la última implementación de ese grupo de cosas.

    aws greengrassv2 list-deployments --target-arn arn:aws:iot:region:account-id:thinggroup/thingGroupName --history-filter LATEST_ONLY
  2. Copia el fragmento deploymentId de la respuesta al list-deployments comando para usarlo en el siguiente paso.

  3. Ejecute el siguiente comando para recuperar el estado de una implementación. deploymentIdSustitúyalo por el ID de la implementación que se va a consultar.

    aws greengrassv2 get-deployment --deployment-id deploymentId
  4. Copie el iotJobId de la respuesta al get-deployment comando para usarlo en el siguiente paso.

  5. Ejecute el siguiente comando para recuperar la lista de ejecuciones de tareas para la tarea especificada. Sustituya JobID por el iotJobId del paso anterior. Sustituya el estado por el que desee filtrar. Puede filtrar los resultados con los siguientes estados:

    • QUEUED

    • IN_PROGRESS

    • SUCCEEDED

    • FAILED

    • TIMED_OUT

    • REJECTED

    • REMOVED

    • CANCELED

    aws iot list-job-executions-for-job --job-id jobID --status status
  6. Cree un grupo de AWS IoT cosas nuevo o utilice un grupo de cosas existente para la subimplementación. A continuación, añada un AWS IoT elemento a este grupo de elementos. Los grupos de cosas se utilizan para gestionar las flotas de los dispositivos principales de Greengrass. Al implementar componentes de software en sus dispositivos, puede dirigirlos a dispositivos individuales o a grupos de dispositivos. Puede añadir un dispositivo a un grupo de cosas con una implementación activa de Greengrass. Una vez agregado, puede implementar los componentes de software de ese grupo de cosas en ese dispositivo.

    Para crear un nuevo grupo de cosas y añadirle tus dispositivos, haz lo siguiente:

    1. Crea un grupo de AWS IoT cosas. MyGreengrassCoreGroupSustitúyalo por el nombre del nuevo grupo de cosas. No se pueden usar dos puntos (:)) en el nombre de un grupo de cosas.

      nota

      Si un grupo de cosas de un subdespliegue se usa con unoparentTargetArn, no se puede reutilizar con una flota principal diferente. Si un grupo de cosas ya se ha utilizado para crear un subdespliegue para otra flota, la API devolverá un error.

      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup

      Si la solicitud se realiza correctamente, la respuesta es similar a la del siguiente ejemplo:

      { "thingGroupName": "MyGreengrassCoreGroup", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa" }
    2. Añada un núcleo de Greengrass aprovisionado a su grupo de cosas. Ejecute el siguiente comando con estos parámetros:

      • MyGreengrassCoreSustitúyalo por el nombre del núcleo de Greengrass aprovisionado.

      • MyGreengrassCoreGroupSustitúyalo por el nombre de su grupo de cosas.

      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup

      El comando no tiene ningún resultado si la solicitud se realiza correctamente.

  7. Cree un archivo llamado ydeployment.json, a continuación, copie el siguiente objeto JSON en el archivo. Sustituya TargetARN por el ARN del grupo de cosas al que apuntar AWS IoT la subimplementación. Un objetivo de subdespliegue solo puede ser un grupo de cosas. Los ARN de los grupos de cosas tienen el siguiente formato:

    • Grupo de cosas: arn:aws:iot:region:account-id:thinggroup/thingGroupName

    { "targetArn": "targetArn" }
  8. Vuelva a ejecutar el siguiente comando para obtener los detalles de la implementación original. Estos detalles incluyen los metadatos, los componentes y la configuración del trabajo. Sustituya DeploymentiD por el ID de. Paso 1 Puede usar esta configuración de despliegue para configurar su subdespliegue y realizar los cambios necesarios.

    aws greengrassv2 get-deployment --deployment-id deploymentId

    La respuesta contiene los detalles de la implementación. Copie cualquiera de los siguientes pares clave-valor de la respuesta del get-deployment comando a. deployment.json Puede cambiar estos valores para la subimplementación. Para obtener más información sobre los detalles de este comando, consulte GetDeployment.

    • components— Los componentes de la implementación. Para desinstalar un componente, elimínelo de este objeto.

    • deploymentName— El nombre de la implementación.

    • deploymentPolicies— Las políticas de la implementación.

    • iotJobConfiguration— La configuración del trabajo de la implementación.

    • parentTargetArn— El objetivo de la implementación principal.

    • tags— Las etiquetas del despliegue.

  9. Ejecute el siguiente comando para crear la subimplementación desdedeployment.json. Sustituya subDeploymentName por un nombre para la subimplementación.

    aws greengrassv2 create-deployment --deployment-name subdeploymentName --cli-input-json file://deployment.json

    La respuesta incluye un deploymentId que identifica esta subimplementación. Puede usar el ID de despliegue para comprobar el estado del despliegue. Para obtener más información, consulte Comprobar el estado de la implementación.

  10. Si la subimplementación se realiza correctamente, puede usar su configuración para revisar la implementación principal. Copie la deployment.json que utilizó en el paso anterior. Sustituya targetArn el del archivo JSON por el ARN de la implementación principal y ejecute el siguiente comando para crear la implementación principal con esta nueva configuración.

    nota

    Si crea una nueva revisión de despliegue de la flota principal, sustituirá a todas las revisiones y subdespliegues del despliegue principal. Para obtener más información, consulte Revisar las implementaciones.

    aws greengrassv2 create-deployment --cli-input-json file://deployment.json

    La respuesta incluye una deploymentId que identifica esta implementación. Puede usar el ID de implementación para comprobar el estado de la implementación. Para obtener más información, consulte Verificar el estado de implementación.