Buat aturan - AWS IoT Core

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Buat aturan

Anda dapat membuat AWS IoT aturan untuk merutekan data dari hal-hal yang terhubung untuk berinteraksi dengan AWS layanan lain. AWS IoT Aturan terdiri dari komponen-komponen berikut:

Komponen aturan
Komponen Deskripsi Diperlukan atau Opsional
Nama aturan

Nama aturan. Perhatikan bahwa kami tidak merekomendasikan penggunaan informasi identitas pribadi dalam nama aturan Anda.

Wajib.
Deskripsi aturan

Deskripsi tekstual aturan. Perhatikan bahwa kami tidak merekomendasikan penggunaan informasi identitas pribadi dalam deskripsi aturan Anda.

Tidak wajib.
Pernyataan SQL

Sintaks SQL yang disederhanakan untuk memfilter pesan yang diterima pada topik MQTT dan mendorong data ke tempat lain. Untuk informasi selengkapnya, lihat AWS IoT Referensi SQL.

Wajib.
Versi SQL

Versi mesin aturan SQL untuk digunakan saat mengevaluasi aturan. Meskipun properti ini opsional, kami sangat menyarankan Anda menentukan versi SQL. AWS IoT Core Konsol menetapkan properti ini secara 2016-03-23 default. Jika properti ini tidak diatur, seperti dalam AWS CLI perintah atau AWS CloudFormation template, 2015-10-08 digunakan. Untuk informasi selengkapnya, lihat Versi SQL.

Wajib.
Satu atau lebih tindakan Tindakan AWS IoT dilakukan saat memberlakukan aturan. Misalnya, Anda dapat menyisipkan data ke dalam tabel DynamoDB, menulis data ke bucket Amazon S3, memublikasikan ke topik Amazon SNS, atau menjalankan fungsi Lambda. Wajib.
Tindakan kesalahan Tindakan AWS IoT dilakukan ketika tidak dapat melakukan tindakan aturan. Tidak wajib.

Sebelum membuat AWS IoT aturan, Anda harus membuat peran IAM dengan kebijakan yang memungkinkan akses ke AWS sumber daya yang diperlukan. AWS IoT mengasumsikan peran ini saat menerapkan aturan. Untuk informasi selengkapnya, lihat Memberikan AWS IoT aturan akses yang diperlukan dan Melewati izin peran.

Saat Anda membuat aturan, perhatikan berapa banyak data yang Anda publikasikan tentang topik. Jika Anda membuat aturan yang menyertakan pola topik wildcard, aturan tersebut mungkin cocok dengan sebagian besar pesan Anda. Jika ini masalahnya, Anda mungkin perlu meningkatkan kapasitas AWS sumber daya yang digunakan oleh tindakan target. Selain itu, jika Anda membuat aturan penerbitan ulang yang menyertakan pola topik wildcard, Anda dapat berakhir dengan aturan melingkar yang menyebabkan loop tak terbatas.

catatan

Membuat dan memperbarui aturan adalah tindakan tingkat administrator. Setiap pengguna yang memiliki izin untuk membuat atau memperbarui aturan dapat mengakses data yang diproses oleh aturan.

Buat aturan (Konsol)

Untuk membuat aturan (AWS Management Console)

