Amazon SNS - AWS IoT Greengrass

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Amazon SNS

El componente Amazon SNS (aws.greengrass.SNS) publica mensajes en un tema del Amazon Simple Notification Service (Amazon SNS). Puede usar este componente para enviar eventos desde los dispositivos principales de Greengrass a servidores web, direcciones de correo electrónico y otros suscriptores de mensajes. Para obtener más información, consulte ¿Qué es Amazon SNS? en la Guía para desarrolladores de Amazon Simple Notification Service.

Para publicar en un tema de Amazon SNS con este componente, publique un mensaje en el tema al que se suscribe este componente. De forma predeterminada, este componente se suscribe al tema sns/message local de publicación/suscripción. Puede especificar otros temas, incluidos los temas de AWS IoT Core MQTT, al implementar este componente.

En su componente personalizado, puede que desee implementar una lógica de filtrado o formato para procesar los mensajes de otras fuentes antes de publicarlos en este componente. Esto le permite centralizar la lógica de procesamiento de mensajes en un único componente.

nota

Este componente proporciona una funcionalidad similar a la del conector Amazon SNS de la versión 1. AWS IoT Greengrass Para obtener más información, consulte el conector Amazon SNS en la Guía para desarrolladores de la AWS IoT Greengrass V1.

Versiones

Este componente tiene las siguientes versiones:

  • 2.1.x

  • 2.0.x

Tipo

Este componente es un componente Lambda () aws.greengrass.lambda. El núcleo de Greengrass ejecuta la función Lambda de este componente mediante el componente Lambda launcher.

Para obtener más información, consulte Tipos de componentes.

Sistema operativo

Este componente solo se puede instalar en los dispositivos principales de Linux.

Requisitos

Este componente tiene los siguientes requisitos:

  • El dispositivo principal debe cumplir los requisitos para ejecutar las funciones de Lambda. Si desea que el dispositivo principal ejecute funciones Lambda en contenedores, el dispositivo debe cumplir los requisitos para hacerlo. Para obtener más información, consulte Requisitos de la función de Lambda.

  • Versión 3.7 de Python instalada en el dispositivo principal y añadida a la variable de entorno PATH.

  • Un tema de Amazon SNS. Para obtener instrucciones, consulte el tema Creación de un tema de Amazon SNS en la Guía para desarrolladores de Amazon Simple Notification Service.

  • El rol de dispositivo de Greengrass debe permitir la sns:Publish acción, como se muestra en el siguiente ejemplo de política de IAM.

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

    Puede anular dinámicamente el tema predeterminado en la carga útil del mensaje de entrada para este componente. Si la aplicación utiliza esta función, la política de IAM debe incluir todos los temas de destino como recursos. Puede conceder acceso granular o condicional a recursos (por ejemplo, utilizando un esquema de nomenclatura con comodín *)

  • Para recibir los datos de salida de este componente, debe combinar la siguiente actualización de configuración para el componente antiguo del router de suscripciones (aws.greengrass.LegacySubscriptionRouter) al implementar este componente. Esta configuración especifica el tema en el que este componente publica las respuestas.

    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" } } }
    • Sustituya la región por la Región de AWS que utilice.

    • Sustituya la versión por la versión de la función Lambda que ejecuta este componente. Para encontrar la versión de la función Lambda, debe ver la receta de la versión de este componente que desee implementar. Abra la página de detalles de este componente en la AWS IoT Greengrass consola y busque el par clave-valor de la función Lambda. Este par clave-valor contiene el nombre y la versión de la función Lambda.

    importante

    Debe actualizar la versión de la función Lambda en el router de suscripción anterior cada vez que implemente este componente. Esto garantiza que utilice la versión correcta de la función Lambda para la versión del componente que implemente.

    Para obtener más información, consulte Crear implementaciones.

  • Se admite la ejecución del componente Amazon SNS en una VPC. Para implementar este componente en una VPC, se requiere lo siguiente.

    • El componente Amazon SNS debe tener una conectividad con la que tenga el punto de sns.region.amazonaws.com enlace de la VPC de. com.amazonaws.us-east-1.sns

Puntos de conexión y puertos

Este componente debe poder realizar solicitudes salientes a los siguientes puntos finales y puertos, además de a los puntos finales y puertos necesarios para el funcionamiento básico. Para obtener más información, consulte Permitir el tráfico del dispositivo a través de un proxy o firewall.

punto de enlace Puerto Obligatoria Descripción

sns.region.amazonaws.com

443

Publicar mensajes en Amazon SNS.

Dependencias

Al implementar un componente, AWS IoT Greengrass también implementa versiones compatibles de sus dependencias. Esto significa que debe cumplir los requisitos del componente y de todas sus dependencias para poder implementarlo correctamente. En esta sección se enumeran las dependencias de las versiones publicadas de este componente y las restricciones de las versiones semánticas que definen las versiones de los componentes para cada dependencia. También puede ver las dependencias de cada versión del componente en la consola. AWS IoT Greengrass En la página de detalles del componente, busque la lista de dependencias.

