Erstellen einer Regel - AWS IoT Core

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erstellen einer Regel

Sie können AWS IoT Regeln erstellen, um Daten von Ihren verbundenen Geräten an die Interaktion mit anderen AWS Diensten weiterzuleiten. Eine AWS IoT Regel besteht aus den folgenden Komponenten:

Bestandteile einer Regel
Komponente Beschreibung Erforderlich oder optional
Regelname

Der Name der Regel. Beachten Sie, dass wir die Verwendung personenbezogener Daten in Ihren Regelnamen nicht empfehlen.

Erforderlich
Regelbeschreibung

Ein Text mit einer Beschreibung der Regel Beachten Sie, dass wir die Verwendung personenbezogener Daten in Ihren Regelbeschreibungen nicht empfehlen.

Optional.
SQL-Anweisung

Eine vereinfachte SQL-Syntax zum Filtern von Nachrichten, die zu einem MQTT-Topic empfangen wurden, und zum Übertragen der Daten mithilfe von Push an einen anderen Speicherort. Weitere Informationen finden Sie unter AWS IoT SQL-Referenz.

Erforderlich
SQL-Version

Die Version der SQL-Regel-Engine, die beim Auswerten der Regel verwendet wird. Diese Eigenschaft ist zwar optional, wir empfehlen Ihnen jedoch dringend, die SQL-Version anzugeben. Die AWS IoT Core Konsole legt diese Eigenschaft 2016-03-23 standardmäßig auf fest. Wenn diese Eigenschaft nicht festgelegt ist, z. B. in einem AWS CLI Befehl oder einer AWS CloudFormation Vorlage, 2015-10-08 wird sie verwendet. Weitere Informationen finden Sie unter SQL-Versionen.

Erforderlich
Eine oder mehrere Aktionen Die Aktion wird AWS IoT ausgeführt, wenn die Regel in Kraft gesetzt wird. Sie können beispielsweise Daten in eine DynamoDB-Tabelle einfügen, Daten in einen Amazon S3-Bucket schreiben, in einem Amazon SNS-Thema veröffentlichen oder eine Lambda-Funktion aufrufen. Erforderlich
Eine Fehleraktion Die Aktion AWS IoT wird ausgeführt, wenn die Aktion einer Regel nicht ausgeführt werden kann. Optional.

Bevor Sie eine AWS IoT Regel erstellen, müssen Sie eine IAM-Rolle mit einer Richtlinie erstellen, die den Zugriff auf die erforderlichen AWS Ressourcen ermöglicht. AWS IoT übernimmt diese Rolle bei der Implementierung einer Regel. Weitere Informationen finden Sie unter Einer AWS IoT Regel den erforderlichen Zugriff gewähren und Rollenberechtigungen weitergeben.

Beachten Sie beim Erstellen einer Regel, wie viele Daten Sie in Themen veröffentlichen. Wenn Sie Regeln erstellen, die ein Themenmuster mit Platzhaltern enthalten, stimmen diese möglicherweise mit einem großen Prozentsatz Ihrer Nachrichten überein. In diesem Fall müssen Sie möglicherweise die Kapazität der AWS Ressourcen erhöhen, die von den Zielaktionen verwendet werden. Wenn Sie eine Regel zum erneuten Veröffentlichen erstellen, die ein Platzhalter-Topic-Muster enthält, kann dies zu einer Zirkelregel führen, die eine Endlosschleife verursacht.

Anmerkung

Das Erstellen und Aktualisieren von Regeln sind Aktionen auf Administratorebene. Jeder Benutzer mit der Berechtigung zum Erstellen oder Aktualisieren von Regeln kann auf Daten zugreifen, die von den Regeln verarbeitet wurden.

Eine Regel erstellen (Konsole)

So erstellen Sie eine Regel (AWS Management Console)