Gunakan AWS Management Consoleperintah untuk membuat aturan:

  1. Buka konsol AWS IoT.

  2. Di navigasi kiri, pilih Perutean pesan dari bagian Kelola. Kemudian pilih Aturan.

  3. Pada halaman Aturan, pilih Buat aturan.

  4. Pada halaman Tentukan properti aturan, masukkan nama untuk aturan Anda. Deskripsi aturan dan Tag adalah opsional. Pilih Selanjutnya.

  5. Pada halaman pernyataan Configure SQL, pilih versi SQL dan masukkan pernyataan SQL. Contoh pernyataan SQL bisa. SELECT temperature FROM 'iot/topic' WHERE temperature > 50 Untuk informasi selengkapnya, lihat versi SQL dan referensi AWS IoT SQL.

  6. Pada halaman Lampirkan tindakan aturan, tambahkan tindakan aturan untuk merutekan data ke AWS layanan lain.

    1. Dalam Tindakan aturan, pilih tindakan aturan dari daftar drop-down. Misalnya, Anda dapat memilih Kinesis Stream. Untuk informasi selengkapnya tentang tindakan aturan, lihat tindakan AWS IoT aturan.

    2. Bergantung pada tindakan aturan yang Anda pilih, masukkan detail konfigurasi terkait. Misalnya, jika Anda memilih Kinesis Stream, Anda harus memilih atau membuat sumber daya aliran data, dan secara opsional memasukkan detail konfigurasi seperti kunci Partisi, yang digunakan untuk mengelompokkan data dengan pecahan dalam Steam.

    3. Dalam peran IAM, pilih atau buat peran untuk memberikan AWS IoT akses ke titik akhir Anda. Perhatikan bahwa secara otomatis AWS IoT akan membuat kebijakan dengan awalan aws-iot-rule di bawah peran IAM Anda dipilih. Anda dapat memilih Lihat untuk melihat peran IAM dan kebijakan dari konsol IAM. Tindakan kesalahan adalah opsional. Anda dapat menemukan informasi lebih lanjut di Penanganan kesalahan (tindakan kesalahan). Untuk informasi selengkapnya tentang membuat peran IAM untuk aturan Anda, lihat Memberikan aturan akses yang diperlukan. Pilih Selanjutnya.

  7. Pada halaman Tinjau dan buat, tinjau semua konfigurasi dan lakukan pengeditan jika diperlukan. Pilih Buat.

Setelah Anda membuat aturan berhasil, Anda akan melihat aturan yang tercantum di halaman Aturan. Anda dapat memilih aturan untuk membuka halaman Detail tempat Anda dapat melihat aturan, mengedit aturan, menonaktifkan aturan, dan menghapus aturan.

Buat aturan (CLI)

Untuk membuat aturan (AWS CLI)

Gunakan create-topic-ruleperintah untuk membuat aturan:

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

Berikut ini adalah contoh file payload dengan aturan yang menyisipkan semua pesan yang dikirim ke iot/test topik ke dalam tabel DynamoDB yang ditentukan. Pernyataan SQL menyaring pesan dan peran ARN AWS IoT memberikan izin untuk menulis ke tabel 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()}" } } ] }

Berikut ini adalah contoh file payload dengan aturan yang menyisipkan semua pesan yang dikirim ke iot/test topik ke dalam bucket S3 yang ditentukan. Pernyataan SQL memfilter pesan, dan peran ARN AWS IoT memberikan izin untuk menulis ke 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": "my-bucket", "key": "myS3Key" } } ] }

Berikut ini adalah contoh file payload dengan aturan yang mendorong data ke 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()}" } } ] }

Berikut ini adalah contoh file payload dengan aturan yang memanggil fungsi Lambda:

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

Berikut ini adalah contoh file payload dengan aturan yang menerbitkan ke topik 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" } } ] }

Berikut ini adalah contoh file payload dengan aturan yang menerbitkan kembali pada topik MQTT yang berbeda:

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

Berikut ini adalah contoh file payload dengan aturan yang mendorong data ke aliran 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" } } ] }

Berikut ini adalah contoh file payload dengan aturan yang menggunakan SageMaker machinelearning_predict fungsi Amazon untuk menerbitkan ulang ke topik jika data dalam payload MQTT diklasifikasikan sebagai 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" } } ] }

Berikut ini adalah contoh file payload dengan aturan yang menerbitkan pesan ke aliran input 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" } } ] }

Berikut ini adalah contoh file payload dengan aturan yang memulai eksekusi mesin status 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" } } ] }