View a markdown version of this page

Configurazioni di esportazione per quelle supportate Cloud AWS destinazioni - AWS IoT Greengrass

Avviso di fine del supporto: il 7 ottobre 2026, AWS interromperà il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita Migrate from. AWS IoT Greengrass Version 1

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

Configurazioni di esportazione per quelle supportate Cloud AWS destinazioni

User-defined Le funzioni Lambda utilizzate StreamManagerClient nel AWS IoT Greengrass Core SDK per interagire con lo stream manager. Quando una funzione Lambda crea uno stream o ne aggiorna uno stream, passa un MessageStreamDefinition oggetto che rappresenta le proprietà dello stream, inclusa la definizione di esportazione. L'ExportDefinitionoggetto contiene le configurazioni di esportazione definite per lo stream. Stream Manager utilizza queste configurazioni di esportazione per determinare dove e come esportare il flusso.

Diagramma del modello a oggetti del tipo di ExportDefinition proprietà.

Puoi definire zero o più configurazioni di esportazione su uno stream, incluse più configurazioni di esportazione per un singolo tipo di destinazione. Ad esempio, puoi esportare uno stream in due flussi di dati Kinesis e un bucket Amazon S3.

In caso di tentativi di esportazione non riusciti, Stream Manager riprova continuamente a esportare i dati nel formato a intervalli fino Cloud AWS a cinque minuti. Il numero di tentativi di nuovo tentativo non ha un limite massimo.

Nota

StreamManagerClientfornisce anche una destinazione di destinazione che può essere utilizzata per esportare i flussi su un server HTTP. Questo target è destinato esclusivamente a scopi di test. Non è stabile né supportato per l'uso in ambienti di produzione.

L'utente è responsabile della gestione di queste Cloud AWS risorse.

AWS IoT Analytics canali (fuori produzione)

AWS IoT Analytics interrotto

AWS IoT Analytics è stato interrotto il 15 dicembre 2025. Le esportazioni di Stream Manager verso AWS IoT Analytics i canali non funzionano più. Se hai stream configurati con destinazioni di IoTAnalyticsConfig esportazione, rimuovili per evitare continui tentativi di esportazione falliti.

Per rimuovere le configurazioni di AWS IoT Analytics esportazione da uno stream esistente, aggiorna la definizione dello stream per omettere la voce. IoTAnalyticsConfig In alternativa, elimina e ricrea lo stream senza la AWS IoT Analytics configurazione di esportazione.

Valuta la possibilità di migrare verso una delle altre destinazioni di esportazione supportate, ad esempio Flussi di dati Amazon Kinesis o. Oggetti Amazon S3

 

Flussi di dati Amazon Kinesis

Stream Manager supporta le esportazioni automatiche verso Amazon Kinesis Data Streams. Kinesis Data Streams è comunemente usato per aggregare dati ad alto volume e caricarli in un data warehouse o in un cluster map-reduce. Per ulteriori informazioni, consulta Cos'è Amazon Kinesis Data Streams? nella Amazon Kinesis Developer Guide.

Nel AWS IoT Greengrass Core SDK, le tue funzioni Lambda utilizzano il KinesisConfig per definire la configurazione di esportazione per questo tipo di destinazione. Per ulteriori informazioni, consulta il riferimento SDK per la lingua di destinazione:

Requisiti

Questa destinazione di esportazione ha i seguenti requisiti:

  • Gli stream di destinazione in Kinesis Data Streams devono appartenere allo stesso gruppo Account AWS e al gruppo Regione AWS Greengrass.

  • Ruolo del gruppo GreengrassDevono consentire l'kinesis:PutRecordsautorizzazione per indirizzare i flussi di dati. Ad esempio:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kinesis:PutRecords" ], "Resource": [ "arn:aws:kinesis:us-east-1:123456789012:stream/stream_1_name", "arn:aws:kinesis:us-east-1:123456789012:stream/stream_2_name" ] } ] }

    È possibile concedere un accesso granulare o condizionale alle risorse, ad esempio utilizzando uno schema di denominazione con caratteri jolly*. Per ulteriori informazioni, consulta Aggiungere e rimuovere le politiche IAM nella IAM User Guide.

