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 SNS Amazon-Komponente (aws.greengrass.SNS
) veröffentlicht Nachrichten zu einem Amazon Simple Notification Service (AmazonSNS) -Thema. Sie können diese Komponente verwenden, um Ereignisse von Greengrass-Core-Geräten an Webserver, E-Mail-Adressen und andere Nachrichtenabonnenten zu senden. Weitere Informationen finden Sie unter Was ist AmazonSNS? im Amazon Simple Notification Service Developer Guide.
Um mit dieser Komponente in einem SNS Amazon-Thema zu veröffentlichen, veröffentlichen Sie eine Nachricht zu dem Thema, das diese Komponente abonniert. Standardmäßig abonniert diese Komponente das sns/message
lokale Thema „Veröffentlichen/Abonnieren“. 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 in einer einzigen Komponente zentralisieren.
Anmerkung
Diese Komponente bietet ähnliche Funktionen wie der SNS Amazon-Connector in AWS IoT Greengrass V1. Weitere Informationen finden Sie unter Amazon SNS Connector im AWS IoT Greengrass V1-Entwicklerhandbuch.
Themen
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-Kern 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-Kerngeräten installiert werden.
Voraussetzungen
Für diese Komponente gelten die folgenden Anforderungen:
-
Ihr Kerngerät muss die Anforderungen für die Ausführung von Lambda-Funktionen erfüllen. 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.
-
Python-Version
3.7 wurde auf dem Core-Gerät installiert und zur PATH Umgebungsvariablen hinzugefügt. -
Ein SNS Amazon-Thema. Weitere Informationen finden Sie unter Erstellen eines SNS Amazon-Themas im Amazon Simple Notification Service Developer Guide.
-
Die Greengrass-Geräterolle muss die
sns:Publish
Aktion zulassen, wie in der folgenden IAM Beispielrichtlinie gezeigt.{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": [ "arn:aws:sns:
region
:account-id
: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 erhalten, müssen Sie bei der Bereitstellung dieser Komponente das folgende Konfigurationsupdate für die ältere Abonnement-Router-Komponente (
aws.greengrass.LegacySubscriptionRouter
) zusammenführen. Diese Konfiguration gibt das Thema an, zu dem diese Komponente Antworten veröffentlicht.Weitere Informationen finden Sie unter Erstellen von Bereitstellungen.
-
Die SNS Amazon-Komponente wird für die Ausführung in a unterstütztVPC. Um diese Komponente in a bereitzustellenVPC, ist Folgendes erforderlich.
-
Die SNS Amazon-Komponente muss über eine Konnektivität verfügen
sns.region.amazonaws.com
, zu der der VPC Endpunkt istcom.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 Zulassen von Gerätedatenverkehr über einen Proxy oder eine Firewall.
Endpunkt | Port | Erforderlich | Beschreibung |
---|---|---|---|
|
443 | Ja |
Veröffentlichen Sie Nachrichten auf AmazonSNS. |
Abhängigkeiten
Wenn Sie eine Komponente bereitstellen, stellt sie AWS IoT Greengrass auch kompatible Versionen ihrer Abhängigkeiten bereit. Das bedeutet, dass Sie die Anforderungen für die Komponente und all ihre Abhängigkeiten erfüllen müssen, um die Komponente erfolgreich bereitstellen zu können. 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 auch die Abhängigkeiten für jede Version der Komponente in der AWS IoT Greengrass Konsole
Weitere Informationen zu Komponentenabhängigkeiten finden Sie in der Referenz zu den Komponentenrezepten.
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
-
Das SNS Standardthema ARN von Amazon, 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 wird nicht in einer isolierten Laufzeitumgebung ausgeführt. -
GreengrassContainer
— Die Komponente läuft in einer isolierten Laufzeitumgebung innerhalb des AWS IoT Greengrass Containers.
Standard:
GreengrassContainer
-
containerParams
-
(Optional) Ein Objekt, das die Container-Parameter 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 lokale Themen zum Veröffentlichen/Abonnieren abonniert.
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 Typ der Veröffentlichungs-/Abonnementnachrichten, die diese Komponente zum Abonnieren von Nachrichten verwendet. Wählen Sie aus den folgenden Optionen aus:
-
PUB_SUB
— Abonnieren Sie lokale Veröffentlichen/Abonnement-Nachrichten. Wenn Sie diese Option wählen, darf das Thema keine Platzhalter enthalten. MQTT Weitere Informationen zum Senden von Nachrichten von einer benutzerdefinierten Komponente aus, wenn Sie diese Option angeben, finden Sie unterLokale Nachrichten veröffentlichen/abonnieren. -
IOT_CORE
— AWS IoT Core MQTT Nachrichten abonnieren. Wenn Sie diese Option wählen, kann das Thema MQTT Platzhalter enthalten. Weitere Informationen zum Senden von Nachrichten aus benutzerdefinierten Komponenten, wenn Sie diese Option angeben, finden Sie unterNachrichten veröffentlichen/abonnieren AWS IoT Core MQTT.
Standard:
PUB_SUB
-
topic
-
(Optional) Das Thema, das die Komponente abonniert, um Nachrichten zu empfangen. Wenn Sie
IotCore
für angebentype
, können Sie in diesem MQTT Thema Platzhalter (+
und#
) verwenden.
Beispiel: Aktualisierung der Konfigurationszusammenführung (Containermodus)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
Beispiel: Aktualisierung der Konfigurationszusammenführung (kein Container-Modus)
{ "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 im SNS Amazon-Zielthema. Standardmäßig abonniert diese Komponente lokale Veröffentlichungs-/Abonnement-Nachrichten. Weitere Informationen zum Veröffentlichen von Nachrichten aus Ihren benutzerdefinierten Komponenten in dieser Komponente finden Sie unter. Lokale Nachrichten veröffentlichen/abonnieren
Standardthema (lokal veröffentlichen/abonnieren): sns/message
Die Nachricht akzeptiert die folgenden Eigenschaften. Eingabenachrichten müssen im JSON Format vorliegen.
request
-
Die Informationen zu der Nachricht, die an das SNS Amazon-Thema gesendet werden soll.
Typ:
object
der 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 diemessage_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) Das ARN SNS Amazon-Thema, in dem diese Komponente die Nachricht veröffentlicht. Geben Sie diese Eigenschaft an, um das SNS Standardthema von Amazon zu überschreiben.
Typ:
string
message_structure
-
(Optional) Die Struktur der Nachricht. Geben Sie
json
in dercontent
Eigenschaft JSON an, dass eine 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.
Beispieleingabe: Zeichenfolgen-Nachricht
{ "request": { "subject": "Message subject", "message": "Message data", "sns_topic_arn": "arn:aws:sns:
region
:account-id
:topic2-name" }, "id": "request123" }
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 angeben. Weitere Informationen zum Abonnieren von Nachrichten zu diesem Thema in Ihren benutzerdefinierten Komponenten finden Sie unterNachrichten veröffentlichen/abonnieren AWS IoT Core MQTT.
Standardthema (AWS IoT Core MQTT): sns/message/status
Beispielausgabe: Erfolg
{ "response": { "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a", "status": "success" }, "id": "request123" }
Beispielausgabe: Fehler
{ "response" : { "error": "InvalidInputException", "error_message": "SNS Topic Arn is invalid", "status": "fail" }, "id": "request123" }
Lokale Protokolldatei
Diese Komponente verwendet die folgende Protokolldatei.
/logs/aws.greengrass.SNS.log
/greengrass/v2
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.
Ersetzen Sie durch den Pfad zum AWS IoT Greengrass Stammordner./greengrass/v2
sudo tail -f
/logs/aws.greengrass.SNS.log/greengrass/v2
Lizenzen
Diese Komponente umfasst die folgende Software/Lizenzierung von Drittanbietern:
-
AWS SDK for Python (Boto3)
/Apache-Lizenz 2.0 -
botocore
/Apache-Lizenz 2.0 -
dateutil//Lizenz
PSF -
docutils
//BSDLizenz, GNU General Public License (GPL), Python Software Foundation-Lizenz, gemeinfrei -
jmespath//Lizenz
MIT -
s3transfer
/Apache-Lizenz 2.0 -
urllib3//Lizenz
MIT
Diese Komponente wird im Rahmen der Greengrass Core Software-Lizenzvereinbarung
Änderungsprotokoll
In der folgenden Tabelle werden die Änderungen in den einzelnen Versionen der Komponente beschrieben.
Version |
Änderungen |
---|---|
2.1.8 |
Die Version wurde für die Version 2.13.0 von Greengrass Nucleus aktualisiert. |
2.1.7 |
Die Version wurde für die Version 2.12.0 von Greengrass Nucleus aktualisiert. |
2.1.6 |
Die Version wurde für die Version 2.11.0 von Greengrass Nucleus aktualisiert. |
2.1.5 |
Die Version wurde für die Version 2.10.0 von Greengrass Nucleus aktualisiert. |
2.1.4 |
Die Version wurde für die Version 2.9.0 von Greengrass Nucleus aktualisiert. |
2.1.3 |
Die Version wurde für die Version 2.8.0 von Greengrass Nucleus aktualisiert. |
2.1.2 |
Die Version wurde für die Version 2.7.0 von Greengrass Nucleus aktualisiert. |
2.1.1 |
Die Version wurde für die Version 2.6.0 von Greengrass Nucleus aktualisiert. |
2.1.0 |
|
2.0.8 |
Die Version wurde für die Version 2.5.0 von Greengrass Nucleus aktualisiert. |
2.0.7 |
Die Version wurde für die Version 2.4.0 von Greengrass Nucleus aktualisiert. |
2.0.6 |
Die Version wurde für die Version 2.3.0 von Greengrass Nucleus aktualisiert. |
2.0.5 |
Die Version wurde für die Version 2.2.0 von Greengrass Nucleus aktualisiert. |
2.0.4 |
Die Version wurde für die Version 2.1.0 von Greengrass Nucleus aktualisiert. |
2.0.3 |
Erste Version |