Memanggil API pemeriksaan kondisi lokal - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

Memanggil API pemeriksaan kondisi lokal

AWS IoT Greengrass berisi API HTTP lokal yang menyediakan snapshot dari keadaan saat ini dari proses pekerja lokal yang dimulai oleh AWS IoT Greengrass. Snapshot ini mencakup fungsi Lambda yang ditetapkan pengguna dan fungsi Lambda sistem. Fungsi Lambda sistem adalah bagian dari perangkat lunak AWS IoT Greengrass core. Mereka berjalan sebagai pekerja lokal yang memproses pada perangkat core dan mengelola operasi seperti perutean pesan, sinkronisasi bayangan lokal, dan deteksi alamat IP otomatis.

API pemeriksaan kondisi support permintaan berikut:

Permintaan dikirim secara lokal memalui perangkat dan tidak memerlukan koneksi internet.

Dapatkan informasi kondisi untuk semua pekerja

Mengirim GET permintaan untuk mendapatkan informasi kondisi tentang semua pekerja yang sedang bekerja.

  • Ganti Port dengan nomor port IPC.

GET http://localhost:port/2016-11-01/health/workers
port

Nomor port IPC.

Nilai dapat bervariasi antara 1024 dan 65535. Nilai default-nya adalah 8000.

Untuk mengubah nomor port ini, Anda dapat memperbarui properti ggDaemonPort pada file config.json tersebut. Untuk informasi selengkapnya, lihat AWS IoT Greengrass file konfigurasi core.

Contoh Permintaan

Contoh permintaan curl berikut untuk mendapatkan informasi kondisi dari semua pekerja.

curl http://localhost:8000/2016-11-01/health/workers

Tanggapan JSON

Permintaan ini mengembalikan array dari objek informasi kondisi pekerja ini.

Contoh tanggapan

Contoh respons berikut mencantumkan informasi kondisi objek dari semua proses pekerja yang dimulai oleh AWS IoT Greengrass.

[ { "FuncArn": "arn:aws:lambda:::function:GGShadowService:1", "WorkerId" : "65515053-2f70-43dc-7cc0-1712bEXAMPLE", "ProcessId": "1234", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:::function:GGSecretManager:1", "WorkerId": "a9916cc2-1b4d-4f0e-4b12-b1872EXAMPLE", "ProcessId": "9798", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3", "WorkerId": "2e6f785e-66a5-42c9-67df-42073EXAMPLE", "ProcessId": "11837", "WorkerState": "Waiting" }, ... ]

Dapatkan informasi kondisi tentang pekerja tertentu

Mengirim permintaan POST untuk mendapatkan informasi kondisi dari pekerja tertentu. Ganti Port dengan nomor port IPC. Default-nya adalah 8000.

POST http://localhost:port/2016-11-01/health/workers

Contoh Permintaan

Contoh permintaan berikut curl untuk mendapatkan informasi kondisi dari pekerja tertentu.

curl --data "@body.json" http://localhost:8000/2016-11-01/health/workers

Inilah contoh body.json isi permintaan:

{ "FuncArns": [ "arn:aws:lambda:::function:GGShadowService:1", "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3" ] }

Isi permintaan berisi FuncArns array.

FuncArns

Daftar Amazon Resource Name (ARN) untuk fungsi Lambda yang mewakili pekerja target.

  • Untuk fungsi Lambda yang ditetapkan pengguna, tentukan ARN versi yang digunakan saat ini. Jika Anda menambahkan fungsi Lambda ke grup menggunakan alias ARN, Anda dapat menggunakan permintaan GET untuk mendapatkan semua data pekerja, dan kemudian memilih ARN yang Anda inginkan untuk kueri.

  • Untuk fungsi Lambda sistem, tentukan ARN dari fungsi Lambda yang sesuai. Untuk informasi selengkapnya, lihat Fungsi Lambda sistem.

Jenis: array string

Panjang minimum: 1

Panjang maksimum: Jumlah total pekerja yang dimulai olehAWS IoT Greengrasspada perangkat inti.

Tanggapan JSON

Permintaan ini mengembalikan Workers array dan InvalidArns array.

Workers

Daftar objek informasi kondisi untuk pekerja tertentu.

Jenis: array dari objek informasi kondisi

InvalidArns

Daftar fungsi ARN yang tidak valid, termasuk fungsi ARN yang tidak memiliki pekerja terkait.

Jenis: array string

Contoh tanggapan

