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 SNS componente Amazon (aws.greengrass.SNS) publica mensagens em um tópico do Amazon Simple Notification Service (AmazonSNS). 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 é a AmazonSNS? no Guia do desenvolvedor do Amazon Simple Notification Service.

Para publicar em um SNS tópico da Amazon com esse componente, publique uma mensagem no tópico em que esse componente está inscrito. Por padrão, esse componente se inscreve no tópico sns/message local de publicação/assinatura. Você pode especificar outros tópicos, inclusive AWS IoT Core MQTT tópicos, ao implantar esse componente.

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

nota

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

Versões

Esse componente tem as seguintes versões:

  • 2.1.x

  • 2.0.x

Tipo

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

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

Sistema operacional

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

Requisitos

Esse componente tem os seguintes requisitos:

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

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

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

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

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

    Você pode substituir dinamicamente o tópico padrão na carga da mensagem de entrada desse componente. Se seu aplicativo usa esse recurso, a IAM política 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 dados de saída desse componente, você deve mesclar a seguinte atualização de configuração para o componente antigo do roteador de assinatura (aws.greengrass.LegacySubscriptionRouter) ao implantar esse componente. Essa configuração especifica o tópico em que esse componente publica 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" } } }
    • Substituir region com o Região da AWS que você usa.

    • Substituir version com a versão da função Lambda que esse componente executa. Para encontrar a versão da função Lambda, você deve visualizar a receita da versão desse componente que você deseja implantar. Abra a página de detalhes desse componente no AWS IoT Greengrass console e procure o par de valores-chave da função Lambda. Esse par de valores-chave contém o nome e a versão da função Lambda.

    Importante

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

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

  • O SNS componente Amazon tem suporte para ser executado em umVPC. Para implantar esse componente em umVPC, é necessário o seguinte.

    • O SNS componente Amazon deve ter conectividade com a sns.region.amazonaws.com qual tenha o VPC endpoint decom.amazonaws.us-east-1.sns.

Endpoints e portas

Esse componente deve ser capaz de realizar solicitações de saída para os seguintes endpoints e portas, 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 Port (Porta) Obrigatório Descrição

sns.region.amazonaws.com

443 Sim

Publique mensagens na AmazonSNS.

Dependências

Quando você implanta um componente, AWS IoT Greengrass também implanta versões compatíveis de suas dependências. Isso significa que você deve atender aos requisitos do componente e de todas as suas dependências para implantá-lo com êxito. Esta seção lista 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. Você também pode visualizar as dependências de cada versão do componente no AWS IoT Greengrass console. Na página de detalhes do componente, procure a lista de dependências.

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 Greengrass >=2.0.0 <2.14.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.13.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.12.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.11.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.10.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.9.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.8.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.7.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.6.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.5.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.4.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^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 Greengrass >=2.0.0 <2.3.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.4

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.0 <2.2.0 Rígido
Lançador Lambda ^2.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) ^2.0.0 Flexível
Serviço de troca de tokens ^2.0.0 Rígido
2.0.3

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

Dependência Versões compatíveis Tipo de dependência
Núcleo Greengrass >=2.0.3 <2.1.0 Rígido
Lançador Lambda >=1.0.0 Rígido
Lambda runtimes (Tempos de execução do Lambda) >=1.0.0 Flexível
Serviço de troca de tokens >=1.0.0 Rígido

Para obter mais informações sobre dependências de componentes, consulte a referência da receita do componente.

Configuração

Esse componente fornece os seguintes parâmetros de configuração que você pode personalizar ao implantar o componente.

nota

A configuração padrão desse componente inclui parâmetros da função 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 da função Lambda desse componente. Esse objeto contém as seguintes informações:

EnvironmentVariables

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

DEFAULT_SNS_ARN

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

containerMode

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

  • NoContainer— O componente não é executado em um ambiente de execução 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 do contêiner desse componente. O componente usa esses parâmetros se você especificar GreengrassContainer paracontainerMode.

Esse objeto contém as seguintes informações:

memorySize

(Opcional) A quantidade de memória (em kilobytes) a ser alocada para o componente.

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

pubsubTopics

(Opcional) Um objeto que contém os tópicos em que o componente se inscreve para receber mensagens. Você pode especificar cada tópico e se o componente se inscreve em MQTT tópicos de AWS IoT Core ou em tópicos locais de publicação/assinatura.

Esse objeto contém as seguintes informações:

0— Este é um índice de matriz como uma string.

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

type

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

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

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

Padrão: PUB_SUB

topic

(Opcional) O tópico no qual o componente se inscreve para receber mensagens. Se você especificar IotCore paratype, poderá usar MQTT curingas (+e#) neste tópico.

exemplo Exemplo: atualização da mesclagem de configuração (modo contêiner)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
exemplo Exemplo: atualização de 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 sobre o tópico a seguir e publica a mensagem no estado em que se encontra no SNS tópico de destino da Amazon. Por padrão, esse componente assina mensagens locais de publicação/assinatura. Para obter mais informações sobre como publicar mensagens nesse componente a partir de seus componentes personalizados, consultePublique/assine mensagens locais.

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

A mensagem aceita as seguintes propriedades. As mensagens de entrada devem estar em JSON formato.

request

As informações sobre a mensagem a ser enviada para o SNS tópico da Amazon.

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

message

O conteúdo da mensagem como uma string.

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

Tipo: string

subject

(Opcional) O assunto da mensagem.

Tipo: string

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

sns_topic_arn

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

Tipo: string

message_structure

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

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 id propriedade 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: JSON mensagem
{ "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 MQTT tópico a seguir. Você deve especificar esse tópico conforme a subject configuração do componente antigo do roteador de assinatura. Para obter mais informações sobre como assinar mensagens sobre esse tópico em seus componentes personalizados, consultePublicar/assinar mensagens AWS IoT Core MQTT.

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 seguinte arquivo de log.

/greengrass/v2/logs/aws.greengrass.SNS.log
Para ver os registros 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 software/licenciamento de terceiros:

Esse componente é lançado de acordo com o Contrato de Licença de Software Principal do Greengrass.

Changelog

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

Version (Versão)

Alterações

2.1.8

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

2.1.7

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

2.1.6

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

2.1.5

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

2.1.4

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

2.1.3

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

2.1.2

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

2.1.1

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

2.1.0

Novos atributos

2.0.8

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

2.0.7

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

2.0.6

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

2.0.5

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

2.0.4

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

2.0.3

Versão inicial.