2.1.7

La siguiente tabla muestra las dependencias de la versión 2.1.7 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.13.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.1.6

La siguiente tabla muestra las dependencias de la versión 2.1.6 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.12.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.1.5

La siguiente tabla muestra las dependencias de la versión 2.1.5 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.11.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.1.4

La siguiente tabla muestra las dependencias de la versión 2.1.4 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.10.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.1.3

La siguiente tabla muestra las dependencias de la versión 2.1.3 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.9.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.1.2

La siguiente tabla muestra las dependencias de la versión 2.1.2 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.8.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.1.1

La siguiente tabla muestra las dependencias de la versión 2.1.1 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.7.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.8 - 2.1.0

La siguiente tabla muestra las dependencias de las versiones 2.0.8 y 2.1.0 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.6.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.7

La siguiente tabla muestra las dependencias de la versión 2.0.7 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.5.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.6

La siguiente tabla muestra las dependencias de la versión 2.0.6 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.4.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.5

La siguiente tabla muestra las dependencias de la versión 2.0.5 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.3.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.4

La siguiente tabla muestra las dependencias de la versión 2.0.4 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.0 <2.2.0 Rígido
Lanzador Lambda ^2.0.0 Rígido
Tiempos de ejecución de Lambda ^2.0.0 Flexible
Servicio de intercambio de fichas ^2.0.0 Rígido
2.0.3

La siguiente tabla muestra las dependencias de la versión 2.0.3 de este componente.

Dependencia Versiones compatibles Tipo de dependencia
Núcleo de Greengrass >=2.0.3 <2.1.0 Rígido
Lanzador Lambda >=1.0.0 Rígido
Tiempos de ejecución de Lambda >=1.0.0 Flexible
Servicio de intercambio de fichas >=1.0.0 Rígido

Para obtener más información sobre las dependencias de los componentes, consulta la referencia de recetas de componentes.

Configuración

Este componente proporciona los siguientes parámetros de configuración que puede personalizar al implementar el componente.

nota

La configuración predeterminada de este componente incluye los parámetros de la función Lambda. Le recomendamos que edite solo los siguientes parámetros para configurar este componente en sus dispositivos.

lambdaParams

Objeto que contiene los parámetros de la función Lambda de este componente. Este objeto contiene la siguiente información:

EnvironmentVariables

Objeto que contiene los parámetros de la función Lambda. Este objeto contiene la siguiente información:

DEFAULT_SNS_ARN

El ARN del tema predeterminado de Amazon SNS en el que este componente publica los mensajes. Puede anular el tema de destino con la sns_topic_arn propiedad en la carga útil del mensaje de entrada.

containerMode

(Opcional) El modo de contenedorización de este componente. Puede elegir entre las siguientes opciones:

  • NoContainer— El componente no se ejecuta en un entorno de ejecución aislado.

  • GreengrassContainer— El componente se ejecuta en un entorno de ejecución aislado dentro del AWS IoT Greengrass contenedor.

Predeterminado: GreengrassContainer

containerParams

(Opcional) Un objeto que contiene los parámetros del contenedor de este componente. El componente utiliza estos parámetros si se especifica GreengrassContainer paracontainerMode.

Este objeto contiene la siguiente información:

memorySize

(Opcional) La cantidad de memoria (en kilobytes) que se va a asignar al componente.

El valor predeterminado es 512 MB (525.312 KB).

pubsubTopics

(Opcional) Objeto que contiene los temas a los que el componente se suscribe para recibir mensajes. Puede especificar cada tema y si el componente se suscribe a los temas de MQTT AWS IoT Core o a los temas de publicación/suscripción locales.

Este objeto contiene la siguiente información:

0— Se trata de un índice matricial en forma de cadena.

Objeto que contiene la siguiente información:

type

(Opcional) El tipo de mensajes de publicación/suscripción que utiliza este componente para suscribirse a los mensajes. Puede elegir entre las siguientes opciones:

  • PUB_SUB — Suscribirse a mensajes locales de publicación/suscripción. Si elige esta opción, el tema no puede contener caracteres comodín de MQTT. Para obtener más información sobre cómo enviar mensajes desde un componente personalizado al especificar esta opción, consulte. Publicar/suscribir mensajes locales

  • IOT_CORE— Suscríbase a los mensajes de AWS IoT Core MQTT. Si elige esta opción, el tema puede contener caracteres comodín de MQTT. Para obtener más información sobre cómo enviar mensajes desde componentes personalizados al especificar esta opción, consulte. Publicar/suscribir mensajes MQTT AWS IoT Core

Predeterminado: PUB_SUB

topic

(Opcional) El tema al que se suscribe el componente para recibir mensajes. Si lo especifica IotCoretype, puede usar los comodines MQTT (+y#) en este tema.

ejemplo Ejemplo: actualización de la combinación de configuraciones (modo contenedor)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
ejemplo Ejemplo: actualización de la combinación de configuraciones (sin modo contenedor)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "NoContainer" }

