

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
<a name="switch-core-device-connectivity"></a>

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.

**Topics**
+ [Prasyarat](#switch-connectivity-prerequisites)
+ [Buat penyebaran](#switch-connectivity-create-deployment)
+ [Apa yang diharapkan](#switch-connectivity-what-to-expect)
+ [Verifikasi sakelar](#switch-connectivity-verify)

## Prasyarat
<a name="switch-connectivity-prerequisites"></a>

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:Connect` ARN 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 di[Inti Greengrass](greengrass-nucleus-component.md).

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
<a name="switch-connectivity-create-deployment"></a>

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)**

1. Buat file bernama `switch-deployment.json` dengan konten berikut. Ganti nilai placeholder dengan nilai akun tujuan Anda.
   + Ganti {{targetArn}} dengan ARN dari grup AWS IoT benda atau perangkat inti di akun sumber.
   + Ganti {{componentName}} dengan `aws.greengrass.Nucleus` untuk nukleus atau `aws.greengrass.NucleusLite` untuk nukleus lite.
   + Ganti {{componentVersion}} dengan 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 `greengrassDataPlaneEndpoint` belum disetel, tambahkan **iotdata** ke konfigurasi gabungan:

   ```
   "merge": "{\"iotDataEndpoint\":\"...\",\"iotCredEndpoint\":\"...\",\"awsRegion\":\"...\",\"iotRoleAlias\":\"...\",\"greengrassDataPlaneEndpoint\":\"iotdata\"}"
   ```

   Mengkodekan `merge` nilai sebagai string JSON. Lepaskan semua tanda kutip batin dengan garis miring terbalik ()`\"`. Gunakan alat validasi JSON untuk memverifikasi sintaks sebelum membuat penerapan.

1. Jalankan perintah berikut untuk membuat penyebaran.

   ```
   aws greengrassv2 create-deployment \
     --cli-input-json file://switch-deployment.json
   ```

## Apa yang diharapkan
<a name="switch-connectivity-what-to-expect"></a>

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 `{{thing-name}}#endpoint-switch` untuk pemeriksaan konektivitas pra-penerbangan.

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
<a name="switch-connectivity-verify"></a>

Setelah penerapan selesai, verifikasi bahwa sakelar konektivitas berhasil.

**Untuk memverifikasi sakelar konektivitas**

1. Periksa status penerapan di akun sumber. Penyebaran melaporkan `SUCCEEDED` setelah perangkat terhubung ke titik akhir baru.

   ```
   aws greengrassv2 list-effective-deployments \
     --core-device-thing-name {{thing-name}}
   ```

1. Verifikasi bahwa perangkat inti muncul di akun tujuan. Buka [AWS IoT Greengrass konsol](https://console.aws.amazon.com/greengrass) atau jalankan perintah berikut.

   ```
   aws greengrassv2 get-core-device \
     --core-device-thing-name {{thing-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 tidak`SUCCEEDED`, periksa log Greengrass `{{/greengrass/v2}}/logs/greengrass.log` di perangkat untuk detail kesalahan. Untuk kode kesalahan umum yang terkait dengan operasi sakelar konektivitas, lihat[Kode kesalahan penyebaran terperinci](troubleshooting-deployment.md).