View a markdown version of this page

Amazon SNS - AWS IoT Greengrass

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon SNS

Die Amazon SNS-Komponente (aws.greengrass.SNS) veröffentlicht Nachrichten zu einem Amazon Simple Notification Service (Amazon SNS) -Thema. Sie können diese Komponente verwenden, um Ereignisse von Greengrass-Kerngeräten an Webserver, E-Mail-Adressen und andere Nachrichtenabonnenten zu senden. Weitere Informationen finden Sie unter Was ist Amazon SNS? im Amazon Simple Notification Service-Entwicklerhandbuch.

Um zu einem Amazon SNS-Thema mit dieser Komponente zu veröffentlichen, veröffentlichen Sie eine Nachricht zu dem Thema, für das sich diese Komponente angemeldet hat. Standardmäßig abonniert diese Komponente das sns/message lokale Thema. publish/subscribe Sie können andere Themen, einschließlich AWS IoT Core MQTT-Themen, angeben, wenn Sie diese Komponente bereitstellen.

In Ihrer benutzerdefinierten Komponente möchten Sie möglicherweise eine Filter- oder Formatierungslogik implementieren, um Nachrichten aus anderen Quellen zu verarbeiten, bevor Sie sie in dieser Komponente veröffentlichen. Auf diese Weise können Sie Ihre Nachrichtenverarbeitungslogik auf einer einzigen Komponente zentralisieren.

Anmerkung

Diese Komponente bietet ähnliche Funktionen wie der Amazon SNS-Connector in AWS IoT Greengrass V1. Weitere Informationen finden Sie unter Amazon SNS-Connector im AWS IoT Greengrass V1-Entwicklerhandbuch.

Versionen

Diese Komponente hat die folgenden Versionen:

  • 2.1.x

  • 2.0.x

Typ

Diese Komponente ist eine Lambda-Komponente ()aws.greengrass.lambda. Der Greengrass-Nukleus führt die Lambda-Funktion dieser Komponente mithilfe der Lambda-Launcher-Komponente aus.

Weitere Informationen finden Sie unter Komponententypen.

Betriebssystem

Diese Komponente kann nur auf Linux-Core-Geräten installiert werden.

Voraussetzungen

Für diese Komponente gelten die folgenden Anforderungen:

  • Ihr Kerngerät muss die Anforderungen erfüllen, um Lambda-Funktionen ausführen zu können. Wenn Sie möchten, dass das Kerngerät containerisierte Lambda-Funktionen ausführt, muss das Gerät die entsprechenden Anforderungen erfüllen. Weitere Informationen finden Sie unter Anforderungen an die Lambda-Funktion.

  • https://www.python.org/Python-Version 3.7 wurde auf dem Kerngerät installiert und der PATH-Umgebungsvariablen hinzugefügt.

  • Amazon SNS-Thema. Weitere Informationen finden Sie unter Amazon SNS-Thema anlegen im Amazon Simple Notification Service-Entwicklerhandbuch.

  • Die Greengrass-Geräterolle muss die sns:Publish Aktion zulassen, wie im folgenden Beispiel für eine IAM-Richtlinie gezeigt.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": [ "arn:aws:sns:us-east-1:123456789012:topic-name" ] } ] }

    Sie können das Standardthema in der Nutzlast der Eingabenachricht für diese Komponente dynamisch überschreiben. Wenn Ihre Anwendung diese Funktion verwendet, muss die IAM-Richtlinie alle Zielthemen als Ressourcen enthalten. Sie können Ressourcen granularen oder bedingten Zugriff gewähren (etwa mit einem Benennungsschema mit Platzhaltern *).

  • Um Ausgabedaten von dieser Komponente zu empfangen, müssen Sie das folgende Konfigurationsupdate für die ältere Abonnement-Router-Komponente (aws.greengrass.LegacySubscriptionRouter) zusammenführen, wenn Sie diese Komponente bereitstellen. Diese Konfiguration gibt das Thema an, zu dem diese Komponente Antworten veröffentlicht.

    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" } } }
    • regionErsetzen Sie durch das AWS-Region , was Sie verwenden.

    • versionErsetzen Sie durch die Version der Lambda-Funktion, die diese Komponente ausführt. Um die Version der Lambda-Funktion zu finden, müssen Sie sich das Rezept für die Version dieser Komponente ansehen, die Sie bereitstellen möchten. Öffnen Sie die Detailseite dieser Komponente in der AWS IoT Greengrass Konsole und suchen Sie nach dem Schlüssel-Wert-Paar der Lambda-Funktion. Dieses Schlüssel-Wert-Paar enthält den Namen und die Version der Lambda-Funktion.

    Wichtig

    Sie müssen die Lambda-Funktionsversion auf dem älteren Abonnement-Router jedes Mal aktualisieren, wenn Sie diese Komponente bereitstellen. Dadurch wird sichergestellt, dass Sie die richtige Lambda-Funktionsversion für die Komponentenversion verwenden, die Sie bereitstellen.

    Weitere Informationen finden Sie unter Erstellen von Bereitstellungen.

  • Die Amazon SNS-Komponente wird für die Ausführung in einer VPC unterstützt. Um diese Komponente in einer VPC bereitzustellen, ist Folgendes erforderlich.

    • Die Amazon SNS-Komponente muss über eine Konnektivität verfügensns.region.amazonaws.com, zu der der VPC-Endpunkt von lautet. com.amazonaws.us-east-1.sns