Esportazione in Kinesis Data Streams

Per creare un flusso da esportare in Kinesis Data Streams, le funzioni Lambda creano un flusso con una definizione di esportazione che include uno o più oggetti. KinesisConfig Questo oggetto definisce le impostazioni di esportazione, come il flusso di dati di destinazione, la dimensione del batch, l'intervallo del batch e la priorità.

Quando le funzioni Lambda ricevono dati dai dispositivi, aggiungono messaggi contenenti una massa di dati allo stream di destinazione. Quindi, stream manager esporta i dati in base alle impostazioni del batch e alla priorità definite nelle configurazioni di esportazione dello stream.

Stream Manager genera un UUID univoco e casuale come chiave di partizione per ogni record caricato su Amazon Kinesis.

 

AWS IoT SiteWise proprietà degli asset

Stream Manager supporta le esportazioni automatiche verso AWS IoT SiteWise. AWS IoT SiteWise consente di raccogliere, organizzare e analizzare i dati provenienti da apparecchiature industriali su larga scala. Per ulteriori informazioni, vedi Che cos'è AWS IoT SiteWise? nella Guida AWS IoT SiteWise per l'utente.

Nel AWS IoT Greengrass Core SDK, le tue funzioni Lambda utilizzano il IoTSiteWiseConfig per definire la configurazione di esportazione per questo tipo di destinazione. Per ulteriori informazioni, consulta il riferimento SDK per la lingua di destinazione:

Nota

AWS fornisce ancheSiteWise Connettore IoT, che è una soluzione predefinita che puoi utilizzare con OPC-UA i sorgenti.

Requisiti

Questa destinazione di esportazione presenta i seguenti requisiti:

  • Le proprietà degli asset target in AWS IoT SiteWise devono appartenere allo stesso gruppo Greengrass Account AWS e Regione AWS a quello del gruppo Greengrass.

    Nota

    Per l'elenco delle regioni che AWS IoT SiteWise supportano, consulta gli AWS IoT SiteWise endpoint e le quote nel AWS Riferimento generale.

  • Ruolo del gruppo GreengrassDeve consentire l'iotsitewise:BatchPutAssetPropertyValueautorizzazione per indirizzare le proprietà degli asset. La seguente policy di esempio utilizza la chiave iotsitewise:assetHierarchyPath condizionale per concedere l'accesso a una risorsa radice di destinazione e ai suoi figli. Puoi rimuoverla Condition dalla policy per consentire l'accesso a tutte le tue AWS IoT SiteWise risorse o specificare gli ARN delle singole risorse.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iotsitewise:BatchPutAssetPropertyValue", "Resource": "*", "Condition": { "StringLike": { "iotsitewise:assetHierarchyPath": [ "/root node asset ID", "/root node asset ID/*" ] } } } ] }

    È possibile concedere un accesso granulare o condizionale alle risorse, ad esempio utilizzando uno schema di denominazione con caratteri jolly*. Per ulteriori informazioni, consulta Aggiungere e rimuovere le politiche IAM nella IAM User Guide.

    Per importanti informazioni sulla sicurezza, consulta BatchPutAssetPropertyValue l'autorizzazione nella Guida AWS IoT SiteWise per l'utente.

Esportazione in AWS IoT SiteWise

Per creare un flusso che esporta in AWS IoT SiteWise, le tue funzioni Lambda creano un flusso con una definizione di esportazione che include uno o più IoTSiteWiseConfig oggetti. Questo oggetto definisce le impostazioni di esportazione, come la dimensione del batch, l'intervallo del batch e la priorità.

Quando le funzioni Lambda ricevono i dati sulle proprietà degli asset dai dispositivi, aggiungono messaggi che contengono i dati allo stream di destinazione. I messaggi sono JSON-serialized PutAssetPropertyValueEntry oggetti che contengono valori di proprietà per una o più proprietà degli asset. Per ulteriori informazioni, consultate Aggiungere un messaggio per le destinazioni di AWS IoT SiteWise esportazione.

Nota

Quando invii dati a AWS IoT SiteWise, i tuoi dati devono soddisfare i requisiti dell'BatchPutAssetPropertyValueazione. Per ulteriori informazioni, consulta BatchPutAssetPropertyValue nella documentazione di riferimento dell’API AWS IoT SiteWise .

