Amazon SNS - AWS IoT Greengrass

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

Amazon SNS

Il SNS componente Amazon (aws.greengrass.SNS) pubblica messaggi su un argomento di Amazon Simple Notification Service (AmazonSNS). È possibile utilizzare questo componente per inviare eventi dai dispositivi core Greengrass a server Web, indirizzi e-mail e altri abbonati ai messaggi. Per ulteriori informazioni, consulta What is AmazonSNS? nella Guida per gli sviluppatori di Amazon Simple Notification Service.

Per pubblicare su un SNS argomento Amazon con questo componente, pubblica un messaggio sull'argomento a cui questo componente è abbonato. Per impostazione predefinita, questo componente sottoscrive l'argomento di pubblicazione/sottoscrizione sns/message locale. È possibile specificare altri argomenti, inclusi gli AWS IoT Core MQTT argomenti, quando si distribuisce questo componente.

Nel componente personalizzato, potresti voler implementare la logica di filtraggio o formattazione per elaborare i messaggi da altre fonti prima di pubblicarli su questo componente. Ciò consente di centralizzare la logica di elaborazione dei messaggi su un singolo componente.

Nota

Questo componente offre funzionalità simili al SNS connettore Amazon nella AWS IoT Greengrass versione 1. Per ulteriori informazioni, consulta Amazon SNS connector nella AWS IoT Greengrass V1 Developer Guide.

Versioni

Questo componente ha le seguenti versioni:

  • 2.1.x

  • 2,0x

Type

Questo componente è un componente Lambda () aws.greengrass.lambda. Il nucleo Greengrass esegue la funzione Lambda di questo componente utilizzando il componente di avvio Lambda.

Per ulteriori informazioni, consulta Tipi di componenti.

Sistema operativo

Questo componente può essere installato solo sui dispositivi principali di Linux.

Requisiti

