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

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

Wajib.
Versi SQL

Versi mesin SQL aturan yang digunakan saat mengevaluasi aturan. Meskipun properti ini opsional, kami sangat menyarankan Anda menentukan SQL versinya. AWS IoT Core Konsol menyetel 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 SNS Amazon, 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 IAM peran 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 Berikutnya.

  5. Pada halaman SQLpernyataan Konfigurasi, pilih SQL versi dan masukkan SQL pernyataan. Contoh SQL pernyataan bisaSELECT temperature FROM 'iot/topic' WHERE temperature > 50. Untuk informasi selengkapnya, lihat SQLversi dan AWS IoT SQLreferensi.

  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 IAMperan, 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 IAM peran yang dipilih. Anda dapat memilih Lihat untuk melihat IAM peran dan kebijakan dari IAM konsol. Tindakan kesalahan adalah opsional. Anda dapat menemukan informasi lebih lanjut di Penanganan kesalahan (tindakan kesalahan). Untuk informasi selengkapnya tentang membuat IAM peran untuk aturan Anda, lihat Memberikan aturan akses yang diperlukan. Pilih Berikutnya.

  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. SQLPernyataan memfilter 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. SQLPernyataan tersebut memfilter pesan, dan peran ARN memberikan AWS IoT 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 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" } } ] }

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

{ "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 machinelearning_predict fungsi Amazon SageMaker AI untuk menerbitkan ulang ke topik jika data dalam MQTT payload 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" } } ] }