Amazon SNS - AWS IoT Greengrass

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Amazon SNS

O componente do Amazon SNS (aws.greengrass.SNS) publica as mensagens em um tópico do Amazon Simple Notification Service (Amazon SNS). Você pode usar esse componente para enviar eventos dos dispositivos principais do Greengrass para servidores Web, endereços de e-mail e outros assinantes de mensagens. Para obter mais informações, consulte O que é o Amazon SNS? no Guia do desenvolvedor do Amazon Simple Notification Service.

Para publicar em um tópico do Amazon SNS com esse componente, publique uma mensagem no tópico de assinatura desse componente. Por padrão, esse componente assina o tópico local de publicação/assinatura sns/message. Você pode especificar outros tópicos, incluindo tópicos do AWS IoT Core MQTT, ao implantar esse componente.

Em seu componente personalizado, você pode implementar a lógica de filtragem ou de formatação para processar mensagens de outras fontes antes de publicá-las nesse componente. Esse procedimento permite que você centralize a lógica de processamento de mensagens em um único componente.

nota

Esse componente fornece funcionalidade semelhante ao conector Amazon SNS na AWS IoT Greengrass V1. Para obter mais informações, consulte Conector do Amazon SNS no Guia do desenvolvedor do AWS IoT Greengrass V1.

Versões

Esse componente tem as seguintes versões:

  • 2.1.x

  • 2.0.x

Tipo

Esse é um componente do Lambda (aws.greengrass.lambda).. O núcleo do Greengrass executa a função do Lambda desse componente usando o componente inicializador do Lambda.

Para obter mais informações, consulte Tipos de componente.

Sistema operacional

Esse componente pode ser instalado somente nos dispositivos principais do Linux.

Requisitos

Esse componente tem os seguintes requisitos:

  • O dispositivo principal deve atender aos requisitos para executar as funções do Lambda. Se você deseja que o dispositivo principal execute funções do Lambda em contêiner, o dispositivo deve atender aos requisitos para isso. Para obter mais informações, consulte Requisitos da função do Lambda.

  • Python versão 3.7 instalado no dispositivo de núcleo e adicionado à variável de ambiente PATH.

  • Um tópico do Amazon SNS. Para obter mais informações, consulte Criação de um tópico do Amazon SNS no Guia do desenvolvedor do Amazon Simple Notification Service.

  • A função do dispositivo do Greengrass deve permitir a ação sns:Publish, conforme mostrado no exemplo de política do IAM abaixo.

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

    Você pode substituir o tópico padrão dinamicamente na carga útil da mensagem de entrada nesse componente. Se a aplicação usa esse recurso, a política do IAM deve incluir todos os tópicos de destino como recursos. Você pode conceder acesso granular ou condicional aos recursos (por exemplo, usando um esquema de nomeação * curinga).

  • Para receber os dados de saída desse componente, você deve mesclar a seguinte atualização de configuração no componente legado de roteador de assinatura (aws.greengrass.LegacySubscriptionRouter) ao implantar esse componente. Essa configuração especifica o tópico em que esse componente publica as respostas.

    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" } } }
    • regionSubstitua pelo Região da AWS que você usa.

    • versionSubstitua pela versão da função Lambda que esse componente executa. Para encontrar a versão da função do Lambda, você deve visualizar a fórmula da versão desse componente que deseja implantar. Abra a página de detalhes do componente no console do AWS IoT Greengrass e procure o par de chave/valor da função do Lambda. Esse par de chave/valor contém o nome e a versão da função do Lambda.

    Importante

    Você deve atualizar a versão da função do Lambda no roteador de assinatura legado sempre que implantar esse componente. Isso garante que você use a versão correta da função do Lambda em relação à do componente que é implantado.

    Para obter mais informações, consulte Criar implantações.

  • O componente Amazon SNS pode ser executado em uma VPC. Para implantá-lo em uma VPC, o procedimento a seguir é necessário.

    • O componente Amazon SNS deve ter conectividade com a sns.region.amazonaws.com que tem o endpoint da VPC de com.amazonaws.us-east-1.sns.

Endpoints e portas

Esse componente precisa ser capaz de realizar solicitações de saída para os endpoints e portas a seguir, além dos endpoints e portas necessários para a operação básica. Para obter mais informações, consulte Permitir o tráfego de dispositivos por meio de um proxy ou firewall.

Endpoint Porta Obrigatório Descrição

sns.region.amazonaws.com

443 Sim

Publique mensagens no Amazon SNS.

Dependências

Quando você implanta um componente, AWS IoT Greengrass também implanta versões compatíveis de suas dependências. Isso significa que é preciso atender aos requisitos do componente e de todas as dependências dele para implantá-lo com êxito. Nesta seção, há uma lista de todas as dependências das versões lançadas desse componente e as restrições de versão semântica que definem as versões dos componentes para cada dependência. Também é possível visualizar as dependências de cada versão do componente no console do AWS IoT Greengrass. Na página de detalhes do componente, procure a lista de dependências.