Questo componente ha i seguenti requisiti:

  • Il dispositivo principale deve soddisfare i requisiti per eseguire le funzioni Lambda. Se desideri che il dispositivo principale esegua funzioni Lambda containerizzate, il dispositivo deve soddisfare i requisiti per farlo. Per ulteriori informazioni, consulta Requisiti della funzione Lambda.

  • Python versione 3.7 installata sul dispositivo principale e aggiunta alla variabile di ambiente. PATH

  • Un SNS argomento di Amazon. Per ulteriori informazioni, consulta la sezione Creazione di un SNS argomento Amazon nella Guida per gli sviluppatori di Amazon Simple Notification Service.

  • Il ruolo del dispositivo Greengrass deve consentire l'sns:Publishazione, come illustrato nella politica di esempio IAM seguente.

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": [ "arn:aws:sns:region:account-id:topic-name" ] } ] }

    È possibile sovrascrivere dinamicamente l'argomento predefinito nel payload del messaggio di input per questo componente. Se l'applicazione utilizza questa funzionalità, la IAM politica deve includere tutti gli argomenti di destinazione come risorse. Puoi concedere alle risorse un accesso granulare o condizionale (ad esempio, utilizzando uno schema di denominazione con il carattere jolly *).

  • Per ricevere i dati di output da questo componente, è necessario unire il seguente aggiornamento di configurazione per il componente legacy del router di abbonamento (aws.greengrass.LegacySubscriptionRouter) quando si distribuisce questo componente. Questa configurazione specifica l'argomento in cui questo componente pubblica le risposte.

    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-sns": { "id": "aws-greengrass-sns", "source": "component:aws.greengrass.SNS", "subject": "sns/message/status", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-sns": { "id": "aws-greengrass-sns", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-sns:version", "subject": "sns/message/status", "target": "cloud" } } }
    • Replace (Sostituisci) region con quello Regione AWS che usi.

    • Replace (Sostituisci) version con la versione della funzione Lambda eseguita da questo componente. Per trovare la versione della funzione Lambda, è necessario visualizzare la ricetta per la versione di questo componente che si desidera distribuire. Apri la pagina dei dettagli di questo componente nella AWS IoT Greengrass console e cerca la coppia chiave-valore della funzione Lambda. Questa coppia chiave-valore contiene il nome e la versione della funzione Lambda.

    Importante

    È necessario aggiornare la versione della funzione Lambda sul router di abbonamento legacy ogni volta che si distribuisce questo componente. Ciò garantisce l'utilizzo della versione corretta della funzione Lambda per la versione del componente che si distribuisce.

    Per ulteriori informazioni, consulta Creare distribuzione.

  • Il SNS componente Amazon è supportato per l'esecuzione in unVPC. Per distribuire questo componente in aVPC, è necessario quanto segue.

    • Il SNS componente Amazon deve avere una connettività a sns.region.amazonaws.com cui abbia l'VPCendpoint dicom.amazonaws.us-east-1.sns.

Endpoint e porte

Questo componente deve essere in grado di eseguire richieste in uscita verso i seguenti endpoint e porte, oltre agli endpoint e alle porte necessari per le operazioni di base. Per ulteriori informazioni, consulta Consenti il traffico dei dispositivi tramite un proxy o un firewall.

Endpoint Porta Richiesto Descrizione

sns.region.amazonaws.com

443

Pubblica messaggi su AmazonSNS.

Dipendenze

Quando distribuisci un componente, distribuisce AWS IoT Greengrass anche versioni compatibili delle sue dipendenze. Ciò significa che è necessario soddisfare i requisiti per il componente e tutte le sue dipendenze per distribuire correttamente il componente. Questa sezione elenca le dipendenze per le versioni rilasciate di questo componente e i vincoli di versione semantica che definiscono le versioni dei componenti per ogni dipendenza. È inoltre possibile visualizzare le dipendenze per ogni versione del componente nella console.AWS IoT Greengrass Nella pagina dei dettagli del componente, cerca l'elenco delle dipendenze.

2.1.8

La tabella seguente elenca le dipendenze per la versione 2.1.8 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.14.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.7

La tabella seguente elenca le dipendenze per la versione 2.1.7 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.13.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.6

La tabella seguente elenca le dipendenze per la versione 2.1.6 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.12.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.5

La tabella seguente elenca le dipendenze per la versione 2.1.5 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.11.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.4

La tabella seguente elenca le dipendenze per la versione 2.1.4 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.10.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.3

La tabella seguente elenca le dipendenze per la versione 2.1.3 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.9.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.2

La tabella seguente elenca le dipendenze per la versione 2.1.2 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.8.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.1.1

La tabella seguente elenca le dipendenze per la versione 2.1.1 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.7.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.8 - 2.1.0

La tabella seguente elenca le dipendenze per le versioni 2.0.8 e 2.1.0 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.6.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.7

La tabella seguente elenca le dipendenze per la versione 2.0.7 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.5.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.6

La tabella seguente elenca le dipendenze per la versione 2.0.6 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.4.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.5

La tabella seguente elenca le dipendenze per la versione 2.0.5 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.3.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.4

La tabella seguente elenca le dipendenze per la versione 2.0.4 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.0 <2.2.0 Rigidi
Lanciatore Lambda ^2.0.0 Rigidi
Runtime Lambda ^2,0,0 Flessibili
Servizio di scambio di token ^2.0.0 Rigidi
2.0.3

La tabella seguente elenca le dipendenze per la versione 2.0.3 di questo componente.

Dipendenza Versioni compatibili Tipo di dipendenza
Nucleo Greengrass >=2.0.3 <2.1.0 Rigidi
Lanciatore Lambda >=1.0.0 Rigidi
Runtime Lambda >=1.0.0 Flessibili
Servizio di scambio di token >=1.0.0 Rigidi

Per ulteriori informazioni sulle dipendenze dei componenti, vedere il riferimento alla ricetta dei componenti.

Configurazione

Questo componente fornisce i seguenti parametri di configurazione che è possibile personalizzare durante la distribuzione del componente.

Nota

La configurazione predefinita di questo componente include i parametri della funzione Lambda. Ti consigliamo di modificare solo i seguenti parametri per configurare questo componente sui tuoi dispositivi.

lambdaParams

Un oggetto che contiene i parametri per la funzione Lambda di questo componente. Questo oggetto contiene le seguenti informazioni:

EnvironmentVariables

Un oggetto che contiene i parametri della funzione Lambda. Questo oggetto contiene le seguenti informazioni:

DEFAULT_SNS_ARN

L'ARNSNSargomento Amazon predefinito in cui questo componente pubblica i messaggi. Puoi sovrascrivere l'argomento di destinazione con la sns_topic_arn proprietà nel payload del messaggio di input.

containerMode

(Facoltativo) La modalità di containerizzazione per questo componente. Seleziona una delle opzioni seguenti:

  • NoContainer— Il componente non viene eseguito in un ambiente di runtime isolato.

  • GreengrassContainer— Il componente viene eseguito in un ambiente di runtime isolato all'interno del AWS IoT Greengrass contenitore.

Impostazione predefinita: GreengrassContainer

containerParams

(Facoltativo) Un oggetto che contiene i parametri del contenitore per questo componente. Il componente utilizza questi parametri se si specifica GreengrassContainer percontainerMode.

Questo oggetto contiene le seguenti informazioni:

memorySize

(Facoltativo) La quantità di memoria (in kilobyte) da allocare al componente.

Il valore predefinito è 512 MB (525.312 KB).

pubsubTopics

(Facoltativo) Un oggetto che contiene gli argomenti a cui il componente sottoscrive la sottoscrizione per ricevere messaggi. È possibile specificare ogni argomento e se il componente sottoscrive gli argomenti AWS IoT Core o gli MQTT argomenti di pubblicazione/sottoscrizione locali.

Questo oggetto contiene le seguenti informazioni:

0— Si tratta di un indice di matrice sotto forma di stringa.

Un oggetto che contiene le seguenti informazioni:

type

(Facoltativo) Il tipo di messaggi di pubblicazione/sottoscrizione utilizzato da questo componente per sottoscrivere i messaggi. Seleziona una delle opzioni seguenti:

  • PUB_SUB: iscriviti ai messaggi di pubblicazione/sottoscrizione locali. Se scegli questa opzione, l'argomento non può contenere caratteri jolly. MQTT Per ulteriori informazioni su come inviare messaggi dal componente personalizzato quando si specifica questa opzione, vederePubblicare/sottoscrivere messaggi locali.

  • IOT_CORE— AWS IoT Core MQTT Sottoscrivi ai messaggi. Se scegli questa opzione, l'argomento può contenere caratteri MQTT jolly. Per ulteriori informazioni su come inviare messaggi da componenti personalizzati quando si specifica questa opzione, vedereAWS IoT Core MQTTPubblicare/sottoscrivere messaggi.

Impostazione predefinita: PUB_SUB

topic

(Facoltativo) L'argomento a cui il componente si iscrive per ricevere messaggi. Se si specifica IotCore fortype, è possibile utilizzare i caratteri MQTT jolly (+e#) in questo argomento.

Esempio: aggiornamento basato sull'unione della configurazione (modalità contenitore)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
Esempio: aggiornamento tramite fusione della configurazione (nessuna modalità contenitore)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "NoContainer" }

