Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Interrogazioni sullo stato della connettività dei dispositivi
AWS IoT Fleet Indexing supporta l'interrogazione della connettività dei singoli dispositivi, consentendoti di recuperare in modo efficiente lo stato della connettività e i relativi metadati per dispositivi specifici. Questa funzionalità integra le funzionalità di indicizzazione e interrogazione esistenti a livello di flotta.
Come funziona
Il supporto per le query di connettività dei dispositivi può essere utilizzato per il recupero ottimizzato dello stato di connettività di un singolo dispositivo. Questa API fornisce un accesso a bassa latenza e ad alta velocità effettiva alle informazioni di connettività specifiche del dispositivo più recenti. Una volta abilitata l'indicizzazione della connettività, avrai accesso a questa API di query che verrà addebitata come query standard. Per ulteriori informazioni, consulta AWS IoT i prezzi di Device Management
Funzionalità
Con il supporto per le richieste di connettività dei dispositivi, puoi:
-
Interroga lo stato di connettività corrente (connesso o disconnesso) per un determinato dispositivo utilizzando il suo
thingName. -
Recupera metadati di connettività aggiuntivi, tra cui:
-
Motivo di disconnessione
-
Timestamp per l'evento di connessione o disconnessione più recente.
-
Informazioni sulla sessione, inclusa la durata del keep-alive
-
Informazioni sulla sessione a livello di socket, tra cui indirizzo IP, porta e ID endpoint VPC. Queste informazioni sono disponibili solo quando sono soddisfatte le seguenti condizioni:
-
Questa opzione viene abilitata nelle impostazioni di configurazione dell'indicizzazione del parco veicoli.
-
Hai l'autorizzazione corrispondente nella policy IAM quando richiami l'API.
-
-
Nota
L'indicizzazione del parco istanze consente di indicizzare lo stato di connettività di un dispositivo la cui connessione clientId è identica al thingName di un oggetto registrato nel Registro.
Vantaggi
-
Bassa latenza: riflette lo stato di connettività del dispositivo più recente e offre una bassa latenza per riflettere le modifiche dello stato di connessione rispetto a IoT Core. IoT Core determina che un dispositivo è disconnesso non appena riceve una richiesta di disconnessione dal dispositivo o nel caso in cui un dispositivo si disconnetta senza inviare una richiesta di disconnessione. Il core IoT attenderà 1,5 volte il tempo di keep-alive configurato prima che il client venga determinato come disconnesso. L'API Connectivity status rifletterà queste modifiche in genere entro un secondo dopo che IoT Core determina la modifica dello stato di connessione di un dispositivo.
-
Throughput elevato: supporta 350 transazioni al secondo (TPS) per impostazione predefinita e può essere impostato su un valore superiore su richiesta.
-
Conservazione dei dati: memorizza i dati degli eventi a tempo indeterminato quando la ConnectivityIndexing modalità Fleet Indexing (FI) è abilitata e l'oggetto non viene eliminato. Se disabiliti l'indicizzazione della connettività, i record non verranno conservati.
Nota
Se l'indicizzazione dello stato di connettività era abilitata prima del lancio di questa API, Fleet Indexing inizia a tenere traccia delle modifiche allo stato della connettività dopo il lancio dell'API e riflette lo stato aggiornato in base a tali modifiche.
Prerequisiti
Per utilizzare il supporto per le query di connettività del dispositivo:
-
Effettua l'onboarding e registra i dispositivi AWS IoT Core nella tua regione preferita
-
Abilita l'indicizzazione del parco veicoli con l'indicizzazione della connettività. Facoltativo: Opt-in per ricevere informazioni a livello di socket abilitando l'opzione.
includeSocketInformation
Nota
Non è richiesta alcuna configurazione aggiuntiva se l'indicizzazione della connettività è già abilitata.
Per istruzioni dettagliate sulla configurazione, consulta la Guida per gli sviluppatori AWS IoT
Esempio
Comando CLI:
aws iot get-thing-connectivity-data --include-socket-information --thing-name myThingName
Risposta:
{ "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" }
Parametri API
-
thingName: il nome del dispositivo registrato nel AWS IoT Registro di sistema. Deve corrispondere a quelloclientIdutilizzato per connettersi a AWS IoT Core. -
includeSocketInformation: IlincludeSocketInformationparametro controlla se le informazioni di rete a livello di socket sono incluse nella risposta dell'API. Quando è impostata su true, la risposta include i seguenti campi:.sourceIp, sourcePort, targetIp, targetPort, vpcEndpointIdQuando nonincludeSocketInformationè specificato o impostato su false, questi campi socket sono esclusi dalla risposta. Per impedire a utenti IAM specifici di accedere alle informazioni sui socket, dovrai specificarlo nella loro politica IAM impostando la chiave diincludeSocketInformationcondizione su false
Campi di risposta
-
thingName: il nome del dispositivo registrato nel AWS IoT Registro di sistema. Deve corrispondere a quelloclientIdutilizzato per connettersi a AWS IoT Core. -
connected: Il valore booleano true che indica che questo dispositivo è attualmente connesso. -
disconnectReason: Motivo della disconnessione. SaràNONEper un dispositivo connesso eUNKNOWNper un dispositivo che non è mai stato connesso. Per un dispositivo disconnesso, ciò indicherà se la disconnessione è stata avviata dal client, dal server, a causa di authentication/authorization problemi o a causa di problemi di rete. Per i codici relativi ai motivi della disconnessione, vedi LifeCycleEvents -
timestamp: Il timestamp che rappresenta l'evento di connessione o disconnessione più recente del dispositivo. -
clientId: ClientID del client MQTT. -
keepAliveDuration: L'intervallo di mantenimento in secondi specificato dal client quando ha stabilito la connessione. Ciò determina la frequenza con cui il client invia messaggi keep-alive per mantenere la connessione. -
cleanSession: Indica se il client sta utilizzando una sessione pulita. -
sessionExpiry: la configurazione persistente della scadenza della sessione specificata dal client durante lo stabilimento della connessione. Ciò determina per quanto tempo una sessione rimarrà attiva dopo la disconnessione del client. -
sourceIp: l'indirizzo IP del client che ha avviato la connessione. Restituito solo seincludeSocketInformationè impostato su true e l'utente è autorizzato a recuperare queste informazioni. -
sourcePort: il numero di porta utilizzato dal client per la connessione. Restituito solo seincludeSocketInformationè impostato su true e l'utente è autorizzato a recuperare queste informazioni. -
targetIp: l'indirizzo IP a cui è stata effettuata la richiesta di connessione. Restituito solo seincludeSocketInformationè impostato su true e l'utente è autorizzato a recuperare queste informazioni -
targetPort: il numero di porta dell'endpoint AWS IoT Core a cui il client si è connesso. Restituito solo seincludeSocketInformationè impostato su true e l'utente è autorizzato a recuperare queste informazioni. -
vpcEndpointId: l'ID dell'endpoint VPC tramite il quale il client si è connesso, se applicabile. Restituito solo seincludeSocketInformationè impostato su true e l'utente è autorizzato a recuperare queste informazioni.
Autorizzazioni richieste
Per utilizzare l' GetThingConnectivityData API, è necessaria la seguente autorizzazione IAM
iot:GetThingConnectivityData
Puoi estendere questa autorizzazione a cose specifiche utilizzando politiche basate sulle risorse. Utilizzate la iot:IncludeSocketInformation condizione per implementare il controllo granulare degli accessi sulle informazioni sui socket. L'esempio di policy riportato di seguito illustra uno scenario in cui si nega all'utente l'accesso alle informazioni sui socket. Tieni presente che questo esempio funziona quando è l'unica politica che concede l'accesso all'azione. GetThingConnectivityData
Esempi di politiche di autorizzazione
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:GetThingConnectivityData" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:thing/*"], "Condition": { "Bool": { "iot:IncludeSocketInformation": "false" } } }] }