Firehose - AWS IoT Greengrass

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

Firehose

Komponen Firehose (aws.greengrass.KinesisFirehose) menerbitkan data melalui aliran pengiriman Amazon Data Firehose ke tujuan, seperti Amazon S3, Amazon Redshift, dan Amazon Service. OpenSearch Untuk informasi selengkapnya, lihat Apa itu Amazon Data Firehose? di Panduan Pengembang Firehose Data Amazon.

Untuk mempublikasikan aliran pengiriman Kinesis dengan komponen ini, publikasikan pesan ke topik yang berlangganan komponen ini. Secara default, komponen ini berlangganan topik publish/subscribe kinesisfirehose/message dan kinesisfirehose/message/binary/# lokal. Anda dapat menentukan topik lain, termasuk AWS IoT Core MQTT topik, saat menerapkan komponen ini.

catatan

Komponen ini menyediakan fungsionalitas yang mirip dengan konektor Firehose di AWS IoT Greengrass V1. Untuk informasi selengkapnya, lihat Konektor Firehose di Panduan Pengembang AWS IoT Greengrass V1.

Versi

Komponen ini memiliki versi berikut:

  • 2.1.x

  • 2.0.x

Tipe

Komponen ini adalah komponen Lambda () aws.greengrass.lambda. Inti Greengrass menjalankan fungsi Lambda komponen ini menggunakan komponen peluncur Lambda.

Untuk informasi selengkapnya, lihat Jenis komponen.

Sistem operasi

Komponen ini hanya dapat diinstal pada perangkat inti Linux.

Persyaratan

Komponen ini memiliki persyaratan sebagai berikut:

  • Perangkat inti Anda harus memenuhi persyaratan untuk menjalankan fungsi Lambda. Jika Anda ingin perangkat inti untuk menjalankan fungsi Lambda kontainer, perangkat harus memenuhi persyaratan untuk melakukannya. Untuk informasi selengkapnya, lihat Persyaratan fungsi Lambda.

  • Python versi 3.7 diinstal pada perangkat inti dan ditambahkan ke variabel lingkungan. PATH

  • Peran perangkat Greengrass harus mengizinkan firehose:PutRecordBatch dan tindakan, seperti firehose:PutRecord yang ditunjukkan dalam kebijakan contoh berikut. IAM

    { "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch" ], "Effect": "Allow", "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/stream-name" ] } ] }

    Anda dapat secara dinamis menimpa aliran pengiriman default dalam muatan pesan masukan untuk komponen ini. Jika aplikasi Anda menggunakan fitur ini, IAM kebijakan harus menyertakan semua aliran target sebagai sumber daya. Anda dapat memberikan akses terperinci atau bersyarat ke sumber daya (misalnya, dengan menggunakan skema penamaan wildcard *).

  • Untuk menerima data keluaran dari komponen ini, Anda harus menggabungkan pemutakhiran konfigurasi berikut untuk komponen router langganan lama (aws.greengrass.LegacySubscriptionRouter) saat menerapkan komponen ini. Konfigurasi ini menentukan topik di mana komponen ini menerbitkan tanggapan.

    Legacy subscription router v2.1.x
    { "subscriptions": { "aws-greengrass-kinesisfirehose": { "id": "aws-greengrass-kinesisfirehose", "source": "component:aws.greengrass.KinesisFirehose", "subject": "kinesisfirehose/message/status", "target": "cloud" } } }
    Legacy subscription router v2.0.x
    { "subscriptions": { "aws-greengrass-kinesisfirehose": { "id": "aws-greengrass-kinesisfirehose", "source": "arn:aws:lambda:region:aws:function:aws-greengrass-kinesisfirehose:version", "subject": "kinesisfirehose/message/status", "target": "cloud" } } }
    • Ganti region dengan Wilayah AWS yang Anda gunakan.

    • Ganti version dengan versi fungsi Lambda yang dijalankan komponen ini. Untuk menemukan versi fungsi Lambda, Anda harus melihat resep untuk versi komponen ini yang ingin Anda deploy. Buka halaman detail komponen ini di konsol AWS IoT Greengrass tersebut, dan cari pasangan nilai kunci fungsi Lambda. Pasangan kunci-nilai ini berisi nama dan versi fungsi Lambda.

    penting

    Anda harus memperbarui versi fungsi Lambda pada router langganan warisan setiap kali Anda men-deploy komponen ini. Hal ini memastikan bahwa Anda menggunakan versi fungsi Lambda yang benar untuk versi komponen yang Anda deploy.

    Untuk informasi selengkapnya, lihat Buat deployment.

  • Komponen Firehose didukung untuk berjalan di file. VPC Untuk menerapkan komponen ini di aVPC, berikut ini diperlukan.

    • Komponen Firehose harus memiliki konektivitas firehose.region.amazonaws.com yang memiliki titik VPC akhir. com.amazonaws.region.kinesis-firehose

