Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kueri status konektivitas perangkat
AWS IoT Fleet Indexing mendukung kueri konektivitas perangkat individual, memungkinkan Anda untuk secara efisien mengambil status konektivitas dan metadata terkait untuk perangkat tertentu. Fitur ini melengkapi kemampuan pengindeksan dan kueri di seluruh armada yang ada.
Cara kerjanya
Dukungan kueri konektivitas perangkat dapat digunakan untuk pengambilan status konektivitas perangkat tunggal yang dioptimalkan. API ini menyediakan latensi rendah, akses throughput tinggi ke informasi konektivitas khusus perangkat terbaru. Setelah Anda mengaktifkan pengindeksan konektivitas, Anda akan memiliki akses ke API kueri ini yang akan dikenakan biaya sebagai kueri standar. Untuk informasi selengkapnya, lihat Harga Manajemen AWS IoT Perangkat
Fitur
Dengan dukungan kueri konektivitas perangkat, Anda dapat:
-
Kueri status konektivitas saat ini (terhubung atau terputus) untuk perangkat tertentu yang menggunakannya.
thingName -
Ambil metadata konektivitas tambahan, termasuk:
-
Putuskan alasan
-
Stempel waktu untuk acara sambungkan atau putuskan sambungan terbaru.
-
Informasi sesi termasuk durasi keep-alive
-
Informasi sesi tingkat soket termasuk alamat IP, port, dan ID titik akhir VPC. Informasi ini hanya tersedia jika kondisi berikut terpenuhi:
-
Anda mengaktifkan opsi ini dalam pengaturan konfigurasi pengindeksan armada.
-
Anda memiliki izin yang sesuai dalam kebijakan IAM saat menjalankan API.
-
-
Manfaat
-
Latensi rendah: Mencerminkan status konektivitas perangkat terbaru dan menawarkan latensi rendah untuk mencerminkan perubahan status koneksi dari IoT Core. IoT Core menentukan perangkat sebagai terputus baik segera setelah menerima permintaan pemutusan dari perangkat atau jika perangkat terputus tanpa mengirim permintaan pemutusan sambungan. Inti IoT akan menunggu 1,5x dari waktu keep-alive yang dikonfigurasi sebelum klien ditentukan untuk terputus. Connectivity status API akan mencerminkan perubahan ini biasanya kurang dari satu detik setelah IoT Core menentukan perubahan status terhubung perangkat.
-
Throughput tinggi: Mendukung 350 Transaksi Per Detik (TPS) secara default, dan dapat disesuaikan ke lebih tinggi berdasarkan permintaan.
-
Retensi data: Menyimpan data peristiwa tanpa batas waktu saat ConnectivityIndexing mode Fleet Indexing (FI) diaktifkan dan masalahnya tidak dihapus. Jika Anda menonaktifkan Pengindeksan Konektivitas, catatan tidak akan disimpan.
catatan
Jika pengindeksan status konektivitas diaktifkan sebelum peluncuran API ini, Pengindeksan Armada mulai melacak perubahan status konektivitas setelah peluncuran API dan mencerminkan status yang diperbarui berdasarkan perubahan tersebut.
Prasyarat
Untuk menggunakan dukungan kueri konektivitas perangkat:
-
Onboard dan daftarkan perangkat ke AWS IoT Core wilayah pilihan Anda
-
Aktifkan Pengindeksan Armada dengan pengindeksan Konektivitas. Opsional: Opt-in untuk menerima informasi tingkat soket dengan mengaktifkan
includeSocketInformationopsi.
catatan
Tidak diperlukan pengaturan tambahan jika Anda sudah mengaktifkan pengindeksan konektivitas.
Untuk petunjuk penyiapan terperinci, lihat Panduan AWS IoT Pengembang
Contoh
Perintah CLI:
aws iot get-thing-connectivity-data --include-socket-information --thing-name myThingName
Tanggapan:
{ "thingName": "myThingName", "connected": true, "timestamp": "2024-12-19T10:00:00.000000-08:00", "disconnectReason": "NONE", "sourceIp": "192.0.2.1", "sourcePort": 52123, "targetIp": "198.51.100.1", "targetPort": 8883, "vpcEndpointId": "vpce-1234567890abcdef0", "keepAliveDuration": 60, "cleanSession": true, "clientId": "myThingName" }
Parameter API
-
thingName: Nama perangkat yang terdaftar di AWS IoT Registry. Ini harus sesuai dengan yangclientIddigunakan untuk terhubung ke AWS IoT Core. -
includeSocketInformation:includeSocketInformationParameter mengontrol apakah informasi jaringan tingkat soket disertakan dalam respons API. Ketika disetel ke true, respons mencakup bidang berikut:sourceIp, sourcePort, targetIp, targetPort, vpcEndpointId. Bila tidakincludeSocketInformationditentukan atau disetel ke false, bidang soket ini dikecualikan dari respons. Untuk membatasi pengguna IAM tertentu dari mengakses informasi soket, Anda harus menentukan ini dalam kebijakan IAM mereka dengan menyetel kunciincludeSocketInformationkondisi menjadi false
Bidang Respons
-
thingName: Nama perangkat yang terdaftar di AWS IoT Registry. Ini harus sesuai dengan yangclientIddigunakan untuk terhubung ke AWS IoT Core. -
connected: Nilai boolean true yang menunjukkan perangkat ini saat ini terhubung. -
disconnectReason: Alasan untuk memutuskan sambungan. AkanNONEuntuk perangkat yang terhubung danUNKNOWNuntuk perangkat yang belum pernah terhubung. Untuk perangkat yang terputus, ini akan menunjukkan apakah pemutusan itu dimulai klien, server dimulai, karena authentication/authorization masalah atau karena masalah jaringan. Untuk memutuskan kode alasan, lihat LifeCycleEvents -
timestamp: Stempel waktu yang mewakili peristiwa koneksi atau pemutusan terbaru perangkat. -
clientId: ClientID klien MQTT. -
keepAliveDuration: Interval keep-alive dalam hitungan detik yang ditentukan klien saat membuat koneksi. Ini menentukan seberapa sering klien mengirim pesan keep-alive untuk mempertahankan koneksi. -
cleanSession: Menunjukkan apakah klien menggunakan sesi bersih. -
sessionExpiry: Konfigurasi kedaluwarsa sesi persisten yang ditentukan klien saat membuat koneksi. Ini menentukan berapa lama sesi akan tetap aktif setelah klien terputus. -
sourceIp: Alamat IP klien yang memulai koneksi. Hanya dikembalikan jikaincludeSocketInformationdisetel menjadi true dan pengguna diberi wewenang untuk mengambil informasi ini. -
sourcePort: Nomor port yang digunakan oleh klien untuk koneksi. Hanya dikembalikan jikaincludeSocketInformationdisetel menjadi true dan pengguna diberi wewenang untuk mengambil informasi ini. -
targetIp: Alamat IP tempat permintaan koneksi dibuat. Hanya dikembalikan jikaincludeSocketInformationdisetel menjadi true dan pengguna diberi wewenang untuk mengambil informasi ini -
targetPort: Nomor port dari titik akhir AWS IoT Core yang terhubung dengan klien. Hanya dikembalikan jikaincludeSocketInformationdisetel menjadi true dan pengguna diberi wewenang untuk mengambil informasi ini. -
vpcEndpointId: ID titik akhir VPC yang terhubung dengan klien, jika berlaku. Hanya dikembalikan jikaincludeSocketInformationdisetel menjadi true dan pengguna diberi wewenang untuk mengambil informasi ini.
Izin yang Diperlukan
Untuk menggunakan GetThingConnectivityData API, Anda memerlukan izin IAM berikut
iot:GetThingConnectivityData
Anda dapat membuat cakupan izin ini untuk hal-hal tertentu menggunakan kebijakan berbasis sumber daya. Gunakan iot:IncludeSocketInformation kondisi untuk menerapkan kontrol akses granular pada informasi soket. Contoh kebijakan di bawah ini menunjukkan skenario di mana Anda menolak akses pengguna ke informasi soket. Harap dicatat bahwa contoh ini berfungsi ketika itu adalah satu-satunya kebijakan yang memberikan akses ke tindakan GetThingConnectivityData.
Contoh Kebijakan Otorisasi
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iot:GetThingConnectivityData" ], "Resource": [ "arn:aws:iot:us-east-1:123456789012:thing/*"], "Condition": { "Bool": { "iot:IncludeSocketInformation": "false" } } }] }