Desarrollo de complementos de aprovisionamiento personalizados - 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.

Desarrollo de complementos de aprovisionamiento personalizados

Para desarrollar un complemento de aprovisionamiento personalizado, cree una clase Java que implemente la interfaz com.aws.greengrass.provisioning.DeviceIdentityInterface. Puede incluir el archivo JAR del núcleo de Greengrass en su proyecto para acceder a esta interfaz y a sus clases. Esta interfaz define un método que introduce una configuración de complemento y genera una configuración de aprovisionamiento. La configuración de aprovisionamiento define las configuraciones para el sistema y el componente núcleo de Greengrass. El instalador del software AWS IoT Greengrass principal utiliza esta configuración de aprovisionamiento para configurar el software AWS IoT Greengrass principal en un dispositivo.

Después de desarrollar un complemento de aprovisionamiento personalizado, créelo como un archivo JAR que puede proporcionar al instalador del software AWS IoT Greengrass principal para que ejecute el complemento durante la instalación. El instalador ejecuta el complemento de aprovisionamiento personalizado en la misma JVM que utiliza el instalador, por lo que puede crear un JAR que contenga únicamente el código del complemento.

nota

El complemento de aprovisionamiento de flota de AWS IoT implementa DeviceIdentityInterface para utilizar el aprovisionamiento de flota durante la instalación. El complemento de aprovisionamiento de flota es de código abierto, por lo que puede explorar su código de origen para ver un ejemplo de cómo utilizar la interfaz del complemento de aprovisionamiento. Para obtener más información, consulte el complemento de aprovisionamiento de AWS IoT flotas en. GitHub

Requisitos

Para desarrollar un complemento de aprovisionamiento personalizado, debe crear una clase Java que cumpla con los siguientes requisitos:

  • Usa el paquete com.aws.greengrass o un paquete dentro del paquete com.aws.greengrass.

  • Tiene un constructor sin argumentos.

  • Implementa la interfaz DeviceIdentityInterface. Para obtener más información, consulte Implemente la interfaz DeviceIdentityInterface .

Implemente la interfaz DeviceIdentityInterface

Para utilizar la interfaz com.aws.greengrass.provisioning.DeviceIdentityInterface en su complemento personalizado, agregue el núcleo de Greengrass como una dependencia a su proyecto.

Para utilizarla DeviceIdentityInterface en un proyecto de complemento de aprovisionamiento personalizado
  • Puede agregar el archivo JAR del núcleo de Greengrass como biblioteca o agregar el núcleo de Greengrass como una dependencia de Maven. Realice una de las siguientes acciones:

    • Para añadir el archivo JAR del núcleo de Greengrass como biblioteca, descargue el software AWS IoT Greengrass Core, que contiene el JAR del núcleo de Greengrass. Puede descargar la última versión del software AWS IoT Greengrass Core desde la siguiente ubicación:

      Puede encontrar el archivo JAR del núcleo de Greengrass (Greengrass.jar) en la carpeta lib del archivo ZIP. Agregue este archivo JAR a su proyecto.

    • Para utilizar el núcleo de Greengrass en un proyecto de Maven, agregue una dependencia al artefacto nucleus del grupo com.aws.greengrass. También debe agregar el repositorio greengrass-common, ya que el núcleo de Greengrass no está disponible en el repositorio central de Maven.

      <project ...> ... <repositories> <repository> <id>greengrass-common</id> <name>greengrass common</name> <url>https://d2jrmugq4soldf.cloudfront.net/snapshots</url> </repository> </repositories> ... <dependencies> <dependency> <groupId>com.aws.greengrass</groupId> <artifactId>nucleus</artifactId> <version>2.5.0-SNAPSHOT</version> <scope>provided</scope> </dependency> </dependencies> </project>

La DeviceIdentityInterface interfaz

La interfaz com.aws.greengrass.provisioning.DeviceIdentityInterface tiene la siguiente forma.

public interface com.aws.greengrass.provisioning.DeviceIdentityInterface { ProvisionConfiguration updateIdentityConfiguration(ProvisionContext context) throws RetryableProvisioningException, InterruptedException; // Return the name of the plugin. String name(); } com.aws.greengrass.provisioning.ProvisionConfiguration { SystemConfiguration systemConfiguration; NucleusConfiguration nucleusConfiguration } com.aws.greengrass.provisioning.ProvisionConfiguration.SystemConfiguration { String certificateFilePath; String privateKeyPath; String rootCAPath; String thingName; } com.aws.greengrass.provisioning.ProvisionConfiguration.NucleusConfiguration { String awsRegion; String iotCredentialsEndpoint; String iotDataEndpoint; String iotRoleAlias; } com.aws.greengrass.provisioning.ProvisioningContext { Map<String, Object> parameterMap; String provisioningPolicy; // The policy is always "PROVISION_IF_NOT_PROVISIONED". } com.aws.greengrass.provisioning.exceptions.RetryableProvisioningException {}

Todos los valores de configuración de SystemConfiguration y NucleusConfiguration son necesarios para instalar el software Core, pero puede devolverlos AWS IoT Greengrass . null Si su complemento de aprovisionamiento personalizado devuelve null algún valor de configuración, debe proporcionar ese valor en la configuración del sistema o del núcleo al crear el config.yaml archivo que se va a proporcionar al instalador del software AWS IoT Greengrass Core. Si su complemento de aprovisionamiento personalizado devuelve un valor no nulo para una opción que también ha definido en config.yaml, el instalador sustituirá el valor en config.yaml por el valor devuelto por el complemento.