

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

# AWS IoT Greengrass Libreria Discovery
<a name="freertos-lib-gg-connectivity"></a>

**Nota**  <a name="out-of-date-message"></a>
Il contenuto di questa pagina potrebbe non esserlo. up-to-date Consulta la [pagina della libreria di Freertos.org](https://www.freertos.org/Documentation/03-Libraries/01-Library-overview/01-All-libraries) per l'ultimo aggiornamento.

## Panoramica
<a name="freertos-gg-overview"></a>

La libreria [AWS IoT Greengrass Discovery](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__greengrass__discovery_8h.html) viene utilizzata dai dispositivi a microcontrollore per scoprire un core Greengrass sulla rete. Utilizzando AWS IoT Greengrass Discovery APIs, il dispositivo può inviare messaggi a un core Greengrass dopo aver trovato l'endpoint del core.

## Dipendenze e requisiti
<a name="freertos-gg-dependencies"></a>

Per utilizzare la libreria Greengrass Discovery, è necessario creare un oggetto in AWS IoT, inclusi un certificato e una politica. Per ulteriori informazioni, consulta [Nozioni di base su AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-gs.html). 

È necessario impostare i valori per le seguenti costanti nel file `freertos/demos/include/aws_clientcredential.h`:

**`clientcredentialMQTT_BROKER_ENDPOINT`**  
Il tuo AWS IoT endpoint.

**`clientcredentialIOT_THING_NAME`**  
Nome dell'oggetto IoT.

**`clientcredentialWIFI_SSID`**  
Il SSID della rete Wi-Fi.

**`clientcredentialWIFI_PASSWORD`**  
Password del Wi-Fi.

**`clientcredentialWIFI_SECURITY`**  
Il tipo di sicurezza utilizzato dalla rete Wi-Fi.

È anche necessario impostare i valori per le seguenti costanti nel file `freertos/demos/include/aws_clientcredential_keys.h`:

**`keyCLIENT_CERTIFICATE_PEM`**  
Il file PEM del certificato associato all'oggetto.

**`keyCLIENT_PRIVATE_KEY_PEM`**  
Il file PEM della chiave privata associato all'oggetto.

È necessario che nella console siano configurati un dispositivo core e un gruppo Greengrass. Per ulteriori informazioni, consulta [Guida introduttiva a AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/latest/developerguide/).

Sebbene la libreria CoreMQTT non sia richiesta per la connettività Greengrass, consigliamo vivamente di installarla. La libreria può essere utilizzata per comunicare con il core Greengrass dopo che è stato individuato.

## Riferimento API
<a name="freertos-gg-api"></a>

Per informazioni di riferimento complete sull'API, consulta [Documentazione di riferimento sull'API Greengrass](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__greengrass__discovery_8h.html).

## Esempio di utilizzo
<a name="freertos-gg-example"></a>

### Flusso di lavoro di Greengrass
<a name="freertos-lib-gg-workflow"></a>

Il dispositivo MCU avvia il processo di scoperta richiedendo AWS IoT un file JSON che contiene i parametri di connettività di base di Greengrass. Sono disponibili due metodi per il recupero dei parametri di connettività del core Greengrass dal file JSON:
+ La selezione automatica scorre tutti i core Greengrass elencati nel file JSON e si connette al primo disponibile. 
+ La selezione manuale utilizza le informazioni in `aws_ggd_config.h` per connettersi al core Greengrass specificato.

### Come usare l'API Greengrass
<a name="freertos-lib-gg-api"></a>

Tutte le opzioni di configurazione predefinite per l'API Greengrass sono definite in `aws_ggd_config_defaults.h`.

Se è presente un solo core Greengrass, chiamare `GGD_GetGGCIPandCertificate` per richiedere al file JSON informazioni di connettività del core Greengrass. Quando `GGD_GetGGCIPandCertificate` viene restituito, il parametro `pcBuffer` contiene il testo del file JSON. Il parametro `pxHostAddressData` contiene l'indirizzo IP e la porta del core Greengrass a cui è possibile connettersi.

Per ulteriori opzioni di personalizzazione, come l'allocazione dinamica dei certificati, è necessario chiamare quanto segue: APIs

**`GGD_JSONRequestStart`**  
Effettua una richiesta HTTP GET AWS IoT per avviare la richiesta di rilevamento per scoprire un core Greengrass. `GD_SecureConnect_Send`viene utilizzato per inviare la richiesta a. AWS IoT

**`GGD_JSONRequestGetSize`**  
Ottiene le dimensioni del file JSON dalla risposta HTTP.

**`GGD_JSONRequestGetFile`**  
Ottiene l'oggetto stringa JSON. `GGD_JSONRequestGetSize` e `GGD_JSONRequestGetFile` utilizzano `GGD_SecureConnect_Read` per ottenere i dati JSON dal socket. È necessario chiamare `GGD_JSONRequestStart`, `GGD_SecureConnect_Send` e `GGD_JSONRequestGetSize` per ricevere i dati JSON da AWS IoT.

**`GGD_GetIPandCertificateFromJSON`**  
Estrae l'indirizzo IP e il certificato core Greengrass dai dati JSON. È possibile attivare la selezione automatica impostando `xAutoSelectFlag` su `True`. La selezione automatica trova il primo dispositivo core a cui il dispositivo FreeRTOS può connettersi. Per connettersi a un core Greengrass, chiamare la funzione `GGD_SecureConnect_Connect` trasmettendo l'indirizzo IP, la porta e il certificato del dispositivo core. Per utilizzare la selezione manuale, impostare i campi seguenti del parametro `HostParameters_t`:    
**`pcGroupName`**  
L'ID del gruppo Greengrass a cui appartiene il core. Puoi utilizzare il comando `aws greengrass list-groups` dell'interfaccia a riga di comando per trovare l'ID dei tuoi gruppi Greengrass.  
**`pcCoreAddress`**  
ARN del core Greengrass a cui ti stai connettendo.