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.
Se ejecuta AWS IoT Greengrass en un contenedor Docker con aprovisionamiento manual de recursos
En este tutorial, se muestra cómo instalar y ejecutar el software AWS IoT Greengrass principal en un contenedor Docker con recursos aprovisionados manualmente. AWS
Requisitos previos
Necesitará lo siguiente para completar este tutorial:
-
Un. Cuenta de AWS Si no dispone de una, consulte Configura un Cuenta de AWS.
-
Una imagen de AWS IoT Greengrass Docker. Puede crear una imagen a partir del AWS IoT Greengrass Dockerfile.
-
El equipo host en el que ejecute el contenedor de Docker debe cumplir los siguientes requisitos:
-
Sistema operativo basado en Linux con conexión a Internet.
-
Docker Engine
, versión 18.09 o posterior. -
(Opcional) Docker Compose
versión 1.22 o posterior. Docker Compose solo es necesario si quiere usar la CLI de Docker Compose para ejecutar sus imágenes de Docker.
-
Recupere los puntos finales AWS IoT
Obtenga los AWS IoT puntos finales que desee y guárdelos para usarlos más adelante. Cuenta de AWS El dispositivo usa estos puntos de conexión para conectarse a AWS IoT. Haga lo siguiente:
-
Obtenga el punto final AWS IoT de datos para su. Cuenta de AWS
aws iot describe-endpoint --endpoint-type iot:Data-ATSSi la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.
{ "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com" } -
Obtenga el punto final de AWS IoT credenciales para su Cuenta de AWS.
aws iot describe-endpoint --endpoint-type iot:CredentialProviderSi la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.
{ "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com" }
Crea cualquier AWS IoT cosa
AWS IoT las cosas representan dispositivos y entidades lógicas a las que se conectan AWS IoT. Los dispositivos principales de Greengrass son AWS IoT cosas. Cuando registras un dispositivo como una AWS IoT cosa, ese dispositivo puede usar un certificado digital para autenticarse. AWS
En esta sección, crearás AWS IoT algo que represente tu dispositivo.
Para crear cualquier AWS IoT cosa
-
Crea cualquier AWS IoT cosa para tu dispositivo. En su equipo de desarrollo, ejecute el siguiente comando.
-
MyGreengrassCoreSustitúyalo por el nombre de la cosa que se va a utilizar. Este nombre también es el nombre de su dispositivo principal de Greengrass.nota
El nombre del objeto no puede contener dos puntos (
:).
aws iot create-thing --thing-nameMyGreengrassCoreSi la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.
{ "thingName": "MyGreengrassCore", "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42" } -
-
(Opcional) Añada la AWS IoT cosa a un grupo de cosas nuevo o existente. Los grupos de objetos se usan para administrar las flotas de dispositivos principales de Greengrass. Al implementar componentes de software en sus dispositivos, puede dirigirlos a dispositivos individuales o a grupos de dispositivos. Puede agregar un dispositivo a un grupo de objetos con una implementación activa de Greengrass para implementar los componentes de software de ese grupo de objetos en el dispositivo. Haga lo siguiente:
-
(Opcional) Cree un grupo de AWS IoT cosas.
-
MyGreengrassCoreGroupSustitúyalo por el nombre del grupo de cosas que desee crear.nota
El nombre del grupo de objetos no puede contener dos puntos (
:).
aws iot create-thing-group --thing-group-nameMyGreengrassCoreGroupSi la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.
{ "thingGroupName": "MyGreengrassCoreGroup", "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup", "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa" } -
-
Añada la AWS IoT cosa a un grupo de cosas.
-
MyGreengrassCoreSustitúyala por el nombre de la AWS IoT cosa. -
MyGreengrassCoreGroupSustitúyalo por el nombre del grupo de cosas.
aws iot add-thing-to-thing-group --thing-nameMyGreengrassCore--thing-group-nameMyGreengrassCoreGroupEl comando no tiene ningún resultado si la solicitud se realiza correctamente.
-
-
Creación del certificado del objeto
Al registrar un dispositivo como una AWS IoT cosa, ese dispositivo puede utilizar un certificado digital para autenticarse AWS. Este certificado permite que el dispositivo se comunique con AWS IoT y AWS IoT Greengrass.
En esta sección, puede crear y descargar certificados que el dispositivo puede usar para conectarse a AWS.
Creación del certificado del objeto
-
Crea una carpeta donde descargues los certificados de la AWS IoT cosa.
mkdir greengrass-v2-certs -
Crea y descarga los certificados de la AWS IoT cosa.
aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.keySi la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.
{ "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4", "certificatePem": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----", "keyPair": { "PublicKey": "-----BEGIN PUBLIC KEY-----\ MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\ MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\ 59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\ hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\ FQIDAQAB\ -----END PUBLIC KEY-----\ ", "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\ key omitted for security reasons\ -----END RSA PRIVATE KEY-----\ " } }Guarde el nombre de recurso de Amazon (ARN) del certificado para usarlo para configurar el certificado más adelante.
A continuación, configure el certificado de la cosa. Para obtener más información, consulte Configuración del certificado del objeto.
Creación de un rol de intercambio de token
Los dispositivos principales de Greengrass utilizan una función de servicio de IAM, denominada función de intercambio de fichas, para autorizar las llamadas a los servicios. AWS El dispositivo utiliza el proveedor de AWS IoT credenciales para obtener AWS credenciales temporales para esta función, lo que permite al dispositivo interactuar con Amazon Logs AWS IoT, enviar registros a Amazon CloudWatch Logs y descargar artefactos de componentes personalizados de Amazon S3. Para obtener más información, consulte Autorización de los dispositivos principales para interactuar con los servicios de AWS.
Se utiliza un alias de AWS IoT rol para configurar el rol de intercambio de fichas para los dispositivos principales de Greengrass. Los alias de rol le permiten cambiar el rol de intercambio de token de un dispositivo, pero mantener la configuración del dispositivo igual. Para obtener más información, consulte Autorización de llamadas a los servicios de AWS en la Guía para desarrolladores de AWS IoT Core .
En esta sección, creará un rol de IAM de intercambio de tokens y un alias de AWS IoT rol que apunte al rol. Si ya ha configurado un dispositivo principal de Greengrass, puede usar su rol de intercambio de token y su alias de rol en lugar de crear otros nuevos. A continuación, configure el objeto AWS IoT del dispositivo para que use ese rol y ese alias.
Creación de un rol de IAM de intercambio de token
-
Creación de un rol de IAM que su dispositivo puede usar como rol de intercambio de token. Haga lo siguiente:
-
Creación de un archivo que contenga el documento de política de confianza que requiere el rol de intercambio de token.
Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.
nano device-role-trust-policy.jsonCopie el siguiente JSON en el archivo.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } -
Creación del rol de intercambio de token con el documento de política de confianza.
-
GreengrassV2TokenExchangeRoleSustitúyalo por el nombre del rol de IAM que se va a crear.
aws iam create-role --role-nameGreengrassV2TokenExchangeRole--assume-role-policy-document file://device-role-trust-policy.jsonSi la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.
{ "Role": { "Path": "/", "RoleName": "GreengrassV2TokenExchangeRole", "RoleId": "AROAZ2YMUHYHK5OKM77FB", "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole", "CreateDate": "2021-02-06T00:13:29+00:00", "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "credentials.iot.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } } -
-
Creación de un archivo que contenga el documento de política de acceso que requiere el rol de intercambio de token.
Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.
nano device-role-access-policy.jsonCopie el siguiente JSON en el archivo.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams", "s3:GetBucketLocation" ], "Resource": "*" } ] }nota
Esta política de acceso no permite el acceso a los artefactos de componentes en los buckets de S3. Para implementar componentes personalizados que definan artefactos en Amazon S3, debe agregar permisos al rol para permitir que su dispositivo principal recupere artefactos de componentes. Para obtener más información, consulte Cómo permitir el acceso a los buckets de S3 para los artefactos del componente.
Si aún no tiene un bucket de S3 para los artefactos de los componentes, puede agregar estos permisos más adelante, después de crear un bucket.
-
Creación de la política de IAM a partir del documento de política.
-
GreengrassV2TokenExchangeRoleAccessSustitúyalo por el nombre de la política de IAM que se va a crear.
aws iam create-policy --policy-nameGreengrassV2TokenExchangeRoleAccess--policy-document file://device-role-access-policy.jsonSi la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.
{ "Policy": { "PolicyName": "GreengrassV2TokenExchangeRoleAccess", "PolicyId": "ANPAZ2YMUHYHACI7C5Z66", "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess", "Path": "/", "DefaultVersionId": "v1", "AttachmentCount": 0, "PermissionsBoundaryUsageCount": 0, "IsAttachable": true, "CreateDate": "2021-02-06T00:37:17+00:00", "UpdateDate": "2021-02-06T00:37:17+00:00" } } -
-
Adjunte la política de IAM al rol de intercambio de token.
-
Reemplace
GreengrassV2TokenExchangeRolepor el nombre del rol de IAM. -
Reemplace el ARN de la política por el ARN de la política de IAM que creó en el paso anterior.
aws iam attach-role-policy --role-nameGreengrassV2TokenExchangeRole--policy-arnarn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccessEl comando no tiene ningún resultado si la solicitud se realiza correctamente.
-
-
-
Cree un alias de AWS IoT rol que apunte al rol de intercambio de fichas.
-
GreengrassCoreTokenExchangeRoleAliasSustitúyalo por el nombre del alias del rol que se va a crear. -
Reemplace el ARN del rol por el ARN del rol de IAM que creó en el paso anterior.
aws iot create-role-alias --role-aliasGreengrassCoreTokenExchangeRoleAlias--role-arnarn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRoleSi la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.
{ "roleAlias": "GreengrassCoreTokenExchangeRoleAlias", "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" }nota
Para crear un alias de rol, debe tener el permiso para transferir el rol de IAM de intercambio de token a AWS IoT. Si recibe un mensaje de error al intentar crear un alias de rol, compruebe que el AWS usuario tiene este permiso. Para obtener más información, consulte Conceder permisos a un usuario para transferir un rol a un AWS servicio en la Guía del AWS Identity and Access Management usuario.
-
-
Cree y adjunte una AWS IoT política que permita a su dispositivo principal de Greengrass utilizar el alias del rol para asumir el rol de intercambio de fichas. Si ya ha configurado un dispositivo principal de Greengrass, puede adjuntar su AWS IoT política de alias de rol en lugar de crear una nueva. Haga lo siguiente:
-
(Opcional) Cree un archivo que contenga el documento AWS IoT de política que requiere el alias del rol.
Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano a fin de crear el archivo.
nano greengrass-v2-iot-role-alias-policy.jsonCopie el siguiente JSON en el archivo.
-
Reemplace el ARN del recurso por el ARN del alias de rol.
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iot:AssumeRoleWithCertificate", "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias" } ] } -
-
Cree una AWS IoT política a partir del documento de política.
-
GreengrassCoreTokenExchangeRoleAliasPolicySustitúyala por el nombre de la AWS IoT política que se va a crear.
aws iot create-policy --policy-nameGreengrassCoreTokenExchangeRoleAliasPolicy--policy-document file://greengrass-v2-iot-role-alias-policy.jsonSi la solicitud se realiza exitosamente, la respuesta se parece al siguiente ejemplo.
{ "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy", "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy", "policyDocument": "{ \\"Version\\":\\"2012-10-17 \\", \\"Statement\\": [ { \\"Effect\\": \\"Allow\\", \\"Action\\": \\"iot:AssumeRoleWithCertificate\\", \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\" } ] }", "policyVersionId": "1" } -
-
Adjunta la AWS IoT política al certificado de la AWS IoT cosa.
-
GreengrassCoreTokenExchangeRoleAliasPolicySustitúyala por el nombre de la AWS IoT política de alias del rol. -
Reemplace el ARN de destino por el ARN del certificado de su objeto AWS IoT .
aws iot attach-policy --policy-nameGreengrassCoreTokenExchangeRoleAliasPolicy--targetarn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4El comando no tiene ningún resultado si la solicitud se realiza correctamente.
-
-
Descarga de certificados al dispositivo
Anteriormente, descargó el certificado de su dispositivo en su computadora de desarrollo. En esta sección, puede descargar el certificado de autoridad de certificación (CA) raíz de Amazon. A continuación, si planea ejecutar el software AWS IoT Greengrass principal de Docker en un equipo diferente al de desarrollo, debe copiar los certificados en ese equipo host. El software AWS IoT Greengrass Core usa estos certificados para conectarse al servicio AWS IoT en la nube.
Descarga de certificados al dispositivo
-
En tu ordenador de desarrollo, descarga el certificado de la autoridad de certificación raíz (CA) de Amazon. AWS IoT los certificados están asociados al certificado de CA raíz de Amazon de forma predeterminada.
-
Si planea ejecutar el software AWS IoT Greengrass principal de Docker en un dispositivo diferente al de su ordenador de desarrollo, copie los certificados en el ordenador host. Si SSH y SCP están habilitados en la computadora de desarrollo y en la computadora host, puede utilizar el comando
scpde la computadora de desarrollo para transferir el certificado.device-ip-addressSustitúyalos por la dirección IP de la computadora host.scp -r greengrass-v2-certs/device-ip-address:~
Creación de un archivo de configuración
-
En la computadora host, cree una carpeta en la que coloque el archivo de configuración.
mkdir ./greengrass-v2-config -
Utilice un editor de texto para crear un archivo de configuración denominado
config.yamlen la carpeta./greengrass-v2-config.Por ejemplo, puede ejecutar el comando siguiente para usar GNU nano para crear el
config.yaml.nano ./greengrass-v2-config/config.yaml -
Copie el siguiente contenido YAML en el archivo. Este archivo de configuración parcial especifica los parámetros del sistema y los parámetros del núcleo de Greengrass.
--- system: certificateFilePath: "/tmp/certs/device.pem.crt" privateKeyPath: "/tmp/certs/private.pem.key" rootCaPath: "/tmp/certs/AmazonRootCA1.pem" rootpath: "" thingName: "/greengrass/v2MyGreengrassCore" services: aws.greengrass.Nucleus: componentType: "NUCLEUS" version: "nucleus-version" configuration: awsRegion: "region" iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias" iotDataEndpoint: "device-data-prefix-ats.iot.region.amazonaws.com" iotCredEndpoint: "device-credentials-prefix.credentials.region.amazonaws.com"Reemplace los siguientes valores:
-
/tmp/certs. El directorio del contenedor de Docker en el que se montan los certificados descargados al iniciar el contenedor. -
. La carpeta raíz de Greengrass que quiera usar para la instalación. Puede establecer este valor mediante la variable de entorno/greengrass/v2GGC_ROOT. -
MyGreengrassCore. El nombre de la AWS IoT cosa. -
nucleus-version. La versión del software AWS IoT Greengrass principal que se va a instalar. Este valor debe coincidir con la versión de la imagen de Docker o del Dockerfile que ha descargado. Si ha descargado la imagen de Docker de Greengrass con la etiquetalatest, usedocker inspectpara ver la versión de la imagen.image-id -
region. El Región de AWS lugar donde creaste tus AWS IoT recursos. También debe especificar el mismo valor para la variable de entornoAWS_REGIONen el archivo de entorno. -
GreengrassCoreTokenExchangeRoleAlias. El alias del rol de intercambio de fichas. -
device-data-prefix. El prefijo del punto final AWS IoT de datos. -
device-credentials-prefix. El prefijo del punto final de tus AWS IoT credenciales.
-
Creación de un archivo de entorno
En este tutorial, se utiliza un archivo de entorno para configurar las variables de entorno que se transferirán al instalador del software AWS IoT Greengrass principal dentro del contenedor de Docker. También puede utilizar el argumento -e o --envdocker run para establecer variables de entorno en el contenedor de Docker o puede establecer las variables en un bloque environmentdocker-compose.yml.
-
Utilice un editor de texto para crear un archivo de política llamado
.env.Por ejemplo, en un sistema basado en Linux, puede ejecutar el siguiente comando para usar GNU nano para crearlo en el
.enven el directorio actual.nano .env -
Copie el contenido siguiente en el archivo.
GGC_ROOT_PATH=AWS_REGION=/greengrass/v2regionPROVISION=false COMPONENT_DEFAULT_USER=ggc_user:ggc_group INIT_CONFIG=/tmp/config/config.yamlReemplace los siguientes valores.
-
. La ruta a la carpeta raíz que se va a utilizar para instalar el software AWS IoT Greengrass principal./greengrass/v2 -
region. El Región de AWS lugar donde creaste tus AWS IoT recursos. Debe especificar el mismo valor para el parámetroawsRegionde configuración en el archivo de configuración. -
/tmp/config/. La carpeta en la que se monta el archivo de configuración al iniciar el contenedor de Docker.
nota
Puede configurar la variable de entorno
DEPLOY_DEV_TOOLSatruepara implementar el componente CLI de Greengrass, que le permite desarrollar componentes personalizados dentro del contenedor de Docker. Se recomienda usar este componente solo en entornos de desarrollo y no en entornos de producción. Este componente brinda acceso a información y operaciones que, por lo general, no necesitará en un entorno de producción. Siga el principio de privilegio mínimo al implementar este componente solo en los dispositivos principales donde lo necesite. -
Ejecute el software AWS IoT Greengrass principal en un contenedor
Este tutorial le muestra cómo iniciar la imagen de Docker que creó en un contenedor de Docker. Puede usar la CLI de Docker o la CLI de Docker Compose para ejecutar la imagen del software AWS IoT Greengrass principal en un contenedor de Docker.
Pasos a seguir a continuación
AWS IoT Greengrass El software principal se ejecuta ahora en un contenedor de Docker. Ejecute el siguiente comando para recuperar el ID del contenedor en el contenedor de ejecución actual.
docker ps
A continuación, puede ejecutar el siguiente comando para acceder al contenedor y explorar el software AWS IoT Greengrass principal que se ejecuta dentro del contenedor.
docker exec -itcontainer-id/bin/bash
Para obtener más información sobre cómo crear un componente simple, consulte Paso 4: Desarrollo y prueba de un componente en su dispositivo en Tutorial: Introducción a AWS IoT Greengrass V2
nota
Cuando utiliza docker exec para ejecutar comandos dentro del contenedor de Docker, esos comandos no se capturan en los registros de Docker. Para registrar los comandos en los registros de Docker, asocie un intérprete de comandos interactivo al contenedor de Docker. Para obtener más información, consulte Asociación de un intérprete de comandos interactivo a un contenedor de Docker.
El archivo de registro AWS IoT Greengrass Core se llama greengrass.log y se encuentra en. Los archivos de registro de componentes también se encuentran en el mismo directorio. Para copiar los registros de Greengrass en un directorio temporal del host, ejecute el siguiente comando:/logs/greengrass/v2
docker cpcontainer-id:/greengrass/v2/logs/tmp/logs
Si desea conservar los registros después de que un contenedor se cierre o se haya eliminado, le recomendamos que monte únicamente el directorio en el directorio de registros temporales del host, en lugar de montar todo el directorio de Greengrass. Para obtener más información, consulte Conservación de los registros de Greengrass fuera del contenedor de Docker./logs/greengrass/v2
Para detener un contenedor AWS IoT Greengrass Docker en ejecución, ejecute docker
stop odocker-compose -f docker-compose.yml stop. Esta acción envía SIGTERM al proceso de Greengrass y cierra todos los procesos asociados que se iniciaron en el contenedor. El contenedor de Docker se inicializa con el ejecutable docker-init como PID 1, lo que ayuda a eliminar los procesos zombis restantes. Para obtener más información, consulte la sección Especificar un proceso de instalación
Para obtener más información acerca de la solución de problemas relacionados con la ejecución de AWS IoT Greengrass en un contenedor de Docker, consulte Solución de problemas de AWS IoT Greengrass en un contenedor Docker.