Endpunkte und Ports

Diese Komponente muss in der Lage sein, ausgehende Anfragen an die folgenden Endpunkte und Ports auszuführen, zusätzlich zu den Endpunkten und Ports, die für den Basisbetrieb erforderlich sind. Weitere Informationen finden Sie unter Geräteverkehr über einen Proxy oder eine Firewall zulassen.

Endpoint Port Erforderlich Description

sns.region.amazonaws.com

443 Ja

Veröffentlichen Sie Nachrichten in Amazon SNS.

Abhängigkeiten

Wenn Sie eine Komponente bereitstellen, werden AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereitgestellt. Das bedeutet, dass Sie die Anforderungen für die Komponente und alle ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitzustellen. In diesem Abschnitt werden die Abhängigkeiten für die veröffentlichten Versionen dieser Komponente sowie die semantischen Versionseinschränkungen aufgeführt, die die Komponentenversionen für jede Abhängigkeit definieren. Sie können die Abhängigkeiten für jede Version der Komponente auch in der AWS IoT Greengrass Konsole anzeigen. Suchen Sie auf der Seite mit den Komponentendetails nach der Liste der Abhängigkeiten.

2.1.10

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.10 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,16,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.9

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.9 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,15,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.8

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.8 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,14,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.7

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.7 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,13,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.6

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.6 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,12,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.5

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.5 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,11,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.4

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.4 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,1,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.3

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.3 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,9,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.2

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.2 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,8,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.1.1

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.1.1 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,7,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.8 - 2.1.0

In der folgenden Tabelle sind die Abhängigkeiten für die Versionen 2.0.8 und 2.1.0 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,6,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.7

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.7 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,5,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.6

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.6 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,4,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.5

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.5 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,3,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.4

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.4 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,0 <2,2,0 Hart
Lambda-Launcher ^2.0.0 Hart
Lambda-Laufzeiten ^2,0.0 Weich
Token-Austauschdienst ^2.0.0 Hart
2.0.3

In der folgenden Tabelle sind die Abhängigkeiten für Version 2.0.3 dieser Komponente aufgeführt.

-Abhängigkeit Kompatible Versionen Typ der Abhängigkeit
Nukleus von Greengrass > =2,0,3 <2,10 Hart
Lambda-Launcher > =1,,0 Hart
Lambda-Laufzeiten >=1.0.0 Weich
Token-Austauschdienst > =1,,0 Hart

Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Komponentenrezeptreferenz.

Konfiguration

Diese Komponente stellt die folgenden Konfigurationsparameter bereit, die Sie bei der Bereitstellung der Komponente anpassen können.

Anmerkung

Die Standardkonfiguration dieser Komponente umfasst Lambda-Funktionsparameter. Wir empfehlen, dass Sie nur die folgenden Parameter bearbeiten, um diese Komponente auf Ihren Geräten zu konfigurieren.

lambdaParams

Ein Objekt, das die Parameter für die Lambda-Funktion dieser Komponente enthält. Dieses Objekt enthält die folgenden Informationen:

EnvironmentVariables

Ein Objekt, das die Parameter der Lambda-Funktion enthält. Dieses Objekt enthält die folgenden Informationen:

DEFAULT_SNS_ARN