Quindi, stream manager esporta i dati in base alle impostazioni del batch e alla priorità definite nelle configurazioni di esportazione dello stream.

 

Puoi modificare le impostazioni dello stream manager e la logica delle funzioni Lambda per progettare la tua strategia di esportazione. Ad esempio:

  • Per esportazioni quasi in tempo reale, imposta impostazioni di dimensioni e intervalli di batch ridotti e aggiungi i dati allo stream quando vengono ricevuti.

  • Per ottimizzare il batch, mitigare i vincoli di larghezza di banda o minimizzare i costi, le tue funzioni Lambda possono raggruppare i punti dati timestamp-quality-value (TQV) ricevuti per una singola proprietà di asset prima di aggiungere i dati allo stream. Una strategia consiste nel raggruppare le voci relative a un massimo di 10 diverse combinazioni proprietà-asset, o alias di proprietà, in un unico messaggio invece di inviare più di una voce per la stessa proprietà. Questo aiuta lo stream manager a rimanere entro le quote. AWS IoT SiteWise

 

Oggetti Amazon S3

Stream Manager supporta le esportazioni automatiche verso Amazon S3. Puoi usare Amazon S3 per archiviare e recuperare grandi quantità di dati. Per ulteriori informazioni, consulta Cos'è Amazon S3? nella Amazon Simple Storage Service Developer Guide.

Nel AWS IoT Greengrass Core SDK, le tue funzioni Lambda utilizzano il S3ExportTaskExecutorConfig per definire la configurazione di esportazione per questo tipo di destinazione. Per ulteriori informazioni, consulta il riferimento SDK per la lingua di destinazione:

Requisiti