2.1.10

A tabela a seguir lista as dependências da versão 2.1.10 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.16.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.1.9

A tabela a seguir lista as dependências da versão 2.1.9 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.15.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.1.8

A tabela a seguir lista as dependências da versão 2.1.8 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.14.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.1.7

A tabela a seguir lista as dependências da versão 2.1.7 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.13.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.1.6

A tabela a seguir lista as dependências da versão 2.1.6 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.12.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.1.5

A tabela a seguir lista as dependências da versão 2.1.5 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.11.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.1.4

A tabela a seguir lista as dependências da versão 2.1.4 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.10.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.1.3

A tabela a seguir lista as dependências da versão 2.1.3 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.9.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.1.2

A tabela a seguir lista as dependências da versão 2.1.2 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.8.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.1.1

A tabela a seguir lista as dependências da versão 2.1.1 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.7.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.0.8 - 2.1.0

A tabela a seguir lista as dependências das versões 2.0.8 e 2.1.0 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.6.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.0.7

A tabela a seguir lista as dependências da versão 2.0.7 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.5.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.0.6

A tabela a seguir lista as dependências da versão 2.0.6 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.4.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.0.5

A tabela a seguir lista as dependências da versão 2.0.5 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.3.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.0.4

A tabela a seguir lista as dependências da versão 2.0.4 deste componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.0 <2.2.0 Rígido
Inicializador do Lambda ^2.0.0 Rígido
Lambda runtimes ^2.0.0 Flexível
Token Exchange Service ^2.0.0 Rígido
2.0.3

A tabela a seguir lista as dependências para a versão 2.0.3 desse componente.

Dependência Versões compatíveis Tipo de dependência
Núcleo do Greengrass >=2.0.3 <2.1.0 Rígido
Inicializador do Lambda >=1.0.0 Rígido
Lambda runtimes >=1.0.0 Flexível
Token Exchange Service >=1.0.0 Rígido

Para obter mais informações sobre as dependências dos componentes, consulte referência de fórmula do componente.

Configuração

Esse componente fornece os parâmetros de configuração a seguir, que podem ser personalizados quando você o implanta.

nota

A configuração padrão desse componente inclui parâmetros de função do Lambda. Recomendamos que você edite somente os parâmetros a seguir para configurar esse componente em seus dispositivos.

lambdaParams

Um objeto que contém os parâmetros para a função do Lambda desse componente. Esse objeto contém as informações a seguir:

EnvironmentVariables

Um objeto que contém os parâmetros da função do Lambda. Esse objeto contém as informações a seguir:

DEFAULT_SNS_ARN

O ARN do tópico padrão do Amazon SNS em que esse componente publica mensagens. Você pode substituir o tópico de destino pela propriedade sns_topic_arn na carga útil da mensagem de entrada.

containerMode

(Opcional) O modo de conteinerização do componente. Escolha uma das seguintes opções:

  • NoContainer; o componente não é executado em um ambiente de runtime isolado.

  • GreengrassContainer— O componente é executado em um ambiente de execução isolado dentro do AWS IoT Greengrass contêiner.

Padrão: GreengrassContainer

containerParams

(Opcional) Um objeto que contém os parâmetros de contêiner para esse componente. O componente usará esses parâmetros se você especificar GreengrassContainer para containerMode.

Esse objeto contém as informações a seguir:

memorySize

(Opcional) A quantidade de memória (em quilobytes) que será alocada para o componente.

O padrão é de 512 MB (525.312 KB).

pubsubTopics

(Opcional) Um objeto que contém os tópicos que o componente assina para receber mensagens. Você pode especificar cada tópico e se o componente se inscreve nos tópicos do MQTT AWS IoT Core ou nos tópicos locais publish/subscribe .

Esse objeto contém as informações a seguir:

0: este é um índice de matriz como uma string.

Um objeto que contém as seguintes informações:

type

(Opcional) O tipo de publish/subscribe mensagem que esse componente usa para assinar mensagens. Escolha uma das seguintes opções:

  • PUB_SUB – Assine mensagens locais de publicar/assinar. Se escolher essa opção, o tópico não poderá conter curingas MQTT. Para obter mais informações sobre como enviar mensagens do componente personalizado quando você especifica essa opção, consulte Publicar/assinar mensagens locais.

  • IOT_CORE— Assine as mensagens do AWS IoT Core MQTT. Se você escolher essa opção, o tópico poderá conter curingas do MQTT. Para obter mais informações sobre como enviar mensagens de componentes personalizados quando você especifica essa opção, consulte Publique/assine mensagens MQTT AWS IoT Core.

Padrão: PUB_SUB

topic

(Opcional) O tópico que o componente assina para receber mensagens. Se você especificar IotCore para type, poderá usar curingas MQTT (+ e #) neste tópico.

exemplo Exemplo: atualização da mesclagem de configuração (modo de contêiner)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
exemplo Exemplo: atualização da mesclagem de configuração (sem modo de contêiner)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "NoContainer" }

Dados de entrada