Berikut daftar contoh respons objek informasi kondisi untuk pekerja tertentu.

{ "Workers": [ { "FuncArn": "arn:aws:lambda:::function:GGShadowService:1", "WorkerId" : "65515053-2f70-43dc-7cc0-1712bEXAMPLE", "ProcessId": "1234", "WorkerState": "Waiting" }, { "FuncArn": "arn:aws:lambda:us-west-2:123456789012:function:my-lambda-function:3", "WorkerId": "2e6f785e-66a5-42c9-67df-42073ESAMPLE", "ProcessId": "11837", "WorkerState": "Waiting" } ], "InvalidArns" : [ "some-malformed-arn", "arn:aws:lambda:us-west-2:123456789012:function:some-unknown-function:1" ] }

Permintaan ini mengembalikan error berikut:

400 Permintaan tidak valid

Isi permintaan yang salah format. Untuk mengatasi masalah ini, gunakan format berikut dan kirim permintaan:

{"FuncArns":["function-1-arn","function-2-arn"]}
400 Permintaan melebihi jumlah pekerja maksimum

Jumlah ARN yang ditentukan dalam array FuncArns melebihi jumlah pekerja.

Informasi kondisi pekerja

Objek informasi kondisi berisi properti berikut:

FuncArn

ARN dari fungsi Lambda sistem yang mewakili pekerja.

Tipe: string

WorkerId

ID pekerja. Properti ini dapat berguna untuk debugging. File runtime.log dan catatan fungsi Lambda berisi ID pekerja, sehingga properti ini dapat sangat berguna untuk debug fungsi Lambda sesuai permintaan yang menjalankan beberapa instans.

Tipe: string

ProcessId

Proses ID (PID) dari proses pekerja.

Tipe: int

WorkerState

Keadaan pekerja.

Tipe: string

Berikut ini adalah kemungkinan status pekerja:

Working

Memproses pesan.

Waiting

Menunggu pesan. Berlaku untuk fungsi Lambda berumur panjang yang berjalan sebagai daemon atau proses mandiri.

Starting

Berputar, memulai.

FailedInitialization

Gagal menginisialisasi.

Terminated

Dihentikan oleh daemon Greengrass

NotStarted

Gagal memulai, membuat upaya memulai lagi.

Initialized

Berhasil diinisialisasi.

Fungsi Lambda sistem

Anda dapat meminta informasi kondisi untuk fungsi Lambda sistem berikut:

GGCloudSpooler

Mengelola antrean untuk pesan MQTT yang memiliki AWS IoT Core sebagai sumber atau target.

ARN:arn:aws:lambda:::function:GGCloudSpooler:1

GGConnManager

Rute pesan MQTT antara core Greengrass dan perangkat klien.

ARN:arn:aws:lambda:::function:GGConnManager

GGDeviceCertificateManager

MendengarkanAWS IoTbayangan untuk perubahan core titik akhir IP dan menghasilkan sertifikat server yang digunakan oleh GGConnManager untuk saling autentikasi.

ARN:arn:aws:lambda:::function:GGDeviceCertificateManager

GGIPDetector

Mengelola deteksi alamat IP otomatis yang memungkinkan perangkat dalam grup Greengrass untuk menemukan perangkat core Greengrass. Layanan ini tidak berlaku bila Anda memberikan alamat IP secara manual.

ARN:arn:aws:lambda:::function:GGIPDetector:1

GGSecretManager

Mengelola penyimpanan aman dari rahasia lokal dan akses oleh Lambda dan konektor yang ditentukan pengguna.

ARN:arn:aws:lambda:::function:GGSecretManager:1

GGShadowService

Mengelola bayangan lokal untuk perangkat klien.

ARN:arn:aws:lambda:::function:GGShadowService

GGShadowSyncManager

Menyinkronkan bayangan lokal denganAWS Clouduntuk perangkat inti dan perangkat klien, jika perangkatsyncShadowproperti diatur ketrue.

ARN:arn:aws:lambda:::function:GGShadowSyncManager

GGStreamManager

Memproses aliran data secara lokal dan melakukan ekspor otomatis ke AWS Cloud.

ARN:arn:aws:lambda:::function:GGStreamManager:1

GGTES

Layanan pertukaran token lokal yang mengambil kredensial IAM didefinisikan dalam peran grup Greengrass yang menggunakan kode lokal untuk mengakses layanan AWS ini.

ARN:arn:aws:lambda:::function:GGTES