Criação de uma AWS IoT regra - AWS IoT Core

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á.

Criação de uma AWS IoT regra

Você pode criar AWS IoT regras para rotear dados de suas coisas conectadas para interagir com outros AWS serviços. Uma AWS IoT regra consiste nos seguintes componentes:

Componentes de uma regra
Componente Descrição Obrigatório/opcional
Nome da regra

O nome da regra. Observe que não recomendamos o uso de informações de identificação pessoal em seus nomes de regras.

Obrigatório.
Descrição da regra

Um texto de descrição da regra. Observe que não recomendamos o uso de informações de identificação pessoal nas descrições de suas regras.

Opcional.
SQLdeclaração

Uma SQL sintaxe simplificada para filtrar as mensagens recebidas sobre um MQTT tópico e enviar os dados para outro lugar. Para obter mais informações, consulte AWS IoT Referência SQL.

Obrigatório.
SQLversão

A versão do mecanismo de SQL regras a ser usada ao avaliar a regra. Embora essa propriedade seja opcional, é altamente recomendável que você especifique a SQL versão. O AWS IoT Core console define essa 2016-03-23 propriedade como padrão. Se essa propriedade não for definida, como em um AWS CLI comando ou AWS CloudFormation modelo, 2015-10-08 será usada. Para obter mais informações, consulte Versões do SQL.

Obrigatório.
Uma ou mais ações As ações são AWS IoT executadas ao promulgar a regra. Por exemplo, você pode inserir dados em uma tabela do DynamoDB, gravar dados em um bucket do Amazon S3, publicar em um tópico da Amazon ou invocar uma função SNS Lambda. Obrigatório.
Uma ação de erro A ação é AWS IoT executada quando não consegue realizar a ação de uma regra. Opcional.

Antes de criar uma AWS IoT regra, você deve criar uma IAM função com uma política que permita acesso aos AWS recursos necessários. AWS IoT assume essa função ao implementar uma regra. Para obter mais informações, consulte Conceder a uma AWS IoT regra o acesso necessário e Transferir permissões de função.

Ao criar uma regra, veja a quantidade de dados que você está publicando nos tópicos. Se você criar regras que incluam um padrão de tópico curinga, elas poderão corresponder a uma grande porcentagem de suas mensagens. Se for esse o caso, talvez seja necessário aumentar a capacidade dos AWS recursos usados pelas ações de destino. Além disso, se você criar uma regra de republicação que inclui um padrão de tópico curinga, isso poderá resultar em uma regra circular que causa um loop infinito.

nota

A criação e atualização de regras são ações no nível de administrador. Qualquer usuário com permissão para criar ou atualizar regras pode acessar os dados processados pelas regras.

Criar uma regra (Console)

Para criar uma regra (AWS Management Console)

Use o AWS Management Consolecomando para criar uma regra:

  1. Abra o console de AWS IoT.

  2. No painel de navegação à esquerda, escolha Roteamento de mensagens na seção Gerenciar. Em seguida, escolha Regras.

  3. Na página Regras, selecione Criar uma regra.

  4. Na página Especificar propriedades da regra, insira um nome para sua regra. A descrição da regra e as tags são opcionais. Escolha Próximo.

  5. Na página Configurar SQL instrução, escolha uma SQL versão e insira uma SQL instrução. Um exemplo de SQL declaração pode serSELECT temperature FROM 'iot/topic' WHERE temperature > 50. Para obter mais informações, consulte SQLversões e AWS IoT SQLreferências.

  6. Na página Anexar ações de regras, adicione ações de regra para rotear dados para outros AWS serviços.

    1. Em Ações de regra, selecione uma ação de regra na lista suspensa. Por exemplo, você pode escolher o Kinesis Stream. Para obter mais informações sobre ações de regras, consulte ações de AWS IoT regras.

    2. Dependendo da ação de regra que você escolher, insira os detalhes de configuração relacionados. Por exemplo, se você escolher o Kinesis Stream, precisará escolher ou criar um recurso de stream de dados e, opcionalmente, inserir detalhes de configuração, como chave de partição, que é usada para agrupar dados por fragmento em um steam.

    3. Em IAMfunção, escolha ou crie uma função para conceder AWS IoT acesso ao seu endpoint. Observe que AWS IoT criará automaticamente uma política com o prefixo de aws-iot-rule abaixo da sua IAM função selecionada. Você pode escolher Exibir para visualizar sua IAM função e a política no IAM console. A ação de erro é opcional. Você pode encontrar mais informações em Tratamento de erros (ação de erro). Para obter mais informações sobre como criar uma IAM função para sua regra, consulte Conceder a uma regra o acesso necessário. Escolha Próximo.

  7. Na página Revisar e criar, revise toda a configuração e faça edições, se necessário. Escolha Criar.

