View a markdown version of this page

Kueri status konektivitas perangkat - AWS IoT Core

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:

  1. Kueri status konektivitas saat ini (terhubung atau terputus) untuk perangkat tertentu yang menggunakannya. thingName

  2. Ambil metadata konektivitas tambahan, termasuk:

    1. Putuskan alasan

    2. Stempel waktu untuk acara sambungkan atau putuskan sambungan terbaru.

    3. Informasi sesi termasuk durasi keep-alive

    4. Informasi sesi tingkat soket termasuk alamat IP, port, dan ID titik akhir VPC. Informasi ini hanya tersedia jika kondisi berikut terpenuhi:

      1. Anda mengaktifkan opsi ini dalam pengaturan konfigurasi pengindeksan armada.

      2. Anda memiliki izin yang sesuai dalam kebijakan IAM saat menjalankan API.

Manfaat

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

  2. Throughput tinggi: Mendukung 350 Transaksi Per Detik (TPS) secara default, dan dapat disesuaikan ke lebih tinggi berdasarkan permintaan.

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

  1. Siapkan AWS akun

  2. Onboard dan daftarkan perangkat ke AWS IoT Core wilayah pilihan Anda

  3. Aktifkan Pengindeksan Armada dengan pengindeksan Konektivitas. Opsional: Opt-in untuk menerima informasi tingkat soket dengan mengaktifkan includeSocketInformation opsi.

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 yang clientId digunakan untuk terhubung ke AWS IoT Core.

  • includeSocketInformation: includeSocketInformation Parameter mengontrol apakah informasi jaringan tingkat soket disertakan dalam respons API. Ketika disetel ke true, respons mencakup bidang berikut:sourceIp, sourcePort, targetIp, targetPort, vpcEndpointId. Bila tidak includeSocketInformation ditentukan 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 kunci includeSocketInformation kondisi menjadi false

Bidang Respons

  • thingName: Nama perangkat yang terdaftar di AWS IoT Registry. Ini harus sesuai dengan yang clientId digunakan untuk terhubung ke AWS IoT Core.

  • connected: Nilai boolean true yang menunjukkan perangkat ini saat ini terhubung.

  • disconnectReason: Alasan untuk memutuskan sambungan. Akan NONE untuk perangkat yang terhubung dan UNKNOWN untuk 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 jika includeSocketInformation disetel menjadi true dan pengguna diberi wewenang untuk mengambil informasi ini.

  • sourcePort: Nomor port yang digunakan oleh klien untuk koneksi. Hanya dikembalikan jika includeSocketInformation disetel menjadi true dan pengguna diberi wewenang untuk mengambil informasi ini.

  • targetIp: Alamat IP tempat permintaan koneksi dibuat. Hanya dikembalikan jika includeSocketInformation disetel 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 jika includeSocketInformation disetel menjadi true dan pengguna diberi wewenang untuk mengambil informasi ini.

  • vpcEndpointId: ID titik akhir VPC yang terhubung dengan klien, jika berlaku. Hanya dikembalikan jika includeSocketInformation disetel 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" } } }] }