Der ARN des Amazon SNS-Standardthemas, in dem diese Komponente Nachrichten veröffentlicht. Sie können das Zielthema mit der sns_topic_arn Eigenschaft in der Nutzlast der Eingabenachricht überschreiben.

containerMode

(Optional) Der Containerisierungsmodus für diese Komponente. Wählen Sie aus den folgenden Optionen aus:

  • NoContainer— Die Komponente läuft nicht in einer isolierten Laufzeitumgebung.

  • GreengrassContainer— Die Komponente wird in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass Containers ausgeführt.

Standard: GreengrassContainer

containerParams

(Optional) Ein Objekt, das die Containerparameter für diese Komponente enthält. Die Komponente verwendet diese Parameter, wenn Sie GreengrassContainer für angebencontainerMode.

Dieses Objekt enthält die folgenden Informationen:

memorySize

(Optional) Die Speichermenge (in Kilobyte), die der Komponente zugewiesen werden soll.

Der Standardwert ist 512 MB (525.312 KB).

pubsubTopics

(Optional) Ein Objekt, das die Themen enthält, in denen die Komponente den Empfang von Nachrichten abonniert. Sie können jedes Thema angeben und angeben, ob die Komponente MQTT-Themen von AWS IoT Core oder lokalen Themen abonniert. publish/subscribe

Dieses Objekt enthält die folgenden Informationen:

0— Dies ist ein Array-Index als Zeichenfolge.

Ein Objekt, das die folgenden Informationen enthält:

type

(Optional) Der publish/subscribe Nachrichtentyp, den diese Komponente zum Abonnieren von Nachrichten verwendet. Wählen Sie aus den folgenden Optionen aus:

  • PUB_SUB— Abonnieren Sie lokale publish/subscribe Nachrichten. Wenn Sie diese Option wählen, darf das Thema keine MQTT-Platzhalter enthalten. Weitere Hinweise zum Senden von Nachrichten aus einer benutzerdefinierten Komponente, wenn Sie diese Option angeben, finden Sie unter. Lokale Nachrichten veröffentlichen/abonnieren

  • IOT_CORE— Abonnieren Sie AWS IoT Core MQTT-Nachrichten. Wenn Sie diese Option wählen, kann das Thema MQTT-Platzhalter enthalten. Weitere Hinweise zum Senden von Nachrichten von benutzerdefinierten Komponenten, wenn Sie diese Option angeben, finden Sie unter. Publish/subscribe AWS IoT Core MQTT-Nachrichten

Standard: PUB_SUB

topic

(Optional) Das Thema, für das die Komponente den Empfang von Nachrichten abonniert. Wenn Sie IotCore für angebentype, können Sie in diesem Thema MQTT-Platzhalter (+und#) verwenden.

Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (Containermodus)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
Beispiel Beispiel: Aktualisierung der Konfigurationszusammenführung (kein Containermodus)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "NoContainer" }

Eingabedaten

Diese Komponente akzeptiert Nachrichten zum folgenden Thema und veröffentlicht die Nachricht unverändert zum Amazon SNS-Zielthema. Standardmäßig abonniert diese Komponente lokale publish/subscribe Nachrichten. Weitere Informationen zum Veröffentlichen von Nachrichten aus Ihren benutzerdefinierten Komponenten an diese Komponente finden Sie unterLokale Nachrichten veröffentlichen/abonnieren.

Standardthema (lokal publish/subscribe): sns/message

Die Nachricht akzeptiert die folgenden Eigenschaften. Eingabenachrichten müssen im JSON-Format vorliegen.

request

Die Informationen über die Nachricht, die an das Amazon SNS-Thema gesendet werden sollen.

Typ: der object die folgenden Informationen enthält:

message

Der Inhalt der Nachricht als Zeichenfolge.

Um ein JSON-Objekt zu senden, serialisieren Sie es als Zeichenfolge und geben Sie es json für die message_structure Eigenschaft an.

Typ: string

subject

(Optional) Der Betreff der Nachricht.

Typ: string

Der Betreff kann aus ASCII-Text und bis zu 100 Zeichen bestehen. Es muss mit einem Buchstaben, einer Zahl oder einem Satzzeichen beginnen. Es darf keine Zeilenumbrüche oder Steuerzeichen enthalten.

sns_topic_arn

(Optional) Der ARN des Amazon SNS-Themas, in dem diese Komponente die Nachricht veröffentlicht. Geben Sie diese Eigenschaft an, um das standardmäßige Amazon SNS-Thema zu überschreiben.

