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 componentes de AWS IoT Greengrass
Puede desarrollar componentes de AWS IoT Greengrass personalizados en una computadora de desarrollo local o en un dispositivo principal de Greengrass. AWS IoT Greengrass proporciona la interfaz de línea de comandos del kit de desarrollo de AWS IoT Greengrass (CLI de GDK) para ayudarlo a crear, compilar y publicar componentes a partir de plantillas de componentes predefinidas y componentes de comunidad. También puede ejecutar comandos de intérprete de comandos integrados para crear, compilar y publicar componentes. Elija entre las siguientes opciones para crear componentes de Greengrass personalizados:
-
Uso de la CLI del kit de desarrollo de Greengrass
Use la CLI de GDK para desarrollar componentes en una computadora de desarrollo local. La CLI de GDK crea y empaqueta el código de origen de los componentes en una receta y artefactos que puede publicar como un componente privado en el servicio de AWS IoT Greengrass. Puede configurar la CLI de GDK para que actualice automáticamente la versión del componente y los URI del artefacto al publicar el componente, de modo que no necesite actualizar la receta cada vez. Para desarrollar un componente mediante la CLI de GDK, puede partir de una plantilla o un componente de comunidad del catálogo de software de Greengrass. Para obtener más información, consulte Interfaz de línea de comandos del kit de desarrollo de AWS IoT Greengrass.
-
Ejecute los comandos de intérprete de comandos integrados
Puede ejecutar comandos de intérprete de comandos integrados para desarrollar componentes en una computadora de desarrollo local o en un dispositivo principal de Greengrass. Los comandos de intérprete de comandos se usan para copiar o compilar el código de origen de los componentes en artefactos. Cada vez que cree una nueva versión de un componente, debe crear o actualizar la receta con la nueva versión del componente. Al publicar el componente en el servicio de AWS IoT Greengrass, debe actualizar el URI del artefacto de cada componente de la receta.
Temas
Creación de un componente (CLI de GDK)
Siga las instrucciones de esta sección para crear y compilar un componente mediante la CLI de GDK.
Desarrollo de un componente de Greengrass (CLI de GDK)
-
Si aún no lo ha hecho, instale la CLI de GDK en su computadora de desarrollo. Para obtener más información, consulte Instalación o actualización de la interfaz de línea de comandos del kit de desarrollo de AWS IoT Greengrass.
-
Vaya a la carpeta en la que desea crear las carpetas de componentes.
-
Elija una plantilla de componentes o un componente de comunidad para descargar. La CLI de GDK descarga la plantilla o el componente de comunidad, por lo que puede empezar con un ejemplo funcional. Use el comando component list para recuperar la lista de plantillas o componentes de comunidad disponibles.
-
Para mostrar una lista de las plantillas de componentes, ejecute el siguiente comando. Cada línea de la respuesta incluye el nombre de la plantilla y el lenguaje de programación.
gdk component list --template -
Para mostrar una lista de componentes de comunidad, ejecute el siguiente comando.
gdk component list --repository
-
-
Cree y cambie a una carpeta de componentes en la que la CLI de GDK descargue la plantilla o el componente de comunidad. Reemplace
HelloWorldpor el nombre del componente u otro nombre que lo ayude a identificar esta carpeta de componentes. -
Descargue la plantilla o el componente de comunidad en la carpeta actual. Use el comando component init.
-
Para crear una carpeta de componentes a partir de una plantilla, ejecute el siguiente comando. Reemplace
HelloWorldpor el nombre de la plantilla y reemplacepythonpor el nombre del lenguaje de programación.gdk component init --templateHelloWorld--languagepython -
Para crear una carpeta de componentes a partir de un componente de comunidad, ejecute el siguiente comando. Reemplace
ComponentNamepor el nombre del componente de comunidad.gdk component init --repositoryComponentName
nota
Si usa la versión 1.0.0 de la CLI de GDK, debe ejecutar este comando en una carpeta vacía. La CLI de GDK descarga la plantilla o el componente de comunidad en la carpeta actual.
Si usa la versión 1.1.0 de la CLI de GDK o una versión posterior, puede especificar el argumento
--namepara especificar la carpeta en la que la CLI de GDK descarga la plantilla o el componente de comunidad. Si usa este argumento, especifique una carpeta que no existe. La CLI de GDK crea la carpeta por usted. Si no se especifica este argumento, la CLI de GDK usa la carpeta actual, que debe estar vacía. -
-
La CLI de GDK lee el archivo de configuración de la CLI de GDK, denominado
gdk-config.json, para crear y publicar componentes. Este archivo de configuración existe en la raíz de la carpeta del componente. El paso anterior crea este archivo por usted. En este paso, se actualizagdk-config.jsoncon información acerca de su componente. Haga lo siguiente:-
Abra
gdk-config.jsonen un editor de texto. -
(Opcional) Cambie el nombre del componente. El nombre del componente es la clave del objeto
component. -
Cambie el autor del componente.
-
(Opcional) Cambie la versión del componente. Especifique uno de los siguientes valores:
-
NEXT_PATCH: al elegir esta opción, la CLI de GDK establece la versión al publicar el componente. La CLI de GDK consulta el servicio de AWS IoT Greengrass para identificar la versión más reciente publicada del componente. A continuación, establece la versión en la siguiente versión del parche posterior a esa versión. Si no ha publicado el componente antes, la CLI de GDK usa la versión1.0.0.Si elige esta opción, no podrá usar la CLI de Greengrass para implementar y probar localmente el componente en su computadora de desarrollo local que ejecuta el software AWS IoT Greengrass Core. Para habilitar las implementaciones locales, debe especificar una versión semántica en su lugar.
-
Una versión semántica, como
1.0.0. Las versiones semánticas siguen un sistema de números de major.minor.patch. Para obtener más información, consulte la especificación semántica de la versión. Si desarrolla componentes en un dispositivo principal de Greengrass en el que desee implementar y probar el componente, elija esta opción. Debe compilar el componente con una versión específica para crear implementaciones locales con la CLI de Greengrass.
-
-
(Opcional) Cambie la configuración de compilación del componente. La configuración de compilación define cómo la CLI de GDK compila el origen del componente en artefactos. Para
build_system, puede elegir entre las siguientes opciones:-
zip: empaqueta la carpeta del componente en un archivo ZIP para definirla como el único artefacto del componente. Elija esta opción para los siguientes tipos de componentes:-
Componentes que usan lenguajes de programación interpretados, como Python o JavaScript.
-
Componentes que empaquetan archivos distintos del código, como modelos de machine learning u otros recursos.
La CLI de GDK comprime la carpeta del componente en un archivo zip con el mismo nombre que la carpeta del componente. Por ejemplo, si el nombre de la carpeta del componente es
HelloWorld, la CLI de GDK crea un archivo zip denominadoHelloWorld.zip.nota
Si usa la versión 1.0.0 de la CLI de GDK en un dispositivo Windows, los nombres de las carpetas y los archivos zip de los componentes deben contener solo letras minúsculas.
Cuando la CLI de GDK comprime la carpeta del componente en un archivo zip, omite los siguientes archivos:
-
El archivo
gdk-config.json -
El archivo de receta (
recipe.jsonorecipe.yaml) -
Carpetas de compilación, como
greengrass-build
-
-
maven: ejecuta el comandomvn clean packagepara compilar el origen del componente en artefactos. Elija esta opción para los componentes que usan Maven, como los componentes de Java. En dispositivos Windows, esta característica está disponible para la versión 1.1.0 y posteriores de la CLI de GDK.
-
gradle: ejecuta el comandogradle buildpara compilar el origen del componente en artefactos. Elija esta opción para los componentes que usan Gradle. Esta característica está disponible para la versión 1.1.0 y posteriores de la CLI de GDK. El sistema de compilación
gradleadmite Kotlin DSL como archivo de compilación. Esta característica está disponible para la versión 1.2.0 y versiones posteriores de la CLI de GDK. -
gradlew: ejecuta el comandogradlewpara compilar el origen del componente en artefactos. Elija esta opción para los componentes que usan el Gradle Wrapper. Esta característica está disponible para la versión 1.2.0 y versiones posteriores de la CLI de GDK.
-
custom: ejecuta un comando personalizado para compilar el origen del componente en una receta y artefactos. Especifique el comando personalizado en el parámetrocustom_build_command.
-
-
Si especifica
customparabuild_system, agreguecustom_build_commandal objetobuild. Encustom_build_command, especifique una sola cadena o lista de cadenas, donde cada cadena es una palabra del comando. Por ejemplo, para ejecutar un comando de compilación personalizado para un componente de C++, puede especificar["cmake", "--build", "build", "--config", "Release"]. -
Si usa la versión 1.1.0 o posteriores de la CLI de GDK, puede especificar el argumento
--bucketpara especificar el bucket de S3 en el que la CLI de GDK carga los artefactos del componente. Si no especifica este argumento, la CLI de GDK se carga en el bucket de S3 cuyo nombre es, dondebucket-region-accountIdbucketyregionson los valores que especifica engdk-config.jsonyacountIdes el ID de su Cuenta de AWS. La CLI de GDK crea el bucket si no existe.Cambie la configuración de publicación del componente. Haga lo siguiente:
-
Especifique el nombre del bucket de S3 que se usará para alojar artefactos de componentes.
-
Especifique la Región de AWS donde la CLI de GDK publica el componente.
-
Cuando haya terminado con este paso, el archivo
gdk-config.jsontendrá un aspecto similar al siguiente ejemplo.{ "component": { "com.example.PythonHelloWorld": { "author": "Amazon", "version": "NEXT_PATCH", "build": { "build_system" : "zip" }, "publish": { "bucket": "greengrass-component-artifacts", "region": "us-west-2" } } }, "gdk_version": "1.0.0" } -
-
Actualice el archivo de receta del componente, denominado
recipe.yamlorecipe.json. Haga lo siguiente:-
Si ha descargado una plantilla o un componente de comunidad que usa el sistema de compilación
zip, compruebe que el nombre del artefacto zip coincide con el nombre de la carpeta del componente. La CLI de GDK comprime la carpeta del componente en un archivo zip con el mismo nombre que la carpeta del componente. La receta contiene el nombre del artefacto zip en la lista de artefactos de componentes y en los scripts de ciclo de vida que usan archivos del artefacto zip. Actualice las definicionesArtifactsyLifecyclede forma que el nombre del archivo zip coincida con el nombre de la carpeta del componente. Los siguientes ejemplos de recetas parciales resaltan el nombre del archivo zip en las definicionesArtifactsyLifecycle. -
(Opcional) Actualice la descripción del componente, la configuración predeterminada, los artefactos, los scripts del ciclo de vida y el soporte de la plataforma. Para obtener más información, consulte Referencia de receta del componente de AWS IoT Greengrass.
Cuando haya terminado con este paso, el archivo de receta puede ser similar a los siguientes ejemplos.
-
-
Desarrolle y compile el componente de Greengrass. El comando component build produce una receta y artefactos en la carpeta
greengrass-buildde la carpeta del componente. Ejecute el siguiente comando.gdk component build
Cuando esté listo para probar el componente, use la CLI de GDK para publicarlo en el servicio de AWS IoT Greengrass. A continuación, puede implementar el componente en los dispositivos principales de Greengrass. Para obtener más información, consulte Publique componentes para desplegarlos en sus dispositivos principales.
Creación de un componente (comandos de intérprete de comandos)
Siga las instrucciones de esta sección para crear carpetas de recetas y artefactos que contengan el código de origen y los artefactos de varios componentes.
Desarrollo de un componente de Greengrass (comandos de intérprete de comandos)
-
Cree una carpeta para sus componentes con subcarpetas para recetas y artefactos. Ejecute los siguientes comandos en su dispositivo principal de Greengrass para crear estas carpetas y cambiarlas a la carpeta de componentes. Reemplace
~/greengrassv2o%USERPROFILE%\greengrassv2por la ruta a la carpeta que se usará para el desarrollo local. -
Use un editor de texto para crear un archivo de recetas que define los metadatos, parámetros, dependencias, ciclo de vida y capacidad de plataforma de su componente. Incluya la versión del componente en el nombre del archivo de recetas para poder identificar qué receta refleja qué versión del componente. Puede elegir el formato YAML o JSON para su receta.
Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.
nota
AWS IoT Greengrass usa versiones semánticas para los componentes. Las versiones semánticas siguen un sistema de números de principal.secundario.parche. Por ejemplo, la versión
1.0.0representa el primer lanzamiento principal de un componente. Para obtener más información, consulte la especificación semántica de la versión. -
Defina la receta de su componente. Para obtener más información, consulte Referencia de receta del componente de AWS IoT Greengrass.
Es posible que la receta sea similar a la siguiente receta de ejemplo de Hello World.
Esta receta ejecuta un script de Python de Hello World, que puede ser similar al siguiente script de ejemplo.
import sys message = "Hello, %s!" % sys.argv[1] # Print the message to stdout, which Greengrass saves in a log file. print(message) -
Cree una carpeta para desarrollar la versión del componente. Le recomendamos que use una carpeta independiente para los artefactos de cada versión del componente, de modo que pueda identificar los artefactos de cada versión del componente. Ejecute el siguiente comando.
importante
Debe usar el siguiente formato para la ruta de la carpeta de artefactos. Incluya el nombre y la versión del componente que especifique en la receta.
artifacts/componentName/componentVersion/ -
Cree los artefactos de su componente en la carpeta creada en el paso anterior. Los artefactos pueden incluir software, imágenes y cualquier otro binario que use el componente.
Cuando el componente esté listo, pruébelo.