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.
Consultas de estado de conectividad de los dispositivos
AWS IoT La indexación de flotas admite consultas de conectividad de dispositivos individuales, lo que le permite recuperar de manera eficiente el estado de la conectividad y los metadatos relacionados para dispositivos específicos. Esta característica complementa las capacidades de indexación y consulta existentes en toda la flota.
Funcionamiento
La compatibilidad con las consultas de conectividad de los dispositivos se puede utilizar para recuperar de forma optimizada el estado de la conectividad de un solo dispositivo. Esta API proporciona acceso de baja latencia y alto rendimiento a la información de conectividad específica del dispositivo más reciente. Una vez que habilite la indexación de conectividad, tendrá acceso a esta API de consultas, que se cobrará como consultas estándar. Para obtener más información, consulte Precios de AWS IoT Device Management
Características
Gracias a la compatibilidad con las consultas de conectividad de los dispositivos, puede:
-
Consultar el estado de conectividad actual (conectado o desconectado) de un dispositivo determinado mediante su
thingName. -
Recuperar metadatos de conectividad adicionales, como, por ejemplo:
-
Motivo de desconexión
-
Marcas de tiempo de los eventos de conexión o desconexión más recientes.
-
Información de la sesión, incluida la duración de la sesión
-
Información de sesión a nivel de socket, incluida la dirección IP, el puerto y el ID de punto final de la VPC. Esta información solo está disponible cuando se cumplen las siguientes condiciones:
-
Esta opción se activa en los ajustes de configuración de indexación de la flota.
-
Dispones del permiso correspondiente en la política de IAM al invocar la API.
-
-
nota
La indexación de flotas indexa el estado de conectividad de un dispositivo cuya conexión clientId es la misma que la thingName de un dispositivo registrado en el Registro.
Ventajas
-
Baja latencia: refleja el estado de conectividad del dispositivo más reciente y ofrece una latencia baja para reflejar los cambios en el estado de la conexión con respecto a IoT Core. IoT Core determina que un dispositivo está desconectado en cuanto recibe una solicitud de desconexión del dispositivo o en caso de que un dispositivo se desconecte sin enviar una solicitud de desconexión. IoT Core esperará 1,5 veces el tiempo de keep-alive configurado antes de que se determine que el cliente está desconectado. La API de estado de conectividad reflejará estos cambios normalmente en menos de un segundo después de que IoT Core determine el cambio de estado de conexión de un dispositivo.
-
Alto rendimiento: admite 350 transacciones por segundo (TPS) de forma predeterminada y se puede ajustar en un nivel superior si se solicita.
-
Retención de datos: almacena los datos de los eventos de forma indefinida cuando el ConnectivityIndexing modo de indexación de flotas (FI) está activado y el elemento no se elimina. Si deshabilita la opción Indexación de conectividad, los registros no se conservarán.
nota
Si la indexación del estado de la conectividad estaba habilitada antes del lanzamiento de esta API, la opción Indexación de flotas comienza a realizar un seguimiento de los cambios en el estado de la conectividad después del lanzamiento de la API y refleja el estado actualizado en función de esos cambios.
Requisitos previos
Cómo utilizar el soporte de consultas sobre conectividad de dispositivos:
-
Incorpora y registra dispositivos AWS IoT Core en la región que prefieras
-
Habilite la indexación de flotas con la indexación de conectividad. Opcional: Opt-in para recibir información sobre el nivel de enchufe activando la
includeSocketInformationopción.
nota
No se requiere ninguna configuración adicional si ya tiene habilitada la indexación de conectividad.
Para obtener instrucciones detalladas de configuración, consulte la Guía para desarrolladores de AWS IoT.
Ejemplo
Comando CLI:
aws iot get-thing-connectivity-data --include-socket-information --thing-name myThingName
Respuesta:
{ "thingName": "myThingName", "connected": true, "timestamp": "2024-12-19T10:00:00.000000-08:00", "disconnectReason": "NONE", "sourceIp": "192.0.2.1", "sourcePort": 52123, "targetIp": "198.51.100.1", "targetPort": 8883, "vpcEndpointId": "vpce-1234567890abcdef0", "keepAliveDuration": 60, "cleanSession": true, "clientId": "myThingName" }
Parámetros de API
-
thingName: el nombre del dispositivo registrado en el AWS IoT registro. Debe coincidir con elclientIdutilizado para conectarse a AWS IoT Core. -
includeSocketInformation: ElincludeSocketInformationparámetro controla si la información de red a nivel de socket se incluye en la respuesta de la API. Si se establece en true, la respuesta incluye los siguientes campos:.sourceIp, sourcePort, targetIp, targetPort, vpcEndpointIdCuando noincludeSocketInformationse especifica o se establece en falso, estos campos de socket se excluyen de la respuesta. Para impedir que usuarios específicos de IAM accedan a la información de los sockets, tendrá que especificarlo en su política de IAM configurando la clave deincludeSocketInformationcondición como falsa
Campos de respuesta
-
thingName: el nombre del dispositivo registrado en AWS IoT el Registro. Debe coincidir con elclientIdutilizado para conectarse a AWS IoT Core. -
connected: el valor booleano true indica que este dispositivo está conectado actualmente. -
disconnectReason: motivo de la desconexión. SeráNONEpara un dispositivo conectado yUNKNOWNpara un dispositivo que nunca se ha conectado. En el caso de un dispositivo desconectado, esto indicará si la desconexión fue iniciada por el cliente o por el servidor, debido a authentication/authorization problemas o a problemas de red. Para ver los códigos de motivo de desconexión, consulte LifeCycleEvents -
timestamp: La marca de tiempo que representa el evento de conexión o desconexión más reciente del dispositivo. -
clientId: El ClientiD del cliente MQTT. -
keepAliveDuration: El intervalo de mantenimiento en segundos que el cliente especificó al establecer la conexión. Esto determina la frecuencia con la que el cliente envía mensajes de mantenimiento activo para mantener la conexión. -
cleanSession: Indica si el cliente está utilizando una sesión limpia. -
sessionExpiry: La configuración de caducidad de la sesión persistente que el cliente especificó al establecer la conexión. Esto determina cuánto tiempo permanecerá activa una sesión después de que el cliente se desconecte. -
sourceIp: la dirección IP del cliente que inició la conexión. Solo se devuelve siincludeSocketInformationse establece como verdadera y el usuario está autorizado a recuperar esta información. -
sourcePort: el número de puerto utilizado por el cliente para la conexión. Solo se devuelve siincludeSocketInformationse establece como verdadero y el usuario está autorizado a recuperar esta información. -
targetIp: la dirección IP a la que se realizó la solicitud de conexión. Solo se devuelve siincludeSocketInformationse establece como verdadera y el usuario está autorizado a recuperar esta información -
targetPort: el número de puerto del punto final de AWS IoT Core al que se conectó el cliente. Solo se devuelve siincludeSocketInformationse establece como verdadero y el usuario está autorizado a recuperar esta información. -
vpcEndpointId: el ID del punto final de la VPC a través del cual se conectó el cliente, si corresponde. Solo se devuelve siincludeSocketInformationse establece como verdadero y el usuario está autorizado a recuperar esta información.
Permisos necesarios
Para usar la GetThingConnectivityData API, necesitas el siguiente permiso de IAM
iot:GetThingConnectivityData
Puedes aplicar este permiso a aspectos específicos mediante políticas basadas en recursos. Utilice la iot:IncludeSocketInformation condición para implementar un control de acceso detallado a la información de los sockets. El siguiente ejemplo de política muestra un escenario en el que se niega al usuario el acceso a la información de los sockets. Ten en cuenta que este ejemplo funciona cuando es la única política que permite el acceso a la acción GetThingConnectivityData.
Ejemplos de políticas de autorización
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:GetThingConnectivityData" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:thing/*"], "Condition": { "Bool": { "iot:IncludeSocketInformation": "false" } } }] }