Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ganti perangkat inti Greengrass ke perangkat yang berbeda Akun AWS atau Wilayah
Anda dapat menerapkan pembaruan konfigurasi nukleus untuk mengalihkan konektivitas IoT perangkat inti dari Akun AWS satu atau Wilayah ke Wilayah lainnya. Ini berguna dalam skenario berikut:
-
Transisi manufaktur ke produksi — Anda menyediakan perangkat dalam akun pementasan selama pembuatan dan memindahkannya ke akun tujuan selama instalasi lapangan.
-
Relokasi geografis — Perangkat yang berpindah dari satu Wilayah ke Wilayah lain harus terhubung ke AWS IoT titik akhir Wilayah setempat untuk mengurangi latensi.
-
Pengurangan dampak kegagalan — Anda mendistribusikan ulang perangkat yang awalnya terkonsentrasi dalam satu akun di beberapa akun untuk membatasi dampak masalah tingkat akun seperti batas kuota layanan atau insiden keamanan.
Saat Anda menerapkan sakelar konektivitas IoT, nukleus memvalidasi konektivitas ke titik akhir baru sebelum menerapkan perubahan dan secara otomatis memutar kembali jika koneksi gagal.
Fitur ini membutuhkan Greengrass nucleus v2.18.0 atau yang lebih baru, atau Greengrass nucleus lite v2.6.0 atau yang lebih baru.
Prasyarat
Sebelum Anda menerapkan sakelar konektivitas, atur yang berikut ini di tujuan Akun AWS dan Wilayah:
-
AWS IoT Hal — Buat sesuatu dengan nama yang sama seperti di akun sumber.
-
Sertifikat — Daftarkan sertifikat perangkat yang sama di akun tujuan. Sertifikat harus berupa sertifikat yang sama dengan yang digunakan perangkat di akun sumber.
-
AWS IoT kebijakan — Lampirkan kebijakan ke sertifikat. Kebijakan harus mengizinkan
iot:ConnectARN resource yang menggunakan akhiran wildcard untuk ID klien:"Resource": "arn:aws:iot:*:*:client/${iot:Connection.Thing.ThingName}*"Anda harus menyertakan akhiran wildcard karena pemeriksaan konektivitas pra-penerbangan nukleus menggunakan ID klien.
thing-name#endpoint-switch -
AWS IoT alias peran - Buat alias peran di Wilayah tujuan dengan izin peran IAM yang sesuai untuk operasi Greengrass.
catatan
Untuk menggunakan variabel kebijakan AWS IoT hal seperti ${iot:Connection.Thing.ThingName} dalam AWS IoT kebijakan, Anda harus melampirkan sertifikat secara eksklusif ke AWS IoT benda di akun tujuan.
Untuk perangkat inti inti Greengrass, Anda juga harus greengrassDataPlaneEndpoint mengatur iotdata ke dalam konfigurasi nukleus. Sertakan pengaturan ini dalam penerapan sakelar konektivitas atau selama penyediaan awal.
Tanpa pengaturan ini, bidang data tetap terikat ke akun asli setelah sakelar. Ini merusak unduhan artefak komponen dan mengendalikan operasi pesawat. Untuk informasi selengkapnya, lihat parameter greengrassDataPlaneEndpoint konfigurasi diInti Greengrass.
Untuk perangkat inti Greengrass nucleus lite, Anda harus membuat komponen aws.greengrass.NucleusLite pribadi di akun Anda sebelum dapat menerapkan pembaruan konfigurasi ke nukleus. AWS IoT Greengrass deployment hanya dapat menargetkan komponen yang ada di registri komponen akun, dan tidak ada komponen publik untuk nucleus lite.
Buat komponen dengan aws_nucleus_lite runtime dan siklus hidup kosong (tanpa tindakan). Versi komponen harus cocok dengan versi nucleus lite yang berjalan di perangkat.
Buat penyebaran
Buat penyebaran yang menargetkan perangkat inti atau grup hal di akun sumber. Penerapan mengirimkan pembaruan konfigurasi gabungan ke komponen inti dengan nilai titik AWS IoT akhir yang baru.
Untuk menyebarkan sakelar konektivitas (AWS CLI)
-
Buat file bernama
switch-deployment.jsondengan konten berikut. Ganti nilai placeholder dengan nilai akun tujuan Anda.-
Ganti
targetArndengan ARN dari grup AWS IoT benda atau perangkat inti di akun sumber. -
Ganti
componentNamedenganaws.greengrass.Nucleusuntuk nukleus atauaws.greengrass.NucleusLiteuntuk nukleus lite. -
Ganti
componentVersiondengan versi nukleus yang berjalan di perangkat.
{ "targetArn": "targetArn", "deploymentName": "SwitchConnectivity", "components": { "componentName": { "componentVersion": "componentVersion", "configurationUpdate": { "merge": "{\"iotDataEndpoint\":\"account-prefix-ats.iot.region.amazonaws.com\",\"iotCredEndpoint\":\"account-prefix.credentials.iot.region.amazonaws.com\",\"awsRegion\":\"region\",\"iotRoleAlias\":\"role-alias-name\"}" } } }, "deploymentPolicies": { "failureHandlingPolicy": "ROLLBACK" } }Untuk perangkat inti inti Greengrass yang
greengrassDataPlaneEndpointbelum disetel, tambahkaniotdatake konfigurasi gabungan:"merge": "{\"iotDataEndpoint\":\"...\",\"iotCredEndpoint\":\"...\",\"awsRegion\":\"...\",\"iotRoleAlias\":\"...\",\"greengrassDataPlaneEndpoint\":\"iotdata\"}"Mengkodekan
mergenilai sebagai string JSON. Lepaskan semua tanda kutip batin dengan garis miring terbalik ()\". Gunakan alat validasi JSON untuk memverifikasi sintaks sebelum membuat penerapan. -
-
Jalankan perintah berikut untuk membuat penyebaran.
aws greengrassv2 create-deployment \ --cli-input-json file://switch-deployment.json
Apa yang diharapkan
Nukleus memvalidasi konektivitas ke titik akhir baru sebelum menerapkan perubahan. Jika perangkat tidak dapat terhubung ke titik akhir baru, penerapan gagal dan perangkat tetap terhubung ke akun sumber.
Nukleus menggunakan ID klien untuk pemeriksaan konektivitas pra-penerbangan.thing-name#endpoint-switch
Setelah menerapkan konfigurasi, nukleus menguji konektivitas ke titik akhir yang baru. Jika konektivitas gagal, nukleus secara otomatis memutar kembali ke konfigurasi asli. Laporan penyebaran FAILED di akun sumber.
Jika sakelar konektivitas berhasil, penyebaran akan dilaporkan SUCCEEDED di akun sumber. AWS IoT Greengrass membuat perangkat inti di akun dan Wilayah yang terkait dengan titik akhir baru.
catatan
Selama sakelar konektivitas, nukleus me-restart komponen yang memiliki ketergantungan keras pada layanan pertukaran token. Restart ini menyegarkan kredensil dari titik akhir kredensi baru. AWS IoT Nukleus tidak memulai kembali komponen lain, dan mereka terus berjalan dengan status yang ada.
Verifikasi sakelar
Setelah penerapan selesai, verifikasi bahwa sakelar konektivitas berhasil.
Untuk memverifikasi sakelar konektivitas
-
Periksa status penerapan di akun sumber. Penyebaran melaporkan
SUCCEEDEDsetelah perangkat terhubung ke titik akhir baru.aws greengrassv2 list-effective-deployments \ --core-device-thing-namething-name -
Verifikasi bahwa perangkat inti muncul di akun tujuan. Buka AWS IoT Greengrass konsol
atau jalankan perintah berikut. aws greengrassv2 get-core-device \ --core-device-thing-namething-name
AWS IoT Benda dan catatan perangkat inti tetap ada di akun sumber setelah sakelar. Untuk mencegah penyebaran future menargetkan perangkat, hapus dari grup hal akun sumber.
Jika status penerapan tidakSUCCEEDED, periksa log Greengrass di perangkat untuk detail kesalahan. Untuk kode kesalahan umum yang terkait dengan operasi sakelar konektivitas, lihatKode kesalahan penyebaran terperinci./logs/greengrass.log/greengrass/v2