Creación de subimplementaciones - 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.

Creación de subimplementaciones

nota

La característica de subimplementación 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 característica, 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 información sobre cómo crear implementaciones, consulte Crear implementaciones.

Creación de una subimplementación (AWS CLI)
  1. Ejecute el siguiente comando para recuperar las últimas implementaciones de un grupo de objetos. Reemplace el ARN del comando por el ARN del grupo de objetos que se va a consultar. Configure --history-filter en LATEST_ONLY para ver la última implementación de ese grupo de objetos.

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

  3. Ejecute el siguiente comando para recuperar el estado de la implementación. Reemplace deploymentId por el ID de la implementación que va a consultar.

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

  5. Ejecute el siguiente comando para recuperar la lista de ejecuciones de un trabajo especificado. Reemplace jobID por el iotJobId del paso anterior. Reemplace status por el estado 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 objetos AWS IoT nuevo o use un grupo de objetos existente para la subimplementación. A continuación, agregue un objeto de AWS IoT a este grupo de objetos. Los grupos de objetos se usan para administrar las flotas de dispositivos principales de Greengrass. Al implementar componentes de software en sus dispositivos, puede dirigirse a dispositivos individuales o a grupos de dispositivos. Puede agregar un dispositivo a un grupo de objetos con una implementación activa de Greengrass. Una vez agregado, puede implementar los componentes de software de ese grupo de objetos en ese dispositivo.

    Para crear un nuevo grupo de objetos y agregarle sus dispositivos, haga lo siguiente:

    1. Cree un grupo de objetos de AWS IoT. Reemplace MyGreengrassCoreGroup por el nombre del nuevo grupo de objetos. No puede usar dos puntos (:) en el nombre de un grupo de objetos.

      nota

      Si un grupo de objetos de una subimplementación se usa con un parentTargetArn, no se puede reutilizar con una flota principal diferente. Si un grupo de objetos ya se ha usado para crear una subimplementación 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 tiene un aspecto similar al del siguiente ejemplo:

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

      • Reemplace MyGreengrassCore por el nombre del núcleo de Greengrass aprovisionado.

      • Reemplace MyGreengrassCoreGroup por el nombre su grupo de objetos.

      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 deployment.json y, a continuación, copie el siguiente objeto JSON en el archivo. Reemplace targetArn por el ARN del grupo de objetos AWS IoT al que apuntar la subimplementación. Un objetivo de subimplementación solo puede ser un grupo de objetos. Los ARN del grupo de objetos tienen el siguiente formato:

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

    { "targetArn": "targetArn" }
  8. Ejecute el siguiente comando nuevamente para obtener los detalles originales de la implementación. Estos detalles incluyen los metadatos, los componentes y la configuración del trabajo. Reemplace deploymentId por el ID de Paso 1. Puede usar esta configuración de implementación para configurar su subimplementación 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 comando get-deployment en deployment.json. Puede cambiar estos valores para la subimplementación. Para obtener más información acerca de 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 de la implementación.

  9. Ejecute el siguiente comando para crear la subimplementación desde deployment.json. Reemplace 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 la implementación para comprobar el estado de la implementación. 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 el deployment.json que usó en el paso anterior. Reemplace el targetArn 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 implementación de la flota principal, reemplaza a todas las revisiones y subimplementaciones de la implementación principal. Para obtener más información, consulte Revisar implementaciones.

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

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