Publique componentes para desplegarlos en sus dispositivos principales - 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.

Publique componentes para desplegarlos en sus dispositivos principales

Después de crear o completar una versión de un componente, puede publicarla en el AWS IoT Greengrass servicio. Luego, puede implementarlo en los dispositivos principales de Greengrass.

Si utiliza la CLI del kit de desarrollo de Greengrass (CLI de GDK) para desarrollar y crear un componente, puede utilizar la CLI de GDK para publicar el componente en. Nube de AWS De lo contrario, utilice los comandos de shell integrados y los AWS CLI para publicar el componente.

También se puede utilizar AWS CloudFormation para crear componentes y otros AWS recursos a partir de plantillas. Para obtener más información, consulte ¿Qué es AWS CloudFormation? y AWS::GreengrassV2::ComponentVersionen la Guía AWS CloudFormation del usuario.

Publicar un componente (GDK CLI)

Siga las instrucciones de esta sección para publicar un componente mediante la CLI de GDK. La CLI de GDK carga los artefactos de construcción en un bucket de S3, actualiza los URI de los artefactos de la receta y crea el componente a partir de la receta. Debe especificar el bucket y la región de S3 que se van a utilizar en el archivo de configuración de la CLI de GDK.

Si utiliza la versión 1.1.0 de la CLI de GDK o una versión posterior, puede especificar el --bucket argumento para especificar el depósito de S3 en el que la CLI de GDK carga los artefactos del componente. Si no especificas este argumento, la CLI de GDK se carga en el bucket de S3 cuyo nombre esbucket-region-accountId, donde bucket y region son los valores que especificas y AccountID es tu ID. gdk-config.json Cuenta de AWS La CLI de GDK crea el bucket si no existe.

importante

De forma predeterminada, las funciones principales de los dispositivos no permiten el acceso a los depósitos de S3. Si es la primera vez que utiliza este depósito de S3, debe añadir permisos al rol para que los dispositivos principales puedan recuperar los artefactos de los componentes de este depósito de S3. Para obtener más información, consulte Permita el acceso a los depósitos de S3 para los artefactos de los componentes.

Para publicar un componente de Greengrass (GDK CLI)
  1. Abra la carpeta del componente en una línea de comandos o en una terminal.

  2. Si aún no lo ha hecho, cree el componente Greengrass. El comando de construcción del componente produce una receta y artefactos en la greengrass-build carpeta de la carpeta del componente. Ejecute el siguiente comando de la .

    gdk component build
  3. Publique el componente en Nube de AWS. El comando component publish carga los artefactos del componente en Amazon S3 y actualiza la receta del componente con el URI de cada artefacto. A continuación, crea el componente en el AWS IoT Greengrass servicio.

    nota

    AWS IoT Greengrass calcula el resumen de cada artefacto al crear el componente. Esto significa que no puede modificar los archivos de artefactos de su bucket de S3 después de crear un componente. Si lo hace, las implementaciones que incluyan este componente fallarán porque el resumen del archivo no coincide. Si modifica un archivo de artefactos, debe crear una nueva versión del componente.

    Si especifica NEXT_PATCH la versión del componente en el archivo de configuración de la CLI de GDK, la CLI de GDK utilizará la siguiente versión del parche que aún no exista en el AWS IoT Greengrass servicio.

    Ejecute el siguiente comando de la .

    gdk component publish

    El resultado indica la versión del componente que creó la CLI de GDK.

    Después de publicar el componente, puede implementarlo en los dispositivos principales. Para obtener más información, consulte Implemente AWS IoT Greengrass componentes en los dispositivos.

Publicar un componente (comandos de shell)

Utilice el siguiente procedimiento para publicar un componente mediante los comandos de shell y el AWS Command Line Interface (AWS CLI). Al publicar un componente, haga lo siguiente:

  1. Publique los artefactos de los componentes en un bucket de S3.

  2. Añada el URI de Amazon S3 de cada artefacto a la receta del componente.

  3. Cree una versión del componente AWS IoT Greengrass a partir de la receta del componente.

nota

Cada versión de componente que cargue debe ser única. Asegúrese de cargar la versión del componente correcta, ya que no podrá editarla después de cargarla.

Puede seguir estos pasos para publicar un componente desde su ordenador de desarrollo o su dispositivo principal de Greengrass.