Titik akhir dan port

Komponen ini harus dapat melakukan permintaan keluar ke titik akhir dan port berikut, selain titik akhir dan port yang diperlukan untuk operasi dasar. Untuk informasi selengkapnya, lihat Izinkan lalu lintas perangkat melalui proxy atau firewall.

Titik Akhir Port Wajib Deskripsi

firehose.region.amazonaws.com

443 Ya

Unggah data ke Firehose.

Dependensi

Saat Anda menerapkan komponen, gunakan AWS IoT Greengrass juga versi dependensinya yang kompatibel. Ini berarti bahwa Anda harus memenuhi persyaratan untuk komponen dan semua dependensinya untuk berhasil men-deploy komponen. Bagian ini berisi daftar dependensi untuk versi yang dirilis dari komponen ini dan kendala versi semantik yang menentukan versi komponen untuk setiap dependensi. Anda juga dapat melihat dependensi untuk setiap versi komponen di konsol AWS IoT Greengrass tersebut. Pada halaman detail komponen, cari daftar Dependensi.

2.1.8

Tabel berikut mencantumkan dependensi untuk versi 2.1.8 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.14.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.1.7

Tabel berikut mencantumkan dependensi untuk versi 2.1.7 dari komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.13.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.1.6

Tabel berikut mencantumkan dependensi untuk versi 2.1.6 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.12.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.1.5

Tabel berikut mencantumkan dependensi untuk versi 2.1.5 dari komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.11.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.1.4

Tabel berikut mencantumkan dependensi untuk versi 2.1.4 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.10.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.1.3

Tabel berikut mencantumkan dependensi untuk versi 2.1.3 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.9.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.1.2

Tabel berikut mencantumkan dependensi untuk versi 2.1.2 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.8.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.1.1

Tabel berikut mencantumkan dependensi untuk versi 2.1.1 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.7.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.0.8 - 2.1.0

Tabel berikut mencantumkan dependensi untuk versi 2.0.8 dan 2.1.0 dari komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.6.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.0.7

Tabel berikut mencantumkan dependensi untuk versi 2.0.7 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.5.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.0.6

Tabel berikut mencantumkan dependensi untuk versi 2.0.6 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.4.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.0.5

Tabel berikut mencantumkan dependensi untuk versi 2.0.5 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.3.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.0.4

Tabel berikut mencantumkan dependensi untuk versi 2.0.4 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.0 <2.2.0 Keras
Peluncur Lambda ^2.0.0 Keras
Runtime Lambda ^2.0.0 Lunak
Layanan pertukaran Token ^2.0.0 Keras
2.0.3

Tabel berikut mencantumkan dependensi untuk versi 2.0.3 komponen ini.

Dependensi Versi yang kompatibel Jenis dependensi
Inti Greengrass >=2.0.3 <2.1.0 Keras
Peluncur Lambda >=1.0.0 Keras
Runtime Lambda >=1.0.0 Lunak
Layanan pertukaran Token >=1.0.0 Keras

Untuk informasi selengkapnya tentang dependensi komponen, lihat referensi resep komponen.

Konfigurasi

Komponen ini menyediakan parameter konfigurasi berikut yang dapat Anda sesuaikan ketika Anda men-deploy komponen.

catatan

Konfigurasi default komponen ini meliputi parameter fungsi Lambda. Kami sarankan Anda mengedit hanya parameter berikut untuk mengonfigurasi komponen ini pada perangkat Anda.

lambdaParams

Sebuah objek yang berisi parameter untuk fungsi Lambda komponen ini. Objek ini berisi informasi berikut:

EnvironmentVariables

Sebuah objek yang berisi parameter fungsi Lambda ini. Objek ini berisi informasi berikut:

DEFAULT_DELIVERY_STREAM_ARN

Aliran pengiriman Firehose default tempat komponen mengirimkan data. ARN Anda dapat menimpa aliran tujuan dengan properti delivery_stream_arn dalam muatan pesan masukan.

catatan

