View a markdown version of this page

Membuat AWS IoT aturan - AWS IoT Core

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

Membuat AWS IoT aturan

Anda dapat membuat AWS IoT aturan untuk merutekan data dari hal-hal yang terhubung untuk berinteraksi dengan AWS layanan lain. A AWS IoT turan 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 dari aturan tersebut. 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. Kon AWS IoT Core sol menyetel properti ini ke 2016-03-23 secara default. Jika properti ini tidak disetel, seperti dalam AWS CLI perintah atau CloudFormation templat, 2015-10-08 digunakan. Untuk informasi selengkapnya, lihat Versi SQL.

Wajib.
Satu atau lebih tindakan Tind AWS IoT akan dilakukan saat memberlakukan aturan. Misalnya, Anda dapat memasukkan data ke dalam tabel DynamoDB, menulis data ke bucket Amazon S3, memublikasikan ke topik Amazon SNS, atau menginvokasi fungsi Lambda. Wajib.
Tindakan kesalahan T AWS IoT indakan 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 mengambil peran ini ketika menerapkan aturan. Untuk informasi selengkapnya, lihat Mem AWS IoT berikan aturan akses yang diperlukan dan M eneruskan izin peran.

Saat membuat aturan, perhatikan berapa banyak data yang Anda publikasikan pada 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 sumber AWS daya yang digunakan oleh tindakan target. Sebaiknya hindari pola topik wildcard dalam aturan penerbitan ulang untuk mencegah pemrosesan duplikat dan mengurangi biaya.

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.

Membuat aturan (Konsol)

Untuk membuat aturan (Konsol Manajemen AWS)

Gunakan Konsol Manajemen AWS perintah untuk membuat aturan:

  1. Buka konsol AWS IoT.

  2. Pada navigasi kiri, pilih Perutean pesan dari bagian Kelola. Kemudian pilih A turan.

  3. Pada halaman Aturan, pilih Buat aturan.

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

  5. Pada halaman Konfigurasi pernyataan SQL, pilih versi SQL dan masukkan pernyataan SQL. Contoh pernyataan SQL dapat berupaSELECT 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. Di Tind akan 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. Tergantung 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 berdasarkan pecahan dalam steam.

    3. Di 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 di aws-iot-rule bawah peran IAM yang 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 Pen anganan kesalahan (tindakan kesalahan). Untuk informasi selengkapnya tentang membuat peran IAM untuk aturan Anda, lihat Memberikan aturan akses yang diperlukan. Pilih Berikutnya.

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

Setelah Anda berhasil membuat aturan, 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 perintah create-topic-rule 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 memberikan AWS IoT 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": "amzn-s3-demo-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 dilanjutkan 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 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" } } ] }