Depois de criar uma regra com sucesso, você verá a regra listada na página Regras. Você pode selecionar uma regra para abrir a página Detalhes, na qual você pode visualizar uma regra, editar uma regra, desativar uma regra e excluir uma regra.

Crie uma regra (CLI)

Para criar uma regra (AWS CLI)

Use o create-topic-rulecomando para criar uma regra:

aws iot create-topic-rule --rule-name myrule --topic-rule-payload file://myrule.json

Veja a seguir um exemplo de arquivo de carga útil com uma regra que insere todas as mensagens enviadas para o tópico iot/test em uma tabela do DynamoDB especificada. A SQL instrução filtra as mensagens e a função ARN concede AWS IoT permissão para gravar na tabela do DynamoDB.

{ "sql": "SELECT * FROM 'iot/test'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "dynamoDB": { "tableName": "my-dynamodb-table", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role", "hashKeyField": "topic", "hashKeyValue": "${topic(2)}", "rangeKeyField": "timestamp", "rangeKeyValue": "${timestamp()}" } } ] }

Veja a seguir um exemplo de arquivo de carga útil com uma regra que insere todas as mensagens enviadas para o tópico iot/test no bucket do S3 especificado. A SQL declaração filtra as mensagens e a função ARN concede AWS IoT permissão para gravar no bucket do Amazon S3.

{ "awsIotSqlVersion": "2016-03-23", "sql": "SELECT * FROM 'iot/test'", "ruleDisabled": false, "actions": [ { "s3": { "roleArn": "arn:aws:iam::123456789012:role/aws_iot_s3", "bucketName": "amzn-s3-demo-bucket", "key": "myS3Key" } } ] }

Veja a seguir um exemplo de arquivo de carga útil com uma regra que envia dados para o Amazon OpenSearch Service:

{ "sql": "SELECT *, timestamp() as timestamp FROM 'iot/test'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "OpenSearch": { "roleArn": "arn:aws:iam::123456789012:role/aws_iot_es", "endpoint": "https://my-endpoint", "index": "my-index", "type": "my-type", "id": "${newuuid()}" } } ] }

Veja a seguir um exemplo de arquivo de carga útil com uma regra que invoca uma função do Lambda:

{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "lambda": { "functionArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function" } } ] }

Veja a seguir um exemplo de arquivo de carga útil com uma regra que publica em um tópico da AmazonSNS:

{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "sns": { "targetArn": "arn:aws:sns:us-west-2:123456789012:my-sns-topic", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role" } } ] }

Veja a seguir um exemplo de arquivo de carga útil com uma regra que é republicada em um tópico diferente: MQTT

{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "topic": "my-mqtt-topic", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role" } } ] }

Veja a seguir um exemplo de arquivo de carga útil com uma regra que envia dados para um stream do Amazon Data Firehose:

{ "sql": "SELECT * FROM 'my-topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "firehose": { "roleArn": "arn:aws:iam::123456789012:role/my-iot-role", "deliveryStreamName": "my-stream-name" } } ] }

Veja a seguir um exemplo de arquivo de carga útil com uma regra que usa a SageMaker machinelearning_predict função Amazon para republicar em um tópico se os dados na MQTT carga forem classificados como 1.

{ "sql": "SELECT * FROM 'iot/test' where machinelearning_predict('my-model', 'arn:aws:iam::123456789012:role/my-iot-aml-role', *).predictedLabel=1", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "republish": { "roleArn": "arn:aws:iam::123456789012:role/my-iot-role", "topic": "my-mqtt-topic" } } ] }

O seguinte é um exemplo de arquivo de carga útil com uma regra que publica mensagens em um fluxo de entrada do Salesforce IoT Cloud.

{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "salesforce": { "token": "ABCDEFGHI123456789abcdefghi123456789", "url": "https://ingestion-cluster-id.my-env.sfdcnow.com/streams/stream-id/connection-id/my-event" } } ] }

Veja a seguir um exemplo de arquivo de carga útil com uma regra que inicie a execução de uma máquina de estados Step Functions.

{ "sql": "expression", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "stepFunctions": { "stateMachineName": "myCoolStateMachine", "executionNamePrefix": "coolRunning", "roleArn": "arn:aws:iam::123456789012:role/my-iot-role" } } ] }