Peran perangkat inti harus memungkinkan tindakan yang diperlukan pada semua aliran pengiriman target. Untuk informasi selengkapnya, lihat Persyaratan.

PUBLISH_INTERVAL

(Opsional) Jumlah maksimum detik untuk menunggu sebelum komponen menerbitkan data batch ke Firehose. Untuk mengonfigurasi komponen untuk mempublikasikan metrik saat menerimanya, yang berarti tanpa batching, tentukan 0.

Nilai ini bisa paling banyak 900 detik.

Default: 10 detik

DELIVERY_STREAM_QUEUE_SIZE

(Opsional) Jumlah maksimum rekaman yang disimpan dalam memori sebelum komponen menolak catatan baru untuk aliran pengiriman yang sama.

Nilai ini harus setidaknya berisi 2.000 catatan.

Default: 5.000 catatan

containerMode

(Opsional) Mode kontainerisasi untuk komponen ini. Pilih dari salah satu pilihan berikut:

  • NoContainer – Komponen tersebut tidak berjalan di lingkungan waktu aktif terisolasi.

  • GreengrassContainer— Komponen berjalan di lingkungan runtime yang terisolasi di dalam AWS IoT Greengrass wadah.

Default: GreengrassContainer

containerParams

(Opsional) Sebuah objek yang berisi parameter kontainer untuk komponen ini. Komponen menggunakan parameter ini jika Anda menentukan GreengrassContainer untuk containerMode.

Objek ini berisi informasi berikut:

memorySize

(Opsional) Jumlah memori (dalam kilobyte) yang akan dialokasikan ke komponen.

Default ke 64 MB (65.535 KB).

pubsubTopics

(Opsional) Sebuah objek yang berisi topik di mana komponen berlangganan untuk menerima pesan. Anda dapat menentukan setiap topik dan apakah komponen berlangganan MQTT topik dari AWS IoT Core atau topik penerbitan/langganan lokal.

Objek ini berisi informasi berikut:

0 - Ini adalah indeks himpunan sebagai string.

Objek yang berisi informasi berikut:

type

(Opsional) Jenis olahpesan publikasikan/berlangganan yang digunakan oleh komponen ini untuk berlangganan pesan. Pilih dari salah satu pilihan berikut:

  • PUB_SUB – Berlangganan ke pesan terbit/berlangganan lokal. Jika Anda memilih opsi ini, topik tidak dapat berisi MQTT wildcard. Untuk informasi lebih lanjut tentang cara mengirim pesan dari komponen kustom ketika Anda menentukan opsi ini, lihat Pesan lokal publikasi/berlangganan.

  • IOT_CORE— Berlangganan AWS IoT Core MQTT pesan. Jika Anda memilih opsi ini, topik dapat berisi MQTT wildcard. Untuk informasi lebih lanjut tentang cara mengirim pesan dari komponen kustom ketika Anda menentukan opsi ini, lihat Terbitkan/berlangganan pesan AWS IoT Core MQTT.

Default: PUB_SUB

topic

(Opsional) Topik yang menjadi langganan komponen untuk menerima pesan. Jika Anda menentukan IotCore untuktype, Anda dapat menggunakan MQTT wildcard (+dan#) dalam topik ini.

contoh Contoh: Pembaruan gabungan konfigurasi (mode kontainer)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "GreengrassContainer" }
contoh Contoh: Pembaruan gabungan konfigurasi (tidak ada mode kontainer)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_DELIVERY_STREAM_ARN": "arn:aws:firehose:us-west-2:123456789012:deliverystream/mystream" } }, "containerMode": "NoContainer" }

Data input

Komponen ini menerima konten pengaliran pada topik berikut dan mengirimkan konten ke aliran pengiriman target. Komponen menerima dua jenis data input:

  • JSONdata tentang kinesisfirehose/message topik tersebut.

  • Data biner pada topik kinesisfirehose/message/binary/#.

Topik default untuk JSON data (publikasi lokal/berlangganan): kinesisfirehose/message

Pesan menerima properti berikut. Pesan input harus dalam JSON format.

request

Data yang akan dikirim ke aliran pengiriman dan aliran pengiriman target, jika berbeda dari pengaliran default.

Jenis: object yang berisi informasi berikut:

data

Data yang akan dikirim ke aliran pengiriman.

Tipe: string

delivery_stream_arn

(Opsional) ARN Aliran pengiriman Firehose target. Tentukan properti ini untuk menimpa aliran pengiriman default.

