API Greengrass Discovery RESTful - AWS IoT Greengrass

AWS IoT Greengrass Version 1 è entrato nella fase di estensione della vita utile il 30 giugno 2023. Per ulteriori informazioni, consulta la politica AWS IoT Greengrass V1 di manutenzione. Dopo questa data, AWS IoT Greengrass V1 non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti, correzioni di bug o patch di sicurezza. I dispositivi che funzionano AWS IoT Greengrass V1 non subiranno interruzioni e continueranno a funzionare e a connettersi al cloud. Ti consigliamo vivamente di eseguire la migrazione a AWS IoT Greengrass Version 2, che aggiunge nuove importanti funzionalità e supporto per piattaforme aggiuntive.

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à.

API Greengrass Discovery RESTful

Tutti i dispositivi client che comunicano con un AWS IoT Greengrass core devono far parte di un gruppo Greengrass. Ogni gruppo deve disporre di un core Greengrass. L'API Discovery consente ai dispositivi di recuperare le informazioni necessarie per connettersi a un core Greengrass che si trova nello stesso gruppo Greengrass del dispositivo client. Quando un dispositivo client è online per la prima volta, può connettersi al AWS IoT Greengrass servizio e utilizzare l'API Discovery per trovare:

  • Il gruppo al quale appartiene. Un dispositivo client può far parte di un massimo di 10 gruppi.

  • L'indirizzo IP e la porta per il core Greengrass nel gruppo.

  • Il certificato emesso da una CA del gruppo, che può essere utilizzato per autenticare il dispositivo core Greengrass.

Nota

I dispositivi client possono anche utilizzare il AWS IoT dispositivo SDKs per scoprire informazioni di connettività per un core Greengrass. Per ulteriori informazioni, consulta AWS IoT SDK del dispositivo.

Per utilizzare questa API, invia le richieste HTTP all'endpoint dell'API Discovery. Per esempio:

https://greengrass-ats.iot.region.amazonaws.com:port/greengrass/discover/thing/thing-name

Per un elenco delle regioni e degli endpoint di Amazon Web Services supportati per l'API AWS IoT Greengrass Discovery, consulta AWS IoT Greengrass endpoint e quote nel. Riferimenti generali di AWS Si tratta di un'API esclusivamente del piano dei dati. Gli endpoint per la gestione e le AWS IoT Core operazioni di gruppo sono diversi dagli endpoint dell'API Discovery.

Richiesta

La richiesta contiene le intestazioni HTTP standard e viene inviata all'endpoint Greengrass Discovery, come indicato nei seguenti esempi.

Il numero di porta varia a seconda che il core sia configurato per inviare il traffico HTTPS sulla porta 8443 o 443. Per ulteriori informazioni, consulta Connessione alla porta 443 o tramite un proxy di rete.

Porta 8443
HTTP GET https://greengrass-ats.iot.region.amazonaws.com:8443/greengrass/discover/thing/thing-name
Porta 443
HTTP GET https://greengrass-ats.iot.region.amazonaws.com:443/greengrass/discover/thing/thing-name

I client che si connettono alla porta 443 devono implementare l'estensione TLS Application Layer Protocol Negotiation (ALPN) e passare come. x-amzn-http-ca ProtocolName ProtocolNameList Per ulteriori informazioni, consulta Protocols nella Developer Guide.AWS IoT

Nota

Questi esempi utilizzano Amazon Trust Services (ATS) con i certificati CA root ATS (scelta consigliata). Gli endpoint devono corrispondere al tipo di certificato CA root. Per ulteriori informazioni, consulta Gli endpoint del servizio devono corrispondere al tipo di certificato CA principale.

Risposta

In caso di esito positivo, la risposta include le intestazioni HTTP standard più il codice e il corpo seguenti:

HTTP 200 BODY: response document

Per ulteriori informazioni, consulta Documenti di risposta di individuazione di esempio.

Autorizzazione alla scoperta

Per recuperare le informazioni sulla connettività, è necessaria una policy che permetta all'intermediario di eseguire l'operazione greengrass:Discover. L'autenticazione reciproca TLS con certificato client è l'unica forma accettata di autenticazione. Di seguito è riportato un esempio di policy che permette a un intermediario di eseguire questa operazione:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "greengrass:Discover", "Resource": ["arn:aws:iot:us-west-2:123456789012:thing/MyThingName"] }] }

Documenti di risposta di individuazione di esempio

Il seguente documento mostra la risposta per un dispositivo client che fa parte di un gruppo con un certificato CA Greengrass core, un endpoint e un gruppo:

{ "GGGroups": [ { "GGGroupId": "gg-group-01-id", "Cores": [ { "thingArn": "core-01-thing-arn", "Connectivity": [ { "id": "core-01-connection-id", "hostAddress": "core-01-address", "portNumber": core-01-port, "metadata": "core-01-description" } ] } ], "CAs": [ "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----" ] } ] }

Il seguente documento mostra la risposta per un dispositivo client che è membro di due gruppi con un core Greengrass, più endpoint e più certificati CA di gruppo:

{ "GGGroups": [ { "GGGroupId": "gg-group-01-id", "Cores": [ { "thingArn": "core-01-thing-arn", "Connectivity": [ { "id": "core-01-connection-id", "hostAddress": "core-01-address", "portNumber": core-01-port, "metadata": "core-01-connection-1-description" }, { "id": "core-01-connection-id-2", "hostAddress": "core-01-address-2", "portNumber": core-01-port-2, "metadata": "core-01-connection-2-description" } ] } ], "CAs": [ "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----" ] }, { "GGGroupId": "gg-group-02-id", "Cores": [ { "thingArn":"core-02-thing-arn", "Connectivity" : [ { "id": "core-02-connection-id", "hostAddress": "core-02-address", "portNumber": core-02-port, "metadata": "core-02-connection-1-description" } ], "CAs": [ "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----", "-----BEGIN CERTIFICATE-----cert-contents-----END CERTIFICATE-----" ] } ] } }
Nota

Un gruppo Greengrass deve definire esattamente un core Greengrass. Qualsiasi risposta dal AWS IoT Greengrass servizio che contiene un elenco di core Greengrass contiene solo un core Greengrass.

Se cURL è installato, è possibile testare la richiesta di discovery. Per esempio:

$ curl --cert 1a23bc4d56.cert.pem --key 1a23bc4d56.private.key https://greengrass-ats.iot.us-west-2.amazonaws.com:8443/greengrass/discover/thing/MyDevice {"GGGroups":[{"GGGroupId":"1234a5b6-78cd-901e-2fgh-3i45j6k1789","Cores":[{"thingArn":"arn:aws:iot:us-west-2:1234567 89012:thing/MyFirstGroup_Core","Connectivity":[{"Id":"AUTOIP_192.168.1.4_1","HostAddress":"192.168.1.5","PortNumber ":8883,"Metadata":""}]}],"CAs":["-----BEGIN CERTIFICATE-----\ncert-contents\n-----END CERTIFICATE-----\n"]}]}