View a markdown version of this page

Creare un AWS IoT regola - AWS IoT Core

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creare un AWS IoT regola

Puoi creare AWS IoT regole per indirizzare i dati dagli oggetti connessi all'interazione con altri AWS servizi. Una AWS IoT regola è costituita dai seguenti componenti:

Componenti di una regola
Componente Description Obbligatorio o facoltativo
Nome regola

Nome della regola . Tieni presente che non consigliamo l'uso di informazioni di identificazione personale nei nomi delle regole.

Obbligatorio.
Descrizione della regola

Una descrizione testuale della regola. Tieni presente che non consigliamo l'uso di informazioni di identificazione personale nelle descrizioni delle regole.

Opzionale.
Istruzione SQL

Sintassi SQL semplificata per filtrare i messaggi ricevuti in un argomento MQTT ed effettuare il push dei dati in un’altra posizione. Per ulteriori informazioni, consulta AWS IoT Documentazione di riferimento a SQL.

Obbligatorio.
Versione SQL

Versione del motore di regole SQL da usare durante la valutazione della regola. Sebbene questa proprietà sia facoltativa, si consiglia vivamente di specificare la versione SQL. La AWS IoT Core console imposta questa proprietà su per 2016-03-23 impostazione predefinita. Se questa proprietà non è impostata, ad esempio in un AWS CLI comando o in un CloudFormation modello, 2015-10-08 viene utilizzata. Per ulteriori informazioni, consulta Versioni SQL.

Obbligatorio.
Una o più azioni Le azioni vengono AWS IoT eseguite quando si applica la regola. Ad esempio, è possibile inserire i dati in una tabella Dynamo DB, scrivere i dati in un bucket Amazon S3, eseguire la pubblicazione in un argomento Amazon SNS o invocare una funzione Lambda. Obbligatorio.
Un'operazione in caso di errore L'azione viene AWS IoT eseguita quando non è in grado di eseguire l'azione di una regola. Opzionale.

Prima di creare una AWS IoT regola, devi creare un ruolo IAM con una policy che consenta l'accesso alle AWS risorse richieste. AWS IoT assume questo ruolo quando implementa una regola. Per ulteriori informazioni, vedere Concessione a una AWS IoT regola dell'accesso richiesto e Passaggio delle autorizzazioni di ruolo.

Quando crei una regola, fai attenzione alla quantità di dati che pubblichi negli argomenti. Se crei regole che includono uno schema di argomento con caratteri jolly, potrebbero corrispondere a una percentuale elevata dei tuoi messaggi. In tal caso, potrebbe essere necessario aumentare la capacità delle risorse AWS  utilizzate dalle operazioni di destinazione. Consigliamo di evitare schemi tematici con caratteri jolly nelle regole di ripubblicazione per evitare l'elaborazione duplicata e ridurre i costi.

Nota

La creazione e l’aggiornamento di regole sono operazioni a livello di amministratore. Qualsiasi utente che abbia l'autorizzazione per creare o aggiornare regole potrà accedere ai dati elaborati dalle regole.

Crea una regola (Console)

Per creare una regola (Console di gestione AWS)

Usa il Console di gestione AWS comando per creare una regola:

  1. Apri la AWS IoT console.

  2. Nella barra di navigazione a sinistra, scegli Instradamento dei messaggi dalla sezione Gestisci. Quindi scegli Regole.

  3. Nella pagina Regole, scegli Crea regola.

  4. Nella pagina Specifica le proprietà della regola, inserisci un nome per la regola. La descrizione della regola e i tag sono opzionali. Scegli Avanti.

  5. Nella pagina Configura l'istruzione SQL, scegli una versione SQL e inserisci un'istruzione SQL. Un'istruzione SQL di esempio può essereSELECT temperature FROM 'iot/topic' WHERE temperature > 50. Per ulteriori informazioni, vedere Versioni SQL e riferimenti AWS IoT SQL.

  6. Nella pagina Allega le azioni delle regole, aggiungi le azioni delle regole per indirizzare i dati ad altri AWS servizi.

    1. In Azioni relative alle regole, seleziona un'azione della regola dall'elenco a discesa. Ad esempio, puoi scegliere Kinesis Stream. Per ulteriori informazioni sulle azioni delle regole, consulta Azioni relative alle AWS IoT regole.

    2. A seconda dell'azione della regola scelta, inserisci i relativi dettagli di configurazione. Ad esempio, se scegli Kinesis Stream, dovrai scegliere o creare una risorsa per il flusso di dati e, facoltativamente, inserire dettagli di configurazione come la chiave di partizione, che viene utilizzata per raggruppare i dati per frammento in uno steam.

    3. Nel ruolo IAM, scegli o crea un ruolo per concedere AWS IoT l'accesso al tuo endpoint. Tieni presente che AWS IoT creerà automaticamente una policy con il prefisso del aws-iot-rule ruolo IAM selezionato. Puoi scegliere Visualizza per visualizzare il tuo ruolo IAM e la policy dalla console IAM. L'azione di errore è facoltativa. Puoi trovare ulteriori informazioni in Gestione degli errori (azione di errore). Per ulteriori informazioni sulla creazione di un ruolo IAM per la regola, consulta Concedere a una regola l'accesso richiesto. Scegli Avanti.

  7. Nella pagina Rivedi e crea, rivedi tutta la configurazione e apporta le modifiche se necessario. Scegli Crea.

Dopo aver creato una regola con successo, la vedrai elencata nella pagina Regole. È possibile selezionare una regola per aprire la pagina Dettagli in cui è possibile visualizzare una regola, modificare una regola, disattivare una regola ed eliminare una regola.

Crea una regola (CLI)

Per creare una regola (AWS CLI)

Usa il comando create-topic-rule per creare una regola:

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

Di seguito è riportato un esempio di file di payload con una regola che inserisce tutti i messaggi inviati all'argomento iot/test nella tabella Dynamo DB specificata. L'istruzione SQL filtra i messaggi e il ruolo ARN concede AWS IoT il permesso di scrivere nella tabella 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()}" } } ] }

Di seguito è riportato un esempio di file di payload con una regola che inserisce tutti i messaggi inviati all'argomento iot/test nel bucket S3 specificato. L'istruzione SQL filtra i messaggi e il ruolo ARN concede il AWS IoT permesso di scrivere nel bucket 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" } } ] }

Di seguito è riportato un esempio di file di payload con una regola che invia i dati ad Amazon Service: OpenSearch

{ "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()}" } } ] }

Di seguito è riportato un esempio di file di payload con una regola che richiama una funzione Lambda:

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

Di seguito è riportato un esempio di file di payload con una regola che esegue la pubblicazione in un argomento Amazon SNS:

{ "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" } } ] }

Di seguito è riportato un esempio di file di payload con una regola che esegue la ripubblicazione in un argomento MQTT diverso:

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

Di seguito è riportato un esempio di file di payload con una regola che invia i dati a uno stream 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" } } ] }

Di seguito è riportato un esempio di file di payload con una regola che avvia un'esecuzione di una macchina a stati 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" } } ] }