Dati di input

Questo componente accetta messaggi sul seguente argomento e pubblica il messaggio così com'è SNS sull'argomento Amazon di destinazione. Per impostazione predefinita, questo componente sottoscrive i messaggi di pubblicazione/sottoscrizione locali. Per ulteriori informazioni su come pubblicare messaggi su questo componente dai componenti personalizzati, vedere. Pubblicare/sottoscrivere messaggi locali

Argomento predefinito (pubblicazione/sottoscrizione locale): sns/message

Il messaggio accetta le seguenti proprietà. I messaggi di input devono essere in JSON formato.

request

Le informazioni sul messaggio da inviare all'SNSargomento Amazon.

Tipo: object che contiene le seguenti informazioni:

message

Il contenuto del messaggio sotto forma di stringa.

Per inviare un JSON oggetto, serializzatelo come stringa e specificate json la message_structure proprietà.

Tipo: string

subject

(Facoltativo) L'oggetto del messaggio.

Tipo: string

L'oggetto può essere ASCII testo e contenere fino a 100 caratteri. Deve iniziare con una lettera, un numero o un segno di punteggiatura. Non può includere interruzioni di riga o caratteri di controllo.

sns_topic_arn

(Facoltativo) L'ARNSNSargomento Amazon in cui questo componente pubblica il messaggio. Specificate questa proprietà per sovrascrivere l'SNSargomento Amazon predefinito.

