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.
Tópicos
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.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 |
---|---|---|---|
|
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
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
amessage_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 nacontent
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.
/logs/aws.greengrass.SNS.log
/greengrass/v2
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.
Substitua pelo caminho para a pasta AWS IoT Greengrass raiz./greengrass/v2
sudo tail -f
/logs/aws.greengrass.SNS.log/greengrass/v2
Licenças
Esse componente inclui o seguinte software/licenciamento de terceiros:
-
AWS SDK for Python (Boto3)
/Licença Apache 2.0 -
botocore
/Licença Apache 2.0 -
docutils
//BSDLicença, Licença Pública GNU Geral (GPL), Licença da Python Software Foundation, Domínio Público -
jmespath/Licença
MIT -
s3transfer
/Licença Apache 2.0 -
urllib3//Licença
MIT
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 |
|
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. |