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.
Paso 5: Cree su componente en el AWS IoT Greengrass servicio
Cuando termine de desarrollar un componente en su dispositivo principal, podrá cargarlo en el AWS IoT Greengrass
servicio del Nube de AWS. También puede crear el componente directamente en la AWS IoT Greengrass consola
-
Cargue los artefactos de los componentes a un depósito de S3.
-
Añada el Amazon Simple Storage Service (Amazon S3) de cada artefacto a la URI receta del componente.
-
Cree un componente a AWS IoT Greengrass partir de la receta del componente.
En esta sección, debe completar estos pasos en su dispositivo principal de Greengrass para cargar su componente Hello World en el AWS IoT Greengrass servicio.
-
Utilice un depósito de S3 en su AWS cuenta para alojar los artefactos de los AWS IoT Greengrass componentes. Al implementar el componente en un dispositivo principal, el dispositivo descarga los artefactos del componente del depósito.
Puede usar un depósito de S3 existente o puede crear uno nuevo.
-
En la consola Amazon S3
, en Buckets, selecciona Create bucket. -
En el nombre del bucket, introduzca un nombre de bucket único. Por ejemplo, puede utilizar
greengrass-component-artifacts-
. Reemplazarregion
-123456789012
123456789012
con tu ID AWS de cuenta yregion
con el Región de AWS que utilizas para este tutorial. -
Para AWS la región, seleccione la AWS región que utilice para este tutorial.
-
Elija Crear bucket.
-
En Buckets, elige el bucket que has creado y carga el
hello_world.py
script en laartifacts/com.example.HelloWorld/1.0.0
carpeta del bucket. Para obtener información sobre cómo cargar objetos en buckets de S3, consulte Carga de objetos en la Guía del usuario de Amazon Simple Storage Service. -
Copia el S3 URI del
hello_world.py
objeto en el bucket de S3. URIDebería tener un aspecto similar al del siguiente ejemplo. Sustituya amzn-s3-demo-bucket por el nombre del bucket S3.s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py
-
-
Permita que el dispositivo principal acceda a los artefactos de los componentes del bucket de S3.
Cada dispositivo principal tiene una IAMfunción de dispositivo principal que le permite interactuar con los registros AWS IoT y enviarlos a la AWS nube. Esta función de dispositivo no permite el acceso a los depósitos de S3 de forma predeterminada, por lo que debe crear y adjuntar una política que permita al dispositivo principal recuperar los artefactos de los componentes del depósito de S3.
Si la función de tu dispositivo ya te permite acceder al bucket de S3, puedes saltarte este paso. De lo contrario, crea una IAM política que permita el acceso y asójala al rol, de la siguiente manera:
-
En el menú de navegación de la IAMconsola
, elija Políticas y, a continuación, elija Crear política. -
En la JSONpestaña, sustituye el contenido del marcador de posición por la siguiente política. Sustituya amzn-s3-demo-bucket por el nombre del depósito de S3 que contiene los artefactos componentes para su descarga en el dispositivo principal.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
-
Elija Next (Siguiente).
-
En la sección de detalles de la política, escriba Nombre.
MyGreengrassV2ComponentArtifactPolicy
-
Elija Crear política.
-
En el menú de navegación de la IAMconsola
, elija Función y, a continuación, elija el nombre de la función para el dispositivo principal. Especificó este nombre de función al instalar el software AWS IoT Greengrass principal. Si no especificó ningún nombre, el nombre predeterminado es GreengrassV2TokenExchangeRole
. -
En Permisos, selecciona Añadir permisos y, a continuación, selecciona Adjuntar políticas.
-
En la página Añadir permisos, selecciona la casilla de verificación situada junto a la
MyGreengrassV2ComponentArtifactPolicy
política que has creado y, a continuación, selecciona Añadir permisos.
-
-
Utilice la receta del componente para crear un componente en la AWS IoT Greengrass consola
. -
En el menú de navegación de la AWS IoT Greengrass consola
, elija Componentes y, a continuación, elija Crear componente. -
En Información del componente, elija Introducir receta como JSON. La receta del marcador de posición debería tener un aspecto similar al del siguiente ejemplo.
{ "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.example.HelloWorld", "ComponentVersion": "1.0.0", "ComponentDescription": "My first AWS IoT Greengrass component.", "ComponentPublisher": "Amazon", "ComponentConfiguration": { "DefaultConfiguration": { "Message": "world" } }, "Manifests": [ { "Platform": { "os": "linux" }, "Lifecycle": { "run": "python3 -u {artifacts:path}/hello_world.py \"{configuration:/Message}\"" }, "Artifacts": [ { "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py" } ] }, { "Platform": { "os": "windows" }, "Lifecycle": { "run": "py -3 -u {artifacts:path}/hello_world.py \"{configuration:/Message}\"" }, "Artifacts": [ { "URI": "s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py" } ] } ] }
-
Sustituya el marcador de posición URI de cada
Artifacts
sección por el S3 URI de suhello_world.py
objeto. -
Seleccione Crear componente.
-
En com.example. HelloWorlden la página del componente, compruebe que el estado del componente es desplegable.
-
Para cargar su componente Hello World
-
Utilice un depósito de S3 en el suyo Cuenta de AWS para alojar los artefactos de los AWS IoT Greengrass componentes. Al implementar el componente en un dispositivo principal, el dispositivo descarga los artefactos del componente del depósito.
Puede usar un bucket de S3 existente o ejecutar el siguiente comando para crear un bucket. Este comando crea un depósito con su Cuenta de AWS ID y Región de AWS forma un nombre de depósito único. Reemplazar
123456789012
con tu Cuenta de AWS ID yregion
con el Región de AWS que utilizas para este tutorial.aws s3 mb s3://greengrass-component-artifacts-
123456789012
-region
El comando genera la siguiente información si la solicitud se realiza correctamente.
make_bucket: greengrass-component-artifacts-
123456789012
-region
-
Permita que el dispositivo principal acceda a los artefactos de los componentes del depósito S3.
Cada dispositivo principal tiene una IAMfunción de dispositivo principal que le permite interactuar con los registros AWS IoT y enviarlos Nube de AWS. Esta función de dispositivo no permite el acceso a los depósitos de S3 de forma predeterminada, por lo que debe crear y adjuntar una política que permita al dispositivo principal recuperar los artefactos de los componentes del depósito de S3.
Si la función principal del dispositivo ya permite el acceso al bucket de S3, puedes saltarte este paso. De lo contrario, cree una IAM política que permita el acceso y asójela al rol, de la siguiente manera:
-
Cree un archivo llamado
component-artifact-policy.json
y copie lo siguiente JSON en el archivo. Esta política permite el acceso a todos los archivos de un bucket de S3. Sustituya amzn-s3-demo-bucket por el nombre del bucket de S3.{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }
-
Ejecute el siguiente comando para crear la política a partir del documento de política incluido en.
component-artifact-policy.json
Copie la política Amazon Resource Name (ARN) de los metadatos de la política en la salida. ARNUtilízala para asociar esta política a la función principal del dispositivo en el siguiente paso.
-
Ejecute el siguiente comando para adjuntar la política a la función de dispositivo principal. Reemplazar
GreengrassV2TokenExchangeRole
con el nombre de la función del dispositivo principal. Especificó este nombre de función al instalar el software AWS IoT Greengrass Core. Sustituya ARN la política ARN por la del paso anterior.Si el comando no tiene salida, se ha realizado correctamente. El dispositivo principal ahora puede acceder a los artefactos que cargue en este depósito de S3.
-
-
Cargue el artefacto del script de Python Hello World en el bucket de S3.
Ejecute el siguiente comando para cargar el script en la misma ruta del depósito en el que se encuentra el script en su AWS IoT Greengrass núcleo. Sustituya amzn-s3-demo-bucket por el nombre del bucket S3.
El comando genera una línea que comienza con si la solicitud se realiza correctamente.
upload:
-
Añada el Amazon S3 del artefacto URI a la receta del componente.
Amazon S3 URI está compuesto por el nombre del bucket y la ruta al objeto artefacto del bucket. El Amazon S3 de tu artefacto de script URI es en el URI que subiste el artefacto en el paso anterior. URIDebería tener un aspecto similar al del siguiente ejemplo. Sustituya amzn-s3-demo-bucket por el nombre del bucket S3.
s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/hello_world.py
Para añadir el artefacto a la receta, añada una lista
Artifacts
que contenga una estructura con el Amazon S3URI. -
Cree un recurso componente a AWS IoT Greengrass partir de la receta. Ejecute el siguiente comando para crear el componente a partir de la receta, que se proporciona como un archivo binario.
La respuesta es similar a la del siguiente ejemplo si la solicitud se realiza correctamente.
{ "arn": "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "Mon Nov 30 09:04:05 UTC 2020", "status": { "componentState": "REQUESTED", "message": "NONE", "errors": {} } }arn
Copie el elemento del resultado para comprobar el estado del componente en el siguiente paso.nota
También puedes ver tu componente Hello World en la AWS IoT Greengrass consola
, en la página de componentes. -
Compruebe que el componente se ha creado y está listo para su implementación. Al crear un componente, su estado es
REQUESTED
. A continuación, AWS IoT Greengrass valida que el componente sea desplegable. Puede ejecutar el siguiente comando para consultar el estado del componente y comprobar que el componente se puede implementar. Sustitúyalo ARN por el del paso anterior.arn
aws greengrassv2 describe-component --arn "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0"Si el componente se valida, la respuesta indica que el estado del componente es
DEPLOYABLE
.{ "arn": "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorld:versions:1.0.0", "componentName": "com.example.HelloWorld", "componentVersion": "1.0.0", "creationTimestamp": "2020-11-30T18:04:05.823Z", "publisher": "Amazon", "description": "My first Greengrass component.", "status": { "componentState": "DEPLOYABLE", "message": "NONE", "errors": {} }, "platforms": [ { "os": "linux", "architecture": "all" } ] }
Su componente Hello World ya está disponible en AWS IoT Greengrass. Puede volver a implementarlo en este dispositivo principal de Greengrass o en otros dispositivos principales.