View a markdown version of this page

Amazon SNS - AWS IoT Greengrass

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 composant Amazon SNS (aws.greengrass.SNS) publie des messages dans une rubrique Amazon Simple Notification Service (Amazon SNS). 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 Amazon Simple Notification Service.

Pour publier dans une rubrique Amazon SNS contenant ce composant, publiez un message dans la rubrique à laquelle ce composant est abonné. Par défaut, ce composant s'abonne à la publish/subscribe rubrique sns/message locale. Vous pouvez spécifier d'autres sujets, notamment des sujets AWS IoT Core MQTT, 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 connecteur Amazon SNS de la version AWS IoT Greengrass V1. Pour plus d'informations, consultez la section Connecteur Amazon SNS dans le Guide du développeur AWS IoT Greengrass V1.

Versions

Les versions de ce composant sont les suivantes :

  • 2.1.x

  • 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 composant.

Système d’exploitation

Ce composant ne peut être installé que sur les appareils principaux de Linux.

Exigences

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, il doit répondre aux exigences requises. Pour de plus amples informations, veuillez consulter Exigences relatives à la fonction Lambda.

  • https://www.python.org/La version 3.7 de Python a été installée sur le périphérique principal et ajoutée à la variable d'environnement PATH.

  • Une rubrique Amazon SNS Pour plus d'informations, consultez Création d'une rubrique Amazon SNS dans le Guide du développeur Amazon Simple Notification Service.

  • Le rôle d'appareil Greengrass doit autoriser l'sns:Publishaction, comme illustré dans l'exemple de politique IAM suivant.

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

    Vous pouvez modifier dynamiquement la rubrique par défaut dans la charge utile du message d'entrée pour ce composant. Si votre application utilise cette fonctionnalité, la politique IAM doit inclure tous les sujets cibles en tant que 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 du routeur d'abonnement (aws.greengrass.LegacySubscriptionRouter) lorsque vous déployez ce composant. Cette configuration spécifie la rubrique dans laquelle ce composant publie les réponses.

    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" } } }
    • regionRemplacez-le par Région AWS celui que vous utilisez.

    • versionRemplacez-la par la version de la fonction Lambda exécutée par ce composant. Pour trouver la version de la fonction Lambda, vous devez consulter la recette de la version de ce composant que vous souhaitez déployer. Ouvrez la page de détails de ce composant dans la AWS IoT Greengrass console et recherchez la paire clé-valeur de la fonction Lambda. Cette paire clé-valeur contient le nom et la version de la fonction Lambda.

    Important

    Vous devez mettre à jour la version de la fonction Lambda sur l'ancien routeur d'abonnement chaque fois que vous déployez ce composant. Cela garantit que vous utilisez la version de fonction Lambda appropriée pour la version du composant que vous déployez.

    Pour de plus amples informations, veuillez consulter Créer des déploiements.

  • Le composant Amazon SNS est pris en charge pour fonctionner dans un VPC. Pour déployer ce composant dans un VPC, les conditions suivantes sont requises.

    • Le composant Amazon SNS doit disposer d'une connectivité à sns.region.amazonaws.com laquelle se trouve le point de terminaison VPC de. com.amazonaws.us-east-1.sns

Points de terminaison et ports

Ce composant doit être capable d'effectuer des requêtes sortantes vers les terminaux 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.

Endpoint Port Obligatoire Description

sns.region.amazonaws.com

443 Oui

Publiez des messages sur Amazon SNS.

Dépendances

Lorsque vous déployez un composant, déploie AWS IoT Greengrass également des versions compatibles de ses dépendances. Cela signifie que vous devez répondre aux exigences relatives au composant et à toutes ses dépendances pour pouvoir le déployer avec succès. Cette section répertorie les dépendances pour les 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 pour chaque version du composant dans la AWS IoT Greengrass console. Sur la page des détails des composants, recherchez la liste des dépendances.

2.1.10

Le tableau suivant répertorie les dépendances pour la version 2.1.10 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,16,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.1.9

Le tableau suivant répertorie les dépendances pour la version 2.1.9 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,15,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.1.8

Le tableau suivant répertorie les dépendances pour la version 2.1.8 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,14,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.1.7

Le tableau suivant répertorie les dépendances pour la version 2.1.7 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,13,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.1.6

Le tableau suivant répertorie les dépendances pour la version 2.1.6 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,12,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.1.5

Le tableau suivant répertorie les dépendances pour la version 2.1.5 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,11,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.1.4

Le tableau suivant répertorie les dépendances pour la version 2.1.4 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,10,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.1.3

Le tableau suivant répertorie les dépendances pour la version 2.1.3 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,9,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.1.2

Le tableau suivant répertorie les dépendances pour la version 2.1.2 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,8,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.1.1

Le tableau suivant répertorie les dépendances pour la version 2.1.1 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,7,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.0.8 - 2.1.0

Le tableau suivant répertorie les dépendances pour les versions 2.0.8 et 2.1.0 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,6,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.0.7

Le tableau suivant répertorie les dépendances de la version 2.0.7 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,5,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.0.6

Le tableau suivant répertorie les dépendances de la version 2.0.6 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,4,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.0.5

Le tableau suivant répertorie les dépendances pour la version 2.0.5 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,3,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.0.4

Le tableau suivant répertorie les dépendances de la version 2.0.4 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,0 < 2,2,0 Stricte
Lanceur Lambda ^2,0,0 Stricte
Environnements d'exécution (runtimes) Lambda ^2,0,0 Flexible
Service d'échange de jetons ^2,0,0 Stricte
2.0.3