Tipo: string

message_structure

(Facoltativo) La struttura del messaggio. Specificate di json inviare un JSON messaggio da serializzare come stringa nella content proprietà.

Tipo: string

Valori validi: json

id

Un ID arbitrario della richiesta. Utilizzate questa proprietà per mappare una richiesta di input a una risposta di output. Quando specificate questa proprietà, il componente imposta la id proprietà nell'oggetto di risposta su questo valore.

Tipo: string

Nota

La dimensione del messaggio può essere al massimo di 256 KB.

Esempio Input di esempio: messaggio in formato stringa
{ "request": { "subject": "Message subject", "message": "Message data", "sns_topic_arn": "arn:aws:sns:region:account-id:topic2-name" }, "id": "request123" }
Esempio di input: JSON messaggio
{ "request": { "subject": "Message subject", "message": "{ \"default\": \"Message data\" }", "message_structure": "json" }, "id": "request123" }

Dati di output

Per impostazione predefinita, questo componente pubblica le risposte come dati di output sul seguente MQTT argomento. È necessario specificare questo argomento come contenuto subject nella configurazione del componente legacy del router di abbonamento. Per ulteriori informazioni su come sottoscrivere i messaggi relativi a questo argomento nei componenti personalizzati, consultaAWS IoT Core MQTTPubblicare/sottoscrivere messaggi.

Argomento predefinito (AWS IoT Core MQTT): sns/message/status

Esempio Output di esempio: Operazione riuscita
{ "response": { "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a", "status": "success" }, "id": "request123" }
Esempio di output: Errore
{ "response" : { "error": "InvalidInputException", "error_message": "SNS Topic Arn is invalid", "status": "fail" }, "id": "request123" }

File di registro locale

Questo componente utilizza il seguente file di registro.

/greengrass/v2/logs/aws.greengrass.SNS.log
Per visualizzare i log di questo componente
  • Esegui il seguente comando sul dispositivo principale per visualizzare il file di registro di questo componente in tempo reale. Sostituisci /greengrass/v2 con il percorso della cartella AWS IoT Greengrass principale.

    sudo tail -f /greengrass/v2/logs/aws.greengrass.SNS.log

Licenze

Questo componente include i seguenti software/licenze di terze parti:

Questo componente è rilasciato in base al contratto di licenza del software Greengrass Core.

Changelog

La tabella seguente descrive le modifiche apportate a ciascuna versione del componente.

Versione

Modifiche

2.1.8

Versione aggiornata per la versione 2.13.0 di Greengrass nucleus.

2.1.7

Versione aggiornata per la versione 2.12.0 di Greengrass nucleus.

2.1.6

Versione aggiornata per la versione 2.11.0 di Greengrass nucleus.

2.1.5

Versione aggiornata per la versione 2.10.0 di Greengrass nucleus.

2.1.4

Versione aggiornata per la versione 2.9.0 di Greengrass nucleus.

2.1.3

Versione aggiornata per la versione 2.8.0 di Greengrass nucleus.

2.1.2

Versione aggiornata per la versione 2.7.0 di Greengrass nucleus.

2.1.1

Versione aggiornata per la versione 2.6.0 di Greengrass nucleus.

2.1.0

Nuove funzionalità

2.0.8

Versione aggiornata per la versione 2.5.0 di Greengrass nucleus.

2.0.7

Versione aggiornata per la versione 2.4.0 di Greengrass nucleus.

2.0.6

Versione aggiornata per la versione 2.3.0 di Greengrass nucleus.

2.0.5

Versione aggiornata per la versione 2.2.0 di Greengrass nucleus.

2.0.4

Versione aggiornata per la versione 2.1.0 di Greengrass nucleus.

2.0.3

Versione iniziale.