Datos de entrada

Este componente acepta mensajes sobre el siguiente tema y publica el mensaje tal cual en el tema Amazon SNS de destino. De forma predeterminada, este componente se suscribe a los mensajes locales de publicación/suscripción. Para obtener más información sobre cómo publicar mensajes en este componente desde sus componentes personalizados, consulte. Publicar/suscribir mensajes locales

Tema predeterminado (publicación/suscripción local): sns/message

El mensaje acepta las siguientes propiedades. Los mensajes de entrada deben tener un formato JSON válido.

request

La información sobre el mensaje que se va a enviar al tema Amazon SNS.

Tipo: object que contiene la siguiente información:

message

El contenido del mensaje en forma de cadena.

Para enviar un objeto JSON, serialícelo como una cadena y especifique json la message_structure propiedad.

Tipo: string

subject

(Opcional) El asunto del mensaje.

Tipo: string

El asunto puede ser texto ASCII y tener hasta 100 caracteres. Debe empezar por una letra, un número o un signo de puntuación. No puede incluir saltos de línea ni caracteres de control.

sns_topic_arn

(Opcional) El ARN del tema de Amazon SNS en el que este componente publica el mensaje. Especifique esta propiedad para anular el tema predeterminado de Amazon SNS.

Tipo: string

message_structure

(Opcional) La estructura del mensaje. Especifique json que se envíe un mensaje JSON que se serialice como una cadena en la content propiedad.

Tipo: string

Valores válidos: json

id

Un ID arbitrario para la solicitud. Utilice esta propiedad para asignar una solicitud de entrada a una respuesta de salida. Al especificar esta propiedad, el componente establece la id propiedad del objeto de respuesta en este valor.

Tipo: string

nota

El tamaño del mensaje puede ser de 256 KB como máximo.

ejemplo Ejemplo de entrada: mensaje en cadena
{ "request": { "subject": "Message subject", "message": "Message data", "sns_topic_arn": "arn:aws:sns:region:account-id:topic2-name" }, "id": "request123" }
ejemplo Ejemplo de entrada: mensaje JSON
{ "request": { "subject": "Message subject", "message": "{ \"default\": \"Message data\" }", "message_structure": "json" }, "id": "request123" }

Datos de salida

Este componente publica las respuestas como datos de salida sobre el siguiente tema de MQTT de forma predeterminada. Debe especificar este tema como parte de subject la configuración del componente antiguo del router de suscripciones. Para obtener más información sobre cómo suscribirse a los mensajes sobre este tema en sus componentes personalizados, consultePublicar/suscribir mensajes MQTT AWS IoT Core.

Tema predeterminado (AWS IoT Core MQTT): sns/message/status

ejemplo Ejemplo de salida: Correcto
{ "response": { "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a", "status": "success" }, "id": "request123" }
ejemplo Ejemplo de salida: Error
{ "response" : { "error": "InvalidInputException", "error_message": "SNS Topic Arn is invalid", "status": "fail" }, "id": "request123" }

Archivo de registro local

Este componente utiliza el siguiente archivo de registro.

/greengrass/v2/logs/aws.greengrass.SNS.log
Para ver los registros de este componente
  • Ejecute el siguiente comando en el dispositivo principal para ver el archivo de registro de este componente en tiempo real. /greengrass/v2Sustitúyalo por la ruta a la carpeta AWS IoT Greengrass raíz.

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

Licencias

Este componente incluye el siguiente software o licencias de terceros:

Este componente se publica en virtud del contrato de licencia de software principal de Greengrass.

Registros de cambios

En la siguiente tabla se describen los cambios en cada versión del componente.

Versión

Cambios

2.1.7

Versión actualizada para la versión 2.12.0 de Greengrass nucleus.

2.1.6

Versión actualizada para la versión 2.11.0 de Greengrass nucleus.

2.1.5

Versión actualizada para la versión 2.10.0 de Greengrass nucleus.

2.1.4

Versión actualizada para la versión 2.9.0 de Greengrass Nucleus.

2.1.3

Versión actualizada para el lanzamiento de la versión 2.8.0 de Greengrass nucleus.

2.1.2

Versión actualizada para la versión 2.7.0 de Greengrass Nucleus.

2.1.1

Versión actualizada para la versión 2.6.0 de Greengrass Nucleus.

2.1.0

Nuevas características

2.0.8

Versión actualizada para el lanzamiento de la versión 2.5.0 de Greengrass nucleus.

2.0.7

Versión actualizada para la versión 2.4.0 de Greengrass Nucleus.

2.0.6

Versión actualizada para el lanzamiento de la versión 2.3.0 de Greengrass nucleus.

2.0.5

Versión actualizada para el lanzamiento de la versión 2.2.0 de Greengrass nucleus.

2.0.4

Versión actualizada para el lanzamiento de la versión 2.1.0 de Greengrass nucleus.

2.0.3

Versión inicial.