Esse componente aceita mensagens no tópico a seguir e as publica no tópico do Amazon SNS de destino exatamente como estão. Por padrão, esse componente se inscreve em publish/subscribe mensagens locais. Para obter mais informações sobre como publicar mensagens nesse componente a partir de seus componentes personalizados, consulte Publicar/assinar mensagens locais.

Tópico padrão (publicação/assinatura local): sns/message

A mensagem aceita as propriedades a seguir. As mensagens de entrada devem estar no formato JSON.

request

As informações sobre a mensagem que será enviada ao tópico do Amazon SNS.

Tipo: object que contém as seguintes informações:

message

O conteúdo da mensagem como uma string.

Para enviar um objeto JSON, serialize-o como uma string e especifique json para a propriedade message_structure.

Tipo: string

subject

(Opcional) O assunto da mensagem.

Tipo: string

O assunto pode ser um texto ASCII com até 100 caracteres. Ele deve começar com uma letra, um número ou um sinal de pontuação. Ele não deve incluir quebras de linha ou caracteres de controle.

sns_topic_arn

(Opcional) O ARN do tópico do Amazon SNS em que esse componente publica a mensagem. Especifique essa propriedade para substituir o tópico padrão do Amazon SNS.

Tipo: string

message_structure

(Opcional) A estrutura da mensagem. Especifique json para enviar uma mensagem JSON que você serializa como uma string na propriedade content.

Tipo: string

Valores válidos: json

id

Um ID arbitrário para a solicitação. Use essa propriedade para mapear uma solicitação de entrada para uma resposta de saída. Quando você especifica essa propriedade, o componente define a propriedade id no objeto de resposta com esse valor.

Tipo: string

nota

O tamanho da mensagem pode ser de no máximo 256 KB.

exemplo Exemplo de entrada: mensagem de string
{ "request": { "subject": "Message subject", "message": "Message data", "sns_topic_arn": "arn:aws:sns:region:account-id:topic2-name" }, "id": "request123" }
exemplo Exemplo de entrada: mensagem JSON
{ "request": { "subject": "Message subject", "message": "{ \"default\": \"Message data\" }", "message_structure": "json" }, "id": "request123" }

Dados de saída

Por padrão, esse componente publica respostas como dados de saída no tópico do MQTT a seguir. Você deve especificar esse tópico como subject na configuração do componente legado de roteador de assinatura. Para obter mais informações sobre como assinar mensagens nesse tópico em seus componentes personalizados, consulte Publique/assine mensagens MQTT AWS IoT Core.

Tópico padrão (AWS IoT Core MQTT): sns/message/status

exemplo Exemplo de resultado: sucesso
{ "response": { "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a", "status": "success" }, "id": "request123" }
exemplo Exemplo de resultado: falha
{ "response" : { "error": "InvalidInputException", "error_message": "SNS Topic Arn is invalid", "status": "fail" }, "id": "request123" }

Arquivo de log local

Esse componente usa o arquivo de log abaixo.

/greengrass/v2/logs/aws.greengrass.SNS.log
Para exibir os logs desse componente
  • Execute o comando a seguir no dispositivo principal para visualizar o arquivo de log desse componente em tempo real. /greengrass/v2Substitua pelo caminho para a pasta AWS IoT Greengrass raiz.

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

Licenças

Esse componente inclui o seguinte licenciamento/software de terceiros:

Esse componente foi lançado nos termos do Contrato de licença de software de núcleo do Greengrass.

Changelog

A tabela a seguir descreve as alterações em cada versão do componente.

Versão

Alterações

2.1.10

Versão atualizada para a versão 2.15.0 do Greengrass nucleus.

2.1.9

Versão atualizada para a versão 2.14.0 do Greengrass nucleus.

2.1.8

Versão atualizada para o núcleo do Greengrass 2.13.0.

2.1.7

Versão atualizada para o núcleo do Greengrass 2.12.0.

2.1.6

Versão atualizada para o núcleo do Greengrass 2.11.0.

2.1.5

Versão atualizada para o núcleo do Greengrass 2.10.0.

2.1.4

Versão atualizada para o núcleo do Greengrass 2.9.0.

2.1.3

Versão atualizada para o núcleo do Greengrass 2.8.0.

2.1.2

Versão atualizada para o lançamento da versão 2.7.0 do núcleo do Greengrass.

2.1.1

Versão atualizada para o lançamento da versão 2.6.0 do núcleo do Greengrass.

2.1.0

Novos recursos

2.0.8

Versão atualizada para o lançamento da versão 2.5.0 do núcleo do Greengrass.

2.0.7

Versão atualizada para o lançamento da versão 2.4.0 do núcleo do Greengrass.

2.0.6

Versão atualizada para o lançamento da versão 2.3.0 do núcleo do Greengrass.

2.0.5

Versão atualizada para o lançamento do núcleo do Greengrass versão 2.2.0.

2.0.4

Versão atualizada para o lançamento do núcleo do Greengrass versão 2.1.0.

2.0.3

Versão inicial.