Typ: string

message_structure

(Optional) Die Struktur der Nachricht. Geben Sie json in der content Eigenschaft an, dass eine JSON-Nachricht gesendet werden soll, die Sie als Zeichenfolge serialisieren.

Typ: string

Zulässige Werte: json

id

Eine willkürliche ID für die Anforderung. Verwenden Sie diese Eigenschaft, um eine Eingabeanforderung einer Ausgabeantwort zuzuordnen. Wenn Sie diese Eigenschaft angeben, setzt die Komponente die id Eigenschaft im Antwortobjekt auf diesen Wert.

Typ: string

Anmerkung

Die Nachrichtengröße kann maximal 256 KB betragen.

Beispiel Beispieleingabe: Zeichenfolgen-Nachricht
{ "request": { "subject": "Message subject", "message": "Message data", "sns_topic_arn": "arn:aws:sns:region:account-id:topic2-name" }, "id": "request123" }
Beispiel Beispieleingabe: JSON-Nachricht
{ "request": { "subject": "Message subject", "message": "{ \"default\": \"Message data\" }", "message_structure": "json" }, "id": "request123" }

Ausgabedaten

Diese Komponente veröffentlicht standardmäßig Antworten als Ausgabedaten zum folgenden MQTT-Thema. Sie müssen dieses Thema subject in der Konfiguration für die ältere Abonnement-Router-Komponente als das angeben. Weitere Informationen zum Abonnieren von Nachrichten zu diesem Thema in Ihren benutzerdefinierten Komponenten finden Sie unterPublish/subscribe AWS IoT Core MQTT-Nachrichten.

Standardthema (AWS IoT Core MQTT): sns/message/status

Beispiel Beispielausgabe: Erfolg
{ "response": { "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a", "status": "success" }, "id": "request123" }
Beispiel Beispielausgabe: Fehler
{ "response" : { "error": "InvalidInputException", "error_message": "SNS Topic Arn is invalid", "status": "fail" }, "id": "request123" }

Lokale Protokolldatei

Diese Komponente verwendet die folgende Protokolldatei.

/greengrass/v2/logs/aws.greengrass.SNS.log
Um die Protokolle dieser Komponente einzusehen
  • Führen Sie den folgenden Befehl auf dem Kerngerät aus, um die Protokolldatei dieser Komponente in Echtzeit anzuzeigen. /greengrass/v2Ersetzen Sie es durch den Pfad zum AWS IoT Greengrass Stammordner.

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

Lizenzen

Diese Komponente umfasst die folgenden Drittanbieter software/licensing:

Diese Komponente wird im Rahmen der Greengrass Core Software-Lizenzvereinbarung veröffentlicht.

Änderungsprotokoll

In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.

Version

Änderungen

2.1.10

Die Version wurde für die Greengrass Nucleus-Version 2.15.0 aktualisiert.

2.1.9

Version für Greengrass Nucleus Version 2.14.0 aktualisiert.

2.1.8

Die Version wurde für die Greengrass Nucleus-Version 2.13.0 aktualisiert.

2.1.7

Die Version wurde für die Greengrass Nucleus-Version 2.12.0 aktualisiert.

2.1.6

Die Version wurde für die Greengrass Nucleus-Version 2.11.0 aktualisiert.

2.1.5

Die Version wurde für die Greengrass Nucleus-Version 2.10.0 aktualisiert.

2.1.4

Die Version wurde für die Greengrass Nucleus-Version 2.9.0 aktualisiert.

2.1.3

Die Version wurde für die Greengrass Nucleus-Version 2.8.0 aktualisiert.

2.1.2

Version für die Greengrass Nucleus-Version 2.7.0 aktualisiert.

2.1.1

Die Version wurde für die Greengrass Nucleus-Version 2.6.0 aktualisiert.

2.1.0

Neue Features

2.0.8

Version für Greengrass Nucleus Version 2.5.0 aktualisiert.

2.0.7

Die Version wurde für die Greengrass Nucleus-Version 2.4.0 aktualisiert.

2.0.6

Die Version wurde für die Greengrass Nucleus-Version 2.3.0 aktualisiert.

2.0.5

Die Version wurde für die Greengrass Nucleus-Version 2.2.0 aktualisiert.

2.0.4

Die Version wurde für die Greengrass Nucleus-Version 2.1.0 aktualisiert.

2.0.3

Erste Version