Le tableau suivant répertorie les dépendances pour la version 2.0.3 de ce composant.

Dépendance Versions compatibles Type de dépendance
Noyau Greengrass > = 2,0,3 < 2,1,0 Stricte
Lanceur Lambda > = 1,0,0 Stricte
Environnements d'exécution (runtimes) Lambda > = 1,0,0 Flexible
Service d'échange de jetons >=1,0,0 Stricte

Pour plus d'informations sur les dépendances des composants, consultez la référence des recettes 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

L'ARN de la rubrique Amazon SNS par défaut dans laquelle ce composant publie des messages. Vous pouvez remplacer la rubrique de destination par la sns_topic_arn propriété figurant dans la charge utile du message d'entrée.

containerMode

(Facultatif) Mode de conteneurisation pour ce composant. Sélectionnez l’une des 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.

Valeur par défaut : GreengrassContainer

containerParams

(Facultatif) Objet contenant les paramètres de conteneur pour ce composant. Le composant utilise ces paramètres si vous 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 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 s'abonne à des sujets MQTT depuis AWS IoT Core ou à des sujets locaux publish/subscribe .

Cet objet contient les informations suivantes :

0— Il s'agit d'un index de tableau sous forme de chaîne.

Objet contenant les informations suivantes :

type

(Facultatif) Type de publish/subscribe messagerie que ce composant utilise pour s'abonner aux messages. Sélectionnez l’une des options suivantes :

  • PUB_SUB— Abonnez-vous aux publish/subscribe messages locaux. Si vous choisissez cette option, la rubrique ne peut pas contenir de caractères génériques MQTT. Pour plus d'informations sur l'envoi de messages à partir d'un composant personnalisé lorsque vous spécifiez cette option, consultezPublier/souscrire des messages locaux.

  • IOT_CORE— Abonnez-vous aux messages AWS IoT Core MQTT. Si vous choisissez cette option, la rubrique peut contenir des caractères génériques MQTT. Pour plus d'informations sur la façon d'envoyer des messages à partir de composants personnalisés lorsque vous spécifiez cette option, consultezPublish/subscribe AWS IoT Core Messages MQTT.

Valeur par défaut : PUB_SUB

topic

(Facultatif) Rubrique à laquelle le composant est abonné pour recevoir des messages. Si vous spécifiez IotCore pourtype, vous pouvez utiliser des caractères génériques MQTT (+et#) dans cette rubrique.

Exemple Exemple : mise à jour de la fusion de configurations (mode conteneur)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
Exemple Exemple : mise à jour de la fusion de configurations (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 dans la rubrique Amazon SNS cible. Par défaut, ce composant s'abonne aux publish/subscribe messages locaux. Pour plus d'informations sur la façon de publier des messages sur ce composant à partir de vos composants personnalisés, consultezPublier/souscrire des messages locaux.

Rubrique par défaut (locale publish/subscribe) : sns/message

Le message accepte les propriétés suivantes. Les messages d'entrée doivent être au format JSON.

request

Informations relatives au message à envoyer à la rubrique Amazon SNS.

Type : object qui contient les informations suivantes :

message

Le contenu du message sous forme de chaîne.

Pour envoyer un objet JSON, sérialisez-le sous forme de chaîne et spécifiez json la message_structure propriété.

Type : string

subject

(Facultatif) L'objet du message.

Type : string

Le sujet peut être du texte ASCII 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) L'ARN de la rubrique Amazon SNS dans laquelle ce composant publie le message. Spécifiez cette propriété pour remplacer la rubrique Amazon SNS par défaut.

Type : string

message_structure

(Facultatif) Structure du message. Spécifiez json si vous souhaitez envoyer un message JSON que vous sérialisez sous forme de chaîne dans la content propriété.

Type : string

Valeurs valides : json

id

ID arbitraire de la demande. Utilisez cette propriété pour mapper une demande d'entrée à une réponse de sortie. Lorsque vous spécifiez cette propriété, le composant définit cette valeur dans l'objet de réponse. id

Type : string

Note

La taille du message peut atteindre 256 Ko au maximum.

Exemple 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 Exemple d'entrée : message JSON
{ "request": { "subject": "Message subject", "message": "{ \"default\": \"Message data\" }", "message_structure": "json" }, "id": "request123" }

Données de sortie

Ce composant publie les réponses sous forme de données de sortie sur la rubrique MQTT suivante par défaut. Vous devez spécifier cette rubrique subject dans la configuration de l'ancien composant de routeur d'abonnement. Pour plus d'informations sur la façon de s'abonner à des messages sur ce sujet dans vos composants personnalisés, consultezPublish/subscribe AWS IoT Core Messages MQTT.

Rubrique par défaut (AWS IoT Core MQTT) : sns/message/status

Exemple Exemple de sortie : réussite
{ "response": { "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a", "status": "success" }, "id": "request123" }
Exemple 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.

/greengrass/v2/logs/aws.greengrass.SNS.log
Pour afficher 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. /greengrass/v2Remplacez-le par le chemin d'accès au dossier AWS IoT Greengrass racine.

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

Licences

Ce composant inclut le tiers suivant software/licensing :

Ce composant est publié dans le cadre du contrat de licence du logiciel Greengrass Core.

Journal des modifications

Le tableau suivant décrit les modifications apportées à chaque version du composant.

Version

Modifications

2.1.10

Version mise à jour pour la version 2.15.0 de Greengrass Nucleus.

2.1.9

Version mise à jour pour la version 2.14.0 de Greengrass Nucleus.

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

Nouvelles fonctionnalités

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.