Para publicar un componente (comandos de shell)
  1. Si el componente usa una versión que existe en el AWS IoT Greengrass servicio, debe cambiarla. Abra la receta en un editor de texto, incremente la versión y guarde el archivo. Elija una nueva versión que refleje los cambios que ha realizado en el componente.

    nota

    AWS IoT Greengrass utiliza 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.0 representa la primera versión principal de un componente. Para obtener más información, consulte la especificación de la versión semántica.

  2. Si el componente tiene artefactos, haga lo siguiente:

    1. Publique los artefactos del componente en un depósito de S3 de su Cuenta de AWS.

      sugerencia

      Le recomendamos que incluya el nombre y la versión del componente en la ruta al artefacto del bucket de S3. Este esquema de nomenclatura puede ayudarte a conservar los artefactos que utilizan las versiones anteriores del componente, de forma que puedas seguir admitiendo las versiones anteriores del componente.

      Ejecute el siguiente comando para publicar un archivo de artefactos en un bucket de S3. Sustituya DOC-EXAMPLE-BUCKET por el nombre del depósito y sustituya artifacts/com.example. HelloWorld/1.0.0/artifact.py por la ruta al archivo del artefacto.

      aws s3 cp artifacts/com.example.HelloWorld/1.0.0/artifact.py s3://DOC-EXAMPLE-BUCKET/artifacts/com.example.HelloWorld/1.0.0/artifact.py
      importante

      De forma predeterminada, las funciones principales de los dispositivos no permiten el acceso a los depósitos de S3. Si es la primera vez que utiliza este depósito de S3, debe añadir permisos al rol para que los dispositivos principales puedan recuperar los artefactos de los componentes de este depósito de S3. Para obtener más información, consulte Permita el acceso a los depósitos de S3 para los artefactos de los componentes.

    2. Agrega una lista Artifacts con el nombre de la receta del componente si no está presente. La Artifacts lista aparece en cada manifiesto, donde se definen los requisitos del componente en cada plataforma compatible (o los requisitos predeterminados del componente para todas las plataformas).

    3. Añada cada artefacto a la lista de artefactos o actualice el URI de los artefactos existentes. El URI de Amazon S3 está compuesto por el nombre del bucket y la ruta al objeto artefacto del bucket. Los URI de Amazon S3 de sus artefactos deberían tener un aspecto similar al del siguiente ejemplo.

      s3://DOC-EXAMPLE-BUCKET/artifacts/com.example.HelloWorld/1.0.0/artifact.py

    Tras completar estos pasos, la receta debería tener una Artifacts lista similar a la siguiente.

    JSON
    { ... "Manifests": [ { "Lifecycle": { ... }, "Artifacts": [ { "URI": "s3://DOC-EXAMPLE-BUCKET/artifacts/MyGreengrassComponent/1.0.0/artifact.py", "Unarchive": "NONE" } ] } ] }
    nota

    Puede añadir la "Unarchive": "ZIP" opción de utilizar un artefacto ZIP para configurar el software AWS IoT Greengrass principal de forma que descomprima el artefacto cuando se despliegue el componente.

    YAML
    ... Manifests: - Lifecycle: ... Artifacts: - URI: s3://DOC-EXAMPLE-BUCKET/artifacts/MyGreengrassComponent/1.0.0/artifact.py Unarchive: NONE
    nota

    Puede utilizar la Unarchive: ZIP opción de configurar el software AWS IoT Greengrass Core para descomprimir un artefacto ZIP cuando se despliegue el componente. Para obtener más información sobre cómo utilizar los artefactos ZIP en un componente, consulte la variable de receta Artifacts:decompressedPath.

    Para obtener más información acerca de las recetas, consulte AWS IoT Greengrass referencia de recetas de componentes.

  3. Utilice la AWS IoT Greengrass consola para crear un componente a partir del archivo de recetas.

    Ejecute el siguiente comando para crear el componente a partir de un archivo de recetas. Este comando crea el componente y lo publica como un AWS IoT Greengrass componente privado en su Cuenta de AWS. Sustituya path/to/recipeFile por la ruta del archivo de recetas.

    aws greengrassv2 create-component-version --inline-recipe fileb://path/to/recipeFile

    Copie la arn información de la respuesta para comprobar el estado del componente en el siguiente paso.

    nota

    AWS IoT Greengrass calcula el resumen de cada artefacto al crear el componente. Esto significa que no puede modificar los archivos de artefactos de su bucket de S3 después de crear un componente. Si lo hace, las implementaciones que incluyan este componente fallarán porque el resumen del archivo no coincide. Si modifica un archivo de artefactos, debe crear una nueva versión del componente.

  4. Cada componente del AWS IoT Greengrass servicio tiene un estado. Ejecute el siguiente comando para confirmar el estado de la versión del componente que publique en este procedimiento. Sustituya com.example. HelloWorldy 1.0.0 con la versión del componente que se va a consultar. Sustituya el arn por el ARN del paso anterior.

    aws greengrassv2 describe-component --arn "arn:aws:greengrass:region:account-id:components:com.example.HelloWorld:versions:1.0.0"

    La operación devuelve una respuesta que contiene los metadatos del componente. Los metadatos contienen un status objeto que contiene el estado del componente y cualquier error, si corresponde.

    Cuando el estado del componente esDEPLOYABLE, puede implementarlo en los dispositivos. Para obtener más información, consulte Implemente AWS IoT Greengrass componentes en los dispositivos.