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 Core utiliza esta configuración de aprovisionamiento para configurar el software AWS IoT Greengrass Core 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 Core 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 flota de AWS IoT
Requisitos
Para desarrollar un complemento de aprovisionamiento personalizado, debe crear una clase Java que cumpla con los siguientes requisitos:
-
Usa el paquete
com.aws.greengrasso un paquete dentro del paquetecom.aws.greengrass. -
Tiene un constructor sin argumentos.
-
Implementa la interfaz
DeviceIdentityInterface. Para obtener más información, consulte Implementación de la interfaz DeviceIdentityInterface.
Implementación de 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.
Cómo utilizar 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 agregar 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 versión más reciente 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 carpetalibdel 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
nucleusdel grupocom.aws.greengrass. También debe agregar el repositoriogreengrass-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 interfaz de DeviceIdentityInterface
La interfaz com.aws.greengrass.provisioning.DeviceIdentityInterface tiene la siguiente forma.
nota
También puede explorar estas clases en el paquete com.aws.greengrass.provisioning
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 {}
Cada valor de configuración incluido en SystemConfiguration y NucleusConfiguration son obligatorios para instalar el software AWS IoT Greengrass Core, pero puede devolver null. Si su complemento de aprovisionamiento personalizado devuelve null para cualquier valor de configuración, debe proporcionar ese valor en la configuración del sistema o del núcleo al crear el archivo config.yaml 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.