Verwenden Sie den AWS Management ConsoleBefehl, um eine Regel zu erstellen:

  1. Öffnen Sie die AWS IoT -Konsole.

  2. Wählen Sie in der linken Navigationsleiste im Bereich Verwalten die Option Nachrichtenweiterleitung aus. Wählen Sie dann Regeln aus.

  3. Wählen Sie auf der Seite Regeln die Option Regel erstellen aus.

  4. Geben Sie auf der Seite Regeleigenschaften angeben einen Namen für Ihre Regel ein. Regelbeschreibung und Tags sind optional. Wählen Sie Weiter aus.

  5. Wählen Sie auf der Seite „SQL-Anweisung konfigurieren“ eine SQL-Version aus und geben Sie eine SQL-Anweisung ein. Eine Beispiel-SQL-Anweisung kann seinSELECT temperature FROM 'iot/topic' WHERE temperature > 50. Weitere Informationen finden Sie unter SQL-Versionen und AWS IoT SQL-Referenz.

  6. Fügen Sie auf der Seite „Regelaktionen anhängen“ Regelaktionen hinzu, um Daten an andere AWS Dienste weiterzuleiten.

    1. Wählen Sie unter Regelaktionen eine Regelaktion aus der Dropdownliste aus. Sie können beispielsweise Kinesis Stream wählen. Weitere Informationen zu Regelaktionen finden Sie unter AWS IoT Regelaktionen.

    2. Geben Sie je nach der ausgewählten Regelaktion die entsprechenden Konfigurationsdetails ein. Wenn Sie sich beispielsweise für Kinesis Stream entscheiden, müssen Sie eine Datenstream-Ressource auswählen oder erstellen und optional Konfigurationsdetails wie den Partitionsschlüssel eingeben, mit dem Daten in einem Stream nach Shard gruppiert werden.

    3. Wählen oder erstellen Sie in der IAM-Rolle eine Rolle, um AWS IoT Zugriff auf Ihren Endpunkt zu gewähren. Beachten Sie, dass dadurch AWS IoT automatisch eine Richtlinie mit dem Präfix aws-iot-rule unter Ihrer ausgewählten IAM-Rolle erstellt wird. Sie können „Ansicht“ wählen, um Ihre IAM-Rolle und die Richtlinie von der IAM-Konsole aus anzuzeigen. Die Aktion „Fehler“ ist optional. Weitere Informationen finden Sie unter Fehlerbehandlung (Fehleraktion). Weitere Informationen zum Erstellen einer IAM-Rolle für Ihre Regel finden Sie unter Gewähren Sie einer Regel den erforderlichen Zugriff. Wählen Sie Weiter aus.

  7. Überprüfen Sie auf der Seite Überprüfen und erstellen die gesamte Konfiguration und nehmen Sie bei Bedarf Änderungen vor. Wählen Sie Erstellen.

Nachdem Sie eine Regel erfolgreich erstellt haben, wird die Regel auf der Seite Regeln aufgeführt. Sie können eine Regel auswählen, um die Detailseite zu öffnen, auf der Sie eine Regel anzeigen, bearbeiten, eine Regel deaktivieren und eine Regel löschen können.

Regel erstellen (CLI)

So erstellen Sie eine Regel (AWS CLI)

Verwenden Sie den Befehl create-topic-rule zum Erstellen einer Regel:

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

Im Folgenden finden Sie ein Beispiel für eine Nutzlastdatei mit einer Regel, die alle an das iot/test Thema gesendeten Nachrichten in die angegebene DynamoDB-Tabelle einfügt. Die SQL-Anweisung filtert die Nachrichten und der Rollen-ARN gewährt die AWS IoT Berechtigung, in die DynamoDB-Tabelle zu schreiben.

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

Im Folgenden finden Sie ein Beispiel für eine Nutzlastdatei mit einer Regel, die alle an das iot/test Thema gesendeten Nachrichten in den angegebenen S3-Bucket einfügt. Die SQL-Anweisung filtert die Nachrichten, und die Rolle ARN gewährt die AWS IoT Erlaubnis, in den Amazon S3 S3-Bucket zu schreiben.

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

Im Folgenden finden Sie ein Beispiel für eine Payload-Datei mit einer Regel, die Daten an Amazon OpenSearch Service überträgt:

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

Im Folgenden finden Sie ein Beispiel für eine Nutzlastdatei mit einer Regel, die eine Lambda-Funktion aufruft:

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

Im Folgenden finden Sie ein Beispiel für eine Nutzlastdatei mit einer Regel, die in einem Amazon SNS-Thema veröffentlicht:

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

Im Folgenden finden Sie ein Beispiel für eine Nutzlastdatei mit einer Regel, die in einem anderen MQTT-Topic erneut veröffentlicht:

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

Im Folgenden finden Sie ein Beispiel für eine Payload-Datei mit einer Regel, die Daten in einen Amazon Data Firehose überträgt:

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

Im Folgenden finden Sie ein Beispiel für eine Payload-Datei mit einer Regel, die die SageMaker machinelearning_predict Amazon-Funktion verwendet, um erneut zu einem Thema zu veröffentlichen, wenn die Daten in der MQTT-Payload als 1 klassifiziert sind.

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

Es folgt ein Beispiel für eine Nutzlastdatei mit einer Regel, nach der Nachrichten in einem Salesforce IoT Cloud-Input-Stream veröffentlicht werden.

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

Im Folgenden finden Sie ein Beispiel für eine Nutzlastdatei mit einer Regel, die eine Ausführung eines Step Functions-Zustandsautomaten startet.

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