Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Amazon SNS
Le SNS composant Amazon (aws.greengrass.SNS
) publie des messages sur une rubrique Amazon Simple Notification Service (AmazonSNS). Vous pouvez utiliser ce composant pour envoyer des événements depuis les appareils principaux de Greengrass vers des serveurs Web, des adresses e-mail et d'autres abonnés aux messages. Pour plus d'informations, consultez Qu'est-ce qu'Amazon SNS ? dans le guide du développeur d'Amazon Simple Notification Service.
Pour publier sur un SNS sujet Amazon avec ce composant, publiez un message dans le sujet auquel ce composant est abonné. Par défaut, ce composant s'abonne à la rubrique de publication/d'abonnement sns/message locale. Vous pouvez spécifier d'autres rubriques, notamment AWS IoT Core MQTT des rubriques, lorsque vous déployez ce composant.
Dans votre composant personnalisé, vous souhaiterez peut-être implémenter une logique de filtrage ou de formatage pour traiter les messages provenant d'autres sources avant de les publier dans ce composant. Cela vous permet de centraliser votre logique de traitement des messages sur un seul composant.
Note
Ce composant fournit des fonctionnalités similaires à celles du SNS connecteur Amazon dans la version AWS IoT Greengrass 1. Pour plus d'informations, consultez le SNSconnecteur Amazon dans le guide du développeur AWS IoT Greengrass V1.
Rubriques
Versions
Les versions de ce composant sont les suivantes :
-
2,1x
-
2,0.x
Type
Ce composant est un composant Lambda () aws.greengrass.lambda
. Le noyau Greengrass exécute la fonction Lambda de ce composant à l'aide du composant Lambda Launcher.
Pour de plus amples informations, veuillez consulter Types de composants.
Système d’exploitation
Ce composant ne peut être installé que sur les appareils principaux de Linux.
Prérequis
Ce composant répond aux exigences suivantes :
-
Votre appareil principal doit répondre aux exigences pour exécuter les fonctions Lambda. Si vous souhaitez que le périphérique principal exécute des fonctions Lambda conteneurisées, le périphérique doit répondre aux exigences requises. Pour de plus amples informations, veuillez consulter Exigences relatives à la fonction Lambda.
-
Python
version 3.7 installé sur le périphérique principal et ajouté à la variable d'PATHenvironnement. -
Un SNS sujet sur Amazon. Pour plus d'informations, consultez la section Création d'une SNS rubrique Amazon dans le guide du développeur Amazon Simple Notification Service.
-
Le rôle d'appareil Greengrass doit autoriser l'
sns:Publish
action, comme indiqué dans l'exemple IAM de politique suivant.{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": [ "arn:aws:sns:
region
:account-id
:topic-name
" ] } ] }Vous pouvez remplacer dynamiquement le sujet par défaut dans la charge utile du message d'entrée pour ce composant. Si votre application utilise cette fonctionnalité, la IAM politique doit inclure tous les sujets cibles sous forme de ressources. Vous pouvez octroyer un accès précis ou conditionnel aux ressources (par exemple, en utilisant un schéma d'attribution de nom avec caractère générique
*
). -
Pour recevoir les données de sortie de ce composant, vous devez fusionner la mise à jour de configuration suivante pour l'ancien composant routeur d'abonnement (
aws.greengrass.LegacySubscriptionRouter
) lorsque vous déployez ce composant. Cette configuration indique le sujet dans lequel ce composant publie les réponses.Pour de plus amples informations, veuillez consulter Créer des déploiements.
-
Le SNS composant Amazon est compatible pour s'exécuter dans unVPC. Pour déployer ce composant dans unVPC, les éléments suivants sont requis.
-
Le SNS composant Amazon doit disposer d'une connectivité
sns.region.amazonaws.com
dont le VPC point de terminaison est decom.amazonaws.us-east-1.sns
.
-
Points de terminaison et ports
Ce composant doit être capable d'effectuer des demandes sortantes vers les points de terminaison et les ports suivants, en plus des points de terminaison et des ports requis pour le fonctionnement de base. Pour de plus amples informations, veuillez consulter Autoriser le trafic des appareils via un proxy ou un pare-feu.
Point de terminaison | Port | Obligatoire | Description |
---|---|---|---|
|
443 | Oui |
Publiez des messages sur AmazonSNS. |
Dépendances
Lorsque vous déployez un composant, il déploie AWS IoT Greengrass également des versions compatibles de ses dépendances. Cela signifie que vous devez satisfaire aux exigences relatives au composant et à toutes ses dépendances pour réussir le déploiement du composant. Cette section répertorie les dépendances des versions publiées de ce composant et les contraintes de version sémantiques qui définissent les versions des composants pour chaque dépendance. Vous pouvez également consulter les dépendances de chaque version du composant dans la AWS IoT Greengrass console
Pour plus d'informations sur les dépendances des composants, consultez la référence de la recette des composants.
Configuration
Ce composant fournit les paramètres de configuration suivants que vous pouvez personnaliser lorsque vous déployez le composant.
Note
La configuration par défaut de ce composant inclut les paramètres de la fonction Lambda. Nous vous recommandons de modifier uniquement les paramètres suivants pour configurer ce composant sur vos appareils.
lambdaParams
-
Objet contenant les paramètres de la fonction Lambda de ce composant. Cet objet contient les informations suivantes :
EnvironmentVariables
-
Objet contenant les paramètres de la fonction Lambda. Cet objet contient les informations suivantes :
DEFAULT_SNS_ARN
-
Le ARN SNS sujet Amazon par défaut dans lequel ce composant publie des messages. Vous pouvez remplacer le sujet de destination par la
sns_topic_arn
propriété dans la charge utile du message d'entrée.
containerMode
-
(Facultatif) Mode de conteneurisation de ce composant. Sélectionnez parmi les options suivantes :
-
NoContainer
— Le composant ne s'exécute pas dans un environnement d'exécution isolé. -
GreengrassContainer
— Le composant s'exécute dans un environnement d'exécution isolé à l'intérieur du AWS IoT Greengrass conteneur.
Par défaut :
GreengrassContainer
-
containerParams
-
(Facultatif) Objet contenant les paramètres du conteneur pour ce composant. Le composant utilise ces paramètres si vous le spécifiez
GreengrassContainer
pourcontainerMode
.Cet objet contient les informations suivantes :
memorySize
-
(Facultatif) La quantité de mémoire (en kilo-octets) à allouer au composant.
La valeur par défaut est de 512 Mo (525 312 Ko).
pubsubTopics
-
(Facultatif) Objet contenant les rubriques auxquelles le composant s'abonne pour recevoir des messages. Vous pouvez spécifier chaque sujet et indiquer si le composant est abonné à des MQTT sujets provenant de sujets locaux AWS IoT Core ou à des sujets locaux de publication/d'abonnement.
Cet objet contient les informations suivantes :
0
— Il s'agit d'un index de tableau sous forme de chaîne.-
Un objet qui contient les informations suivantes :
type
-
(Facultatif) Type de message de publication/d'abonnement utilisé par ce composant pour s'abonner aux messages. Sélectionnez parmi les options suivantes :
-
PUB_SUB
– Abonnez-vous aux messages locaux de publication/abonnement. Si vous choisissez cette option, le sujet ne peut pas contenir de MQTT caractères génériques. Pour plus d'informations sur la façon d'envoyer des messages à partir d'un composant personnalisé lorsque vous spécifiez cette option, consultezPublier/souscrire des messages locaux. -
IOT_CORE
— Abonnez-vous aux AWS IoT Core MQTT messages. Si vous choisissez cette option, le sujet peut contenir des MQTT caractères génériques. Pour plus d'informations sur la façon d'envoyer des messages à partir de composants personnalisés lorsque vous spécifiez cette option, consultezPublier/souscrire AWS IoT Core MQTT des messages.
Par défaut :
PUB_SUB
-
topic
-
(Facultatif) Rubrique à laquelle le composant s'abonne pour recevoir des messages. Si vous spécifiez
IotCore
pourtype
, vous pouvez utiliser des MQTT caractères génériques (+
et#
) dans cette rubrique.
Exemple : mise à jour de fusion de configuration (mode conteneur)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
Exemple : mise à jour de fusion de configuration (pas de mode conteneur)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "NoContainer" }
Données d'entrée
Ce composant accepte les messages relatifs au sujet suivant et publie le message tel quel sur le SNS sujet Amazon cible. Par défaut, ce composant s'abonne aux messages de publication/d'abonnement locaux. Pour plus d'informations sur la façon de publier des messages vers ce composant à partir de vos composants personnalisés, consultezPublier/souscrire des messages locaux.
Rubrique par défaut (publication/abonnement local) : sns/message
Le message accepte les propriétés suivantes. Les messages d'entrée doivent être au JSON format.
request
-
Les informations relatives au message à envoyer à la SNS rubrique Amazon.
Type :
object
qui contient les informations suivantes :message
-
Le contenu du message sous forme de chaîne.
Pour envoyer un JSON objet, sérialisez-le sous forme de chaîne et spécifiez
json
lamessage_structure
propriété.Type :
string
subject
-
(Facultatif) Objet du message.
Type :
string
Le sujet peut être ASCII du texte et contenir jusqu'à 100 caractères. Il doit commencer par une lettre, un chiffre ou un signe de ponctuation. Il ne peut pas inclure de sauts de ligne ni de caractères de contrôle.
sns_topic_arn
-
(Facultatif) Le ARN SNS sujet Amazon dans lequel ce composant publie le message. Spécifiez cette propriété pour remplacer le SNS sujet Amazon par défaut.
Type :
string
message_structure
-
(Facultatif) Structure du message. Spécifiez
json
l'envoi d'un JSON message que vous sérialiserez sous forme de chaîne dans lacontent
propriété.Type :
string
Valeurs valides :
json
id
-
ID arbitraire de la demande. Utilisez cette propriété pour associer une demande d'entrée à une réponse de sortie. Lorsque vous spécifiez cette propriété, le composant définit la
id
propriété de l'objet de réponse sur cette valeur.Type :
string
Note
La taille du message peut être maximale de 256 Ko.
Exemple d'entrée : message de type chaîne
{ "request": { "subject": "Message subject", "message": "Message data", "sns_topic_arn": "arn:aws:sns:
region
:account-id
:topic2-name" }, "id": "request123" }
Exemple de saisie : JSON message
{ "request": { "subject": "Message subject", "message": "{ \"default\": \"Message data\" }", "message_structure": "json" }, "id": "request123" }
Données de sortie
Ce composant publie par défaut les réponses sous forme de données de sortie sur le MQTT sujet suivant. Vous devez spécifier cette rubrique subject
dans la configuration de l'ancien composant routeur d'abonnement. Pour plus d'informations sur la façon de s'abonner à des messages sur ce sujet dans vos composants personnalisés, consultezPublier/souscrire AWS IoT Core MQTT des messages.
Rubrique par défaut (AWS IoT Core MQTT) : sns/message/status
Exemple de sortie : réussite
{ "response": { "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a", "status": "success" }, "id": "request123" }
Exemple de sortie : échec
{ "response" : { "error": "InvalidInputException", "error_message": "SNS Topic Arn is invalid", "status": "fail" }, "id": "request123" }
Fichier journal local
Ce composant utilise le fichier journal suivant.
/logs/aws.greengrass.SNS.log
/greengrass/v2
Pour consulter les journaux de ce composant
-
Exécutez la commande suivante sur le périphérique principal pour afficher le fichier journal de ce composant en temps réel. Remplacez
par le chemin d'accès au dossier AWS IoT Greengrass racine./greengrass/v2
sudo tail -f
/logs/aws.greengrass.SNS.log/greengrass/v2
Licences
Ce composant inclut les logiciels/licences tiers suivants :
-
AWS SDK for Python (Boto3)
/Licence Apache 2.0 -
botocore
/Licence Apache 2.0 -
docutils
/BSDLicence, Licence publique GNU générale ()GPL, Licence Python Software Foundation, domaine public -
s3transfer
/Licence Apache 2.0 -
urllib3//Licence
MIT
Ce composant est publié dans le cadre du contrat de licence logicielle Greengrass Core
Journal des modifications
Le tableau suivant décrit les modifications apportées à chaque version du composant.
Version |
Modifications |
---|---|
2.1.8 |
Version mise à jour pour la version 2.13.0 de Greengrass Nucleus. |
2.1.7 |
Version mise à jour pour la version 2.12.0 de Greengrass Nucleus. |
2.1.6 |
Version mise à jour pour la version 2.11.0 de Greengrass Nucleus. |
2.1.5 |
Version mise à jour pour la version 2.10.0 de Greengrass Nucleus. |
2.1.4 |
Version mise à jour pour la version 2.9.0 de Greengrass Nucleus. |
2.1.3 |
Version mise à jour pour la version 2.8.0 de Greengrass Nucleus. |
2.1.2 |
Version mise à jour pour la version 2.7.0 de Greengrass Nucleus. |
2.1.1 |
Version mise à jour pour la version 2.6.0 de Greengrass Nucleus. |
2.1.0 |
|
2.0.8 |
Version mise à jour pour la version 2.5.0 de Greengrass Nucleus. |
2.0.7 |
Version mise à jour pour la version 2.4.0 de Greengrass Nucleus. |
2.0.6 |
Version mise à jour pour la version 2.3.0 de Greengrass Nucleus. |
2.0.5 |
Version mise à jour pour la version 2.2.0 de Greengrass Nucleus. |
2.0.4 |
Version mise à jour pour la version 2.1.0 de Greengrass Nucleus. |
2.0.3 |
Première version. |