Questa destinazione di esportazione ha i seguenti requisiti:

  • I bucket Amazon S3 di destinazione devono appartenere al gruppo Account AWS Greengrass.

  • Se la containerizzazione predefinita per il gruppo Greengrass è il contenitore Greengrass, devi impostare il parametro STREAM_MANAGER_READ_ONLY_DIRS per utilizzare una directory di file di input che si trova all'interno o all'esterno del file system root. /tmp

  • Se una funzione Lambda in esecuzione in modalità contenitore Greengrass scrive i file di input nella directory del file di input, è necessario creare una risorsa di volume locale per la directory e montare la directory nel contenitore con i permessi di scrittura. Ciò garantisce che i file vengano scritti nel file system root e siano visibili all'esterno del contenitore. Per ulteriori informazioni, consulta Accedi alle risorse locali con funzioni e connettori Lambda.

  • Ruolo del gruppo GreengrassDevono consentire le seguenti autorizzazioni per i bucket di destinazione. Ad esempio:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::bucket-1-name/*", "arn:aws:s3:::bucket-2-name/*" ] } ] }

    È possibile concedere un accesso granulare o condizionale alle risorse, ad esempio utilizzando uno schema di denominazione con caratteri jolly. * Per ulteriori informazioni, consulta Aggiungere e rimuovere le politiche IAM nella IAM User Guide.

Esportazione in Amazon S3

Per creare uno stream che esporta in Amazon S3, le tue funzioni Lambda utilizzano l'S3ExportTaskExecutorConfigoggetto per configurare la politica di esportazione. La policy definisce le impostazioni di esportazione, come la soglia e la priorità di caricamento in più parti. Per le esportazioni di Amazon S3, stream manager carica i dati che legge dai file locali sul dispositivo principale. Per avviare un caricamento, le funzioni Lambda aggiungono un'attività di esportazione allo stream di destinazione. L'attività di esportazione contiene informazioni sul file di input e sull'oggetto Amazon S3 di destinazione. Stream Manager esegue le attività nella sequenza in cui vengono aggiunte allo stream.

Nota

Il bucket di destinazione deve già esistere nel tuo. Account AWS Se non esiste un oggetto per la chiave specificata, stream manager crea l'oggetto per te.

Questo flusso di lavoro di alto livello è illustrato nel diagramma seguente.

Diagramma del flusso di lavoro di stream manager per le esportazioni di Amazon S3.

Stream Manager utilizza la proprietà della soglia di caricamento in più parti, l'impostazione della dimensione minima della parte e la dimensione del file di input per determinare come caricare i dati. La soglia di caricamento in più parti deve essere maggiore o uguale alla dimensione minima della parte. Se desideri caricare dati in parallelo, puoi creare più stream.

Le chiavi che specificano gli oggetti Amazon S3 di destinazione possono includere DateTimeFormatter stringhe Java valide nei segnaposti. !{timestamp:value} Puoi utilizzare questi segnaposto con timestamp per partizionare i dati in Amazon S3 in base all'ora in cui i dati del file di input sono stati caricati. Ad esempio, il seguente nome chiave si risolve in un valore come. my-key/2020/12/31/data.txt

my-key/!{timestamp:YYYY}/!{timestamp:MM}/!{timestamp:dd}/data.txt
Nota

Se desideri monitorare lo stato di esportazione di uno stream, crea prima uno stream di stato e poi configura il flusso di esportazione per utilizzarlo. Per ulteriori informazioni, consulta Monitora le attività di esportazione.

Gestisci i dati di input

Puoi creare codice che le applicazioni IoT utilizzano per gestire il ciclo di vita dei dati di input. Il seguente flusso di lavoro di esempio mostra come è possibile utilizzare le funzioni Lambda per gestire questi dati.

  1. Un processo locale riceve dati da dispositivi o periferiche e quindi li scrive nei file in una directory sul dispositivo principale. Questi sono i file di input per Stream Manager.

    Nota

    Per determinare se è necessario configurare l'accesso alla directory dei file di input, vedete il parametro STREAM_MANAGER_READ_ONLY_DIRS.

    Il processo in cui viene eseguito lo stream manager eredita tutte le autorizzazioni del file system dell'identità di accesso predefinita per il gruppo. Impostazione dell'identità di accesso predefinita per le funzioni Lambda in un gruppo Lo stream manager deve disporre dell'autorizzazione per accedere ai file di input. È possibile utilizzare il chmod(1) comando per modificare l'autorizzazione dei file, se necessario.

  2. Una funzione Lambda analizza la directory e aggiunge un'attività di esportazione allo stream di destinazione quando viene creato un nuovo file. L'attività è un JSON-serialized S3ExportTaskDefinition oggetto che specifica l'URL del file di input, il bucket e la chiave Amazon S3 di destinazione e i metadati utente opzionali.

  3. Stream Manager legge il file di input ed esporta i dati in Amazon S3 nell'ordine delle attività aggiunte. Il bucket di destinazione deve già esistere nel tuo. Account AWS Se non esiste un oggetto per la chiave specificata, stream manager crea l'oggetto per te.

  4. La funzione Lambda legge i messaggi da un flusso di stato per monitorare lo stato dell'esportazione. Una volta completate le attività di esportazione, la funzione Lambda può eliminare i file di input corrispondenti. Per ulteriori informazioni, consulta Monitora le attività di esportazione.

Monitora le attività di esportazione

Puoi creare codice che le applicazioni IoT utilizzano per monitorare lo stato delle tue esportazioni Amazon S3. Le tue funzioni Lambda devono creare un flusso di stato e quindi configurare il flusso di esportazione per scrivere aggiornamenti di stato nel flusso di stato. Un singolo flusso di stato può ricevere aggiornamenti di stato da più stream che vengono esportati in Amazon S3.

Innanzitutto, crea uno stream da utilizzare come stream di stato. Puoi configurare le dimensioni e le politiche di conservazione dello stream per controllare la durata dei messaggi di stato. Ad esempio:

  • PersistenceImposta su Memory se non desideri memorizzare i messaggi di stato.

  • Impostato StrategyOnFull su OverwriteOldestData in modo che i nuovi messaggi di stato non vadano persi.

Quindi, crea o aggiorna il flusso di esportazione per utilizzare il flusso di stato. In particolare, imposta la proprietà di configurazione dello stato della configurazione di S3ExportTaskExecutorConfig esportazione dello stream. Ciò indica allo stream manager di scrivere messaggi di stato sulle attività di esportazione nello stream di stato. Nell'StatusConfigoggetto, specifica il nome del flusso di stato e il livello di verbosità. I seguenti valori supportati vanno da least verbose (ERROR) a most verbose (). TRACE Il valore predefinito è INFO.

  • ERROR

  • WARN

  • INFO

  • DEBUG

  • TRACE

 

Il seguente flusso di lavoro di esempio mostra come le funzioni Lambda potrebbero utilizzare un flusso di stato per monitorare lo stato dell'esportazione.

  1. Come descritto nel flusso di lavoro precedente, una funzione Lambda aggiunge un'attività di esportazione a uno stream configurato per scrivere messaggi di stato sulle attività di esportazione in un flusso di stato. L'operazione di aggiunta restituisce un numero di sequenza che rappresenta l'ID dell'attività.

  2. Una funzione Lambda legge i messaggi in sequenza dal flusso di stato, quindi filtra i messaggi in base al nome del flusso e all'ID dell'attività o in base a una proprietà dell'attività di esportazione dal contesto del messaggio. Ad esempio, la funzione Lambda può filtrare in base all'URL del file di input dell'attività di esportazione, rappresentato dall'S3ExportTaskDefinitionoggetto nel contesto del messaggio.

    I seguenti codici di stato indicano che un'attività di esportazione ha raggiunto lo stato completato:

    • Success. Il caricamento è stato completato con successo.

    • Failure. Stream Manager ha riscontrato un errore, ad esempio, il bucket specificato non esiste. Dopo aver risolto il problema, puoi aggiungere nuovamente l'attività di esportazione allo stream.

    • Canceled. L'attività è stata interrotta perché la definizione dello stream o dell'esportazione è stata eliminata o il periodo di tempo di vita (TTL) dell'attività è scaduto.

    Nota

    L'attività potrebbe inoltre avere lo stato o. InProgress Warning Stream Manager emette avvisi quando un evento restituisce un errore che non influisce sull'esecuzione dell'attività. Ad esempio, la mancata pulizia di un caricamento parziale interrotto restituisce un avviso.

  3. Una volta completate le attività di esportazione, la funzione Lambda può eliminare i file di input corrispondenti.

L'esempio seguente mostra come una funzione Lambda può leggere ed elaborare i messaggi di stato.

Python
import time from greengrasssdk.stream_manager import ( ReadMessagesOptions, Status, StatusConfig, StatusLevel, StatusMessage, StreamManagerClient, ) from greengrasssdk.stream_manager.util import Util client = StreamManagerClient() try: # Read the statuses from the export status stream is_file_uploaded_to_s3 = False while not is_file_uploaded_to_s3: try: messages_list = client.read_messages( "StatusStreamName", ReadMessagesOptions(min_message_count=1, read_timeout_millis=1000) ) for message in messages_list: # Deserialize the status message first. status_message = Util.deserialize_json_bytes_to_obj(message.payload, StatusMessage) # Check the status of the status message. If the status is "Success", # the file was successfully uploaded to S3. # If the status was either "Failure" or "Cancelled", the server was unable to upload the file to S3. # We will print the message for why the upload to S3 failed from the status message. # If the status was "InProgress", the status indicates that the server has started uploading # the S3 task. if status_message.status == Status.Success: logger.info("Successfully uploaded file at path " + file_url + " to S3.") is_file_uploaded_to_s3 = True elif status_message.status == Status.Failure or status_message.status == Status.Canceled: logger.info( "Unable to upload file at path " + file_url + " to S3. Message: " + status_message.message ) is_file_uploaded_to_s3 = True time.sleep(5) except StreamManagerException: logger.exception("Exception while running") except StreamManagerException: pass # Properly handle errors. except ConnectionError or asyncio.TimeoutError: pass # Properly handle errors.

Riferimento all'SDK Python: read_messages | https://aws.github.io/aws-greengrass-core-sdk-python/_apidoc/greengrasssdk.stream_manager.streammanagerclient.html#greengrasssdk.stream_manager.streammanagerclient.StreamManagerClient.read_messages StatusMessage

Java
import com.amazonaws.greengrass.streammanager.client.StreamManagerClient; import com.amazonaws.greengrass.streammanager.client.utils.ValidateAndSerialize; import com.amazonaws.greengrass.streammanager.model.ReadMessagesOptions; import com.amazonaws.greengrass.streammanager.model.Status; import com.amazonaws.greengrass.streammanager.model.StatusConfig; import com.amazonaws.greengrass.streammanager.model.StatusLevel; import com.amazonaws.greengrass.streammanager.model.StatusMessage; try (final StreamManagerClient client = GreengrassClientBuilder.streamManagerClient().build()) { try { boolean isS3UploadComplete = false; while (!isS3UploadComplete) { try { // Read the statuses from the export status stream List<Message> messages = client.readMessages("StatusStreamName", new ReadMessagesOptions().withMinMessageCount(1L).withReadTimeoutMillis(1000L)); for (Message message : messages) { // Deserialize the status message first. StatusMessage statusMessage = ValidateAndSerialize.deserializeJsonBytesToObj(message.getPayload(), StatusMessage.class); // Check the status of the status message. If the status is "Success", the file was successfully uploaded to S3. // If the status was either "Failure" or "Canceled", the server was unable to upload the file to S3. // We will print the message for why the upload to S3 failed from the status message. // If the status was "InProgress", the status indicates that the server has started uploading the S3 task. if (Status.Success.equals(statusMessage.getStatus())) { System.out.println("Successfully uploaded file at path " + FILE_URL + " to S3."); isS3UploadComplete = true; } else if (Status.Failure.equals(statusMessage.getStatus()) || Status.Canceled.equals(statusMessage.getStatus())) { System.out.println(String.format("Unable to upload file at path %s to S3. Message %s", statusMessage.getStatusContext().getS3ExportTaskDefinition().getInputUrl(), statusMessage.getMessage())); sS3UploadComplete = true; } } } catch (StreamManagerException ignored) { } finally { // Sleep for sometime for the S3 upload task to complete before trying to read the status message. Thread.sleep(5000); } } catch (e) { // Properly handle errors. } } catch (StreamManagerException e) { // Properly handle exception. }

Riferimento Java SDK: readMessages | https://aws.github.io/aws-greengrass-core-sdk-java/com/amazonaws/greengrass/streammanager/client/StreamManagerClient.html#readMessages-java.lang.String-com.amazonaws.greengrass.streammanager.model.ReadMessagesOptions- StatusMessage

Node.js
const { StreamManagerClient, ReadMessagesOptions, Status, StatusConfig, StatusLevel, StatusMessage, util, } = require('aws-greengrass-core-sdk').StreamManager; const client = new StreamManagerClient(); client.onConnected(async () => { try { let isS3UploadComplete = false; while (!isS3UploadComplete) { try { // Read the statuses from the export status stream const messages = await c.readMessages("StatusStreamName", new ReadMessagesOptions() .withMinMessageCount(1) .withReadTimeoutMillis(1000)); messages.forEach((message) => { // Deserialize the status message first. const statusMessage = util.deserializeJsonBytesToObj(message.payload, StatusMessage); // Check the status of the status message. If the status is 'Success', the file was successfully uploaded to S3. // If the status was either 'Failure' or 'Cancelled', the server was unable to upload the file to S3. // We will print the message for why the upload to S3 failed from the status message. // If the status was "InProgress", the status indicates that the server has started uploading the S3 task. if (statusMessage.status === Status.Success) { console.log(`Successfully uploaded file at path ${FILE_URL} to S3.`); isS3UploadComplete = true; } else if (statusMessage.status === Status.Failure || statusMessage.status === Status.Canceled) { console.log(`Unable to upload file at path ${FILE_URL} to S3. Message: ${statusMessage.message}`); isS3UploadComplete = true; } }); // Sleep for sometime for the S3 upload task to complete before trying to read the status message. await new Promise((r) => setTimeout(r, 5000)); } catch (e) { // Ignored } } catch (e) { // Properly handle errors. } }); client.onError((err) => { // Properly handle connection errors. // This is called only when the connection to the StreamManager server fails. });

Node.js Riferimento SDK: readMessages | https://aws.github.io/aws-greengrass-core-sdk-js/aws-greengrass-core-sdk.StreamManager.StreamManagerClient.html#readMessages StatusMessage