Tipe: string

id

ID acak untuk permintaan. Gunakan properti ini untuk memetakan permintaan inpun untuk respons output. Ketika Anda menentukan properti ini, komponen menetapkan properti id di objek respons untuk nilai ini.

Tipe: string

contoh Contoh input
{ "request": { "delivery_stream_arn": "arn:aws:firehose:region:account-id:deliverystream/stream2-name", "data": "Data to send to the delivery stream." }, "id": "request123" }
Topik default untuk data biner (penerbitan/berlangganan lokal): kinesisfirehose/message/binary/#

Gunakan topik ini untuk mengirim pesan yang berisi data biner. Komponen tidak mengurai data biner. Komponen mengalirkan data sebagaimana adanya.

Untuk memetakan permintaan masukan untuk respons output, ganti wildcard # di topik pesan dengan ID permintaan arbitrer. Misalnya, jika Anda mempublikasikan pesan ke kinesisfirehose/message/binary/request123, properti id di objek respons akan ditetapkan ke request123.

Jika Anda tidak ingin memetakan permintaan ke respons, Anda dapat mempublikasikan pesan ke kinesisfirehose/message/binary/. Pastikan untuk menyertakan garis miring (/).

Data output

Komponen ini menerbitkan tanggapan sebagai data keluaran pada MQTT topik berikut secara default. Anda harus menentukan topik ini sebagai subject dalam konfigurasi untuk komponen router langganan warisan. Untuk informasi lebih lanjut tentang cara mempublikasikan pesan ke komponen ini dari komponen kustom Anda, lihat Terbitkan/berlangganan pesan AWS IoT Core MQTT.

Topik default (AWS IoT Core MQTT): kinesisfirehose/message/status

contoh Contoh Output

Tanggapan berisi status setiap catatan data yang dikirim dalam batch.

{ "response": [ { "ErrorCode": "error", "ErrorMessage": "test error", "id": "request123", "status": "fail" }, { "firehose_record_id": "xyz2", "id": "request456", "status": "success" }, { "firehose_record_id": "xyz3", "id": "request890", "status": "success" } ] }
catatan

Jika komponen mendeteksi kesalahan yang dapat dicoba ulang, seperti kesalahan koneksi, ia akan mencoba ulang publikasi di batch berikutnya.

File log lokal

Komponen ini menggunakan file log berikut.

/greengrass/v2/logs/aws.greengrass.KinesisFirehose.log
Untuk melihat log komponen ini
  • Jalankan perintah berikut pada perangkat inti untuk melihat file log komponen ini secara real time. Ganti /greengrass/v2 dengan jalur ke folder AWS IoT Greengrass root.

    sudo tail -f /greengrass/v2/logs/aws.greengrass.KinesisFirehose.log

Lisensi

Komponen ini mencakup perangkat lunak/lisensi pihak ketiga berikut:

Komponen ini dirilis menurut Perjanjian Lisensi Perangkat Lunak Greengrass Core.

Changelog

Tabel berikut menjelaskan perubahan dalam setiap versi komponen.

Versi

Perubahan

2.1.8

Versi diperbarui untuk Greengrass nucleus versi 2.13.0 rilis.

2.1.7

Versi diperbarui untuk Greengrass nucleus versi 2.12.0 rilis.

2.1.6

Versi diperbarui untuk Greengrass nucleus versi 2.11.0 rilis.

2.1.5

Versi diperbarui untuk Greengrass nucleus versi 2.10.0 rilis.

2.1.4

Versi diperbarui untuk Greengrass nucleus versi 2.9.0 rilis.

2.1.3

Versi diperbarui untuk Greengrass nucleus versi 2.8.0 rilis.

2.1.2

Versi diperbarui untuk Greengrass nucleus versi 2.7.0 rilis.

2.1.1

Versi diperbarui untuk Greengrass nucleus versi 2.6.0 rilis.

2.1.0

Fitur baru

2.0.8

Versi diperbarui untuk Greengrass nucleus versi 2.5.0 rilis.

2.0.7

Versi diperbarui untuk Greengrass nucleus versi 2.4.0 rilis.

2.0.6

Versi yang diperbarui untuk rilis inti Greengrass versi 2.3.0.

2.0.5

Versi yang diperbarui untuk rilis inti Greengrass versi 2.2.0.

2.0.4

Versi yang diperbarui untuk rilis inti Greengrass versi 2.1.0.

2.0.3

Versi awal.

Lihat juga