

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

# Menyiapkan perangkat AWS IoT Greengrass inti
<a name="setting-up"></a>

Selesaikan tugas di bagian ini untuk menginstal, mengkonfigurasi, dan menjalankan perangkat lunak AWS IoT Greengrass Core.

**catatan**  
Bagian ini menjelaskan instalasi lanjutan dan konfigurasi perangkat lunak AWS IoT Greengrass Core. Langkah-langkah ini tidak berlaku untuk nucleus lite.Jika Anda adalah pengguna pertama kali AWS IoT Greengrass V2, kami sarankan Anda menyelesaikan [tutorial memulai](getting-started.md) terlebih dahulu untuk menyiapkan perangkat inti dan menjelajahi fitur-fiturnya. AWS IoT Greengrass



**Topics**
+ [Platform yang didukung](#supported-platforms)
+ [Persyaratan perangkat](#device-requirements)
+ [Persyaratan fungsi Lambda](#greengrass-v2-lambda-requirements)
+ [Mengatur sebuah Akun AWS](#set-up-aws-account)
+ [Instal perangkat lunak AWS IoT Greengrass Core](install-greengrass-core-v2.md)
+ [Jalankan perangkat lunak AWS IoT Greengrass Core](run-greengrass-core-v2.md)
+ [Jalankan perangkat lunak AWS IoT Greengrass Core dalam wadah Docker](run-greengrass-docker.md)
+ [Konfigurasikan perangkat lunak AWS IoT Greengrass Inti](configure-greengrass-core-v2.md)
+ [Perbarui perangkat lunak AWS IoT Greengrass Core (OTA)](update-greengrass-core-v2.md)
+ [Copot pemasangan perangkat lunak AWS IoT Greengrass Inti](uninstall-greengrass-core-v2.md)

## Platform yang didukung
<a name="supported-platforms"></a>
+ [Platform yang didukung inti Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html)
+ [Platform yang didukung Greengrass nucleus lite](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)

## Persyaratan perangkat
<a name="device-requirements"></a>
+ [Persyaratan perangkat inti Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-component.html)
+ [Persyaratan perangkat Greengrass nucleus lite](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-nucleus-lite-component.html)

## Persyaratan fungsi Lambda
<a name="greengrass-v2-lambda-requirements"></a>

**penting**  
Fungsi Greengrass Lambda saat ini tidak didukung oleh Greengrass nucleus lite.

Perangkat Anda harus memenuhi persyaratan berikut untuk menjalankan fungsi Lambda:
+ Sebuah sistem operasi berbasis Linux.
+ Perangkat Anda harus memiliki perintah shell `mkfifo`.
+ Perangkat Anda harus menjalankan pustaka bahasa pemrograman yang dibutuhkan fungsi Lambda. Anda harus menginstal pustaka yang diperlukan pada perangkat dan menambahkannya ke variabel lingkungan `PATH`. Greengrass mendukung semua versi runtime Python, Node.js, dan Java yang didukung Lambda. Greengrass tidak menerapkan batasan tambahan apa pun pada versi runtime Lambda yang tidak digunakan lagi. Untuk informasi selengkapnya tentang AWS IoT Greengrass dukungan untuk runtime Lambda, lihat. [Jalankan AWS Lambda fungsi](run-lambda-functions.md)
+ Untuk menjalankan fungsi Lambda yang terkontainerisasi, perangkat Anda harus memenuhi persyaratan berikut:
  + Linux kernel versi 4.4 or yag lebih baru.
  + Kernel harus mendukung [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, dan Anda harus mengaktifkan dan me-mount cgroups berikut:
    + Cgroup *memori* untuk mengatur batas memori AWS IoT Greengrass untuk fungsi Lambda kontainer.
    + Cgroup *perangkat* untuk fungsi Lambda dalam kontainer untuk mengakses perangkat atau volume sistem.

    Perangkat lunak AWS IoT Greengrass Core tidak mendukung cgroups v2.

    Untuk memenuhi persyaratan ini, boot perangkat dengan parameter kernel Linux berikut.

    ```
    cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
    ```
**Tip**  
Pada Raspberry Pi, edit `/boot/cmdline.txt` file untuk mengatur parameter kernel perangkat.
  + Anda harus mengaktifkan konfigurasi kernel Linux di perangkat:
    + Namespace:
      + `CONFIG_IPC_NS`
      + `CONFIG_UTS_NS`
      + `CONFIG_USER_NS`
      + `CONFIG_PID_NS`
    + Cgroup:
      + `CONFIG_CGROUP_DEVICE`
      + `CONFIG_CGROUPS`
      + `CONFIG_MEMCG`
    + Lainnya:
      + `CONFIG_POSIX_MQUEUE`
      + `CONFIG_OVERLAY_FS`
      + `CONFIG_HAVE_ARCH_SECCOMP_FILTER`
      + `CONFIG_SECCOMP_FILTER`
      + `CONFIG_KEYS`
      + `CONFIG_SECCOMP`
      + `CONFIG_SHMEM`
**Tip**  
Periksa dokumentasi untuk distribusi Linux Anda untuk mempelajari cara memverifikasi dan mengatur parameter kernel Linux. Anda juga dapat menggunakannya AWS IoT Device Tester AWS IoT Greengrass untuk memverifikasi bahwa perangkat Anda memenuhi persyaratan ini. Untuk informasi selengkapnya, lihat [Menggunakan AWS IoT Device Tester untuk AWS IoT Greengrass V2](device-tester-for-greengrass-ug.md).

## Mengatur sebuah Akun AWS
<a name="set-up-aws-account"></a>

Jika Anda tidak memiliki Akun AWS, selesaikan langkah-langkah berikut untuk membuatnya.

**Untuk mendaftar untuk Akun AWS**

1. Buka [https://portal.aws.amazon.com/billing/pendaftaran.](https://portal.aws.amazon.com/billing/signup)

1. Ikuti petunjuk online.

   Bagian dari prosedur pendaftaran melibatkan menerima panggilan telepon atau pesan teks dan memasukkan kode verifikasi pada keypad telepon.

   Saat Anda mendaftar untuk sebuah Akun AWS, sebuah *Pengguna root akun AWS*dibuat. Pengguna root memiliki akses ke semua Layanan AWS dan sumber daya di akun. Sebagai praktik keamanan terbaik, tetapkan akses administratif ke pengguna, dan gunakan hanya pengguna root untuk melakukan [tugas yang memerlukan akses pengguna root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

Untuk membuat pengguna administrator, pilih salah satu opsi berikut.


****  

| Pilih salah satu cara untuk mengelola administrator Anda | Untuk | Oleh | Anda juga bisa | 
| --- | --- | --- | --- | 
| Di Pusat Identitas IAM (Direkomendasikan) | Gunakan kredensi jangka pendek untuk mengakses. AWSIni sejalan dengan praktik terbaik keamanan. Untuk informasi tentang praktik terbaik, lihat [Praktik terbaik keamanan di IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) di *Panduan Pengguna IAM*. | Mengikuti petunjuk di [Memulai](https://docs.aws.amazon.com//singlesignon/latest/userguide/getting-started.html) di Panduan AWS IAM Identity Center Pengguna. | Konfigurasikan akses terprogram dengan [Mengonfigurasi AWS CLI yang akan digunakan AWS IAM Identity Center](https://docs.aws.amazon.com//cli/latest/userguide/cli-configure-sso.html) dalam AWS Command Line Interface Panduan Pengguna. | 
| Di IAM (Tidak direkomendasikan) | Gunakan kredensi jangka panjang untuk mengakses. AWS | Mengikuti petunjuk di [Buat pengguna IAM untuk akses darurat](https://docs.aws.amazon.com/IAM/latest/UserGuide/getting-started-emergency-iam-user.html) di Panduan Pengguna IAM. | Konfigurasikan akses terprogram dengan [Mengelola kunci akses untuk pengguna IAM di Panduan Pengguna](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_credentials_access-keys.html) IAM. | 

# Instal perangkat lunak AWS IoT Greengrass Core
<a name="install-greengrass-core-v2"></a>

AWS IoT Greengrass meluas AWS ke perangkat edge sehingga mereka dapat bertindak berdasarkan data yang mereka hasilkan, sementara mereka menggunakan AWS Cloud untuk manajemen, analitik, dan penyimpanan yang tahan lama. Instal perangkat lunak AWS IoT Greengrass Core pada perangkat tepi untuk diintegrasikan dengan AWS IoT Greengrass dan AWS Cloud.

**penting**  
Sebelum Anda mengunduh dan menginstal perangkat lunak AWS IoT Greengrass Core, periksa apakah perangkat inti Anda memenuhi [persyaratan](greengrass-nucleus-component.md#greengrass-v2-requirements) untuk menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core v2.0.

Perangkat lunak AWS IoT Greengrass Core mencakup penginstal yang mengatur perangkat Anda sebagai perangkat inti Greengrass. Saat Anda menjalankan penginstal, Anda dapat mengonfigurasi opsi, seperti folder root dan yang akan Wilayah AWS digunakan. Anda dapat memilih agar penginstal membuat sumber daya yang diperlukan AWS IoT dan IAM untuk Anda. Anda juga dapat memilih untuk men-deploy alat pengembangan lokal untuk mengonfigurasi perangkat yang Anda gunakan untuk pengembangan komponen kustom.

Perangkat lunak AWS IoT Greengrass Core membutuhkan sumber daya berikut AWS IoT dan IAM untuk terhubung ke AWS Cloud dan beroperasi:
+  AWS IoT Sesuatu. Saat Anda mendaftarkan perangkat sebagai AWS IoT sesuatu, perangkat tersebut dapat menggunakan sertifikat digital untuk mengautentikasi. AWS Sertifikat ini memungkinkan perangkat untuk berkomunikasi dengan AWS IoT dan AWS IoT Greengrass. Untuk informasi selengkapnya, lihat [Otentikasi dan otorisasi perangkat untuk AWS IoT Greengrass](device-auth.md).
+ (Opsional) Kelompok AWS IoT hal. Anda menggunakan grup objek untuk mengelola armada perangkat inti Greengrass. Saat men-deploy komponen perangkat lunak ke perangkat, Anda dapat memilih untuk men-deploy ke perangkat individual atau ke grup perangkat. Anda dapat menambahkan suatu perangkat ke grup objek untuk men-deploy komponen perangkat lunak grup objek tersebut ke perangkat. Untuk informasi selengkapnya, lihat [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md).
+ IAM role. Perangkat inti Greengrass menggunakan AWS IoT Core penyedia kredensyal untuk mengotorisasi panggilan ke layanan dengan peran IAM. AWS Peran ini memungkinkan perangkat Anda berinteraksi AWS IoT, mengirim log ke Amazon CloudWatch Logs, dan mengunduh artefak komponen khusus dari Amazon Simple Storage Service (Amazon S3). Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).
+ Alias AWS IoT peran. Perangkat inti Greengrass menggunakan alias peran untuk mengidentifikasi IAM role yang akan digunakan. Alias peran memungkinkan Anda mengubah IAM role tetapi menjaga konfigurasi perangkat tetap sama. Untuk informasi selengkapnya, lihat [Mengotorisasi panggilan langsung ke layanan AWS](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) di *Panduan Developer AWS IoT Core *.

Pilih salah satu opsi berikut untuk menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti Anda.
+ **Instalasi cepat**

  Pilih opsi ini untuk mengatur perangkat inti Greengrass dalam beberapa langkah sesedikit mungkin. Pemasang membuat sumber daya yang diperlukan AWS IoT dan IAM untuk Anda. Opsi ini mengharuskan Anda untuk memberikan AWS kredensyal kepada penginstal untuk membuat sumber daya di Anda. Akun AWS

  Anda tidak dapat menggunakan opsi ini untuk menginstal di belakang firewall atau proxy jaringan. Jika perangkat Anda berada di belakang firewall atau proxy jaringan, pertimbangkan [instalasi manual](manual-installation.md).

  Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya otomatis](quick-installation.md).
+ **Instalasi manual**

  Pilih opsi ini untuk membuat AWS sumber daya yang diperlukan secara manual atau untuk menginstal di belakang firewall atau proxy jaringan. Dengan menggunakan instalasi manual, Anda tidak perlu memberikan izin penginstal untuk membuat sumber daya di Anda Akun AWS, karena Anda membuat sumber daya yang diperlukan AWS IoT dan IAM. Anda juga dapat mengonfigurasi perangkat untuk tersambung pada port 443 atau melalui proksi jaringan. Anda juga dapat mengonfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan kunci pribadi dan sertifikat yang Anda simpan dalam modul keamanan perangkat keras (HSM), Modul Platform Tepercaya (TPM), atau elemen kriptografi lainnya.

  Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya manual](manual-installation.md).
+ **Instalasi dengan penyediaan AWS IoT armada**

  Pilih opsi ini untuk membuat AWS sumber daya yang diperlukan dari templat penyediaan AWS IoT armada. Anda dapat memilih opsi ini untuk membuat perangkat serupa di armada, atau jika Anda membuat perangkat yang kemudian diaktifkan pelanggan Anda, seperti kendaraan atau perangkat rumah pintar. Perangkat menggunakan sertifikat klaim untuk mengautentikasi dan menyediakan AWS sumber daya, termasuk sertifikat klien X.509 yang digunakan perangkat untuk menyambung ke operasi normal. AWS Cloud Anda dapat menyematkan atau mem-flash sertifikat klaim ke perangkat keras perangkat selama pembuatan, dan Anda dapat menggunakan sertifikat klaim dan kunci yang sama untuk menyediakan beberapa perangkat. Anda juga dapat mengonfigurasi perangkat untuk terhubung pada port 443 atau melalui proxy jaringan.

  Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan AWS IoT armada](fleet-provisioning.md).
+ **Instalasi dengan penyediaan khusus**

  Pilih opsi ini untuk mengembangkan aplikasi Java kustom yang menyediakan AWS sumber daya yang diperlukan. Anda dapat memilih opsi ini jika [Anda membuat sertifikat klien X.509 Anda sendiri](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html) atau jika Anda ingin lebih banyak kontrol atas proses penyediaan. AWS IoT Greengrass menyediakan antarmuka yang dapat Anda terapkan untuk bertukar informasi antara aplikasi penyediaan khusus Anda dan penginstal perangkat lunak AWS IoT Greengrass Core.

  Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya khusus](custom-provisioning.md).

AWS IoT Greengrass juga menyediakan lingkungan kontainer yang menjalankan perangkat lunak AWS IoT Greengrass Core. Anda dapat menggunakan Dockerfile untuk [dijalankan AWS IoT Greengrass di wadah Docker](run-greengrass-docker.md).

**Topics**
+ [Instal dengan penyediaan otomatis](quick-installation.md)
+ [Instal dengan penyediaan manual](manual-installation.md)
+ [Instal dengan penyediaan armada](fleet-provisioning.md)
+ [Instal dengan penyediaan khusus](custom-provisioning.md)
+ [Argumen penginstal](configure-installer.md)

# Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya otomatis
<a name="quick-installation"></a>

Perangkat lunak AWS IoT Greengrass Core mencakup penginstal yang mengatur perangkat Anda sebagai perangkat inti Greengrass. Untuk menyiapkan perangkat dengan cepat, penginstal dapat menyediakan hal, grup AWS IoT AWS IoT benda, peran IAM, dan alias AWS IoT peran yang dibutuhkan perangkat inti untuk beroperasi. Installer juga dapat men-deploy alat pengembangan lokal ke perangkat inti, sehingga Anda dapat menggunakan perangkat tersebut untuk mengembangkan dan menguji komponen perangkat lunak kustom. Penginstal memerlukan AWS kredensional untuk menyediakan sumber daya ini dan membuat penerapan.

Jika Anda tidak dapat memberikan AWS kredensi ke perangkat, Anda dapat menyediakan AWS sumber daya yang diperlukan perangkat inti untuk beroperasi. Anda juga dapat men-deploy alat pengembangan ke perangkat inti untuk digunakan sebagai perangkat pengembangan. Hal ini memungkinkan Anda untuk memberikan lebih sedikit izin untuk perangkat ketika Anda menjalankan installer. Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya manual](manual-installation.md).

**penting**  <a name="install-greengrass-core-requirements-note"></a>
Sebelum Anda mengunduh perangkat lunak AWS IoT Greengrass Core, periksa apakah perangkat inti Anda memenuhi [persyaratan](greengrass-nucleus-component.md#greengrass-v2-requirements) untuk menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core v2.0.

**Topics**
+ [Mengatur lingkungan perangkat](#set-up-device-environment)
+ [Memberikan AWS kredensi ke perangkat](#provide-installer-aws-credentials)
+ [Unduh perangkat lunak AWS IoT Greengrass Inti](#download-greengrass-core-v2)
+ [Instal perangkat lunak AWS IoT Greengrass Inti](#run-greengrass-core-v2-installer)

## Mengatur lingkungan perangkat
<a name="set-up-device-environment"></a>

Ikuti langkah-langkah di bagian ini untuk menyiapkan perangkat Linux atau Windows untuk digunakan sebagai perangkat AWS IoT Greengrass inti Anda.

### Siapkan perangkat Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Untuk mengatur perangkat Linux untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan. Perintah berikut menunjukkan cara menginstal OpenJDK di perangkat Anda.
   + Untuk distribusi berbasis Debian atau berbasis Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Untuk distribusi berbasis Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Untuk Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Untuk Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Ketika instalasi selesai, jalankan perintah berikut untuk memverifikasi bahwa Java berjalan pada perangkat Linux Anda.

   ```
   java -version
   ```

   Perintah mencetak versi Java yang berjalan pada perangkat. Misalnya, pada distribusi berbasis Debian, output mungkin terlihat mirip dengan sampel berikut.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opsional) Buat pengguna dan grup sistem default yang menjalankan komponen pada perangkat. Anda juga dapat memilih untuk membiarkan penginstal perangkat lunak AWS IoT Greengrass Core membuat pengguna dan grup ini selama instalasi dengan argumen `--component-default-user` installer. Untuk informasi selengkapnya, lihat [Argumen penginstal](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verifikasi bahwa pengguna yang menjalankan perangkat lunak AWS IoT Greengrass Core (biasanya`root`), memiliki izin untuk menjalankan `sudo` dengan pengguna dan grup apa pun.

   1. Jalankan perintah berikut untuk membuka `/etc/sudoers` file.

      ```
      sudo visudo
      ```

   1. Verifikasi bahwa izin untuk pengguna terlihat seperti contoh berikut.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Opsional) Untuk [menjalankan fungsi Lambda kontainer](run-lambda-functions.md), Anda harus mengaktifkan [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, dan Anda harus mengaktifkan dan memasang memori dan perangkat cgroups.** Jika Anda tidak berencana untuk menjalankan fungsi Lambda kontainer, Anda dapat melewati langkah ini.

   Untuk mengaktifkan opsi cgroups ini, boot perangkat dengan parameter kernel Linux berikut.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Untuk informasi tentang melihat dan menyetel parameter kernel untuk perangkat Anda, lihat dokumentasi untuk sistem operasi dan boot loader Anda. Ikuti instruksi untuk mengatur parameter kernel secara permanen.

1. Instal semua dependensi lain yang diperlukan pada perangkat Anda seperti yang ditunjukkan oleh daftar persyaratan di. [Persyaratan perangkat](greengrass-nucleus-component.md#greengrass-v2-requirements)

### Siapkan perangkat Windows
<a name="set-up-windows-device-environment"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)<a name="set-up-windows-device-environment-procedure"></a>

**Untuk mengatur perangkat Windows untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan.

1. Periksa apakah Java tersedia pada variabel sistem [PATH](https://en.wikipedia.org/wiki/PATH_(variable)), dan tambahkan jika tidak. LocalSystem Akun menjalankan perangkat lunak AWS IoT Greengrass Core, jadi Anda harus menambahkan Java ke variabel sistem PATH alih-alih variabel pengguna PATH untuk pengguna Anda. Lakukan hal-hal berikut:

   1. Tekan tombol Windows untuk membuka menu mulai.

   1. Ketik **environment variables** untuk mencari opsi sistem dari menu mulai.

   1. Di hasil pencarian menu mulai, pilih **Edit variabel lingkungan sistem** untuk membuka jendela **Properti sistem**.

   1. Pilih **variabel Lingkungan...** untuk membuka jendela **Variabel Lingkungan**.

   1. Di bawah **Variabel sistem**, pilih **Path**, lalu pilih **Edit**. Di jendela **variabel Edit lingkungan**, Anda dapat melihat setiap jalur pada baris terpisah.

   1. Periksa apakah jalur ke `bin` folder instalasi Java ada. Jalannya mungkin terlihat mirip dengan contoh berikut.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Jika `bin` folder instalasi Java hilang dari **Path**, pilih **Baru** untuk menambahkannya, lalu pilih **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Buka Windows Command Prompt (`cmd.exe`) sebagai administrator.

1. <a name="set-up-windows-device-environment-create"></a>Buat pengguna default di LocalSystem akun di perangkat Windows. Ganti *password* dengan kata sandi yang aman.

   ```
   net user /add ggc_user password
   ```
**Tip**  <a name="windows-password-expiration-tip"></a>
Bergantung pada konfigurasi Windows Anda, kata sandi pengguna mungkin diatur untuk kedaluwarsa pada tanggal di masa mendatang. Untuk memastikan aplikasi Greengrass Anda terus beroperasi, lacak kapan kata sandi kedaluwarsa, dan perbarui sebelum kedaluwarsa. Anda juga dapat mengatur kata sandi pengguna agar tidak pernah kedaluwarsa.  
Untuk memeriksa kapan pengguna dan kata sandinya kedaluwarsa, jalankan perintah berikut.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Untuk mengatur kata sandi pengguna agar tidak pernah kedaluwarsa, jalankan perintah berikut.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Jika Anda menggunakan Windows 10 atau yang lebih baru di mana [`wmic`perintah tidak digunakan lagi](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), jalankan perintah berikut. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Unduh dan instal [PsExecutilitas](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) dari Microsoft pada perangkat. 

1. <a name="set-up-windows-device-credentials"></a>Gunakan PsExec utilitas untuk menyimpan nama pengguna dan kata sandi untuk pengguna default dalam contoh Credential Manager untuk LocalSystem akun tersebut. Ganti *password* dengan kata sandi pengguna yang Anda tetapkan sebelumnya.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Jika **PsExec License Agreement**terbuka, pilih **Accept**untuk menyetujui lisensi dan jalankan perintah.
**catatan**  
Pada perangkat Windows, LocalSystem akun menjalankan inti Greengrass, dan Anda harus menggunakan utilitas untuk menyimpan PsExec informasi pengguna default di akun. LocalSystem Menggunakan aplikasi Credential Manager menyimpan informasi ini di akun Windows dari pengguna yang saat ini masuk, bukan LocalSystem akun.

## Memberikan AWS kredensi ke perangkat
<a name="provide-installer-aws-credentials"></a>

Berikan AWS kredensi Anda ke perangkat Anda sehingga penginstal dapat menyediakan sumber daya yang diperlukan. AWS Untuk informasi lebih lanjut tentang izin yang diperlukan, lihat [Kebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya](provision-minimal-iam-policy.md).

**Untuk memberikan AWS kredensi ke perangkat**
+ <a name="installer-export-aws-credentials"></a>Berikan AWS kredensi Anda ke perangkat sehingga penginstal dapat menyediakan sumber daya AWS IoT dan IAM untuk perangkat inti Anda. Untuk meningkatkan keamanan, sebaiknya Anda mendapatkan kredensi sementara untuk peran IAM yang hanya mengizinkan izin minimum yang diperlukan untuk penyediaan. Untuk informasi selengkapnya, lihat [Kebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya](provision-minimal-iam-policy.md).
**catatan**  
Penginstal tidak menyimpan atau menyimpan kredensial Anda.

  Di perangkat Anda, lakukan salah satu hal berikut untuk mengambil kredensi dan membuatnya tersedia untuk penginstal perangkat lunak AWS IoT Greengrass Core:
  + (Disarankan) Gunakan kredensi sementara dari AWS IAM Identity Center

    1. Berikan ID kunci akses, kunci akses rahasia, dan token sesi dari Pusat Identitas IAM. Untuk informasi selengkapnya, lihat **Penyegaran kredenal manual** di [Mendapatkan dan menyegarkan kredenal sementara](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html#how-to-get-temp-credentials) di panduan pengguna Pusat Identitas *IAM*.

    1. Jalankan perintah berikut untuk memberikan kredensi ke perangkat lunak AWS IoT Greengrass Core.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Gunakan kredenal keamanan sementara dari peran IAM:

    1. Berikan access key ID, secret access key, dan token sesi dari IAM role yang Anda teruskan. *Untuk informasi selengkapnya tentang cara mengambil kredenal ini, lihat [Meminta kredenal keamanan sementara di Panduan Pengguna IAM.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html)*

    1. Jalankan perintah berikut untuk memberikan kredensi ke perangkat lunak AWS IoT Greengrass Core.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       export AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       set AWS_SESSION_TOKEN=AQoDYXdzEJr1K...o5OytwEXAMPLE=
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       $env:AWS_SESSION_TOKEN="AQoDYXdzEJr1K...o5OytwEXAMPLE="
       ```

------
  + Gunakan kredensial jangka panjang dari pengguna IAM:

    1. Berikan access key ID dan secret access key untuk pengguna IAM Anda. Anda dapat membuat pengguna IAM untuk penyediaan yang kemudian Anda hapus. Untuk kebijakan IAM untuk memberikan pengguna, lihat[Kebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya](provision-minimal-iam-policy.md). Untuk informasi selengkapnya tentang cara mengambil kredensial jangka panjang, lihat [Mengelola access key untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) di *Panduan Pengguna IAM*.

    1. Jalankan perintah berikut untuk memberikan kredensi ke perangkat lunak AWS IoT Greengrass Core.

------
#### [ Linux or Unix ]

       ```
       export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

------
#### [ Windows Command Prompt (CMD) ]

       ```
       set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
       set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
       ```

------
#### [ PowerShell ]

       ```
       $env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE"
       $env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
       ```

------

    1. (Opsional) Jika Anda membuat pengguna IAM untuk menyediakan perangkat Greengrass Anda, hapus pengguna tersebut.

    1. (Opsional) Jika Anda menggunakan ID kunci akses dan kunci akses rahasia dari pengguna IAM yang ada, perbarui kunci untuk pengguna sehingga tidak lagi valid. Untuk informasi selengkapnya, lihat [Memperbarui kunci akses](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_RotateAccessKey) di *panduan AWS Identity and Access Management pengguna*.

## Unduh perangkat lunak AWS IoT Greengrass Inti
<a name="download-greengrass-core-v2"></a>

Anda dapat mengunduh versi terbaru perangkat lunak AWS IoT Greengrass Core dari lokasi berikut:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**catatan**  
Anda dapat mengunduh versi tertentu dari perangkat lunak AWS IoT Greengrass Core dari lokasi berikut. Ganti *version* dengan versi yang akan diunduh.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Untuk mengunduh perangkat lunak AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Di perangkat inti Anda, unduh perangkat lunak AWS IoT Greengrass Core ke file bernama`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opsional) Untuk memverifikasi tanda tangan perangkat lunak inti Greengrass
**catatan**  
Fitur ini tersedia dengan Greengrass nucleus versi 2.9.5 dan yang lebih baru.

   1. Gunakan perintah berikut untuk memverifikasi tanda tangan artefak inti Greengrass Anda:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. `jarsigner`Pemanggilan menghasilkan output yang menunjukkan hasil verifikasi.

      1. Jika file zip inti Greengrass ditandatangani, output berisi pernyataan berikut:

         ```
         jar verified.
         ```

      1. Jika file zip inti Greengrass tidak ditandatangani, output berisi pernyataan berikut:

         ```
         jar is unsigned.
         ```

   1. Jika Anda memberikan `-certs` opsi Jarsigner bersama dengan `-verify` dan `-verbose` opsi, output juga menyertakan informasi sertifikat penandatangan terperinci.

1. <a name="installation-unzip-ggc-software-step"></a>Buka zip perangkat lunak AWS IoT Greengrass Core ke folder di perangkat Anda. Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opsional) Jalankan perintah berikut untuk melihat versi perangkat lunak AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**penting**  <a name="installer-folder-2.4.0-warning"></a>
Jika Anda menginstal versi inti Greengrass lebih awal dari v2.4.0, jangan hapus folder ini setelah Anda menginstal perangkat lunak Core. AWS IoT Greengrass Perangkat lunak AWS IoT Greengrass Core menggunakan file dalam folder ini untuk dijalankan.  
Jika Anda mengunduh versi terbaru perangkat lunak, Anda menginstal v2.4.0 atau yang lebih baru, dan Anda dapat menghapus folder ini setelah Anda menginstal perangkat lunak AWS IoT Greengrass Core.

## Instal perangkat lunak AWS IoT Greengrass Inti
<a name="run-greengrass-core-v2-installer"></a>

Jalankan installer dengan argumen yang menentukan untuk melakukan hal berikut:
+ <a name="install-argument-aws-resources"></a>Buat AWS sumber daya yang dibutuhkan perangkat inti untuk beroperasi.
+ <a name="install-argument-component-default-user"></a>Tentukan untuk menggunakan pengguna `ggc_user` sistem untuk menjalankan komponen perangkat lunak pada perangkat inti. Pada perangkat Linux, perintah ini juga menentukan untuk menggunakan grup `ggc_group` sistem, dan penginstal membuat pengguna dan grup sistem untuk Anda.
+ <a name="install-argument-system-service"></a>Siapkan perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem yang berjalan saat boot. Pada perangkat Linux, ini membutuhkan sistem init [Systemd](https://en.wikipedia.org/wiki/Systemd).
**penting**  <a name="windows-system-service-requirement-important-note"></a>
Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

Untuk menyiapkan perangkat pengembangan dengan alat pengembangan lokal, tentukan argumen `--deploy-dev-tools true`. Alat pengembangan lokal dapat memakan waktu hingga satu menit untuk ter-deploy setelah instalasi tersebut selesai. 

Untuk informasi lebih lanjut tentang argumen yang dapat Anda tentukan, lihat [Argumen penginstal](configure-installer.md).

**catatan**  
<a name="jvm-tuning-note"></a>Jika Anda menjalankan AWS IoT Greengrass perangkat dengan memori terbatas, Anda dapat mengontrol jumlah memori yang digunakan perangkat lunak AWS IoT Greengrass Core. Untuk mengontrol alokasi memori, Anda dapat mengatur pilihan ukuran tumpukan JVM di konfigurasi parameter `jvmOptions` dalam komponen nukleus anda. Untuk informasi selengkapnya, lihat [Kontrol alokasi memori dengan opsi JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Untuk menginstal perangkat lunak AWS IoT Greengrass Core**

1. Jalankan penginstal AWS IoT Greengrass Core. Ganti nilai argumen dalam perintah Anda sebagai berikut.
**catatan**  
Windows memiliki batasan panjang jalur 260 karakter. Jika Anda menggunakan Windows, gunakan folder root seperti `C:\greengrass\v2` atau `D:\greengrass\v2` untuk menjaga jalur komponen Greengrass di bawah batas 260 karakter.<a name="installer-replace-arguments"></a>

   1. `/greengrass/v2`atau*C:\$1greengrass\$1v2*: Jalur ke folder root yang akan digunakan untuk menginstal perangkat lunak AWS IoT Greengrass Core.

   1. *GreengrassInstaller*. Jalur ke folder tempat Anda membongkar penginstal perangkat lunak AWS IoT Greengrass Core.

   1. *region*. Wilayah AWS Di mana untuk menemukan atau membuat sumber daya.

   1. *MyGreengrassCore*. Nama AWS IoT benda untuk perangkat inti Greengrass Anda. Jika objek tidak ada, installer akan membuatnya. Pemasang mengunduh sertifikat untuk diautentikasi sebagai masalahnya. AWS IoT Untuk informasi selengkapnya, lihat [Otentikasi dan otorisasi perangkat untuk AWS IoT Greengrass](device-auth.md).
**catatan**  <a name="install-argument-thing-name-constraint"></a>
Nama objek tidak dapat berisi karakter titik dua (`:`).

   1. *MyGreengrassCoreGroup*. Nama grup AWS IoT benda untuk perangkat inti Greengrass Anda. Jika grup objek tidak ada, installer akan membuatnya dan menambahkan objek padanya. Jika grup objek ada dan memiliki deployment yang aktif, perangkat inti akan men-download dan menjalankan perangkat lunak yang ditetapkan oleh deployment.
**catatan**  <a name="install-argument-thing-group-name-constraint"></a>
Nama grup objek tidak dapat berisi karakter titik dua (`:`).

   1. *GreengrassV2IoTThingPolicy*. Nama AWS IoT kebijakan yang memungkinkan perangkat inti Greengrass untuk berkomunikasi dengan dan. AWS IoT AWS IoT Greengrass Jika AWS IoT kebijakan tidak ada, penginstal akan membuat AWS IoT kebijakan permisif dengan nama ini. Anda dapat membatasi izin kebijakan ini untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [AWS IoT Kebijakan minimal untuk perangkat AWS IoT Greengrass V2 inti](device-auth.md#greengrass-core-minimal-iot-policy).

   1. *GreengrassV2TokenExchangeRole*. Nama peran IAM yang memungkinkan perangkat inti Greengrass mendapatkan kredensi sementara. AWS Jika peran itu tidak ada, penginstal akan membuatnya dan membuat serta melampirkan kebijakan bernama `GreengrassV2TokenExchangeRoleAccess`. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

   1. *GreengrassCoreTokenExchangeRoleAlias*. Alias untuk peran IAM yang memungkinkan perangkat inti Greengrass untuk mendapatkan kredensi sementara nanti. Jika alias peran tidak ada, penginstal akan membuatnya dan mengarahkannya ke IAM role yang Anda tentukan. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --aws-region region \
     --thing-name MyGreengrassCore \
     --thing-group-name MyGreengrassCoreGroup \
     --thing-policy-name GreengrassV2IoTThingPolicy \
     --tes-role-name GreengrassV2TokenExchangeRole \
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias \
     --component-default-user ggc_user:ggc_group \
     --provision true \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --aws-region region ^
     --thing-name MyGreengrassCore ^
     --thing-group-name MyGreengrassCoreGroup ^
     --thing-policy-name GreengrassV2IoTThingPolicy ^
     --tes-role-name GreengrassV2TokenExchangeRole ^
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias ^
     --component-default-user ggc_user ^
     --provision true ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --aws-region region `
     --thing-name MyGreengrassCore `
     --thing-group-name MyGreengrassCoreGroup `
     --thing-policy-name GreengrassV2IoTThingPolicy `
     --tes-role-name GreengrassV2TokenExchangeRole `
     --tes-role-alias-name GreengrassCoreTokenExchangeRoleAlias `
     --component-default-user ggc_user `
     --provision true `
     --setup-system-service true
   ```

------
**penting**  <a name="windows-system-service-installer-argument-important-note"></a>
Pada perangkat inti Windows, Anda harus menentukan `--setup-system-service true` untuk mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

   Installer mencetak pesan berikut jika berhasil:
   + Jika Anda menentukan `--provision`, penginstal akan mencetak `Successfully configured Nucleus with provisioned resource details` jika berhasil mengonfigurasi sumber daya.
   + Jika Anda menentukan `--deploy-dev-tools`, penginstal akan mencetak `Configured Nucleus to deploy aws.greengrass.Cli component` jika berhasil membuat deployment.
   + Jika Anda menentukan `--setup-system-service true`, penginstal akan mencetak `Successfully set up Nucleus as a system service` jika ia mengatur dan menjalankan perangkat lunak sebagai layanan.
   + Jika Anda tidak menentukan `--setup-system-service true`, penginstal akan mencetak `Launched Nucleus successfully` jika berhasil dan menjalankan perangkat lunak.

1. Lewati langkah ini jika Anda menginstal v2.0.4 [Inti Greengrass](greengrass-nucleus-component.md) atau yang lebih baru. Jika Anda mengunduh versi terbaru dari perangkat lunak, Anda menginstal v2.0.4 atau yang lebih baru.

   Jalankan perintah berikut untuk mengatur izin file yang diperlukan untuk folder root perangkat lunak AWS IoT Greengrass Core Anda. Ganti `/greengrass/v2` dengan folder root yang Anda tentukan dalam perintah instalasi Anda, dan ganti */greengrass* dengan folder induk untuk folder root Anda.

   ```
   sudo chmod 755 /greengrass/v2 && sudo chmod 755 /greengrass
   ```

<a name="install-greengrass-core-run-software"></a>Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem, penginstal menjalankan perangkat lunak untuk Anda. Jika tidak, Anda harus menjalankan perangkat lunak itu secara manual. Untuk informasi selengkapnya, lihat [Jalankan perangkat lunak AWS IoT Greengrass Core](run-greengrass-core-v2.md).

**catatan**  
Secara default, IAM role yang dibuat oleh installer tidak mengizinkan akses ke artefak komponen dalam Bucket S3. Untuk men-deploy komponen kustom yang menentukan artefak di Amazon S3, Anda harus menambahkan izin untuk peran tersebut untuk memungkinkan perangkat inti Anda untuk mengambil artefak komponen. Untuk informasi selengkapnya, lihat [Izinkan akses ke bucket S3 untuk artefak komponen](device-service-role.md#device-service-role-access-s3-bucket).  
Jika Anda belum memiliki bucket S3 untuk artefak komponen, Anda dapat menambahkan izin ini nanti setelah membuat bucket.

**catatan**  <a name="install-greengrass-core-recognized-note"></a>
<a name="install-greengrass-core-recognized-para"></a>Saat perangkat lunak AWS IoT Greengrass Core terhubung ke cloud, perangkat Anda akan dikenali sebagai perangkat Core.

<a name="install-greengrass-core-next-steps-intro"></a>Untuk informasi selengkapnya tentang cara mengkonfigurasi dan menggunakan perangkat lunak dan AWS IoT Greengrass, lihat berikut ini:<a name="install-greengrass-core-next-steps-links"></a>
+ [Konfigurasikan perangkat lunak AWS IoT Greengrass Inti](configure-greengrass-core-v2.md)
+ [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md)
+ [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md)
+ [Antarmuka Baris Perintah Greengrass](gg-cli.md)

# Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya manual
<a name="manual-installation"></a>

Perangkat lunak AWS IoT Greengrass Core mencakup penginstal yang mengatur perangkat Anda sebagai perangkat inti Greengrass. Untuk mengatur perangkat secara manual, Anda dapat membuat sumber daya yang diperlukan AWS IoT dan IAM untuk digunakan perangkat. Jika Anda membuat sumber daya ini secara manual, Anda tidak perlu memberikan AWS kredensi kepada penginstal.

Saat Anda menginstal perangkat lunak AWS IoT Greengrass Core secara manual, Anda juga dapat mengonfigurasi perangkat untuk menggunakan proxy jaringan atau terhubung ke AWS port 443. Anda mungkin perlu menentukan opsi konfigurasi ini jika perangkat berjalan di belakang firewall atau proksi jaringan, misalnya. Untuk informasi selengkapnya, lihat [Hubungkan pada port 443 atau melalui proksi jaringan](configure-greengrass-core-v2.md#configure-alpn-network-proxy).

Anda juga dapat mengonfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan modul keamanan perangkat keras (HSM) melalui antarmuka [PKCS \$111](https://en.wikipedia.org/wiki/PKCS_11). Fitur ini memungkinkan Anda menyimpan file kunci pribadi dan sertifikat dengan aman sehingga tidak terekspos atau digandakan dalam perangkat lunak. Anda dapat menyimpan kunci pribadi dan sertifikat pada modul perangkat keras seperti HSM, Trusted Platform Module (TPM), atau elemen kriptografi lainnya. Fitur ini hanya tersedia di perangkat Linux. Untuk informasi selengkapnya tentang keamanan perangkat keras dan persyaratan untuk menggunakannya, lihat[Integrasi keamanan perangkat keras](hardware-security.md).

**penting**  <a name="install-greengrass-core-requirements-note"></a>
Sebelum Anda mengunduh perangkat lunak AWS IoT Greengrass Core, periksa apakah perangkat inti Anda memenuhi [persyaratan](greengrass-nucleus-component.md#greengrass-v2-requirements) untuk menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core v2.0.

**Topics**
+ [Ambil titik akhir AWS IoT](#retrieve-iot-endpoints)
+ [Buat AWS IoT sesuatu](#create-iot-thing)
+ [Buat sertifikat benda](#create-thing-certificate)
+ [Konfigurasikan sertifikat benda](#configure-thing-certificate)
+ [Buat peran pertukaran token](#create-token-exchange-role)
+ [Unduh sertifikat ke perangkat](#download-thing-certificates)
+ [Mengatur lingkungan perangkat](#set-up-device-environment)
+ [Unduh perangkat lunak AWS IoT Greengrass Core](#download-greengrass-core-v2)
+ [Instal perangkat lunak AWS IoT Greengrass Core](#run-greengrass-core-v2-installer-manual)

## Ambil titik akhir AWS IoT
<a name="retrieve-iot-endpoints"></a>

Dapatkan AWS IoT titik akhir untuk Anda Akun AWS, dan simpan untuk digunakan nanti. Perangkat Anda menggunakan titik akhir ini untuk tersambung ke AWS IoT. Lakukan hal-hal berikut:

1. Dapatkan titik akhir AWS IoT data untuk Anda Akun AWS.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Dapatkan titik akhir AWS IoT kredensial untuk Anda. Akun AWS

   ```
   aws iot describe-endpoint --endpoint-type iot:CredentialProvider
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   }
   ```

## Buat AWS IoT sesuatu
<a name="create-iot-thing"></a>

AWS IoT *hal-hal* mewakili perangkat dan entitas logis yang terhubung ke AWS IoT. Perangkat inti Greengrass adalah benda. AWS IoT Saat Anda mendaftarkan perangkat sebagai AWS IoT sesuatu, perangkat itu dapat menggunakan sertifikat digital untuk mengautentikasi. AWS

Di bagian ini, Anda membuat AWS IoT sesuatu yang mewakili perangkat Anda.

**Untuk menciptakan AWS IoT sesuatu**

1. Buat AWS IoT sesuatu untuk perangkat Anda. Pada komputer pengembangan Anda, jalankan perintah berikut.
   + Ganti *MyGreengrassCore* dengan nama benda yang akan digunakan. Nama ini juga merupakan nama perangkat inti Greengrass Anda.
**catatan**  <a name="install-argument-thing-name-constraint"></a>
Nama objek tidak dapat berisi karakter titik dua (`:`).

   ```
   aws iot create-thing --thing-name MyGreengrassCore
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "thingName": "MyGreengrassCore",
     "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
     "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42"
   }
   ```

1. (Opsional) Tambahkan AWS IoT benda ke grup hal baru atau yang sudah ada. Anda menggunakan grup objek untuk mengelola armada perangkat inti Greengrass. Saat menerapkan komponen perangkat lunak ke perangkat, Anda dapat menargetkan perangkat individual atau grup perangkat. Anda dapat menambahkan suatu perangkat ke grup objek dengan deployment Greengrass aktif untuk men-deploy komponen perangkat lunak grup objek tersebut ke perangkat. Lakukan hal-hal berikut:

   1. (Opsional) Buat grup AWS IoT benda.
      + Ganti *MyGreengrassCoreGroup* dengan nama grup benda yang akan dibuat.
**catatan**  <a name="install-argument-thing-group-name-constraint"></a>
Nama grup objek tidak dapat berisi karakter titik dua (`:`).

      ```
      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "thingGroupName": "MyGreengrassCoreGroup",
        "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
        "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa"
      }
      ```

   1. Tambahkan AWS IoT benda itu ke grup benda.
      + Ganti *MyGreengrassCore* dengan nama AWS IoT benda Anda.
      + Ganti *MyGreengrassCoreGroup* dengan nama grup benda.

      ```
      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

## Buat sertifikat benda
<a name="create-thing-certificate"></a>

<a name="create-thing-certificate-intro-1"></a>Saat Anda mendaftarkan perangkat sebagai AWS IoT sesuatu, perangkat itu dapat menggunakan sertifikat digital untuk mengautentikasi. AWS Sertifikat ini memungkinkan perangkat untuk berkomunikasi dengan AWS IoT dan AWS IoT Greengrass.

<a name="create-thing-certificate-intro-2"></a>Di bagian ini, Anda membuat dan mengunduh sertifikat yang dapat digunakan perangkat Anda untuk terhubung AWS.

<a name="create-thing-certificate-intro-3"></a>Jika Anda ingin mengonfigurasi perangkat lunak AWS IoT Greengrass Core untuk menggunakan modul keamanan perangkat keras (HSM) untuk menyimpan kunci pribadi dan sertifikat dengan aman, ikuti langkah-langkah untuk membuat sertifikat dari kunci pribadi di HSM. Jika tidak, ikuti langkah-langkah untuk membuat sertifikat dan kunci pribadi dalam AWS IoT layanan. Fitur keamanan perangkat keras hanya tersedia di perangkat Linux. Untuk informasi selengkapnya tentang keamanan perangkat keras dan persyaratan untuk menggunakannya, lihat[Integrasi keamanan perangkat keras](hardware-security.md).

### Buat sertifikat dan kunci pribadi dalam AWS IoT layanan
<a name="create-thing-certificate-cloud"></a><a name="create-thing-certificate-cloud-steps"></a>

**Untuk membuat sertifikat benda**

1. Buat folder tempat Anda mengunduh sertifikat untuk AWS IoT benda itu.

   ```
   mkdir greengrass-v2-certs
   ```

1. Buat dan unduh sertifikat untuk AWS IoT benda itu.

   ```
   aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----",
     "keyPair": {
       "PublicKey": "-----BEGIN PUBLIC KEY-----\
   MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\
   MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\
   59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\
   hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\
   FQIDAQAB\
   -----END PUBLIC KEY-----\
   ",
       "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\
   key omitted for security reasons\
   -----END RSA PRIVATE KEY-----\
   "
     }
   }
   ```

   Simpan Nama Sumber Daya Amazon (ARN) sertifikat yang akan digunakan untuk mengonfigurasi sertifikat nanti.

### Buat sertifikat dari kunci pribadi di HSM
<a name="create-thing-certificate-hardware-security"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.3 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md) AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows. 

**Untuk membuat sertifikat benda**

1. Pada perangkat inti, inisialisasi token PKCS \$111 di HSM, dan buat kunci pribadi. Kunci pribadi harus berupa kunci RSA dengan ukuran kunci RSA-2048 (atau lebih besar) atau kunci ECC.
**catatan**  <a name="hardware-security-module-requirements-key-notes"></a>
Untuk menggunakan modul keamanan perangkat keras dengan kunci ECC, Anda harus menggunakan [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.6 atau yang lebih baru.  
Untuk menggunakan modul keamanan perangkat keras dan [manajer rahasia](secret-manager-component.md), Anda harus menggunakan modul keamanan perangkat keras dengan kunci RSA.

   Periksa dokumentasi untuk HSM Anda untuk mempelajari cara menginisialisasi token dan menghasilkan kunci pribadi. Jika HSM Anda mendukung objek IDs, tentukan ID objek saat Anda membuat kunci pribadi. Simpan ID slot, PIN pengguna, label objek, ID objek (jika HSM Anda menggunakan satu) yang Anda tentukan saat Anda menginisialisasi token dan menghasilkan kunci pribadi. Anda menggunakan nilai-nilai ini nanti ketika Anda mengimpor sertifikat hal ke HSM dan mengkonfigurasi perangkat lunak AWS IoT Greengrass Core.

1. Buat permintaan penandatanganan sertifikat (CSR) dari kunci pribadi. AWS IoT menggunakan CSR ini untuk membuat sertifikat sesuatu untuk kunci pribadi yang Anda buat di HSM. Untuk informasi tentang cara membuat CSR dari kunci pribadi, lihat dokumentasi untuk HSM Anda. CSR adalah file, seperti`iotdevicekey.csr`.

1. Salin CSR dari perangkat ke komputer pengembangan Anda. Jika SSH dan SCP diaktifkan pada komputer pengembangan dan perangkat, Anda dapat menggunakan `scp` perintah di komputer pengembangan Anda untuk mentransfer CSR. Ganti *device-ip-address* dengan alamat IP perangkat Anda, dan ganti *\$1/iotdevicekey.csr* dengan jalur ke file CSR di perangkat.

   ```
   scp device-ip-address:~/iotdevicekey.csr iotdevicekey.csr
   ```

1. Di komputer pengembangan Anda, buat folder tempat Anda mengunduh sertifikat untuk AWS IoT benda itu.

   ```
   mkdir greengrass-v2-certs
   ```

1. Gunakan file CSR untuk membuat dan mengunduh sertifikat untuk AWS IoT hal itu ke komputer pengembangan Anda.

   ```
   aws iot create-certificate-from-csr --set-as-active --certificate-signing-request=file://iotdevicekey.csr --certificate-pem-outfile greengrass-v2-certs/device.pem.crt
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----"
   }
   ```

   Simpan ARN sertifikat untuk digunakan untuk mengonfigurasi sertifikat nanti.

## Konfigurasikan sertifikat benda
<a name="configure-thing-certificate"></a>

Lampirkan sertifikat benda ke AWS IoT benda yang Anda buat sebelumnya, dan tambahkan AWS IoT kebijakan ke sertifikat untuk menentukan AWS IoT izin untuk perangkat inti.

**Untuk mengkonfigurasi sertifikat benda itu**

1. Lampirkan sertifikat ke AWS IoT benda itu.
   + Ganti *MyGreengrassCore* dengan nama AWS IoT benda Anda.
   + Ganti Amazon Resource Name (ARN) sertifikat dengan ARN sertifikat yang Anda buat pada langkah sebelumnya.

   ```
   aws iot attach-thing-principal --thing-name MyGreengrassCore --principal arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
   ```

   Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

1. Buat dan lampirkan AWS IoT kebijakan yang menentukan AWS IoT izin untuk perangkat inti Greengrass Anda. Kebijakan berikut memungkinkan akses ke semua topik MQTT dan operasi Greengrass, sehingga perangkat Anda bekerja dengan aplikasi kustom dan perubahan di masa mendatang yang memerlukan operasi Greengrass baru. Anda dapat membatasi kebijakan ini berdasarkan kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [AWS IoT Kebijakan minimal untuk perangkat AWS IoT Greengrass V2 inti](device-auth.md#greengrass-core-minimal-iot-policy).

   Jika Anda telah menyiapkan perangkat inti Greengrass sebelumnya, Anda dapat melampirkan AWS IoT kebijakannya alih-alih membuat yang baru.

   Lakukan hal-hal berikut:

   1. Buat file yang berisi dokumen AWS IoT kebijakan yang dibutuhkan perangkat inti Greengrass.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano greengrass-v2-iot-policy.json
      ```

      Salin JSON berikut ke dalam file.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "iot:Publish",
              "iot:Subscribe",
              "iot:Receive",
              "iot:Connect",
              "greengrass:*"
            ],
            "Resource": [
              "*"
            ]
          }
        ]
      }
      ```

   1. Buat AWS IoT kebijakan dari dokumen kebijakan.
      + Ganti *GreengrassV2IoTThingPolicy* dengan nama kebijakan yang akan dibuat.

      ```
      aws iot create-policy --policy-name GreengrassV2IoTThingPolicy --policy-document file://greengrass-v2-iot-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "policyName": "GreengrassV2IoTThingPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
        "policyDocument": "{
          \\"Version\\": \\"2012-10-17		 	 	 \\",
          \\"Statement\\": [
            {
              \\"Effect\\": \\"Allow\\",
              \\"Action\\": [
                \\"iot:Publish\\",
                \\"iot:Subscribe\\",
                \\"iot:Receive\\",
                \\"iot:Connect\\",
                \\"greengrass:*\\"
              ],
              \\"Resource\\": [
                \\"*\\"
              ]
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

   1. Lampirkan AWS IoT kebijakan ke sertifikat AWS IoT benda itu.
      + Ganti *GreengrassV2IoTThingPolicy* dengan nama kebijakan yang akan dilampirkan.
      + Ganti ARN target dengan ARN sertifikat untuk objek AWS IoT Anda.

      ```
      aws iot attach-policy --policy-name GreengrassV2IoTThingPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

## Buat peran pertukaran token
<a name="create-token-exchange-role"></a>

<a name="installation-create-token-exchange-role-intro"></a>Perangkat inti Greengrass menggunakan peran layanan IAM, yang disebut peran *pertukaran token, untuk mengotorisasi* panggilan ke layanan. AWS Perangkat menggunakan penyedia AWS IoT kredensional untuk mendapatkan AWS kredensi sementara untuk peran ini, yang memungkinkan perangkat berinteraksi, mengirim log ke Amazon Log AWS IoT, dan mengunduh CloudWatch artefak komponen khusus dari Amazon S3. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

<a name="installation-create-token-exchange-role-alias-intro"></a>Anda menggunakan *alias AWS IoT peran* untuk mengonfigurasi peran pertukaran token untuk perangkat inti Greengrass. Alias peran memungkinkan Anda mengubah peran pertukaran token untuk suatu perangkat tetapi menjaga konfigurasi perangkat tetap sama. Untuk informasi selengkapnya, lihat [Mengotorisasi panggilan langsung ke layanan AWS](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) di *Panduan Developer AWS IoT Core *.

Di bagian ini, Anda membuat peran IAM pertukaran token dan alias AWS IoT peran yang menunjuk ke peran tersebut. Jika Anda telah menyiapkan perangkat inti Greengrass, Anda dapat menggunakan peran pertukaran token dan alias peran alih-alih membuat yang baru. Kemudian, Anda mengonfigurasi objek AWS IoT untuk menggunakan peran dan alias itu.

**Buat peran pertukaran token IAM role**

1. <a name="create-token-exchange-role-create-iam-role"></a>Buat peran IAM yang dapat digunakan perangkat Anda sebagai peran pertukaran token. Lakukan hal-hal berikut:

   1. Buat file yang berisi dokumen kebijakan kepercayaan yang memerlukan peran pertukaran token.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano device-role-trust-policy.json
      ```

      Salin JSON berikut ke dalam file.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "credentials.iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. Buat peran pertukaran token dengan dokumen kebijakan kepercayaan.
      + Ganti *GreengrassV2TokenExchangeRole* dengan nama peran IAM yang akan dibuat.

      ```
      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "Role": {
          "Path": "/",
          "RoleName": "GreengrassV2TokenExchangeRole",
          "RoleId": "AROAZ2YMUHYHK5OKM77FB",
          "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
          "CreateDate": "2021-02-06T00:13:29+00:00",
          "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Service": "credentials.iot.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
              }
            ]
          }
        }
      ```

   1. Buat file yang berisi dokumen kebijakan akses yang diperlukan oleh peran pertukaran token.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano device-role-access-policy.json
      ```

      Salin JSON berikut ke dalam file.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents",
              "logs:DescribeLogStreams",
              "s3:GetBucketLocation"
            ],
            "Resource": "*"
          }
        ]
      }
      ```
**catatan**  
Kebijakan akses ini tidak mengizinkan akses ke artefak komponen dalam bucket S3. Untuk men-deploy komponen kustom yang menentukan artefak di Amazon S3, Anda harus menambahkan izin untuk peran tersebut untuk memungkinkan perangkat inti Anda untuk mengambil artefak komponen. Untuk informasi selengkapnya, lihat [Izinkan akses ke bucket S3 untuk artefak komponen](device-service-role.md#device-service-role-access-s3-bucket).  
Jika Anda belum memiliki bucket S3 untuk artefak komponen, Anda dapat menambahkan izin ini nanti setelah membuat bucket.

   1. Buat kebijakan IAM dari dokumen kebijakan.
      + Ganti *GreengrassV2TokenExchangeRoleAccess* dengan nama kebijakan IAM yang akan dibuat.

      ```
      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "Policy": {
          "PolicyName": "GreengrassV2TokenExchangeRoleAccess",
          "PolicyId": "ANPAZ2YMUHYHACI7C5Z66",
          "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
          "Path": "/",
          "DefaultVersionId": "v1",
          "AttachmentCount": 0,
          "PermissionsBoundaryUsageCount": 0,
          "IsAttachable": true,
          "CreateDate": "2021-02-06T00:37:17+00:00",
          "UpdateDate": "2021-02-06T00:37:17+00:00"
        }
      }
      ```

   1. Lampirkan kebijakan IAM untuk peran pertukaran token.
      + Ganti *GreengrassV2TokenExchangeRole* dengan nama peran IAM.
      + Ganti ARN peran dengan ARN dari kebijakan IAM yang Anda buat di langkah sebelumnya.

      ```
      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

1. <a name="create-token-exchange-role-create-iot-role-alias"></a>Buat alias AWS IoT peran yang menunjuk ke peran pertukaran token.
   + Ganti *GreengrassCoreTokenExchangeRoleAlias* dengan nama alias peran yang akan dibuat.
   + Ganti ARN peran dengan ARN dari IAM role yang Anda buat di langkah sebelumnya.

   ```
   aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "roleAlias": "GreengrassCoreTokenExchangeRoleAlias",
     "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
   }
   ```
**catatan**  
Untuk membuat alias peran, Anda harus memiliki izin untuk melewati IAM role pertukaran token ke AWS IoT. Jika Anda menerima pesan galat saat mencoba membuat alias peran, periksa apakah AWS pengguna Anda memiliki izin ini. Untuk informasi selengkapnya, lihat [Memberikan izin pengguna untuk meneruskan peran ke AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) di *AWS Identity and Access Management Panduan Pengguna*.

1. Buat dan lampirkan AWS IoT kebijakan yang memungkinkan perangkat inti Greengrass Anda menggunakan alias peran untuk mengambil peran pertukaran token. Jika Anda telah menyiapkan perangkat inti Greengrass sebelumnya, Anda dapat melampirkan kebijakan AWS IoT alias perannya alih-alih membuat yang baru. Lakukan hal-hal berikut:

   1. (Opsional) Buat file yang berisi dokumen AWS IoT kebijakan yang diperlukan alias peran.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano greengrass-v2-iot-role-alias-policy.json
      ```

      Salin JSON berikut ke dalam file.
      + Ganti ARN sumber daya dengan ARN alias peran Anda.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
          }
        ]
      }
      ```

   1. Buat AWS IoT kebijakan dari dokumen kebijakan.
      + Ganti *GreengrassCoreTokenExchangeRoleAliasPolicy* dengan nama AWS IoT kebijakan yang akan dibuat.

      ```
      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyDocument": "{
          \\"Version\\":\\"2012-10-17		 	 	 \\",
          \\"Statement\\": [
            {
              \\"Effect\\": \\"Allow\\",
              \\"Action\\": \\"iot:AssumeRoleWithCertificate\\",
              \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\"
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

   1. Lampirkan AWS IoT kebijakan ke sertifikat AWS IoT benda itu.
      + Ganti *GreengrassCoreTokenExchangeRoleAliasPolicy* dengan nama AWS IoT kebijakan alias peran.
      + Ganti ARN target dengan ARN sertifikat untuk objek AWS IoT Anda.

      ```
      aws iot attach-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

## Unduh sertifikat ke perangkat
<a name="download-thing-certificates"></a>

Sebelumnya, Anda mengunduh sertifikat perangkat ke komputer pengembangan Anda. Di bagian ini, Anda menyalin sertifikat ke perangkat inti Anda untuk mengatur perangkat dengan sertifikat yang digunakan untuk terhubung AWS IoT. Anda juga mengunduh sertifikat otoritas sertifikat root Amazon (CA). Jika Anda menggunakan HSM, Anda juga mengimpor file sertifikat ke HSM di bagian ini.
+ Jika Anda membuat sertifikat benda dan kunci pribadi di AWS IoT layanan sebelumnya, ikuti langkah-langkah untuk mengunduh sertifikat dengan kunci pribadi dan file sertifikat.
+ Jika Anda membuat sertifikat benda dari kunci pribadi dalam modul keamanan perangkat keras (HSM) sebelumnya, ikuti langkah-langkah untuk mengunduh sertifikat dengan kunci pribadi dan sertifikat di HSM.

### Unduh sertifikat dengan kunci pribadi dan file sertifikat
<a name="download-thing-certificates-without-hardware-security"></a>

**Untuk mengunduh sertifikat ke perangkat**

1. <a name="installation-copy-thing-certificate-to-device"></a>Salin sertifikat AWS IoT benda dari komputer pengembangan Anda ke perangkat. Jika SSH dan SCP diaktifkan pada komputer pengembangan dan perangkat, Anda dapat menggunakan `scp` perintah di komputer pengembangan Anda untuk mentransfer sertifikat. Ganti *device-ip-address* dengan alamat IP perangkat Anda.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Buat folder akar Greengrass pada perangkat tersebut. Anda nantinya akan menginstal perangkat lunak AWS IoT Greengrass Core ke folder ini.
**catatan**  
Windows memiliki batasan panjang jalur 260 karakter. Jika Anda menggunakan Windows, gunakan folder root seperti `C:\greengrass\v2` atau `D:\greengrass\v2` untuk menjaga jalur komponen Greengrass di bawah batas 260 karakter.

------
#### [ Linux or Unix ]
   + Ganti `/greengrass/v2` dengan folder yang akan digunakan.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Hanya Linux) Atur izin induk folder root Greengrass.
   + Ganti */greengrass* dengan induk folder root.

   ```
   sudo chmod 755 /greengrass
   ```

1. Salin sertifikat AWS IoT benda ke folder root Greengrass.

------
#### [ Linux or Unix ]
   + Ganti `/greengrass/v2` dengan folder root Greengrass.

   ```
   sudo cp -R ~/greengrass-v2-certs/* /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   robocopy %USERPROFILE%\greengrass-v2-certs C:\greengrass\v2 /E
   ```

------
#### [ PowerShell ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   cp -Path ~\greengrass-v2-certs\* -Destination C:\greengrass\v2
   ```

------

1. <a name="installation-download-root-ca-certificate"></a>Unduh sertifikat otoritas sertifikat root Amazon (CA). AWS IoT sertifikat dikaitkan dengan sertifikat CA root Amazon secara default.

------
#### [ Linux or Unix ]

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

### Unduh sertifikat dengan kunci pribadi dan sertifikat di HSM
<a name="download-thing-certificates-with-hardware-security"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.3 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md) AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows. 

**Untuk mengunduh sertifikat ke perangkat**

1. <a name="installation-copy-thing-certificate-to-device"></a>Salin sertifikat AWS IoT benda dari komputer pengembangan Anda ke perangkat. Jika SSH dan SCP diaktifkan pada komputer pengembangan dan perangkat, Anda dapat menggunakan `scp` perintah di komputer pengembangan Anda untuk mentransfer sertifikat. Ganti *device-ip-address* dengan alamat IP perangkat Anda.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Buat folder akar Greengrass pada perangkat tersebut. Anda nantinya akan menginstal perangkat lunak AWS IoT Greengrass Core ke folder ini.
**catatan**  
Windows memiliki batasan panjang jalur 260 karakter. Jika Anda menggunakan Windows, gunakan folder root seperti `C:\greengrass\v2` atau `D:\greengrass\v2` untuk menjaga jalur komponen Greengrass di bawah batas 260 karakter.

------
#### [ Linux or Unix ]
   + Ganti `/greengrass/v2` dengan folder yang akan digunakan.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Hanya Linux) Atur izin induk folder root Greengrass.
   + Ganti */greengrass* dengan induk folder root.

   ```
   sudo chmod 755 /greengrass
   ```

1. Impor file sertifikat benda,`~/greengrass-v2-certs/device.pem.crt`, ke HSM. Periksa dokumentasi untuk HSM Anda untuk mempelajari cara mengimpor sertifikat ke dalamnya. Impor sertifikat menggunakan token, ID slot, PIN pengguna, label objek, dan ID objek yang sama (jika HSM Anda menggunakannya) tempat Anda membuat kunci pribadi di HSM sebelumnya.
**catatan**  
Jika Anda membuat kunci pribadi sebelumnya tanpa ID objek, dan sertifikat memiliki ID objek, atur ID objek kunci privat ke nilai yang sama dengan sertifikat. Periksa dokumentasi untuk HSM Anda untuk mempelajari cara mengatur ID objek untuk objek kunci pribadi.

1. (Opsional) Hapus file sertifikat benda, sehingga hanya ada di HSM.

   ```
   rm ~/greengrass-v2-certs/device.pem.crt
   ```

1. <a name="installation-download-root-ca-certificate"></a>Unduh sertifikat otoritas sertifikat root Amazon (CA). AWS IoT sertifikat dikaitkan dengan sertifikat CA root Amazon secara default.

------
#### [ Linux or Unix ]

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

## Mengatur lingkungan perangkat
<a name="set-up-device-environment"></a>

Ikuti langkah-langkah di bagian ini untuk menyiapkan perangkat Linux atau Windows untuk digunakan sebagai perangkat AWS IoT Greengrass inti Anda.

### Siapkan perangkat Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Untuk mengatur perangkat Linux untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan. Perintah berikut menunjukkan cara menginstal OpenJDK di perangkat Anda.
   + Untuk distribusi berbasis Debian atau berbasis Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Untuk distribusi berbasis Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Untuk Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Untuk Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Ketika instalasi selesai, jalankan perintah berikut untuk memverifikasi bahwa Java berjalan pada perangkat Linux Anda.

   ```
   java -version
   ```

   Perintah mencetak versi Java yang berjalan pada perangkat. Misalnya, pada distribusi berbasis Debian, output mungkin terlihat mirip dengan sampel berikut.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opsional) Buat pengguna dan grup sistem default yang menjalankan komponen pada perangkat. Anda juga dapat memilih untuk membiarkan penginstal perangkat lunak AWS IoT Greengrass Core membuat pengguna dan grup ini selama instalasi dengan argumen `--component-default-user` installer. Untuk informasi selengkapnya, lihat [Argumen penginstal](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verifikasi bahwa pengguna yang menjalankan perangkat lunak AWS IoT Greengrass Core (biasanya`root`), memiliki izin untuk menjalankan `sudo` dengan pengguna dan grup apa pun.

   1. Jalankan perintah berikut untuk membuka `/etc/sudoers` file.

      ```
      sudo visudo
      ```

   1. Verifikasi bahwa izin untuk pengguna terlihat seperti contoh berikut.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Opsional) Untuk [menjalankan fungsi Lambda kontainer](run-lambda-functions.md), Anda harus mengaktifkan [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, dan Anda harus mengaktifkan dan memasang memori dan perangkat cgroups.** Jika Anda tidak berencana untuk menjalankan fungsi Lambda kontainer, Anda dapat melewati langkah ini.

   Untuk mengaktifkan opsi cgroups ini, boot perangkat dengan parameter kernel Linux berikut.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Untuk informasi tentang melihat dan menyetel parameter kernel untuk perangkat Anda, lihat dokumentasi untuk sistem operasi dan boot loader Anda. Ikuti instruksi untuk mengatur parameter kernel secara permanen.

1. Instal semua dependensi lain yang diperlukan pada perangkat Anda seperti yang ditunjukkan oleh daftar persyaratan di. [Persyaratan perangkat](greengrass-nucleus-component.md#greengrass-v2-requirements)

### Siapkan perangkat Windows
<a name="set-up-windows-device-environment"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)<a name="set-up-windows-device-environment-procedure"></a>

**Untuk mengatur perangkat Windows untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan.

1. Periksa apakah Java tersedia pada variabel sistem [PATH](https://en.wikipedia.org/wiki/PATH_(variable)), dan tambahkan jika tidak. LocalSystem Akun menjalankan perangkat lunak AWS IoT Greengrass Core, jadi Anda harus menambahkan Java ke variabel sistem PATH alih-alih variabel pengguna PATH untuk pengguna Anda. Lakukan hal-hal berikut:

   1. Tekan tombol Windows untuk membuka menu mulai.

   1. Ketik **environment variables** untuk mencari opsi sistem dari menu mulai.

   1. Di hasil pencarian menu mulai, pilih **Edit variabel lingkungan sistem** untuk membuka jendela **Properti sistem**.

   1. Pilih **variabel Lingkungan...** untuk membuka jendela **Variabel Lingkungan**.

   1. Di bawah **Variabel sistem**, pilih **Path**, lalu pilih **Edit**. Di jendela **variabel Edit lingkungan**, Anda dapat melihat setiap jalur pada baris terpisah.

   1. Periksa apakah jalur ke `bin` folder instalasi Java ada. Jalannya mungkin terlihat mirip dengan contoh berikut.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Jika `bin` folder instalasi Java hilang dari **Path**, pilih **Baru** untuk menambahkannya, lalu pilih **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Buka Windows Command Prompt (`cmd.exe`) sebagai administrator.

1. <a name="set-up-windows-device-environment-create"></a>Buat pengguna default di LocalSystem akun di perangkat Windows. Ganti *password* dengan kata sandi yang aman.

   ```
   net user /add ggc_user password
   ```
**Tip**  <a name="windows-password-expiration-tip"></a>
Bergantung pada konfigurasi Windows Anda, kata sandi pengguna mungkin diatur untuk kedaluwarsa pada tanggal di masa mendatang. Untuk memastikan aplikasi Greengrass Anda terus beroperasi, lacak kapan kata sandi kedaluwarsa, dan perbarui sebelum kedaluwarsa. Anda juga dapat mengatur kata sandi pengguna agar tidak pernah kedaluwarsa.  
Untuk memeriksa kapan pengguna dan kata sandinya kedaluwarsa, jalankan perintah berikut.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Untuk mengatur kata sandi pengguna agar tidak pernah kedaluwarsa, jalankan perintah berikut.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Jika Anda menggunakan Windows 10 atau yang lebih baru di mana [`wmic`perintah tidak digunakan lagi](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), jalankan perintah berikut. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Unduh dan instal [PsExecutilitas](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) dari Microsoft pada perangkat. 

1. <a name="set-up-windows-device-credentials"></a>Gunakan PsExec utilitas untuk menyimpan nama pengguna dan kata sandi untuk pengguna default dalam contoh Credential Manager untuk LocalSystem akun tersebut. Ganti *password* dengan kata sandi pengguna yang Anda tetapkan sebelumnya.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Jika **PsExec License Agreement**terbuka, pilih **Accept**untuk menyetujui lisensi dan jalankan perintah.
**catatan**  
Pada perangkat Windows, LocalSystem akun menjalankan inti Greengrass, dan Anda harus menggunakan utilitas untuk menyimpan PsExec informasi pengguna default di akun. LocalSystem Menggunakan aplikasi Credential Manager menyimpan informasi ini di akun Windows dari pengguna yang saat ini masuk, bukan LocalSystem akun.

## Unduh perangkat lunak AWS IoT Greengrass Core
<a name="download-greengrass-core-v2"></a>

Anda dapat mengunduh versi terbaru perangkat lunak AWS IoT Greengrass Core dari lokasi berikut:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**catatan**  
Anda dapat mengunduh versi tertentu dari perangkat lunak AWS IoT Greengrass Core dari lokasi berikut. Ganti *version* dengan versi yang akan diunduh.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Untuk mengunduh perangkat lunak AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Di perangkat inti Anda, unduh perangkat lunak AWS IoT Greengrass Core ke file bernama`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opsional) Untuk memverifikasi tanda tangan perangkat lunak inti Greengrass
**catatan**  
Fitur ini tersedia dengan Greengrass nucleus versi 2.9.5 dan yang lebih baru.

   1. Gunakan perintah berikut untuk memverifikasi tanda tangan artefak inti Greengrass Anda:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. `jarsigner`Pemanggilan menghasilkan output yang menunjukkan hasil verifikasi.

      1. Jika file zip inti Greengrass ditandatangani, output berisi pernyataan berikut:

         ```
         jar verified.
         ```

      1. Jika file zip inti Greengrass tidak ditandatangani, output berisi pernyataan berikut:

         ```
         jar is unsigned.
         ```

   1. Jika Anda memberikan `-certs` opsi Jarsigner bersama dengan `-verify` dan `-verbose` opsi, output juga menyertakan informasi sertifikat penandatangan terperinci.

1. <a name="installation-unzip-ggc-software-step"></a>Buka zip perangkat lunak AWS IoT Greengrass Core ke folder di perangkat Anda. Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opsional) Jalankan perintah berikut untuk melihat versi perangkat lunak AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**penting**  <a name="installer-folder-2.4.0-warning"></a>
Jika Anda menginstal versi inti Greengrass lebih awal dari v2.4.0, jangan hapus folder ini setelah Anda menginstal perangkat lunak Core. AWS IoT Greengrass Perangkat lunak AWS IoT Greengrass Core menggunakan file dalam folder ini untuk dijalankan.  
Jika Anda mengunduh versi terbaru perangkat lunak, Anda menginstal v2.4.0 atau yang lebih baru, dan Anda dapat menghapus folder ini setelah Anda menginstal perangkat lunak AWS IoT Greengrass Core.

## Instal perangkat lunak AWS IoT Greengrass Core
<a name="run-greengrass-core-v2-installer-manual"></a>

Jalankan penginstal dengan argumen yang menentukan tindakan berikut:
+ Instal dari file konfigurasi sebagian yang menetapkan untuk menggunakan AWS sumber daya dan sertifikat yang Anda buat sebelumnya. Perangkat lunak AWS IoT Greengrass Core menggunakan file konfigurasi yang menentukan konfigurasi setiap komponen Greengrass pada perangkat. Installer membuat file konfigurasi lengkap dari file konfigurasi parsial yang Anda berikan.
+ <a name="install-argument-component-default-user"></a>Tentukan untuk menggunakan pengguna `ggc_user` sistem untuk menjalankan komponen perangkat lunak pada perangkat inti. Pada perangkat Linux, perintah ini juga menentukan untuk menggunakan grup `ggc_group` sistem, dan penginstal membuat pengguna dan grup sistem untuk Anda.
+ <a name="install-argument-system-service"></a>Siapkan perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem yang berjalan saat boot. Pada perangkat Linux, ini membutuhkan sistem init [Systemd](https://en.wikipedia.org/wiki/Systemd).
**penting**  <a name="windows-system-service-requirement-important-note"></a>
Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

Untuk informasi lebih lanjut tentang argumen yang dapat Anda tentukan, lihat [Argumen penginstal](configure-installer.md).

**catatan**  
<a name="jvm-tuning-note"></a>Jika Anda menjalankan AWS IoT Greengrass perangkat dengan memori terbatas, Anda dapat mengontrol jumlah memori yang digunakan perangkat lunak AWS IoT Greengrass Core. Untuk mengontrol alokasi memori, Anda dapat mengatur pilihan ukuran tumpukan JVM di konfigurasi parameter `jvmOptions` dalam komponen nukleus anda. Untuk informasi selengkapnya, lihat [Kontrol alokasi memori dengan opsi JVM](configure-greengrass-core-v2.md#jvm-tuning).
+ Jika Anda membuat sertifikat benda dan kunci pribadi di AWS IoT layanan sebelumnya, ikuti langkah-langkah untuk menginstal perangkat lunak AWS IoT Greengrass inti dengan kunci pribadi dan file sertifikat.
+ Jika Anda membuat sertifikat benda dari kunci pribadi dalam modul keamanan perangkat keras (HSM) sebelumnya, ikuti langkah-langkah untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan kunci pribadi dan sertifikat di HSM.

### Instal perangkat lunak AWS IoT Greengrass Core dengan kunci pribadi dan file sertifikat
<a name="manual-installation-without-hardware-security"></a>

**Untuk menginstal perangkat lunak AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Periksa versi perangkat lunak AWS IoT Greengrass inti.
   + Ganti *GreengrassInstaller* dengan path ke folder yang berisi perangkat lunak.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Gunakan editor teks untuk membuat file konfigurasi bernama `config.yaml` yang akan disediakan ke penginstal.

   <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Salin konten YAML berikut ke dalam file. File konfigurasi parsial ini menentukan parameter sistem dan parameter inti Greengrass.

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   ```

   Kemudian, lakukan hal berikut:
   + Ganti setiap instance `/greengrass/v2` dengan folder root Greengrass.
   + Ganti *MyGreengrassCore* dengan nama AWS IoT benda itu.
   + Ganti *2.16.1* dengan versi perangkat lunak AWS IoT Greengrass Core.
   + Ganti *us-west-2* dengan Wilayah AWS tempat Anda membuat sumber daya.
   + Ganti *GreengrassCoreTokenExchangeRoleAlias* dengan nama alias peran pertukaran token.
   + Ganti `iotDataEndpoint` dengan titik akhir AWS IoT data Anda.
   + Ganti `iotCredEndpoint` dengan titik akhir AWS IoT kredensial Anda.
**catatan**  
Dalam file konfigurasi ini, Anda dapat menyesuaikan opsi konfigurasi nukleus lain seperti port dan proksi jaringan yang akan digunakan, seperti yang ditunjukkan dalam contoh berikut. Untuk informasi selengkapnya, lihat [konfigurasi nukleus Greengrass](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration).  

   ```
   ---
   system:
     certificateFilePath: "/greengrass/v2/device.pem.crt"
     privateKeyPath: "/greengrass/v2/private.pem.key"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         mqtt:
           port: 443
         greengrassDataPlanePort: 443
         networkProxy:
           noProxyAddresses: "http://192.168.0.1,www.example.com"
           proxy:
             url: "https://my-proxy-server:1100"
             username: "Mary_Major"
             password: "pass@word1357"
   ```

1. Jalankan penginstal, dan tentukan `--init-config` untuk menyediakan file konfigurasi.
   + Ganti `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan folder root Greengrass.
   + Ganti setiap instance *GreengrassInstaller* dengan folder tempat Anda membongkar penginstal.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**penting**  <a name="windows-system-service-installer-argument-important-note"></a>
Pada perangkat inti Windows, Anda harus menentukan `--setup-system-service true` untuk mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

   <a name="installer-setup-system-service-output-message"></a>Jika Anda menentukan `--setup-system-service true`, penginstal akan mencetak `Successfully set up Nucleus as a system service` jika ia mengatur dan menjalankan perangkat lunak sebagai layanan. Jika tidak, installer tersebut tidak akan menghasilkan pesan apa pun jika ia berhasil menginstal perangkat lunak tersebut.
**catatan**  <a name="installer-deploy-dev-tools-without-provision"></a>
Anda tidak dapat menggunakan argumen `deploy-dev-tools` untuk men-deploy alat pengembangan lokal ketika Anda menjalankan penginstal tersebut tanpa argumen `--provision true`. Untuk informasi tentang cara men-deploy Greengrass CLI secara langsung pada perangkat Anda, lihat [Antarmuka Baris Perintah Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifikasi instalasi dengan melihat file di folder root.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Jika penginstalan berhasil, folder akar berisi beberapa folder, seperti `config`, `packages`, dan `logs`.

### Instal perangkat lunak AWS IoT Greengrass Core dengan kunci pribadi dan sertifikat di HSM
<a name="manual-installation-with-hardware-security"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.3 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md) AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows. 

**Untuk menginstal perangkat lunak AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Periksa versi perangkat lunak AWS IoT Greengrass inti.
   + Ganti *GreengrassInstaller* dengan path ke folder yang berisi perangkat lunak.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Untuk mengaktifkan perangkat lunak AWS IoT Greengrass Core menggunakan kunci pribadi dan sertifikat di HSM, instal [komponen penyedia PKCS \$111](pkcs11-provider-component.md) saat Anda menginstal perangkat lunak Core. AWS IoT Greengrass Komponen penyedia PKCS \$111 adalah plugin yang dapat Anda konfigurasi selama instalasi. Anda dapat mengunduh versi terbaru komponen penyedia PKCS \$111 dari lokasi berikut:
   + [https://d2s8p88vqu9w66.cloudfront. net/releases/Pkcs11Provider/aws.GreenGrass.crypto.PKCS11Provider-Latest.jar](https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar)

   Unduh plugin penyedia PKCS \$111 ke file bernama. `aws.greengrass.crypto.Pkcs11Provider.jar` Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/Pkcs11Provider/aws.greengrass.crypto.Pkcs11Provider-latest.jar > GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar
   ```

   <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. Gunakan editor teks untuk membuat file konfigurasi bernama `config.yaml` yang akan disediakan ke penginstal.

   <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Salin konten YAML berikut ke dalam file. File konfigurasi sebagian ini menentukan parameter sistem, parameter inti Greengrass, dan parameter penyedia PKCS \$111.

   ```
   ---
   system:
     certificateFilePath: "pkcs11:object=iotdevicekey;type=cert"
     privateKeyPath: "pkcs11:object=iotdevicekey;type=private"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
     aws.greengrass.crypto.Pkcs11Provider:
       configuration:
         name: "softhsm_pkcs11"
         library: "/usr/local/Cellar/softhsm/2.6.1/lib/softhsm/libsofthsm2.so"
         slot: 1
         userPin: "1234"
   ```

   Kemudian, lakukan hal berikut:
   + Ganti setiap instance *iotdevicekey* di PKCS \$111 URIs dengan label objek tempat Anda membuat kunci pribadi dan mengimpor sertifikat.
   + Ganti setiap instance `/greengrass/v2` dengan folder root Greengrass.
   + Ganti *MyGreengrassCore* dengan nama AWS IoT benda itu.
   + Ganti *2.16.1* dengan versi perangkat lunak AWS IoT Greengrass Core.
   + Ganti *us-west-2* dengan Wilayah AWS tempat Anda membuat sumber daya.
   + Ganti *GreengrassCoreTokenExchangeRoleAlias* dengan nama alias peran pertukaran token.
   + Ganti `iotDataEndpoint` dengan titik akhir AWS IoT data Anda.
   + Ganti `iotCredEndpoint` dengan titik akhir AWS IoT kredensial Anda.
   + Ganti parameter konfigurasi untuk `aws.greengrass.crypto.Pkcs11Provider` komponen dengan nilai untuk konfigurasi HSM pada perangkat inti.
**catatan**  
Dalam file konfigurasi ini, Anda dapat menyesuaikan opsi konfigurasi nukleus lain seperti port dan proksi jaringan yang akan digunakan, seperti yang ditunjukkan dalam contoh berikut. Untuk informasi selengkapnya, lihat [konfigurasi nukleus Greengrass](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration).  

   ```
   ---
   system:
     certificateFilePath: "pkcs11:object=iotdevicekey;type=cert"
     privateKeyPath: "pkcs11:object=iotdevicekey;type=private"
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "2.16.1"
       configuration:
         awsRegion: "us-west-2"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         mqtt:
           port: 443
         greengrassDataPlanePort: 443
         networkProxy:
           noProxyAddresses: "http://192.168.0.1,www.example.com"
           proxy:
             url: "https://my-proxy-server:1100"
             username: "Mary_Major"
             password: "pass@word1357"
     aws.greengrass.crypto.Pkcs11Provider:
       configuration:
         name: "softhsm_pkcs11"
         library: "/usr/local/Cellar/softhsm/2.6.1/lib/softhsm/libsofthsm2.so"
         slot: 1
         userPin: "1234"
   ```

1. Jalankan penginstal, dan tentukan `--init-config` untuk menyediakan file konfigurasi.
   + Ganti `/greengrass/v2` dengan folder root Greengrass.
   + Ganti setiap instance *GreengrassInstaller* dengan folder tempat Anda membongkar penginstal.

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.crypto.Pkcs11Provider.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```
**penting**  <a name="windows-system-service-installer-argument-important-note"></a>
Pada perangkat inti Windows, Anda harus menentukan `--setup-system-service true` untuk mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

   <a name="installer-setup-system-service-output-message"></a>Jika Anda menentukan `--setup-system-service true`, penginstal akan mencetak `Successfully set up Nucleus as a system service` jika ia mengatur dan menjalankan perangkat lunak sebagai layanan. Jika tidak, installer tersebut tidak akan menghasilkan pesan apa pun jika ia berhasil menginstal perangkat lunak tersebut.
**catatan**  <a name="installer-deploy-dev-tools-without-provision"></a>
Anda tidak dapat menggunakan argumen `deploy-dev-tools` untuk men-deploy alat pengembangan lokal ketika Anda menjalankan penginstal tersebut tanpa argumen `--provision true`. Untuk informasi tentang cara men-deploy Greengrass CLI secara langsung pada perangkat Anda, lihat [Antarmuka Baris Perintah Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifikasi instalasi dengan melihat file di folder root.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Jika penginstalan berhasil, folder akar berisi beberapa folder, seperti `config`, `packages`, dan `logs`.

<a name="install-greengrass-core-run-software"></a>Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem, penginstal menjalankan perangkat lunak untuk Anda. Jika tidak, Anda harus menjalankan perangkat lunak itu secara manual. Untuk informasi selengkapnya, lihat [Jalankan perangkat lunak AWS IoT Greengrass Core](run-greengrass-core-v2.md).

**catatan**  <a name="install-greengrass-core-recognized-note"></a>
<a name="install-greengrass-core-recognized-para"></a>Saat perangkat lunak AWS IoT Greengrass Core terhubung ke cloud, perangkat Anda akan dikenali sebagai perangkat Core.

<a name="install-greengrass-core-next-steps-intro"></a>Untuk informasi selengkapnya tentang cara mengkonfigurasi dan menggunakan perangkat lunak dan AWS IoT Greengrass, lihat berikut ini:<a name="install-greengrass-core-next-steps-links"></a>
+ [Konfigurasikan perangkat lunak AWS IoT Greengrass Inti](configure-greengrass-core-v2.md)
+ [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md)
+ [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md)
+ [Antarmuka Baris Perintah Greengrass](gg-cli.md)

# Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan AWS IoT armada
<a name="fleet-provisioning"></a>

[Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)

Dengan penyediaan AWS IoT armada, Anda dapat mengonfigurasi AWS IoT untuk menghasilkan dan mengirimkan sertifikat perangkat X.509 dan kunci pribadi dengan aman ke perangkat Anda saat terhubung untuk pertama kalinya. AWS IoT AWS IoT menyediakan sertifikat klien yang ditandatangani oleh otoritas sertifikat Amazon Root (CA). Anda juga dapat mengonfigurasi AWS IoT untuk menentukan grup hal, jenis benda, dan izin untuk perangkat inti Greengrass yang Anda sediakan dengan penyediaan armada. Anda menentukan *templat penyediaan* untuk menentukan bagaimana AWS IoT ketentuan setiap perangkat. Template penyediaan menentukan hal, kebijakan, dan sumber daya sertifikat yang akan dibuat untuk perangkat saat penyediaan. Untuk informasi selengkapnya, lihat [Templat penyediaan di Panduan AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html) *Pengembang*.

AWS IoT Greengrass menyediakan plugin penyediaan AWS IoT armada yang dapat Anda gunakan untuk menginstal perangkat lunak AWS IoT Greengrass Core menggunakan AWS sumber daya yang dibuat oleh penyediaan AWS IoT armada. Plugin penyediaan armada menggunakan *penyediaan berdasarkan klaim*. Perangkat menggunakan sertifikat klaim penyediaan dan kunci pribadi untuk mendapatkan sertifikat perangkat X.509 unik dan kunci pribadi yang dapat digunakan untuk operasi reguler. Anda dapat menyematkan sertifikat klaim dan kunci pribadi di setiap perangkat selama pembuatan, sehingga pelanggan Anda dapat mengaktifkan perangkat nanti ketika setiap perangkat online. Anda dapat menggunakan sertifikat klaim dan kunci pribadi yang sama untuk beberapa perangkat. Untuk informasi selengkapnya, lihat [Penyediaan berdasarkan klaim](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#claim-based) di Panduan *AWS IoT Core Pengembang*.

**catatan**  
Plugin penyediaan armada saat ini tidak mendukung penyimpanan kunci pribadi dan file sertifikat dalam modul keamanan perangkat keras (HSM). Untuk menggunakan HSM, [instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan manual](manual-installation.md).

Untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan AWS IoT armada, Anda harus menyiapkan sumber daya Akun AWS yang AWS IoT digunakan untuk menyediakan perangkat inti Greengrass. Sumber daya ini mencakup templat penyediaan, sertifikat klaim, dan peran [IAM pertukaran token](device-service-role.md). Setelah Anda membuat sumber daya ini, Anda dapat menggunakannya kembali untuk menyediakan beberapa perangkat inti dalam armada. Untuk informasi selengkapnya, lihat [Siapkan penyediaan AWS IoT armada untuk perangkat inti Greengrass](fleet-provisioning-setup.md).

**penting**  <a name="install-greengrass-core-requirements-note"></a>
Sebelum Anda mengunduh perangkat lunak AWS IoT Greengrass Core, periksa apakah perangkat inti Anda memenuhi [persyaratan](greengrass-nucleus-component.md#greengrass-v2-requirements) untuk menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core v2.0.

**Topics**
+ [Prasyarat](#fleet-provisioning-prerequisites)
+ [Ambil titik akhir AWS IoT](#retrieve-iot-endpoints)
+ [Unduh sertifikat ke perangkat](#download-claim-certificates)
+ [Mengatur lingkungan perangkat](#set-up-device-environment)
+ [Unduh perangkat lunak AWS IoT Greengrass Inti](#download-greengrass-core-v2)
+ [Unduh plugin penyediaan AWS IoT armada](#download-fleet-provisioning-plugin)
+ [Instal perangkat lunak AWS IoT Greengrass Core](#run-greengrass-core-v2-installer-fleet)
+ [Siapkan penyediaan AWS IoT armada untuk perangkat inti Greengrass](fleet-provisioning-setup.md)
+ [Konfigurasikan AWS IoT plugin penyediaan armada](fleet-provisioning-configuration.md)
+ [AWS IoT changelog plugin penyediaan armada](fleet-provisioning-changelog.md)

## Prasyarat
<a name="fleet-provisioning-prerequisites"></a>

Untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan AWS IoT armada, Anda harus terlebih dahulu [mengatur penyediaan AWS IoT armada untuk perangkat inti Greengrass](fleet-provisioning-setup.md). Setelah Anda menyelesaikan langkah-langkah ini sekali, Anda dapat menggunakan penyediaan armada untuk menginstal perangkat lunak AWS IoT Greengrass Core di sejumlah perangkat.

## Ambil titik akhir AWS IoT
<a name="retrieve-iot-endpoints"></a>

Dapatkan AWS IoT titik akhir untuk Anda Akun AWS, dan simpan untuk digunakan nanti. Perangkat Anda menggunakan titik akhir ini untuk tersambung ke AWS IoT. Lakukan hal-hal berikut:

1. Dapatkan titik akhir AWS IoT data untuk Anda Akun AWS.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Dapatkan titik akhir AWS IoT kredensial untuk Anda. Akun AWS

   ```
   aws iot describe-endpoint --endpoint-type iot:CredentialProvider
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   }
   ```

## Unduh sertifikat ke perangkat
<a name="download-claim-certificates"></a>

Perangkat menggunakan sertifikat klaim dan kunci pribadi untuk mengautentikasi permintaannya untuk menyediakan AWS sumber daya dan memperoleh sertifikat perangkat X.509. Anda dapat menyematkan sertifikat klaim dan kunci pribadi ke dalam perangkat selama pembuatan, atau menyalin sertifikat dan kunci ke perangkat selama instalasi. Di bagian ini, Anda menyalin sertifikat klaim dan kunci pribadi ke perangkat. Anda juga mengunduh sertifikat Amazon Root Certificate Authority (CA) ke perangkat.

**penting**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Kunci pribadi klaim penyediaan harus diamankan setiap saat, termasuk pada perangkat inti Greengrass. Kami menyarankan Anda menggunakan CloudWatch metrik dan log Amazon untuk memantau indikasi penyalahgunaan, seperti penggunaan sertifikat klaim yang tidak sah ke perangkat penyediaan. Jika Anda mendeteksi penyalahgunaan, nonaktifkan sertifikat klaim penyediaan sehingga tidak dapat digunakan untuk penyediaan perangkat. Untuk informasi selengkapnya, lihat [Pemantauan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) di *Panduan AWS IoT Core Pengembang*.  
Untuk membantu mengelola jumlah perangkat dengan lebih baik, dan perangkat mana, yang mendaftarkan diri di perangkat Anda Akun AWS, Anda dapat menentukan hook pra-penyediaan saat membuat templat penyediaan armada. Hook pra-penyediaan adalah AWS Lambda fungsi yang memvalidasi parameter template yang disediakan perangkat selama pendaftaran. Misalnya, Anda dapat membuat hook pra-penyediaan yang memeriksa ID perangkat terhadap database untuk memverifikasi bahwa perangkat memiliki izin untuk menyediakan. *Untuk informasi selengkapnya, lihat [Pra-penyediaan kait](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) di Panduan Pengembang.AWS IoT Core *

**Untuk mengunduh sertifikat klaim ke perangkat**

1. Salin sertifikat klaim dan kunci pribadi ke perangkat. Jika SSH dan SCP diaktifkan pada komputer pengembangan dan perangkat, Anda dapat menggunakan `scp` perintah di komputer pengembangan Anda untuk mentransfer sertifikat klaim dan kunci pribadi. Contoh perintah berikut mentransfer file-file ini folder bernama `claim-certs` pada komputer pengembangan Anda ke perangkat. Ganti *device-ip-address* dengan alamat IP perangkat Anda.

   ```
   scp -r claim-certs/ device-ip-address:~
   ```

1. <a name="installation-create-greengrass-root-folder"></a>Buat folder akar Greengrass pada perangkat tersebut. Anda nantinya akan menginstal perangkat lunak AWS IoT Greengrass Core ke folder ini.
**catatan**  
Windows memiliki batasan panjang jalur 260 karakter. Jika Anda menggunakan Windows, gunakan folder root seperti `C:\greengrass\v2` atau `D:\greengrass\v2` untuk menjaga jalur komponen Greengrass di bawah batas 260 karakter.

------
#### [ Linux or Unix ]
   + Ganti `/greengrass/v2` dengan folder yang akan digunakan.

   ```
   sudo mkdir -p /greengrass/v2
   ```

------
#### [ Windows Command Prompt ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------
#### [ PowerShell ]
   + Ganti *C:\$1greengrass\$1v2* dengan folder yang akan digunakan.

   ```
   mkdir C:\greengrass\v2
   ```

------

1. <a name="installation-set-greengrass-root-folder-permissions"></a>(Hanya Linux) Atur izin induk folder root Greengrass.
   + Ganti */greengrass* dengan induk folder root.

   ```
   sudo chmod 755 /greengrass
   ```

1. Pindahkan sertifikat klaim ke folder root Greengrass.
   + Ganti `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan folder root Greengrass.

------
#### [ Linux or Unix ]

   ```
   sudo mv ~/claim-certs /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   move %USERPROFILE%\claim-certs C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   mv -Path ~\claim-certs -Destination C:\greengrass\v2
   ```

------

1. <a name="installation-download-root-ca-certificate"></a>Unduh sertifikat otoritas sertifikat root Amazon (CA). AWS IoT sertifikat dikaitkan dengan sertifikat CA root Amazon secara default.

------
#### [ Linux or Unix ]

   ```
   sudo curl -o /greengrass/v2/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o C:\greengrass\v2\\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile C:\greengrass\v2\\AmazonRootCA1.pem
   ```

------

## Mengatur lingkungan perangkat
<a name="set-up-device-environment"></a>

Ikuti langkah-langkah di bagian ini untuk menyiapkan perangkat Linux atau Windows untuk digunakan sebagai perangkat AWS IoT Greengrass inti Anda.

### Siapkan perangkat Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Untuk mengatur perangkat Linux untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan. Perintah berikut menunjukkan cara menginstal OpenJDK di perangkat Anda.
   + Untuk distribusi berbasis Debian atau berbasis Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Untuk distribusi berbasis Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Untuk Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Untuk Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Ketika instalasi selesai, jalankan perintah berikut untuk memverifikasi bahwa Java berjalan pada perangkat Linux Anda.

   ```
   java -version
   ```

   Perintah mencetak versi Java yang berjalan pada perangkat. Misalnya, pada distribusi berbasis Debian, output mungkin terlihat mirip dengan sampel berikut.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opsional) Buat pengguna dan grup sistem default yang menjalankan komponen pada perangkat. Anda juga dapat memilih untuk membiarkan penginstal perangkat lunak AWS IoT Greengrass Core membuat pengguna dan grup ini selama instalasi dengan argumen `--component-default-user` installer. Untuk informasi selengkapnya, lihat [Argumen penginstal](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verifikasi bahwa pengguna yang menjalankan perangkat lunak AWS IoT Greengrass Core (biasanya`root`), memiliki izin untuk menjalankan `sudo` dengan pengguna dan grup apa pun.

   1. Jalankan perintah berikut untuk membuka `/etc/sudoers` file.

      ```
      sudo visudo
      ```

   1. Verifikasi bahwa izin untuk pengguna terlihat seperti contoh berikut.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Opsional) Untuk [menjalankan fungsi Lambda kontainer](run-lambda-functions.md), Anda harus mengaktifkan [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, dan Anda harus mengaktifkan dan memasang memori dan perangkat cgroups.** Jika Anda tidak berencana untuk menjalankan fungsi Lambda kontainer, Anda dapat melewati langkah ini.

   Untuk mengaktifkan opsi cgroups ini, boot perangkat dengan parameter kernel Linux berikut.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Untuk informasi tentang melihat dan menyetel parameter kernel untuk perangkat Anda, lihat dokumentasi untuk sistem operasi dan boot loader Anda. Ikuti instruksi untuk mengatur parameter kernel secara permanen.

1. Instal semua dependensi lain yang diperlukan pada perangkat Anda seperti yang ditunjukkan oleh daftar persyaratan di. [Persyaratan perangkat](greengrass-nucleus-component.md#greengrass-v2-requirements)

### Mengatur perangkat Windows
<a name="set-up-windows-device-environment"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)<a name="set-up-windows-device-environment-procedure"></a>

**Untuk mengatur perangkat Windows untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan.

1. Periksa apakah Java tersedia pada variabel sistem [PATH](https://en.wikipedia.org/wiki/PATH_(variable)), dan tambahkan jika tidak. LocalSystem Akun menjalankan perangkat lunak AWS IoT Greengrass Core, jadi Anda harus menambahkan Java ke variabel sistem PATH alih-alih variabel pengguna PATH untuk pengguna Anda. Lakukan hal-hal berikut:

   1. Tekan tombol Windows untuk membuka menu mulai.

   1. Ketik **environment variables** untuk mencari opsi sistem dari menu mulai.

   1. Di hasil pencarian menu mulai, pilih **Edit variabel lingkungan sistem** untuk membuka jendela **Properti sistem**.

   1. Pilih **variabel Lingkungan...** untuk membuka jendela **Variabel Lingkungan**.

   1. Di bawah **Variabel sistem**, pilih **Path**, lalu pilih **Edit**. Di jendela **variabel Edit lingkungan**, Anda dapat melihat setiap jalur pada baris terpisah.

   1. Periksa apakah jalur ke `bin` folder instalasi Java ada. Jalannya mungkin terlihat mirip dengan contoh berikut.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Jika `bin` folder instalasi Java hilang dari **Path**, pilih **Baru** untuk menambahkannya, lalu pilih **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Buka Windows Command Prompt (`cmd.exe`) sebagai administrator.

1. <a name="set-up-windows-device-environment-create"></a>Buat pengguna default di LocalSystem akun di perangkat Windows. Ganti *password* dengan kata sandi yang aman.

   ```
   net user /add ggc_user password
   ```
**Tip**  <a name="windows-password-expiration-tip"></a>
Bergantung pada konfigurasi Windows Anda, kata sandi pengguna mungkin diatur untuk kedaluwarsa pada tanggal di masa mendatang. Untuk memastikan aplikasi Greengrass Anda terus beroperasi, lacak kapan kata sandi kedaluwarsa, dan perbarui sebelum kedaluwarsa. Anda juga dapat mengatur kata sandi pengguna agar tidak pernah kedaluwarsa.  
Untuk memeriksa kapan pengguna dan kata sandinya kedaluwarsa, jalankan perintah berikut.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Untuk mengatur kata sandi pengguna agar tidak pernah kedaluwarsa, jalankan perintah berikut.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Jika Anda menggunakan Windows 10 atau yang lebih baru di mana [`wmic`perintah tidak digunakan lagi](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), jalankan perintah berikut. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Unduh dan instal [PsExecutilitas](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) dari Microsoft pada perangkat. 

1. <a name="set-up-windows-device-credentials"></a>Gunakan PsExec utilitas untuk menyimpan nama pengguna dan kata sandi untuk pengguna default dalam contoh Credential Manager untuk LocalSystem akun tersebut. Ganti *password* dengan kata sandi pengguna yang Anda tetapkan sebelumnya.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Jika **PsExec License Agreement**terbuka, pilih **Accept**untuk menyetujui lisensi dan jalankan perintah.
**catatan**  
Pada perangkat Windows, LocalSystem akun menjalankan inti Greengrass, dan Anda harus menggunakan utilitas untuk menyimpan PsExec informasi pengguna default di akun. LocalSystem Menggunakan aplikasi Credential Manager menyimpan informasi ini di akun Windows dari pengguna yang saat ini masuk, bukan LocalSystem akun.

## Unduh perangkat lunak AWS IoT Greengrass Inti
<a name="download-greengrass-core-v2"></a>

Anda dapat mengunduh versi terbaru perangkat lunak AWS IoT Greengrass Core dari lokasi berikut:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**catatan**  
Anda dapat mengunduh versi tertentu dari perangkat lunak AWS IoT Greengrass Core dari lokasi berikut. Ganti *version* dengan versi yang akan diunduh.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Untuk mengunduh perangkat lunak AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Di perangkat inti Anda, unduh perangkat lunak AWS IoT Greengrass Core ke file bernama`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opsional) Untuk memverifikasi tanda tangan perangkat lunak inti Greengrass
**catatan**  
Fitur ini tersedia dengan Greengrass nucleus versi 2.9.5 dan yang lebih baru.

   1. Gunakan perintah berikut untuk memverifikasi tanda tangan artefak inti Greengrass Anda:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. `jarsigner`Pemanggilan menghasilkan output yang menunjukkan hasil verifikasi.

      1. Jika file zip inti Greengrass ditandatangani, output berisi pernyataan berikut:

         ```
         jar verified.
         ```

      1. Jika file zip inti Greengrass tidak ditandatangani, output berisi pernyataan berikut:

         ```
         jar is unsigned.
         ```

   1. Jika Anda memberikan `-certs` opsi Jarsigner bersama dengan `-verify` dan `-verbose` opsi, output juga menyertakan informasi sertifikat penandatangan terperinci.

1. <a name="installation-unzip-ggc-software-step"></a>Buka zip perangkat lunak AWS IoT Greengrass Core ke folder di perangkat Anda. Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opsional) Jalankan perintah berikut untuk melihat versi perangkat lunak AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**penting**  <a name="installer-folder-2.4.0-warning"></a>
Jika Anda menginstal versi inti Greengrass lebih awal dari v2.4.0, jangan hapus folder ini setelah Anda menginstal perangkat lunak Core. AWS IoT Greengrass Perangkat lunak AWS IoT Greengrass Core menggunakan file dalam folder ini untuk dijalankan.  
Jika Anda mengunduh versi terbaru perangkat lunak, Anda menginstal v2.4.0 atau yang lebih baru, dan Anda dapat menghapus folder ini setelah Anda menginstal perangkat lunak AWS IoT Greengrass Core.

## Unduh plugin penyediaan AWS IoT armada
<a name="download-fleet-provisioning-plugin"></a>

Anda dapat mengunduh versi terbaru plugin penyediaan AWS IoT armada dari lokasi berikut:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim](https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar)-latest.jar

**catatan**  
Anda dapat mengunduh versi tertentu dari plugin penyediaan AWS IoT armada dari lokasi berikut. Ganti *version* dengan versi yang akan diunduh. Untuk informasi selengkapnya tentang setiap versi plugin penyediaan armada, lihat. [AWS IoT changelog plugin penyediaan armada](fleet-provisioning-changelog.md)  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-version.jar
```

Plugin penyediaan armada adalah open source. Untuk melihat kode sumbernya, lihat [plugin penyediaan AWS IoT armada](https://github.com/aws-greengrass/aws-greengrass-fleet-provisioning-by-claim) di. GitHub

**Untuk mengunduh plugin penyediaan AWS IoT armada**
+ Di perangkat Anda, unduh plugin penyediaan AWS IoT armada ke file bernama. `aws.greengrass.FleetProvisioningByClaim.jar` Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

------
#### [ Linux or Unix ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar > GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------
#### [ PowerShell ]

  ```
  iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/aws-greengrass-FleetProvisioningByClaim/fleetprovisioningbyclaim-latest.jar -OutFile GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar
  ```

------

  <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

## Instal perangkat lunak AWS IoT Greengrass Core
<a name="run-greengrass-core-v2-installer-fleet"></a>

Jalankan penginstal dengan argumen yang menentukan tindakan berikut:
+ Instal dari file konfigurasi sebagian yang menetapkan untuk menggunakan plugin penyediaan armada untuk menyediakan sumber daya. AWS Perangkat lunak AWS IoT Greengrass Core menggunakan file konfigurasi yang menentukan konfigurasi setiap komponen Greengrass pada perangkat. Penginstal membuat file konfigurasi lengkap dari file konfigurasi paral yang Anda sediakan dan AWS sumber daya yang dibuat oleh plugin penyediaan armada.
+ <a name="install-argument-component-default-user"></a>Tentukan untuk menggunakan pengguna `ggc_user` sistem untuk menjalankan komponen perangkat lunak pada perangkat inti. Pada perangkat Linux, perintah ini juga menentukan untuk menggunakan grup `ggc_group` sistem, dan penginstal membuat pengguna dan grup sistem untuk Anda.
+ <a name="install-argument-system-service"></a>Siapkan perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem yang berjalan saat boot. Pada perangkat Linux, ini membutuhkan sistem init [Systemd](https://en.wikipedia.org/wiki/Systemd).
**penting**  <a name="windows-system-service-requirement-important-note"></a>
Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

Untuk informasi lebih lanjut tentang argumen yang dapat Anda tentukan, lihat [Argumen penginstal](configure-installer.md).

**catatan**  
<a name="jvm-tuning-note"></a>Jika Anda menjalankan AWS IoT Greengrass perangkat dengan memori terbatas, Anda dapat mengontrol jumlah memori yang digunakan perangkat lunak AWS IoT Greengrass Core. Untuk mengontrol alokasi memori, Anda dapat mengatur pilihan ukuran tumpukan JVM di konfigurasi parameter `jvmOptions` dalam komponen nukleus anda. Untuk informasi selengkapnya, lihat [Kontrol alokasi memori dengan opsi JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Untuk menginstal perangkat lunak AWS IoT Greengrass Core**

1. <a name="installer-check-greengrass-core-software-version"></a>Periksa versi perangkat lunak AWS IoT Greengrass inti.
   + Ganti *GreengrassInstaller* dengan path ke folder yang berisi perangkat lunak.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Gunakan editor teks untuk membuat file konfigurasi bernama `config.yaml` yang akan disediakan ke penginstal.

   <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Salin konten YAML berikut ke dalam file. File konfigurasi sebagian ini menentukan parameter untuk plugin penyediaan armada. Untuk informasi selengkapnya tentang opsi yang dapat Anda tentukan, lihat[Konfigurasikan AWS IoT plugin penyediaan armada](fleet-provisioning-configuration.md).

------
#### [ Linux or Unix ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt"
         claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key"
         rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------
#### [ Windows ]

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "C:\\greengrass\\v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt"
         claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key"
         rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
   ```

------

   Kemudian, lakukan hal berikut:
   + Ganti *2.16.1* dengan versi perangkat lunak AWS IoT Greengrass Core.
   + Ganti setiap instance dari `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan folder root Greengrass.
**catatan**  
Pada perangkat Windows, Anda harus menentukan pemisah jalur sebagai garis miring terbalik ganda (`\\`), seperti. `C:\\greengrass\\v2`
   + Ganti *us-west-2* dengan AWS Wilayah tempat Anda membuat templat penyediaan dan sumber daya lainnya.
   + Ganti `iotDataEndpoint` dengan titik akhir AWS IoT data Anda.
   + Ganti `iotCredentialEndpoint` dengan titik akhir AWS IoT kredensial Anda.
   + Ganti *GreengrassCoreTokenExchangeRoleAlias* dengan nama alias peran pertukaran token.
   + Ganti *GreengrassFleetProvisioningTemplate* dengan nama template penyediaan armada.
   + Ganti `claimCertificatePath` dengan jalur ke sertifikat klaim pada perangkat.
   + Ganti `claimCertificatePrivateKeyPath` dengan jalur ke kunci pribadi sertifikat klaim pada perangkat.
   + Ganti parameter template (`templateParameters`) dengan nilai yang akan digunakan untuk menyediakan perangkat. Contoh ini mengacu pada [contoh template](fleet-provisioning-setup.md#example-fleet-provisioning-template) yang mendefinisikan `ThingName` dan `ThingGroupName` parameter.
**catatan**  
Dalam file konfigurasi ini, Anda dapat menyesuaikan opsi konfigurasi lain seperti port dan proxy jaringan yang akan digunakan, seperti yang ditunjukkan pada contoh berikut. Untuk informasi selengkapnya, lihat [konfigurasi nukleus Greengrass](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration).  

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
       configuration:
         mqtt:
           port: 443
         greengrassDataPlanePort: 443
         networkProxy:
           noProxyAddresses: "http://192.168.0.1,www.example.com"
           proxy:
             url: "http://my-proxy-server:1100"
             username: "Mary_Major"
             password: "pass@word1357"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "/greengrass/v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "/greengrass/v2/claim-certs/claim.pem.crt"
         claimCertificatePrivateKeyPath: "/greengrass/v2/claim-certs/claim.private.pem.key"
         rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
         mqttPort: 443
         proxyUrl: "http://my-proxy-server:1100"
         proxyUserName: "Mary_Major"
         proxyPassword: "pass@word1357"
   ```

   ```
   ---
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
       configuration:
         mqtt:
           port: 443
         greengrassDataPlanePort: 443
         networkProxy:
           noProxyAddresses: "http://192.168.0.1,www.example.com"
           proxy:
             url: "http://my-proxy-server:1100"
             username: "Mary_Major"
             password: "pass@word1357"
     aws.greengrass.FleetProvisioningByClaim:
       configuration:
         rootPath: "C:\\greengrass\\v2"
         awsRegion: "us-west-2"
         iotDataEndpoint: "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
         iotCredentialEndpoint: "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         provisioningTemplate: "GreengrassFleetProvisioningTemplate"
         claimCertificatePath: "C:\\greengrass\\v2\\claim-certs\\claim.pem.crt"
         claimCertificatePrivateKeyPath: "C:\\greengrass\\v2\\claim-certs\\claim.private.pem.key"
         rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
         templateParameters:
           ThingName: "MyGreengrassCore"
           ThingGroupName: "MyGreengrassCoreGroup"
         mqttPort: 443
         proxyUrl: "http://my-proxy-server:1100"
         proxyUserName: "Mary_Major"
         proxyPassword: "pass@word1357"
   ```
Untuk menggunakan proxy HTTPS, Anda harus menggunakan versi 1.1.0 atau yang lebih baru dari plugin penyediaan armada. Anda juga harus menentukan bagian `rootCaPath` bawah`system`, seperti yang ditunjukkan pada contoh berikut.  

   ```
   ---
   system:
     rootCaPath: "/greengrass/v2/AmazonRootCA1.pem"
   services:
     ...
   ```

   ```
   ---
   system:
     rootCaPath: "C:\\greengrass\\v2\\AmazonRootCA1.pem"
   services:
     ...
   ```

1. Jalankan pemasang. Tentukan `--trusted-plugin` untuk menyediakan plugin penyediaan armada, dan tentukan `--init-config` untuk menyediakan file konfigurasi.
   + Ganti `/greengrass/v2` dengan folder root Greengrass.
   + Ganti setiap instance *GreengrassInstaller* dengan folder tempat Anda membongkar penginstal.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --trusted-plugin ./GreengrassInstaller/aws.greengrass.FleetProvisioningByClaim.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**penting**  <a name="windows-system-service-installer-argument-important-note"></a>
Pada perangkat inti Windows, Anda harus menentukan `--setup-system-service true` untuk mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

   <a name="installer-setup-system-service-output-message"></a>Jika Anda menentukan `--setup-system-service true`, penginstal akan mencetak `Successfully set up Nucleus as a system service` jika ia mengatur dan menjalankan perangkat lunak sebagai layanan. Jika tidak, installer tersebut tidak akan menghasilkan pesan apa pun jika ia berhasil menginstal perangkat lunak tersebut.
**catatan**  <a name="installer-deploy-dev-tools-without-provision"></a>
Anda tidak dapat menggunakan argumen `deploy-dev-tools` untuk men-deploy alat pengembangan lokal ketika Anda menjalankan penginstal tersebut tanpa argumen `--provision true`. Untuk informasi tentang cara men-deploy Greengrass CLI secara langsung pada perangkat Anda, lihat [Antarmuka Baris Perintah Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifikasi instalasi dengan melihat file di folder root.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Jika penginstalan berhasil, folder akar berisi beberapa folder, seperti `config`, `packages`, dan `logs`.

<a name="install-greengrass-core-run-software"></a>Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem, penginstal menjalankan perangkat lunak untuk Anda. Jika tidak, Anda harus menjalankan perangkat lunak itu secara manual. Untuk informasi selengkapnya, lihat [Jalankan perangkat lunak AWS IoT Greengrass Core](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Untuk informasi selengkapnya tentang cara mengkonfigurasi dan menggunakan perangkat lunak dan AWS IoT Greengrass, lihat berikut ini:<a name="install-greengrass-core-next-steps-links"></a>
+ [Konfigurasikan perangkat lunak AWS IoT Greengrass Inti](configure-greengrass-core-v2.md)
+ [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md)
+ [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md)
+ [Antarmuka Baris Perintah Greengrass](gg-cli.md)

# Siapkan penyediaan AWS IoT armada untuk perangkat inti Greengrass
<a name="fleet-provisioning-setup"></a>

Untuk [menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan armada](fleet-provisioning.md), Anda harus terlebih dahulu menyiapkan sumber daya berikut di perangkat Anda. Akun AWS Sumber daya ini memungkinkan perangkat untuk mendaftarkan diri AWS IoT dan beroperasi sebagai perangkat inti Greengrass. Ikuti langkah-langkah di bagian ini sekali untuk membuat dan mengonfigurasi sumber daya ini di bagian Anda Akun AWS.
+ Peran IAM pertukaran token, yang digunakan perangkat inti untuk mengotorisasi panggilan ke AWS layanan.
+ Alias AWS IoT peran yang menunjuk ke peran pertukaran token.
+ (Opsional) AWS IoT Kebijakan, yang digunakan perangkat inti untuk mengotorisasi panggilan ke AWS IoT dan AWS IoT Greengrass layanan. AWS IoT Kebijakan ini harus mengizinkan `iot:AssumeRoleWithCertificate` izin untuk alias AWS IoT peran yang menunjuk ke peran pertukaran token.

  Anda dapat menggunakan satu AWS IoT kebijakan untuk semua perangkat inti di armada Anda, atau Anda dapat mengonfigurasi templat penyediaan armada untuk membuat AWS IoT kebijakan untuk setiap perangkat inti.
+  AWS IoT Template penyediaan armada. Template ini harus menentukan yang berikut:<a name="installation-fleet-provisioning-template-requirements"></a>
  + Sumber daya AWS IoT sesuatu. Anda dapat menentukan daftar grup benda yang ada untuk menyebarkan komponen ke setiap perangkat saat online.
  + Sumber daya AWS IoT kebijakan. Sumber daya ini dapat menentukan salah satu properti berikut:
    + Nama AWS IoT kebijakan yang ada. Jika Anda memilih opsi ini, perangkat inti yang Anda buat dari templat ini menggunakan AWS IoT kebijakan yang sama, dan Anda dapat mengelola izinnya sebagai armada.
    + Dokumen AWS IoT kebijakan. Jika Anda memilih opsi ini, setiap perangkat inti yang Anda buat dari templat ini menggunakan AWS IoT kebijakan unik, dan Anda dapat mengelola izin untuk setiap perangkat inti individual.
  + Sumber daya AWS IoT sertifikat. Sumber daya sertifikat ini harus menggunakan `AWS::IoT::Certificate::Id` parameter untuk melampirkan sertifikat ke perangkat inti. Untuk informasi selengkapnya, lihat [Just-in-time penyediaan di Panduan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html) *Pengembang*.
+ Sertifikat klaim AWS IoT penyediaan dan kunci pribadi untuk templat penyediaan armada. Anda dapat menyematkan sertifikat dan kunci pribadi ini di perangkat selama pembuatan, sehingga perangkat dapat mendaftar dan menyediakan sendiri ketika mereka online.
**penting**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Kunci pribadi klaim penyediaan harus diamankan setiap saat, termasuk pada perangkat inti Greengrass. Kami menyarankan Anda menggunakan CloudWatch metrik dan log Amazon untuk memantau indikasi penyalahgunaan, seperti penggunaan sertifikat klaim yang tidak sah ke perangkat penyediaan. Jika Anda mendeteksi penyalahgunaan, nonaktifkan sertifikat klaim penyediaan sehingga tidak dapat digunakan untuk penyediaan perangkat. Untuk informasi selengkapnya, lihat [Pemantauan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) di *Panduan AWS IoT Core Pengembang*.  
Untuk membantu mengelola jumlah perangkat dengan lebih baik, dan perangkat mana, yang mendaftarkan diri di perangkat Anda Akun AWS, Anda dapat menentukan hook pra-penyediaan saat membuat templat penyediaan armada. Hook pra-penyediaan adalah AWS Lambda fungsi yang memvalidasi parameter template yang disediakan perangkat selama pendaftaran. Misalnya, Anda dapat membuat hook pra-penyediaan yang memeriksa ID perangkat terhadap database untuk memverifikasi bahwa perangkat memiliki izin untuk menyediakan. *Untuk informasi selengkapnya, lihat [Pra-penyediaan kait](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) di Panduan Pengembang.AWS IoT Core *
+  AWS IoT Kebijakan yang Anda lampirkan ke sertifikat klaim penyediaan untuk mengizinkan perangkat mendaftar dan menggunakan templat penyediaan armada.

**Topics**
+ [Buat peran pertukaran token](#create-token-exchange-role)
+ [Buat AWS IoT kebijakan](#create-iot-policy)
+ [Buat templat penyediaan armada](#create-provisioning-template)
+ [Membuat sertifikat klaim penyediaan dan kunci pribadi](#create-claim-certificates)

## Buat peran pertukaran token
<a name="create-token-exchange-role"></a>

<a name="installation-create-token-exchange-role-intro"></a>Perangkat inti Greengrass menggunakan peran layanan IAM, yang disebut peran *pertukaran token, untuk mengotorisasi* panggilan ke layanan. AWS Perangkat menggunakan penyedia AWS IoT kredensil untuk mendapatkan AWS kredensil sementara untuk peran ini, yang memungkinkan perangkat berinteraksi, mengirim log ke Amazon Log AWS IoT, dan mengunduh CloudWatch artefak komponen khusus dari Amazon S3. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

<a name="installation-create-token-exchange-role-alias-intro"></a>Anda menggunakan *alias AWS IoT peran* untuk mengonfigurasi peran pertukaran token untuk perangkat inti Greengrass. Alias peran memungkinkan Anda mengubah peran pertukaran token untuk suatu perangkat tetapi menjaga konfigurasi perangkat tetap sama. Untuk informasi selengkapnya, lihat [Mengotorisasi panggilan langsung ke layanan AWS](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) di *Panduan Developer AWS IoT Core *.

Di bagian ini, Anda membuat peran IAM pertukaran token dan alias AWS IoT peran yang menunjuk ke peran tersebut. Jika Anda telah menyiapkan perangkat inti Greengrass, Anda dapat menggunakan peran pertukaran token dan alias peran alih-alih membuat yang baru.

**Buat peran pertukaran token IAM role**

1. <a name="create-token-exchange-role-create-iam-role"></a>Buat peran IAM yang dapat digunakan perangkat Anda sebagai peran pertukaran token. Lakukan hal-hal berikut:

   1. Buat file yang berisi dokumen kebijakan kepercayaan yang memerlukan peran pertukaran token.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano device-role-trust-policy.json
      ```

      Salin JSON berikut ke dalam file.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "credentials.iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. Buat peran pertukaran token dengan dokumen kebijakan kepercayaan.
      + Ganti *GreengrassV2TokenExchangeRole* dengan nama peran IAM yang akan dibuat.

      ```
      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "Role": {
          "Path": "/",
          "RoleName": "GreengrassV2TokenExchangeRole",
          "RoleId": "AROAZ2YMUHYHK5OKM77FB",
          "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
          "CreateDate": "2021-02-06T00:13:29+00:00",
          "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Service": "credentials.iot.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
              }
            ]
          }
        }
      ```

   1. Buat file yang berisi dokumen kebijakan akses yang diperlukan oleh peran pertukaran token.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano device-role-access-policy.json
      ```

      Salin JSON berikut ke dalam file.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents",
              "logs:DescribeLogStreams",
              "s3:GetBucketLocation"
            ],
            "Resource": "*"
          }
        ]
      }
      ```
**catatan**  
Kebijakan akses ini tidak mengizinkan akses ke artefak komponen dalam bucket S3. Untuk men-deploy komponen kustom yang menentukan artefak di Amazon S3, Anda harus menambahkan izin untuk peran tersebut untuk memungkinkan perangkat inti Anda untuk mengambil artefak komponen. Untuk informasi selengkapnya, lihat [Izinkan akses ke bucket S3 untuk artefak komponen](device-service-role.md#device-service-role-access-s3-bucket).  
Jika Anda belum memiliki bucket S3 untuk artefak komponen, Anda dapat menambahkan izin ini nanti setelah membuat bucket.

   1. Buat kebijakan IAM dari dokumen kebijakan.
      + Ganti *GreengrassV2TokenExchangeRoleAccess* dengan nama kebijakan IAM yang akan dibuat.

      ```
      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "Policy": {
          "PolicyName": "GreengrassV2TokenExchangeRoleAccess",
          "PolicyId": "ANPAZ2YMUHYHACI7C5Z66",
          "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
          "Path": "/",
          "DefaultVersionId": "v1",
          "AttachmentCount": 0,
          "PermissionsBoundaryUsageCount": 0,
          "IsAttachable": true,
          "CreateDate": "2021-02-06T00:37:17+00:00",
          "UpdateDate": "2021-02-06T00:37:17+00:00"
        }
      }
      ```

   1. Lampirkan kebijakan IAM untuk peran pertukaran token.
      + Ganti *GreengrassV2TokenExchangeRole* dengan nama peran IAM.
      + Ganti ARN peran dengan ARN dari kebijakan IAM yang Anda buat di langkah sebelumnya.

      ```
      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

1. <a name="create-token-exchange-role-create-iot-role-alias"></a>Buat alias AWS IoT peran yang menunjuk ke peran pertukaran token.
   + Ganti *GreengrassCoreTokenExchangeRoleAlias* dengan nama alias peran yang akan dibuat.
   + Ganti ARN peran dengan ARN dari IAM role yang Anda buat di langkah sebelumnya.

   ```
   aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "roleAlias": "GreengrassCoreTokenExchangeRoleAlias",
     "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
   }
   ```
**catatan**  
Untuk membuat alias peran, Anda harus memiliki izin untuk melewati IAM role pertukaran token ke AWS IoT. Jika Anda menerima pesan galat saat mencoba membuat alias peran, periksa apakah AWS pengguna Anda memiliki izin ini. Untuk informasi selengkapnya, lihat [Memberikan izin pengguna untuk meneruskan peran ke AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) di *AWS Identity and Access Management Panduan Pengguna*.

## Buat AWS IoT kebijakan
<a name="create-iot-policy"></a>

Setelah Anda mendaftarkan perangkat sebagai AWS IoT sesuatu, perangkat tersebut dapat menggunakan sertifikat digital untuk mengautentikasi. AWS Sertifikat ini mencakup satu atau beberapa AWS IoT kebijakan yang menentukan izin yang dapat digunakan perangkat dengan sertifikat. Kebijakan ini memungkinkan perangkat untuk berkomunikasi dengan AWS IoT dan AWS IoT Greengrass.

Dengan penyediaan AWS IoT armada, perangkat terhubung AWS IoT untuk membuat dan mengunduh sertifikat perangkat. Di templat penyediaan armada yang dibuat di bagian berikutnya, Anda dapat menentukan apakah AWS IoT melampirkan AWS IoT kebijakan yang sama ke sertifikat semua perangkat, atau membuat kebijakan baru untuk setiap perangkat.

Di bagian ini, Anda membuat AWS IoT kebijakan yang AWS IoT melekat pada semua sertifikat perangkat. Dengan pendekatan ini, Anda dapat mengelola izin untuk semua perangkat sebagai armada. Jika Anda lebih suka membuat AWS IoT kebijakan baru untuk setiap perangkat, Anda dapat melewati bagian ini, dan merujuk ke kebijakan di dalamnya saat menentukan templat armada.

**Untuk membuat AWS IoT kebijakan**
+ Buat AWS IoT kebijakan yang menentukan AWS IoT izin untuk armada perangkat inti Greengrass Anda. Kebijakan berikut memungkinkan akses ke semua topik MQTT dan operasi Greengrass, sehingga perangkat Anda bekerja dengan aplikasi kustom dan perubahan di masa mendatang yang memerlukan operasi Greengrass baru. Kebijakan ini juga mengizinkan `iot:AssumeRoleWithCertificate` izin, yang memungkinkan perangkat Anda menggunakan peran pertukaran token yang Anda buat di bagian sebelumnya. Anda dapat membatasi kebijakan ini berdasarkan kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [AWS IoT Kebijakan minimal untuk perangkat AWS IoT Greengrass V2 inti](device-auth.md#greengrass-core-minimal-iot-policy).

  Lakukan hal-hal berikut:

  1. Buat file yang berisi dokumen AWS IoT kebijakan yang dibutuhkan perangkat inti Greengrass.

     <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

     ```
     nano greengrass-v2-iot-policy.json
     ```

     Salin JSON berikut ke dalam file.
     + Ganti `iot:AssumeRoleWithCertificate` sumber daya dengan ARN alias AWS IoT peran yang Anda buat di bagian sebelumnya.

------
#### [ JSON ]

****  

     ```
     {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
         {
           "Effect": "Allow",
           "Action": [
             "iot:Publish",
             "iot:Subscribe",
             "iot:Receive",
             "iot:Connect",
             "greengrass:*"
           ],
           "Resource": [
             "*"
           ]
         },
         {
           "Effect": "Allow",
           "Action": "iot:AssumeRoleWithCertificate",
           "Resource": "arn:aws:iot:us-east-1:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
         }
       ]
     }
     ```

------

  1. Buat AWS IoT kebijakan dari dokumen kebijakan.
     + Ganti *GreengrassV2IoTThingPolicy* dengan nama kebijakan yang akan dibuat.

     ```
     aws iot create-policy --policy-name GreengrassV2IoTThingPolicy --policy-document file://greengrass-v2-iot-policy.json
     ```

     Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

------
#### [ JSON ]

****  

     ```
     {
       "policyName": "GreengrassV2IoTThingPolicy",
       "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassV2IoTThingPolicy",
       "policyDocument": "{
         \"Version\": \"2012-10-17\",
         \"Statement\": [
           {
             \"Effect\": \"Allow\",
             \"Action\": [
               \"iot:Publish\",
               \"iot:Subscribe\",
               \"iot:Receive\",
               \"iot:Connect\",
               \"greengrass:*\"
             ],
             \"Resource\": [
               \"*\"
             ]
           },
           {
             \"Effect\": \"Allow\",
             \"Action\": \"iot:AssumeRoleWithCertificate\",
             \"Resource\": \"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\"
           }
         ]
       }",
       "policyVersionId": "1"
     }
     ```

------

## Buat templat penyediaan armada
<a name="create-provisioning-template"></a>

AWS IoT Templat penyediaan armada menentukan cara menyediakan AWS IoT berbagai hal, kebijakan, dan sertifikat. Untuk menyediakan perangkat inti Greengrass dengan plugin penyediaan armada, Anda harus membuat templat yang menentukan hal berikut:<a name="installation-fleet-provisioning-template-requirements"></a>
+ Sumber daya AWS IoT sesuatu. Anda dapat menentukan daftar grup benda yang ada untuk menyebarkan komponen ke setiap perangkat saat online.
+ Sumber daya AWS IoT kebijakan. Sumber daya ini dapat menentukan salah satu properti berikut:
  + Nama AWS IoT kebijakan yang ada. Jika Anda memilih opsi ini, perangkat inti yang Anda buat dari templat ini menggunakan AWS IoT kebijakan yang sama, dan Anda dapat mengelola izinnya sebagai armada.
  + Dokumen AWS IoT kebijakan. Jika Anda memilih opsi ini, setiap perangkat inti yang Anda buat dari templat ini menggunakan AWS IoT kebijakan unik, dan Anda dapat mengelola izin untuk setiap perangkat inti individual.
+ Sumber daya AWS IoT sertifikat. Sumber daya sertifikat ini harus menggunakan `AWS::IoT::Certificate::Id` parameter untuk melampirkan sertifikat ke perangkat inti. Untuk informasi selengkapnya, lihat [Just-in-time penyediaan di Panduan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html) *Pengembang*.

Dalam template, Anda dapat menentukan untuk menambahkan AWS IoT hal ke daftar grup hal yang ada. Ketika perangkat inti terhubung AWS IoT Greengrass untuk pertama kalinya, ia menerima penerapan Greengrass untuk setiap grup hal di mana ia menjadi anggota. Anda dapat menggunakan grup benda untuk menyebarkan perangkat lunak terbaru ke setiap perangkat segera setelah online. Untuk informasi selengkapnya, lihat [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md).

 AWS IoT Layanan memerlukan izin untuk membuat dan memperbarui AWS IoT sumber daya di perangkat Anda Akun AWS saat menyediakan perangkat. Untuk memberikan akses AWS IoT layanan, Anda membuat peran IAM dan menyediakannya saat Anda membuat template. AWS IoT menyediakan kebijakan terkelola, [AWSIoTThingsRegistrasi](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration), yang memungkinkan akses ke semua izin yang AWS IoT mungkin digunakan saat menyediakan perangkat. Anda dapat menggunakan kebijakan terkelola ini, atau membuat kebijakan khusus yang mencakup izin dalam kebijakan terkelola untuk kasus penggunaan Anda.

Di bagian ini, Anda membuat peran IAM yang memungkinkan AWS IoT penyediaan sumber daya untuk perangkat, dan Anda membuat templat penyediaan armada yang menggunakan peran IAM tersebut.

**Untuk membuat template penyediaan armada**

1. Buat peran IAM yang AWS IoT dapat diasumsikan untuk menyediakan sumber daya di Anda Akun AWS. Lakukan hal-hal berikut:

   1. Buat file yang berisi dokumen kebijakan kepercayaan yang memungkinkan AWS IoT untuk mengambil peran.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano aws-iot-trust-policy.json
      ```

      Salin JSON berikut ke dalam file.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

------

   1. Buat peran IAM dengan dokumen kebijakan kepercayaan.
      + Ganti *GreengrassFleetProvisioningRole* dengan nama peran IAM yang akan dibuat.

      ```
      aws iam create-role --role-name GreengrassFleetProvisioningRole --assume-role-policy-document file://aws-iot-trust-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "iot:Connect",
              "iot:Publish",
              "iot:Subscribe",
              "iot:Receive"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Tinjau kebijakan [AWSIoTThingsPendaftaran](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration), yang memungkinkan akses ke semua izin yang AWS IoT mungkin digunakan saat menyediakan perangkat. Anda dapat menggunakan kebijakan terkelola ini, atau membuat kebijakan khusus yang menentukan izin cakupan bawah untuk kasus penggunaan Anda. Jika Anda memilih untuk membuat kebijakan khusus, lakukan sekarang.

   1. Lampirkan kebijakan IAM ke peran penyediaan armada.
      + Ganti *GreengrassFleetProvisioningRole* dengan nama peran IAM.
      + Jika Anda membuat kebijakan kustom pada langkah sebelumnya, ganti kebijakan ARN dengan ARN dari kebijakan IAM yang akan digunakan.

      ```
      aws iam attach-role-policy --role-name GreengrassFleetProvisioningRole --policy-arn arn:aws:iam::aws:policy/service-role/AWSIoTThingsRegistration
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

1. (Opsional) Buat *hook pra-penyediaan*, yang merupakan AWS Lambda fungsi yang memvalidasi parameter template yang disediakan perangkat saat pendaftaran. Anda dapat menggunakan pengait pra-penyediaan untuk mendapatkan kontrol lebih besar atas perangkat mana dan berapa banyak perangkat yang terpasang di dalamnya. Akun AWS*Untuk informasi selengkapnya, lihat [Pra-penyediaan kait](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) di Panduan Pengembang.AWS IoT Core *

1. Buat template penyediaan armada. Lakukan hal-hal berikut:

   1. Buat file yang berisi dokumen template penyediaan.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano greengrass-fleet-provisioning-template.json
      ```

      Tulis dokumen template penyediaan. Anda dapat mulai dari contoh template penyediaan berikut, yang menentukan untuk membuat AWS IoT sesuatu dengan properti berikut:
      + Nama benda adalah nilai yang Anda tentukan dalam parameter `ThingName` template.
      + Masalahnya adalah anggota grup benda yang Anda tentukan dalam parameter `ThingGroupName` template. Kelompok benda harus ada di Anda Akun AWS.
      + Sertifikat benda itu memiliki AWS IoT kebijakan yang disebutkan `GreengrassV2IoTThingPolicy` terlampir padanya.

      Untuk informasi selengkapnya, lihat [Templat penyediaan di Panduan AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html) *Pengembang*.

      ```
      {
        "Parameters": {
          "ThingName": {
            "Type": "String"
          },
          "ThingGroupName": {
            "Type": "String"
          },
          "AWS::IoT::Certificate::Id": {
            "Type": "String"
          }
        },
        "Resources": {
          "MyThing": {
            "OverrideSettings": {
              "AttributePayload": "REPLACE",
              "ThingGroups": "REPLACE",
              "ThingTypeName": "REPLACE"
            },
            "Properties": {
              "AttributePayload": {},
              "ThingGroups": [
                {
                  "Ref": "ThingGroupName"
                }
              ],
              "ThingName": {
                "Ref": "ThingName"
              }
            },
            "Type": "AWS::IoT::Thing"
          },
          "MyPolicy": {
            "Properties": {
              "PolicyName": "GreengrassV2IoTThingPolicy"
            },
            "Type": "AWS::IoT::Policy"
          },
          "MyCertificate": {
            "Properties": {
              "CertificateId": {
                "Ref": "AWS::IoT::Certificate::Id"
              },
              "Status": "Active"
            },
            "Type": "AWS::IoT::Certificate"
          }
        }
      }
      ```
**catatan**  
*MyThing*,*MyPolicy*, dan *MyCertificate* merupakan nama arbitrer yang mengidentifikasi setiap spesifikasi sumber daya dalam templat penyediaan armada. AWS IoT tidak menggunakan nama-nama ini dalam sumber daya yang dibuatnya dari template. Anda dapat menggunakan nama-nama ini atau menggantinya dengan nilai yang membantu Anda mengidentifikasi setiap sumber daya dalam template.

   1. Buat template penyediaan armada dari dokumen template penyediaan.
      + Ganti *GreengrassFleetProvisioningTemplate* dengan nama template yang akan dibuat.
      + Ganti deskripsi template dengan deskripsi untuk template Anda.
      + Ganti peran penyediaan ARN dengan ARN dari peran yang Anda buat sebelumnya.

------
#### [ Linux or Unix ]

      ```
      aws iot create-provisioning-template \
        --template-name GreengrassFleetProvisioningTemplate \
        --description "A provisioning template for Greengrass core devices." \
        --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" \
        --template-body file://greengrass-fleet-provisioning-template.json \
        --enabled
      ```

------
#### [ Windows Command Prompt (CMD) ]

      ```
      aws iot create-provisioning-template ^
        --template-name GreengrassFleetProvisioningTemplate ^
        --description "A provisioning template for Greengrass core devices." ^
        --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" ^
        --template-body file://greengrass-fleet-provisioning-template.json ^
        --enabled
      ```

------
#### [ PowerShell ]

      ```
      aws iot create-provisioning-template `
        --template-name GreengrassFleetProvisioningTemplate `
        --description "A provisioning template for Greengrass core devices." `
        --provisioning-role-arn "arn:aws:iam::123456789012:role/GreengrassFleetProvisioningRole" `
        --template-body file://greengrass-fleet-provisioning-template.json `
        --enabled
      ```

------
**catatan**  
Jika Anda membuat hook pra-penyediaan, tentukan ARN dari fungsi Lambda hook pra-penyediaan dengan argumen. `--pre-provisioning-hook`  

      ```
      --pre-provisioning-hook targetArn=arn:aws:lambda:us-west-2:123456789012:function:GreengrassPreProvisioningHook
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
          "templateArn": "arn:aws:iot:us-west-2:123456789012:provisioningtemplate/GreengrassFleetProvisioningTemplate",
          "templateName": "GreengrassFleetProvisioningTemplate",
          "defaultVersionId": 1
      }
      ```

## Membuat sertifikat klaim penyediaan dan kunci pribadi
<a name="create-claim-certificates"></a>

Sertifikat klaim adalah sertifikat X.509 yang memungkinkan perangkat untuk mendaftar sebagai AWS IoT benda dan mengambil sertifikat perangkat X.509 unik untuk digunakan untuk operasi reguler. Setelah membuat sertifikat klaim, Anda melampirkan AWS IoT kebijakan yang memungkinkan perangkat menggunakannya untuk membuat sertifikat perangkat unik dan penyediaan dengan templat penyediaan armada. Perangkat dengan sertifikat klaim dapat menyediakan hanya menggunakan templat penyediaan yang Anda izinkan dalam kebijakan. AWS IoT 

Di bagian ini, Anda membuat sertifikat klaim dan mengonfigurasinya untuk digunakan perangkat dengan templat penyediaan armada yang Anda buat di bagian sebelumnya.

**penting**  <a name="installation-fleet-provisioning-secure-claim-private-keys"></a>
Kunci pribadi klaim penyediaan harus diamankan setiap saat, termasuk pada perangkat inti Greengrass. Kami menyarankan Anda menggunakan CloudWatch metrik dan log Amazon untuk memantau indikasi penyalahgunaan, seperti penggunaan sertifikat klaim yang tidak sah ke perangkat penyediaan. Jika Anda mendeteksi penyalahgunaan, nonaktifkan sertifikat klaim penyediaan sehingga tidak dapat digunakan untuk penyediaan perangkat. Untuk informasi selengkapnya, lihat [Pemantauan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) di *Panduan AWS IoT Core Pengembang*.  
Untuk membantu mengelola jumlah perangkat dengan lebih baik, dan perangkat mana, yang mendaftarkan diri di perangkat Anda Akun AWS, Anda dapat menentukan hook pra-penyediaan saat membuat templat penyediaan armada. Hook pra-penyediaan adalah AWS Lambda fungsi yang memvalidasi parameter template yang disediakan perangkat selama pendaftaran. Misalnya, Anda dapat membuat hook pra-penyediaan yang memeriksa ID perangkat terhadap database untuk memverifikasi bahwa perangkat memiliki izin untuk menyediakan. *Untuk informasi selengkapnya, lihat [Pra-penyediaan kait](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) di Panduan Pengembang.AWS IoT Core *

**Untuk membuat sertifikat klaim penyediaan dan kunci pribadi**

1. Buat folder tempat Anda mengunduh sertifikat klaim dan kunci pribadi.

   ```
   mkdir claim-certs
   ```

1. Membuat dan menyimpan sertifikat dan kunci pribadi untuk digunakan untuk penyediaan. AWS IoT menyediakan sertifikat klien yang ditandatangani oleh otoritas sertifikat Amazon Root (CA).

------
#### [ Linux or Unix ]

   ```
   aws iot create-keys-and-certificate \
     --certificate-pem-outfile "claim-certs/claim.pem.crt" \
     --public-key-outfile "claim-certs/claim.public.pem.key" \
     --private-key-outfile "claim-certs/claim.private.pem.key" \
     --set-as-active
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   aws iot create-keys-and-certificate ^
     --certificate-pem-outfile "claim-certs/claim.pem.crt" ^
     --public-key-outfile "claim-certs/claim.public.pem.key" ^
     --private-key-outfile "claim-certs/claim.private.pem.key" ^
     --set-as-active
   ```

------
#### [ PowerShell ]

   ```
   aws iot create-keys-and-certificate `
     --certificate-pem-outfile "claim-certs/claim.pem.crt" `
     --public-key-outfile "claim-certs/claim.public.pem.key" `
     --private-key-outfile "claim-certs/claim.private.pem.key" `
     --set-as-active
   ```

------

   Tanggapan berisi informasi tentang sertifikat, jika permintaan berhasil. Simpan ARN sertifikat untuk digunakan nanti.

1. Buat dan lampirkan AWS IoT kebijakan yang memungkinkan perangkat menggunakan sertifikat untuk membuat sertifikat perangkat unik dan penyediaan templat penyediaan armada. Kebijakan berikut memungkinkan akses ke MQTT API penyediaan perangkat. *Untuk informasi selengkapnya, lihat [Penyediaan perangkat MQTT API](https://docs.aws.amazon.com/iot/latest/developerguide/fleet-provision-api.html) di Panduan Pengembang.AWS IoT Core *

   Lakukan hal-hal berikut:

   1. Buat file yang berisi dokumen AWS IoT kebijakan yang dibutuhkan perangkat inti Greengrass.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano greengrass-provisioning-claim-iot-policy.json
      ```

      Salin JSON berikut ke dalam file.
      + Ganti setiap instance *region* dengan Wilayah AWS tempat Anda mengatur penyediaan armada.
      + Ganti setiap instance *account-id* dengan Akun AWS ID Anda.
      + Ganti setiap instance *GreengrassFleetProvisioningTemplate* dengan nama template penyediaan armada yang Anda buat di bagian sebelumnya.

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:Connect",
            "Resource": "*"
          },
          {
            "Effect": "Allow",
            "Action": [
              "iot:Publish",
              "iot:Receive"
            ],
            "Resource": [
            "arn:aws:iot:us-east-1:123456789012:topic/$aws/certificates/create/*",
        "arn:aws:iot:us-east-1:123456789012:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*"
            ]
          },
          {
            "Effect": "Allow",
            "Action": "iot:Subscribe",
            "Resource": [
            "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/certificates/create/*",
        "arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*"
            ]
          }
        ]
      }
      ```

------

   1. Buat AWS IoT kebijakan dari dokumen kebijakan.
      + Ganti *GreengrassProvisioningClaimPolicy* dengan nama kebijakan yang akan dibuat.

      ```
      aws iot create-policy --policy-name GreengrassProvisioningClaimPolicy --policy-document file://greengrass-provisioning-claim-iot-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

------
#### [ JSON ]

****  

      ```
      {
        "policyName": "GreengrassProvisioningClaimPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassProvisioningClaimPolicy",
        "policyDocument": "{
          \"Version\": \"2012-10-17\",
          \"Statement\": [
            {
              \"Effect\": \"Allow\",
              \"Action\": \"iot:Connect\",
              \"Resource\": \"*\"
            },
            {
              \"Effect\": \"Allow\",
              \"Action\": [
                \"iot:Publish\",
                \"iot:Receive\"
              ],
              \"Resource\": [
              \"arn:aws:iot:us-east-1:123456789012:topic/$aws/certificates/create/*\",
        \"arn:aws:iot:us-east-1:123456789012:topic/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\"
              ]
            },
            {
              \"Effect\": \"Allow\",
              \"Action\": \"iot:Subscribe\",
              \"Resource\": [
              \"arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/certificates/create/*\",
        \"arn:aws:iot:us-east-1:123456789012:topicfilter/$aws/provisioning-templates/GreengrassFleetProvisioningTemplate/provision/*\"
              ]
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

------

1. Lampirkan AWS IoT kebijakan ke sertifikat klaim penyediaan.
   + Ganti *GreengrassProvisioningClaimPolicy* dengan nama kebijakan yang akan dilampirkan.
   + Ganti ARN target dengan ARN dari sertifikat klaim penyediaan.

   ```
   aws iot attach-policy --policy-name GreengrassProvisioningClaimPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
   ```

   Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

Anda sekarang memiliki sertifikat klaim penyediaan dan kunci pribadi yang dapat digunakan perangkat untuk mendaftar AWS IoT dan menyediakan diri mereka sebagai perangkat inti Greengrass. Anda dapat menyematkan sertifikat klaim dan kunci pribadi di perangkat selama pembuatan, atau menyalin sertifikat dan kunci ke perangkat sebelum Anda menginstal perangkat lunak AWS IoT Greengrass Core. Lihat informasi yang lebih lengkap di [Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan AWS IoT armada](fleet-provisioning.md).

# Konfigurasikan AWS IoT plugin penyediaan armada
<a name="fleet-provisioning-configuration"></a>

Plugin penyediaan AWS IoT armada menyediakan parameter konfigurasi berikut yang dapat Anda sesuaikan saat Anda [menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan armada](fleet-provisioning.md).

`rootPath`  
Jalur ke folder untuk digunakan sebagai root untuk perangkat lunak AWS IoT Greengrass Core.

`awsRegion`  
 Wilayah AWS Yang digunakan plugin penyediaan armada untuk menyediakan sumber daya. AWS 

`iotDataEndpoint`  
<a name="nucleus-component-configuration-iot-data-endpoint"></a>Titik akhir AWS IoT data untuk Anda Akun AWS.

`iotCredentialEndpoint`  
<a name="nucleus-component-configuration-iot-cred-endpoint"></a>Titik akhir AWS IoT kredensial untuk Anda. Akun AWS

`iotRoleAlias`  
<a name="nucleus-component-configuration-iot-role-alias"></a>Alias AWS IoT peran yang menunjuk ke peran IAM pertukaran token. Penyedia AWS IoT kredensi mengasumsikan peran ini untuk memungkinkan perangkat inti Greengrass berinteraksi dengan layanan. AWS Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

`provisioningTemplate`  
Template penyediaan AWS IoT armada untuk digunakan untuk menyediakan AWS sumber daya. Template ini harus menentukan yang berikut:  <a name="installation-fleet-provisioning-template-requirements"></a>
+ Sumber daya AWS IoT sesuatu. Anda dapat menentukan daftar grup benda yang ada untuk menyebarkan komponen ke setiap perangkat saat online.
+ Sumber daya AWS IoT kebijakan. Sumber daya ini dapat menentukan salah satu properti berikut:
  + Nama AWS IoT kebijakan yang ada. Jika Anda memilih opsi ini, perangkat inti yang Anda buat dari templat ini menggunakan AWS IoT kebijakan yang sama, dan Anda dapat mengelola izinnya sebagai armada.
  + Dokumen AWS IoT kebijakan. Jika Anda memilih opsi ini, setiap perangkat inti yang Anda buat dari templat ini menggunakan AWS IoT kebijakan unik, dan Anda dapat mengelola izin untuk setiap perangkat inti individual.
+ Sumber daya AWS IoT sertifikat. Sumber daya sertifikat ini harus menggunakan `AWS::IoT::Certificate::Id` parameter untuk melampirkan sertifikat ke perangkat inti. Untuk informasi selengkapnya, lihat [Just-in-time penyediaan di Panduan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/jit-provisioning.html) *Pengembang*.
Untuk informasi selengkapnya, lihat [Templat penyediaan di Panduan AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html) *Pengembang*.

`claimCertificatePath`  
Jalur ke sertifikat klaim penyediaan untuk templat penyediaan yang Anda tentukan. `provisioningTemplate` Untuk informasi selengkapnya, lihat [CreateProvisioningClaim](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningClaim.html) di dalam *Referensi API AWS IoT Core *. 

`claimCertificatePrivateKeyPath`  
Jalur ke kunci pribadi sertifikat klaim penyediaan untuk templat penyediaan yang Anda tentukan. `provisioningTemplate` Untuk informasi selengkapnya, lihat [CreateProvisioningClaim](https://docs.aws.amazon.com/iot/latest/apireference/API_CreateProvisioningClaim.html) di dalam *Referensi API AWS IoT Core *.   
Kunci pribadi klaim penyediaan harus diamankan setiap saat, termasuk pada perangkat inti Greengrass. Kami menyarankan Anda menggunakan CloudWatch metrik dan log Amazon untuk memantau indikasi penyalahgunaan, seperti penggunaan sertifikat klaim yang tidak sah ke perangkat penyediaan. Jika Anda mendeteksi penyalahgunaan, nonaktifkan sertifikat klaim penyediaan sehingga tidak dapat digunakan untuk penyediaan perangkat. Untuk informasi selengkapnya, lihat [Pemantauan AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/monitoring_overview.html) di *Panduan AWS IoT Core Pengembang*.  
Untuk membantu mengelola jumlah perangkat dengan lebih baik, dan perangkat mana, yang mendaftarkan diri di perangkat Anda Akun AWS, Anda dapat menentukan hook pra-penyediaan saat membuat templat penyediaan armada. Hook pra-penyediaan adalah AWS Lambda fungsi yang memvalidasi parameter template yang disediakan perangkat selama pendaftaran. Misalnya, Anda dapat membuat hook pra-penyediaan yang memeriksa ID perangkat terhadap database untuk memverifikasi bahwa perangkat memiliki izin untuk menyediakan. *Untuk informasi selengkapnya, lihat [Pra-penyediaan kait](https://docs.aws.amazon.com/iot/latest/developerguide/pre-provisioning-hook.html) di Panduan Pengembang.AWS IoT Core *

`rootCaPath`  
Jalur ke sertifikat otoritas sertifikat root Amazon (CA).

`templateParameters`  
(Opsional) Peta parameter yang akan disediakan untuk template penyediaan armada. *Untuk informasi selengkapnya, lihat [bagian Parameter templat penyediaan](https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html#parameters-section) di Panduan Pengembang.AWS IoT Core *

`deviceId`  
(Opsional) Pengidentifikasi perangkat yang akan digunakan sebagai ID klien saat plugin penyediaan armada membuat koneksi MQTT ke. AWS IoT  
Default: Sebuah UUID acak.

`mqttPort`  
(Opsional) Port yang akan digunakan untuk koneksi MQTT.  
Default: `8883`

`proxyUrl`  
(Opsional) URL server proxy dalam format`scheme://userinfo@host:port`. Untuk menggunakan proxy HTTPS, Anda harus menggunakan versi 1.1.0 atau yang lebih baru dari plugin penyediaan armada.  <a name="nucleus-component-configuration-proxy-url-segments"></a>
+ `scheme` — Skema, yang harus berupa `http` atau `https`.
**penting**  
<a name="https-proxy-greengrass-nucleus-requirement"></a>Perangkat inti Greengrass harus menjalankan [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.0 atau yang lebih baru untuk menggunakan proxy HTTPS.  
Jika Anda mengonfigurasi proxy HTTPS, Anda harus menambahkan sertifikat CA server proxy ke sertifikat CA root Amazon perangkat inti. Untuk informasi selengkapnya, lihat [Aktifkan perangkat inti untuk mempercayai proxy HTTPS](configure-greengrass-core-v2.md#https-proxy-certificate-trust).
+ `userinfo` - (Opsional) Nama pengguna dan informasi kata sandi. Jika Anda menentukan informasi ini di`url`, perangkat inti Greengrass mengabaikan bidang dan. `username` `password`
+ `host` - Nama host atau alamat IP server proksi.
+ `port` — (Opsional) Nomor port. Jika Anda tidak menentukan port, maka perangkat inti Greengrass akan menggunakan nilai default berikut:
  + `http` – 80
  + `https` – 443

`proxyUserName`  
(Opsional) Nama pengguna yang mengautentikasi server proxy.

`proxyPassword`  
(Opsional) Nama pengguna yang mengautentikasi server proxy.

CSRPath  
(Opsional) Jalur ke file permintaan penandatanganan sertifikat (CSR) yang akan digunakan untuk membuat sertifikat perangkat dari CSR. Untuk informasi selengkapnya, lihat [Penyediaan berdasarkan klaim](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#claim-based) di panduan * AWS IoT Core pengembang*.

csrPrivateKeyJalan  
(Opsional, diperlukan jika `csrPath` dideklarasikan) Jalur ke kunci pribadi yang digunakan untuk menghasilkan CSR. Kunci pribadi harus digunakan untuk menghasilkan CSR. Untuk informasi selengkapnya, lihat [Penyediaan berdasarkan klaim](https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#claim-based) di panduan *AWS IoT Core pengembang*.

CertificatePath  
(Opsional) Jalur yang akan digunakan untuk menyimpan sertifikat perangkat yang diunduh.

privateKeyPath  
(Opsional) Jalur yang digunakan untuk menyimpan kunci pribadi perangkat yang diunduh.

# AWS IoT changelog plugin penyediaan armada
<a name="fleet-provisioning-changelog"></a>

Tabel berikut menjelaskan perubahan dalam setiap versi penyediaan AWS IoT armada oleh plugin klaim ()`aws.greengrass.FleetProvisioningByClaim`.


|  Versi  |  Perubahan  | 
| --- | --- | 
|  1.2.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.2.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.2.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/fleet-provisioning-changelog.html)  | 
|  1.0.0  |  Versi awal.  | 

# Instal perangkat lunak AWS IoT Greengrass Core dengan penyediaan sumber daya khusus
<a name="custom-provisioning"></a>

[Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)

Penginstal perangkat lunak AWS IoT Greengrass Core menyediakan antarmuka Java yang dapat Anda terapkan dalam plugin khusus yang menyediakan AWS sumber daya yang diperlukan. Anda dapat mengembangkan plugin penyediaan untuk menggunakan sertifikat klien X.509 kustom atau untuk menjalankan langkah-langkah penyediaan kompleks yang tidak didukung oleh proses instalasi lainnya. Untuk informasi selengkapnya, lihat [Membuat sertifikat klien Anda sendiri](https://docs.aws.amazon.com/iot/latest/developerguide/device-certs-your-own.html) di *Panduan AWS IoT Core Pengembang*.

Untuk menjalankan plugin penyediaan khusus saat Anda menginstal perangkat lunak AWS IoT Greengrass Core, Anda membuat file JAR yang Anda berikan kepada penginstal. Penginstal menjalankan plugin, dan plugin mengembalikan konfigurasi penyediaan yang mendefinisikan sumber daya AWS untuk perangkat inti Greengrass. Penginstal menggunakan informasi ini untuk mengkonfigurasi perangkat lunak AWS IoT Greengrass Core pada perangkat. Untuk informasi selengkapnya, lihat [Kembangkan plugin penyediaan khusus](develop-custom-provisioning-plugins.md).

**penting**  <a name="install-greengrass-core-requirements-note"></a>
Sebelum Anda mengunduh perangkat lunak AWS IoT Greengrass Core, periksa apakah perangkat inti Anda memenuhi [persyaratan](greengrass-nucleus-component.md#greengrass-v2-requirements) untuk menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core v2.0.

**Topics**
+ [Prasyarat](#custom-provisioning-prerequisites)
+ [Mengatur lingkungan perangkat](#set-up-device-environment)
+ [Unduh perangkat lunak AWS IoT Greengrass Inti](#download-greengrass-core-v2)
+ [Instal perangkat lunak AWS IoT Greengrass Inti](#run-greengrass-core-v2-installer-custom)
+ [Kembangkan plugin penyediaan khusus](develop-custom-provisioning-plugins.md)

## Prasyarat
<a name="custom-provisioning-prerequisites"></a>

Untuk menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan khusus, Anda harus memiliki yang berikut ini:
+ File JAR untuk plugin penyediaan khusus yang mengimplementasikan file. `DeviceIdentityInterface` Plugin penyediaan khusus harus mengembalikan nilai untuk setiap sistem dan parameter konfigurasi inti. Jika tidak, Anda harus memberikan nilai-nilai tersebut dalam file konfigurasi selama instalasi. Untuk informasi selengkapnya, lihat [Kembangkan plugin penyediaan khusus](develop-custom-provisioning-plugins.md).

## Mengatur lingkungan perangkat
<a name="set-up-device-environment"></a>

Ikuti langkah-langkah di bagian ini untuk menyiapkan perangkat Linux atau Windows untuk digunakan sebagai perangkat AWS IoT Greengrass inti Anda.

### Siapkan perangkat Linux
<a name="set-up-linux-device-environment"></a><a name="set-up-linux-device-environment-procedure"></a>

**Untuk mengatur perangkat Linux untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan. Perintah berikut menunjukkan cara menginstal OpenJDK di perangkat Anda.
   + Untuk distribusi berbasis Debian atau berbasis Ubuntu:

     ```
     sudo apt install default-jdk
     ```
   + Untuk distribusi berbasis Red Hat:

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + Untuk Amazon Linux 2:

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + Untuk Amazon Linux 2023:

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   Ketika instalasi selesai, jalankan perintah berikut untuk memverifikasi bahwa Java berjalan pada perangkat Linux Anda.

   ```
   java -version
   ```

   Perintah mencetak versi Java yang berjalan pada perangkat. Misalnya, pada distribusi berbasis Debian, output mungkin terlihat mirip dengan sampel berikut.

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. (Opsional) Buat pengguna dan grup sistem default yang menjalankan komponen pada perangkat. Anda juga dapat memilih untuk membiarkan penginstal perangkat lunak AWS IoT Greengrass Core membuat pengguna dan grup ini selama instalasi dengan argumen `--component-default-user` installer. Untuk informasi selengkapnya, lihat [Argumen penginstal](configure-installer.md).

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. Verifikasi bahwa pengguna yang menjalankan perangkat lunak AWS IoT Greengrass Core (biasanya`root`), memiliki izin untuk menjalankan `sudo` dengan pengguna dan grup apa pun.

   1. Jalankan perintah berikut untuk membuka `/etc/sudoers` file.

      ```
      sudo visudo
      ```

   1. Verifikasi bahwa izin untuk pengguna terlihat seperti contoh berikut.

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. **(Opsional) Untuk [menjalankan fungsi Lambda kontainer](run-lambda-functions.md), Anda harus mengaktifkan [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1, dan Anda harus mengaktifkan dan memasang memori dan perangkat cgroups.** Jika Anda tidak berencana untuk menjalankan fungsi Lambda kontainer, Anda dapat melewati langkah ini.

   Untuk mengaktifkan opsi cgroups ini, boot perangkat dengan parameter kernel Linux berikut.

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   Untuk informasi tentang melihat dan menyetel parameter kernel untuk perangkat Anda, lihat dokumentasi untuk sistem operasi dan boot loader Anda. Ikuti instruksi untuk mengatur parameter kernel secara permanen.

1. Instal semua dependensi lain yang diperlukan pada perangkat Anda seperti yang ditunjukkan oleh daftar persyaratan di. [Persyaratan perangkat](greengrass-nucleus-component.md#greengrass-v2-requirements)

### Siapkan perangkat Windows
<a name="set-up-windows-device-environment"></a>

**catatan**  
[Fitur ini tersedia untuk v2.5.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)<a name="set-up-windows-device-environment-procedure"></a>

**Untuk mengatur perangkat Windows untuk AWS IoT Greengrass V2**

1. Instal runtime Java, yang dibutuhkan perangkat lunak AWS IoT Greengrass Core untuk dijalankan. Kami menyarankan Anda menggunakan versi dukungan jangka panjang [Amazon Corretto](https://aws.amazon.com/corretto/) [atau](https://openjdk.java.net/) OpenJDK. Versi 8 atau lebih tinggi diperlukan.

1. Periksa apakah Java tersedia pada variabel sistem [PATH](https://en.wikipedia.org/wiki/PATH_(variable)), dan tambahkan jika tidak. LocalSystem Akun menjalankan perangkat lunak AWS IoT Greengrass Core, jadi Anda harus menambahkan Java ke variabel sistem PATH alih-alih variabel pengguna PATH untuk pengguna Anda. Lakukan hal-hal berikut:

   1. Tekan tombol Windows untuk membuka menu mulai.

   1. Ketik **environment variables** untuk mencari opsi sistem dari menu mulai.

   1. Di hasil pencarian menu mulai, pilih **Edit variabel lingkungan sistem** untuk membuka jendela **Properti sistem**.

   1. Pilih **variabel Lingkungan...** untuk membuka jendela **Variabel Lingkungan**.

   1. Di bawah **Variabel sistem**, pilih **Path**, lalu pilih **Edit**. Di jendela **variabel Edit lingkungan**, Anda dapat melihat setiap jalur pada baris terpisah.

   1. Periksa apakah jalur ke `bin` folder instalasi Java ada. Jalannya mungkin terlihat mirip dengan contoh berikut.

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. Jika `bin` folder instalasi Java hilang dari **Path**, pilih **Baru** untuk menambahkannya, lalu pilih **OK**.

1. <a name="set-up-windows-device-environment-open-cmd"></a>Buka Windows Command Prompt (`cmd.exe`) sebagai administrator.

1. <a name="set-up-windows-device-environment-create"></a>Buat pengguna default di LocalSystem akun di perangkat Windows. Ganti *password* dengan kata sandi yang aman.

   ```
   net user /add ggc_user password
   ```
**Tip**  <a name="windows-password-expiration-tip"></a>
Bergantung pada konfigurasi Windows Anda, kata sandi pengguna mungkin diatur untuk kedaluwarsa pada tanggal di masa mendatang. Untuk memastikan aplikasi Greengrass Anda terus beroperasi, lacak kapan kata sandi kedaluwarsa, dan perbarui sebelum kedaluwarsa. Anda juga dapat mengatur kata sandi pengguna agar tidak pernah kedaluwarsa.  
Untuk memeriksa kapan pengguna dan kata sandinya kedaluwarsa, jalankan perintah berikut.  

     ```
     net user ggc_user | findstr /C:expires
     ```
Untuk mengatur kata sandi pengguna agar tidak pernah kedaluwarsa, jalankan perintah berikut.  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
Jika Anda menggunakan Windows 10 atau yang lebih baru di mana [`wmic`perintah tidak digunakan lagi](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic), jalankan perintah berikut. PowerShell   

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>Unduh dan instal [PsExecutilitas](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) dari Microsoft pada perangkat. 

1. <a name="set-up-windows-device-credentials"></a>Gunakan PsExec utilitas untuk menyimpan nama pengguna dan kata sandi untuk pengguna default dalam contoh Credential Manager untuk LocalSystem akun tersebut. Ganti *password* dengan kata sandi pengguna yang Anda tetapkan sebelumnya.

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   Jika **PsExec License Agreement**terbuka, pilih **Accept**untuk menyetujui lisensi dan jalankan perintah.
**catatan**  
Pada perangkat Windows, LocalSystem akun menjalankan inti Greengrass, dan Anda harus menggunakan utilitas untuk menyimpan PsExec informasi pengguna default di akun. LocalSystem Menggunakan aplikasi Credential Manager menyimpan informasi ini di akun Windows dari pengguna yang saat ini masuk, bukan LocalSystem akun.

## Unduh perangkat lunak AWS IoT Greengrass Inti
<a name="download-greengrass-core-v2"></a>

Anda dapat mengunduh versi terbaru perangkat lunak AWS IoT Greengrass Core dari lokasi berikut:
+ [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

**catatan**  
Anda dapat mengunduh versi tertentu dari perangkat lunak AWS IoT Greengrass Core dari lokasi berikut. Ganti *version* dengan versi yang akan diunduh.  

```
https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-version.zip
```

**Untuk mengunduh perangkat lunak AWS IoT Greengrass Core**

1. <a name="installation-download-ggc-software-step"></a>Di perangkat inti Anda, unduh perangkat lunak AWS IoT Greengrass Core ke file bernama`greengrass-nucleus-latest.zip`.

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>Dengan mengunduh perangkat lunak ini, Anda menyetujui [Perjanjian Lisensi Perangkat Lunak Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

1. <a name="verify-gg-nucleus-signature"></a>(Opsional) Untuk memverifikasi tanda tangan perangkat lunak inti Greengrass
**catatan**  
Fitur ini tersedia dengan Greengrass nucleus versi 2.9.5 dan yang lebih baru.

   1. Gunakan perintah berikut untuk memverifikasi tanda tangan artefak inti Greengrass Anda:

------
#### [ Linux or Unix ]

      ```
      jarsigner -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ Windows Command Prompt (CMD) ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      "C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe" -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------
#### [ PowerShell ]

      Nama file mungkin terlihat berbeda tergantung pada versi JDK yang Anda instal. Ganti *`jdk17.0.6_10`* dengan versi JDK yang Anda instal.

      ```
      'C:\\Program Files\\Amazon Corretto\\jdk17.0.6_10\\bin\\jarsigner.exe' -verify -certs -verbose greengrass-nucleus-latest.zip
      ```

------

   1. `jarsigner`Pemanggilan menghasilkan output yang menunjukkan hasil verifikasi.

      1. Jika file zip inti Greengrass ditandatangani, output berisi pernyataan berikut:

         ```
         jar verified.
         ```

      1. Jika file zip inti Greengrass tidak ditandatangani, output berisi pernyataan berikut:

         ```
         jar is unsigned.
         ```

   1. Jika Anda memberikan `-certs` opsi Jarsigner bersama dengan `-verify` dan `-verbose` opsi, output juga menyertakan informasi sertifikat penandatangan terperinci.

1. <a name="installation-unzip-ggc-software-step"></a>Buka zip perangkat lunak AWS IoT Greengrass Core ke folder di perangkat Anda. Ganti *GreengrassInstaller* dengan folder yang ingin Anda gunakan.

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d GreengrassInstaller && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir GreengrassInstaller && tar -xf greengrass-nucleus-latest.zip -C GreengrassInstaller && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\GreengrassInstaller
   rm greengrass-nucleus-latest.zip
   ```

------

1. (Opsional) Jalankan perintah berikut untuk melihat versi perangkat lunak AWS IoT Greengrass Core.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

**penting**  <a name="installer-folder-2.4.0-warning"></a>
Jika Anda menginstal versi inti Greengrass lebih awal dari v2.4.0, jangan hapus folder ini setelah Anda menginstal perangkat lunak Core. AWS IoT Greengrass Perangkat lunak AWS IoT Greengrass Core menggunakan file dalam folder ini untuk dijalankan.  
Jika Anda mengunduh versi terbaru perangkat lunak, Anda menginstal v2.4.0 atau yang lebih baru, dan Anda dapat menghapus folder ini setelah Anda menginstal perangkat lunak AWS IoT Greengrass Core.

## Instal perangkat lunak AWS IoT Greengrass Inti
<a name="run-greengrass-core-v2-installer-custom"></a>

Jalankan penginstal dengan argumen yang menentukan tindakan berikut:
+ Instal dari file konfigurasi sebagian yang menetapkan untuk menggunakan plugin penyediaan kustom Anda untuk menyediakan sumber daya. AWS Perangkat lunak AWS IoT Greengrass Core menggunakan file konfigurasi yang menentukan konfigurasi setiap komponen Greengrass pada perangkat. Penginstal membuat file konfigurasi lengkap dari file konfigurasi paral yang Anda sediakan dan AWS sumber daya yang dibuat oleh plugin penyediaan khusus.
+ <a name="install-argument-component-default-user"></a>Tentukan untuk menggunakan pengguna `ggc_user` sistem untuk menjalankan komponen perangkat lunak pada perangkat inti. Pada perangkat Linux, perintah ini juga menentukan untuk menggunakan grup `ggc_group` sistem, dan penginstal membuat pengguna dan grup sistem untuk Anda.
+ <a name="install-argument-system-service"></a>Siapkan perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem yang berjalan saat boot. Pada perangkat Linux, ini membutuhkan sistem init [Systemd](https://en.wikipedia.org/wiki/Systemd).
**penting**  <a name="windows-system-service-requirement-important-note"></a>
Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

Untuk informasi lebih lanjut tentang argumen yang dapat Anda tentukan, lihat [Argumen penginstal](configure-installer.md).

**catatan**  
<a name="jvm-tuning-note"></a>Jika Anda menjalankan AWS IoT Greengrass perangkat dengan memori terbatas, Anda dapat mengontrol jumlah memori yang digunakan perangkat lunak AWS IoT Greengrass Core. Untuk mengontrol alokasi memori, Anda dapat mengatur pilihan ukuran tumpukan JVM di konfigurasi parameter `jvmOptions` dalam komponen nukleus anda. Untuk informasi selengkapnya, lihat [Kontrol alokasi memori dengan opsi JVM](configure-greengrass-core-v2.md#jvm-tuning).

**Untuk menginstal perangkat lunak AWS IoT Greengrass Core (Linux)**

1. <a name="installer-check-greengrass-core-software-version"></a>Periksa versi perangkat lunak AWS IoT Greengrass Inti.
   + Ganti *GreengrassInstaller* dengan path ke folder yang berisi perangkat lunak.

   ```
   java -jar ./GreengrassInstaller/lib/Greengrass.jar --version
   ```

1. Gunakan editor teks untuk membuat file konfigurasi bernama `config.yaml` yang akan disediakan ke penginstal.

   <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

   ```
   nano GreengrassInstaller/config.yaml
   ```

   Salin konten YAML berikut ke dalam file.

   ```
   ---
   system:
     rootpath: "/greengrass/v2"
     # The following values are optional. Return them from the provisioning plugin or set them here.
     # certificateFilePath: ""
     # privateKeyPath: ""
     # rootCaPath: ""
     # thingName: ""
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
       configuration:
         # The following values are optional. Return them from the provisioning plugin or set them here.
         # awsRegion: ""
         # iotRoleAlias: ""
         # iotDataEndpoint: ""
         # iotCredEndpoint: ""
     com.example.CustomProvisioning:
       configuration:
         # You can specify configuration parameters to provide to your plugin.
         # pluginParameter: ""
   ```

   Kemudian, lakukan hal berikut:
   + Ganti *2.16.1* dengan versi perangkat lunak AWS IoT Greengrass Core.
   + Ganti setiap instance `/greengrass/v2` dengan folder root Greengrass.
   + (Opsional) Tentukan nilai konfigurasi sistem dan inti. Anda harus menetapkan nilai-nilai ini jika plugin penyediaan Anda tidak menyediakannya.
   + (Opsional) Tentukan parameter konfigurasi yang akan diberikan ke plugin penyediaan Anda.
**catatan**  
Dalam file konfigurasi ini, Anda dapat menyesuaikan opsi konfigurasi lainnya, seperti port dan proxy jaringan yang akan digunakan, seperti yang ditunjukkan pada contoh berikut. Untuk informasi selengkapnya, lihat [konfigurasi nukleus Greengrass](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration).  

   ```
   ---
   system:
     rootpath: "/greengrass/v2"
     # The following values are optional. Return them from the provisioning plugin or set them here.
     # certificateFilePath: ""
     # privateKeyPath: ""
     # rootCaPath: ""
     # thingName: ""
   services:
     aws.greengrass.Nucleus:
       version: "2.16.1"
       configuration:
         mqtt:
           port: 443
         greengrassDataPlanePort: 443
         networkProxy:
           noProxyAddresses: "http://192.168.0.1,www.example.com"
           proxy:
             url: "http://my-proxy-server:1100"
             username: "Mary_Major"
             password: "pass@word1357"
         # The following values are optional. Return them from the provisioning plugin or set them here.
         # awsRegion: ""
         # iotRoleAlias: ""
         # iotDataEndpoint: ""
         # iotCredEndpoint: ""
     com.example.CustomProvisioning:
       configuration:
         # You can specify configuration parameters to provide to your plugin.
         # pluginParameter: ""
   ```

1. Jalankan pemasang. Tentukan `--trusted-plugin` untuk menyediakan plugin penyediaan kustom Anda, dan tentukan `--init-config` untuk menyediakan file konfigurasi.
**catatan**  
Windows memiliki batasan panjang jalur 260 karakter. Jika Anda menggunakan Windows, gunakan folder root seperti `C:\greengrass\v2` atau `D:\greengrass\v2` untuk menjaga jalur komponen Greengrass di bawah batas 260 karakter.
   + Ganti `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan folder root Greengrass.
   + Ganti setiap instance *GreengrassInstaller* dengan folder tempat Anda membongkar penginstal.
   + Ganti jalur ke file JAR plugin penyediaan khusus dengan jalur ke file JAR plugin Anda.

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="/greengrass/v2" -Dlog.store=FILE \
     -jar ./GreengrassInstaller/lib/Greengrass.jar \
     --trusted-plugin /path/to/com.example.CustomProvisioning.jar \
     --init-config ./GreengrassInstaller/config.yaml \
     --component-default-user ggc_user:ggc_group \
     --setup-system-service true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" ^
     -jar ./GreengrassInstaller/lib/Greengrass.jar ^
     --trusted-plugin /path/to/com.example.CustomProvisioning.jar ^
     --init-config ./GreengrassInstaller/config.yaml ^
     --component-default-user ggc_user ^
     --setup-system-service true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="C:\greengrass\v2" "-Dlog.store=FILE" `
     -jar ./GreengrassInstaller/lib/Greengrass.jar `
     --trusted-plugin /path/to/com.example.CustomProvisioning.jar `
     --init-config ./GreengrassInstaller/config.yaml `
     --component-default-user ggc_user `
     --setup-system-service true
   ```

------
**penting**  <a name="windows-system-service-installer-argument-important-note"></a>
Pada perangkat inti Windows, Anda harus menentukan `--setup-system-service true` untuk mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

   <a name="installer-setup-system-service-output-message"></a>Jika Anda menentukan `--setup-system-service true`, penginstal akan mencetak `Successfully set up Nucleus as a system service` jika ia mengatur dan menjalankan perangkat lunak sebagai layanan. Jika tidak, installer tersebut tidak akan menghasilkan pesan apa pun jika ia berhasil menginstal perangkat lunak tersebut.
**catatan**  <a name="installer-deploy-dev-tools-without-provision"></a>
Anda tidak dapat menggunakan argumen `deploy-dev-tools` untuk men-deploy alat pengembangan lokal ketika Anda menjalankan penginstal tersebut tanpa argumen `--provision true`. Untuk informasi tentang cara men-deploy Greengrass CLI secara langsung pada perangkat Anda, lihat [Antarmuka Baris Perintah Greengrass](gg-cli.md).

1. <a name="installer-verify-installation"></a>Verifikasi instalasi dengan melihat file di folder root.

------
#### [ Linux or Unix ]

   ```
   ls /greengrass/v2
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   dir C:\greengrass\v2
   ```

------
#### [ PowerShell ]

   ```
   ls C:\greengrass\v2
   ```

------

   Jika penginstalan berhasil, folder akar berisi beberapa folder, seperti `config`, `packages`, dan `logs`.

<a name="install-greengrass-core-run-software"></a>Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem, penginstal menjalankan perangkat lunak untuk Anda. Jika tidak, Anda harus menjalankan perangkat lunak itu secara manual. Untuk informasi selengkapnya, lihat [Jalankan perangkat lunak AWS IoT Greengrass Core](run-greengrass-core-v2.md).

<a name="install-greengrass-core-next-steps-intro"></a>Untuk informasi selengkapnya tentang cara mengkonfigurasi dan menggunakan perangkat lunak dan AWS IoT Greengrass, lihat berikut ini:<a name="install-greengrass-core-next-steps-links"></a>
+ [Konfigurasikan perangkat lunak AWS IoT Greengrass Inti](configure-greengrass-core-v2.md)
+ [Kembangkan AWS IoT Greengrass komponen](develop-greengrass-components.md)
+ [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md)
+ [Antarmuka Baris Perintah Greengrass](gg-cli.md)

# Kembangkan plugin penyediaan khusus
<a name="develop-custom-provisioning-plugins"></a>

Untuk mengembangkan plugin penyediaan kustom, buat kelas Java yang mengimplementasikan antarmuka. `com.aws.greengrass.provisioning.DeviceIdentityInterface` Anda dapat menyertakan file JAR inti Greengrass dalam proyek Anda untuk mengakses antarmuka ini dan kelasnya. Antarmuka ini mendefinisikan metode yang memasukkan konfigurasi plugin dan mengeluarkan konfigurasi penyediaan. [Konfigurasi penyediaan mendefinisikan konfigurasi untuk sistem dan komponen inti Greengrass.](greengrass-nucleus-component.md) Penginstal perangkat lunak AWS IoT Greengrass Core menggunakan konfigurasi penyediaan ini untuk mengonfigurasi perangkat lunak AWS IoT Greengrass Core pada perangkat.

Setelah Anda mengembangkan plugin penyediaan khusus, buat sebagai file JAR yang dapat Anda berikan ke penginstal perangkat lunak AWS IoT Greengrass Core untuk menjalankan plugin Anda selama instalasi. Penginstal menjalankan plugin penyediaan khusus Anda di JVM yang sama dengan yang digunakan penginstal, sehingga Anda dapat membuat JAR yang hanya berisi kode plugin Anda.

**catatan**  
[Plugin penyediaan AWS IoT armada mengimplementasikan](fleet-provisioning.md) penyediaan armada `DeviceIdentityInterface` untuk menggunakan selama instalasi. Plugin penyediaan armada adalah open source, sehingga Anda dapat menjelajahi kode sumbernya untuk melihat contoh cara menggunakan antarmuka plugin penyediaan. Untuk informasi selengkapnya, lihat [plugin penyediaan AWS IoT armada](https://github.com/aws-greengrass/aws-greengrass-fleet-provisioning-by-claim) di. GitHub

**Topics**
+ [Persyaratan](#custom-provisioning-plugin-requirements)
+ [Menerapkan DeviceIdentityInterface antarmuka](#implement-device-identity-interface)

## Persyaratan
<a name="custom-provisioning-plugin-requirements"></a>

Untuk mengembangkan plugin penyediaan kustom, Anda harus membuat kelas Java yang memenuhi persyaratan berikut:
+ Menggunakan `com.aws.greengrass` paket, atau paket dalam `com.aws.greengrass` paket.
+ Memiliki konstruktor tanpa argumen apa pun.
+ Mengimplementasikan `DeviceIdentityInterface` antarmuka. Untuk informasi selengkapnya, lihat [Menerapkan DeviceIdentityInterface antarmuka](#implement-device-identity-interface).

## Menerapkan DeviceIdentityInterface antarmuka
<a name="implement-device-identity-interface"></a>

Untuk menggunakan `com.aws.greengrass.provisioning.DeviceIdentityInterface` antarmuka di plugin kustom Anda, tambahkan inti Greengrass sebagai dependensi ke proyek Anda.

**Untuk menggunakan DeviceIdentityInterface dalam proyek plugin penyediaan khusus**
+ Anda dapat menambahkan file JAR inti Greengrass sebagai pustaka, atau menambahkan inti Greengrass sebagai ketergantungan Maven. Lakukan salah satu tindakan berikut:
  + Untuk menambahkan file JAR inti Greengrass sebagai pustaka, unduh perangkat AWS IoT Greengrass lunak Core, yang berisi JAR inti Greengrass. Anda dapat mengunduh versi terbaru perangkat lunak AWS IoT Greengrass Core dari lokasi berikut:
    + [https://d2s8p88vqu9w66.cloudfront. net/releases/greengrass](https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip)-nucleus-latest.zip

    Anda dapat menemukan file JAR inti Greengrass `Greengrass.jar` () di folder dalam file ZIP`lib`. Tambahkan file JAR ini ke proyek Anda.
  + Untuk mengkonsumsi inti Greengrass dalam proyek Maven, tambahkan ketergantungan pada artefak dalam grup. `nucleus` `com.aws.greengrass` Anda juga harus menambahkan `greengrass-common` repositori, karena inti Greengrass tidak tersedia di Repositori Pusat Maven.

    ```
    <project ...>
        ...
        <repositories>
            <repository>
                <id>greengrass-common</id>
                <name>greengrass common</name>
                <url>https://d2jrmugq4soldf.cloudfront.net/snapshots</url>
            </repository>
        </repositories>
        ...
        <dependencies>
            <dependency>
                <groupId>com.aws.greengrass</groupId>
                <artifactId>nucleus</artifactId>
                <version>2.5.0-SNAPSHOT</version>
                <scope>provided</scope>
            </dependency>
        </dependencies>
    </project>
    ```

### DeviceIdentityInterface Antarmuka
<a name="device-identity-interface-shape"></a>

`com.aws.greengrass.provisioning.DeviceIdentityInterface`Antarmuka memiliki bentuk sebagai berikut.

**catatan**  
[Anda juga dapat menjelajahi kelas-kelas ini dalam paket [com.aws.greengrass.provisioning dari kode sumber inti Greengrass](https://github.com/aws-greengrass/aws-greengrass-nucleus/tree/main/src/main/java/com/aws/greengrass/provisioning) di.](https://github.com/aws-greengrass/aws-greengrass-nucleus) GitHub

```
public interface com.aws.greengrass.provisioning.DeviceIdentityInterface {
    ProvisionConfiguration updateIdentityConfiguration(ProvisionContext context)
            throws RetryableProvisioningException, InterruptedException;

    // Return the name of the plugin.
    String name(); 
}

com.aws.greengrass.provisioning.ProvisionConfiguration {
    SystemConfiguration systemConfiguration;
    NucleusConfiguration nucleusConfiguration    
}

com.aws.greengrass.provisioning.ProvisionConfiguration.SystemConfiguration {
    String certificateFilePath;
    String privateKeyPath;
    String rootCAPath;
    String thingName;
}

com.aws.greengrass.provisioning.ProvisionConfiguration.NucleusConfiguration {
    String awsRegion;
    String iotCredentialsEndpoint;
    String iotDataEndpoint;
    String iotRoleAlias;
}

com.aws.greengrass.provisioning.ProvisioningContext {
    Map<String, Object> parameterMap;
    String provisioningPolicy;  // The policy is always "PROVISION_IF_NOT_PROVISIONED".
}
   
com.aws.greengrass.provisioning.exceptions.RetryableProvisioningException {}
```

Setiap nilai konfigurasi dalam `SystemConfiguration` dan `NucleusConfiguration` diperlukan untuk menginstal perangkat lunak AWS IoT Greengrass Core, tetapi Anda dapat kembali`null`. Jika plugin penyediaan kustom Anda mengembalikan `null` nilai konfigurasi apa pun, Anda harus memberikan nilai tersebut dalam konfigurasi sistem atau inti saat Anda membuat `config.yaml` file yang akan diberikan kepada penginstal perangkat lunak AWS IoT Greengrass Core. Jika plugin penyediaan kustom Anda mengembalikan nilai non-null untuk opsi yang juga Anda tentukan`config.yaml`, maka penginstal mengganti nilai `config.yaml` dengan nilai yang dikembalikan oleh plugin.

# Argumen penginstal
<a name="configure-installer"></a>

Perangkat lunak AWS IoT Greengrass Core mencakup penginstal yang mengatur perangkat lunak dan menyediakan AWS sumber daya yang diperlukan untuk perangkat inti Greengrass untuk dijalankan. Installer mencakup argumen berikut yang dapat Anda tentukan untuk mengonfigurasi instalasi:

`-h`, `--help`  
(Opsional) Tampilkan informasi bantuan penginstal.

`--version`  
(Opsional) Tampilkan versi perangkat lunak AWS IoT Greengrass Inti.

`-Droot`  
(Opsional) Jalur ke folder yang akan digunakan sebagai root untuk perangkat lunak AWS IoT Greengrass Core.  
Argumen ini menetapkan properti JVM, sehingga Anda harus menentukannya sebelum `-jar` ketika Anda menjalankan installer tersebut. Sebagai contoh, tentukan `java -Droot="/greengrass/v2" -jar /path/to/Greengrass.jar`.
Default:  
+ Linux: `~/.greengrass`
+ Windows: `%USERPROFILE%/.greengrass`

`-ar`, `--aws-region`  
Perangkat lunak AWS IoT Greengrass Core Wilayah AWS yang digunakan untuk mengambil atau membuat AWS sumber daya yang dibutuhkan.

`-p`, `--provision`  
(Opsional) Anda dapat mendaftarkan perangkat ini sebagai AWS IoT sesuatu dan menyediakan AWS sumber daya yang dibutuhkan perangkat inti. Jika Anda menentukan`true`, perangkat lunak AWS IoT Greengrass inti menyediakan AWS IoT sesuatu, (opsional) grup AWS IoT hal, peran IAM, dan alias AWS IoT peran.  
Default: `false`

`-tn`, `--thing-name`  
(Opsional) Nama AWS IoT benda yang Anda daftarkan sebagai perangkat inti ini. Jika benda dengan nama tidak ada di Anda Akun AWS, perangkat lunak AWS IoT Greengrass Core membuatnya.  
Nama objek tidak dapat berisi karakter titik dua (`:`).
Anda harus menentukan `--provision true` untuk menerapkan argumen ini.  
Default: `GreengrassV2IotThing_` ditambah UUID acak.

`-tgn`, `--thing-group-name`  
(Opsional) Nama grup AWS IoT benda tempat Anda menambahkan AWS IoT benda perangkat inti ini. Jika penerapan menargetkan grup benda ini, perangkat inti ini menerima penerapan itu saat terhubung ke. AWS IoT Greengrass Jika grup benda dengan nama ini tidak ada di Anda Akun AWS, perangkat lunak AWS IoT Greengrass Core membuatnya.  
Nama grup objek tidak dapat berisi karakter titik dua (`:`).
Anda harus menentukan `--provision true` untuk menerapkan argumen ini.

`-tpn`, `--thing-policy-name`  
[Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)  
(Opsional) Nama AWS IoT kebijakan untuk dilampirkan ke sertifikat AWS IoT benda perangkat inti ini. Jika AWS IoT kebijakan dengan nama ini tidak ada di Anda Akun AWS, perangkat lunak AWS IoT Greengrass Core membuatnya.  
Perangkat lunak AWS IoT Greengrass Core membuat AWS IoT kebijakan permisif secara default. Anda dapat menjelaskan kebijakan ini, atau membuat kebijakan khusus yang membatasi izin untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [AWS IoT Kebijakan minimal untuk perangkat AWS IoT Greengrass V2 inti](device-auth.md#greengrass-core-minimal-iot-policy).  
Anda harus menentukan `--provision true` untuk menerapkan argumen ini.  
Default: `GreengrassV2IoTThingPolicy`

`-trn`, `--tes-role-name`  
(Opsional) Nama peran IAM yang akan digunakan untuk memperoleh AWS kredensional yang memungkinkan perangkat inti berinteraksi dengan layanan. AWS Jika peran dengan nama ini tidak ada di Anda Akun AWS, perangkat lunak AWS IoT Greengrass Core membuatnya dengan `GreengrassV2TokenExchangeRoleAccess` kebijakan. Peran ini tidak memiliki akses ke bucket S3 tempat Anda meng-hosting artefak komponen. Jadi, Anda harus menambahkan izin pada bucket S3 dan objek artefak Anda ketika Anda membuat komponen. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).  
Anda harus menentukan `--provision true` untuk menerapkan argumen ini.  
Default: `GreengrassV2TokenExchangeRole`

`-tra`, `--tes-role-alias-name`  
(Opsional) Nama alias AWS IoT peran yang menunjuk ke peran IAM yang menyediakan AWS kredensi untuk perangkat inti ini. Jika alias peran dengan nama ini tidak ada di Anda Akun AWS, perangkat lunak AWS IoT Greengrass Core membuatnya dan mengarahkannya ke peran IAM yang Anda tentukan.  
Anda harus menentukan `--provision true` untuk menerapkan argumen ini.  
Default: `GreengrassV2TokenExchangeRoleAlias`

`-ss`, `--setup-system-service`  
(Opsional) Anda dapat mengatur perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem yang berjalan saat perangkat ini melakukan booting. Nama layanan sistem adalah `greengrass`. Untuk informasi selengkapnya, lihat [Konfigurasikan inti Greengrass sebagai layanan sistem](configure-greengrass-core-v2.md#configure-system-service).  
Pada sistem operasi Linux, argumen ini mensyaratkan bahwa sistem init systemd tersedia pada perangkat.  
Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.
Default: `false`

`-u`, `--component-default-user`  
Nama atau ID pengguna yang digunakan perangkat lunak AWS IoT Greengrass Core untuk menjalankan komponen. Misalnya, Anda dapat menentukan **ggc\$1user**. Nilai ini diperlukan ketika Anda menjalankan installer pada sistem operasi Windows.  
Pada sistem operasi Linux, Anda juga dapat menentukan grup secara opsional. Tentukan pengguna dan grup yang dipisahkan dengan titik dua. Misalnya, **ggc\$1user:ggc\$1group**.  

Pertimbangan tambahan berikut berlaku untuk sistem operasi Linux:
+ Jika Anda menjalankan sebagai root, pengguna komponen default adalah pengguna yang didefinisikan dalam file konfigurasi. Jika file konfigurasi tidak mendefinisikan pengguna, ini defaultnya. `ggc_user:ggc_group` Jika `ggc_user` atau `ggc_group` tidak ada, perangkat lunak akan membuatnya.
+ Jika Anda menjalankan sebagai pengguna non-root, perangkat lunak AWS IoT Greengrass Core menggunakan pengguna tersebut untuk menjalankan komponen.
+ Jika Anda tidak menentukan grup, perangkat lunak AWS IoT Greengrass Core menggunakan grup utama pengguna sistem.
Untuk informasi selengkapnya, lihat [Konfigurasikan pengguna yang menjalankan komponen](configure-greengrass-core-v2.md#configure-component-user).

`-d`, `--deploy-dev-tools`  
(Opsional) Anda dapat mengunduh dan men-deploy komponen [Greengrass CLI](greengrass-cli-component.md) pada perangkat inti ini. Anda dapat menggunakan alat ini untuk mengembangkan dan men-debug komponen pada perangkat inti ini.  
 <a name="local-dev-tools-production-environment-warning"></a>Kami menyarankan Anda menggunakan komponen ini hanya di lingkungan pengembangan, bukan lingkungan produksi. Komponen ini menyediakan akses ke informasi dan operasi yang biasanya tidak Anda perlukan di lingkungan produksi. Ikuti prinsip hak istimewa paling sedikit dengan menerapkan komponen ini hanya ke perangkat inti di mana Anda membutuhkannya. 
Anda harus menentukan `--provision true` untuk menerapkan argumen ini.  
Default: `false`

`-init`, `--init-config`  
(Opsional) Jalur ke file konfigurasi yang akan digunakan untuk menginstal perangkat lunak AWS IoT Greengrass Core. Anda dapat menggunakan opsi ini untuk mengatur perangkat inti baru dengan konfigurasi inti tertentu, misalnya.   
File konfigurasi yang Anda tentukan bergabung dengan file konfigurasi yang ada di perangkat inti. Ini termasuk komponen dan konfigurasi komponen pada perangkat inti. Kami merekomendasikan file konfigurasi hanya mencantumkan konfigurasi yang Anda coba ubah.

`-tp`, `--trusted-plugin`  
(Opsional) Jalur ke file JAR untuk dimuat sebagai plugin tepercaya. [Gunakan opsi ini untuk menyediakan file JAR plugin penyediaan, seperti menginstal dengan [penyediaan armada atau penyediaan](fleet-provisioning.md)[khusus](custom-provisioning.md), atau untuk menginstal dengan kunci pribadi dan sertifikat dalam modul keamanan perangkat keras.](hardware-security.md)

`-s`, `--start`  
(Opsional) Anda dapat memulai perangkat lunak AWS IoT Greengrass Inti setelah menginstal dan, secara opsional, menyediakan sumber daya.  
Default: `true`

# Jalankan perangkat lunak AWS IoT Greengrass Core
<a name="run-greengrass-core-v2"></a>

Setelah Anda [menginstal perangkat lunak AWS IoT Greengrass Core](install-greengrass-core-v2.md), jalankan untuk menghubungkan perangkat Anda AWS IoT Greengrass.

Saat Anda menginstal perangkat lunak AWS IoT Greengrass Core, Anda dapat menentukan apakah akan menginstalnya sebagai layanan sistem dengan [systemd](https://en.wikipedia.org/wiki/Systemd). Jika Anda memilih opsi ini, penginstal akan menjalankan perangkat lunak untuk Anda dan mengonfigurasinya untuk dijalankan saat perangkat Anda melakukan booting.

**penting**  <a name="windows-system-service-requirement-important-note"></a>
Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

**Topics**
+ [Periksa apakah perangkat lunak AWS IoT Greengrass Core berjalan sebagai layanan sistem](#check-system-service)
+ [Jalankan perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem](#run-greengrass-core-system-service)
+ [Jalankan perangkat lunak AWS IoT Greengrass Core tanpa layanan sistem](#run-greengrass-core-no-system-service)

## Periksa apakah perangkat lunak AWS IoT Greengrass Core berjalan sebagai layanan sistem
<a name="check-system-service"></a>

Ketika Anda menginstal perangkat lunak AWS IoT Greengrass Core, Anda dapat menentukan `--setup-system-service true` argumen untuk menginstal perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem. Perangkat Linux memerlukan sistem init [systemd](https://en.wikipedia.org/wiki/Systemd) untuk mengatur perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem. Jika Anda menggunakan opsi ini, penginstal akan menjalankan perangkat lunak untuk Anda dan mengonfigurasinya untuk dijalankan saat perangkat Anda melakukan booting. Installer mengeluarkan pesan berikut jika berhasil menginstal perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem.

```
Successfully set up Nucleus as a system service
```

Jika sebelumnya Anda menginstal perangkat lunak AWS IoT Greengrass Core dan tidak memiliki output installer, Anda dapat memeriksa apakah perangkat lunak diinstal sebagai layanan sistem.

**Untuk memeriksa apakah perangkat lunak AWS IoT Greengrass Core diinstal sebagai layanan sistem**
+ Jalankan perintah berikut untuk memeriksa status layanan sistem Greengrass.

------
#### [ Linux or Unix (systemd) ]

  ```
  sudo systemctl status greengrass.service
  ```

  Responsnya terlihat mirip dengan contoh berikut jika perangkat lunak AWS IoT Greengrass Core diinstal sebagai layanan sistem dan aktif.

  ```
  ● greengrass.service - Greengrass Core
     Loaded: loaded (/etc/systemd/system/greengrass.service; enabled; vendor preset: disabled)
     Active: active (running) since Thu 2021-02-11 01:33:44 UTC; 4 days ago
   Main PID: 16107 (sh)
     CGroup: /system.slice/greengrass.service
             ├─16107 /bin/sh /greengrass/v2/alts/current/distro/bin/loader
             └─16111 java -Dlog.store=FILE -Droot=/greengrass/v2 -jar /greengrass/v2/alts/current/distro/lib/Greengrass...
  ```

  Jika `systemctl` atau `greengrass.service` tidak ditemukan, perangkat lunak AWS IoT Greengrass Core tidak diinstal sebagai layanan sistem. Untuk menjalankan perangkat lunak, lihat [Jalankan perangkat lunak AWS IoT Greengrass Core tanpa layanan sistem](#run-greengrass-core-no-system-service).

------
#### [ Windows Command Prompt (CMD) ]

  ```
  sc query greengrass
  ```

  Responsnya terlihat mirip dengan contoh berikut jika perangkat lunak AWS IoT Greengrass Core diinstal sebagai layanan Windows dan aktif.

  ```
  SERVICE_NAME: greengrass
          TYPE               : 10  WIN32_OWN_PROCESS
          STATE              : 4  RUNNING
                                  (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
          WIN32_EXIT_CODE    : 0  (0x0)
          SERVICE_EXIT_CODE  : 0  (0x0)
          CHECKPOINT         : 0x0
          WAIT_HINT          : 0x0
  ```

------
#### [ PowerShell ]

  ```
  Get-Service greengrass
  ```

  Responsnya terlihat mirip dengan contoh berikut jika perangkat lunak AWS IoT Greengrass Core diinstal sebagai layanan Windows dan aktif.

  ```
  Status   Name               DisplayName
  ------   ----               -----------
  Running  greengrass         greengrass
  ```

------

## Jalankan perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem
<a name="run-greengrass-core-system-service"></a>

Jika perangkat lunak AWS IoT Greengrass Core diinstal sebagai layanan sistem, Anda dapat menggunakan manajer layanan sistem untuk memulai, menghentikan, dan mengelola perangkat lunak. Untuk informasi selengkapnya, lihat [Konfigurasikan inti Greengrass sebagai layanan sistem](configure-greengrass-core-v2.md#configure-system-service).

**Untuk menjalankan perangkat lunak AWS IoT Greengrass Core**
+ Jalankan perintah berikut untuk memulai perangkat lunak AWS IoT Greengrass Core.

------
#### [ Linux or Unix (systemd) ]

  ```
  sudo systemctl start greengrass.service
  ```

------
#### [ Windows Command Prompt (CMD) ]

  ```
  sc start greengrass
  ```

------
#### [ PowerShell ]

  ```
  Start-Service greengrass
  ```

------

## Jalankan perangkat lunak AWS IoT Greengrass Core tanpa layanan sistem
<a name="run-greengrass-core-no-system-service"></a>

Pada perangkat inti Linux, jika perangkat lunak AWS IoT Greengrass Core tidak diinstal sebagai layanan sistem, Anda dapat menjalankan skrip loader perangkat lunak untuk menjalankan perangkat lunak.

**Untuk menjalankan perangkat lunak AWS IoT Greengrass Core tanpa layanan sistem**
+ Jalankan perintah berikut untuk memulai perangkat lunak AWS IoT Greengrass Core. Jika Anda menjalankan perintah ini di terminal, Anda harus menjaga sesi terminal tetap terbuka agar perangkat lunak AWS IoT Greengrass Core tetap berjalan.
  + Ganti `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan folder root Greengrass yang Anda gunakan.

  ```
  sudo /greengrass/v2/alts/current/distro/bin/loader
  ```

  Perangkat lunak mencetak pesan berikut jika berhasil meluncurkan.

  ```
  Launched Nucleus successfully.
  ```

# Jalankan perangkat lunak AWS IoT Greengrass Core dalam wadah Docker
<a name="run-greengrass-docker"></a>

AWS IoT Greengrass dapat dikonfigurasi untuk dijalankan dalam wadah Docker. Docker adalah sebuah platform yang memungkinkan Anda untuk membangun, menjalankan, menguji, dan men-deploy aplikasi yang didasarkan pada kontainer Linux. Saat Anda menjalankan image AWS IoT Greengrass Docker, Anda dapat memilih apakah akan memberikan AWS kredensyal Anda ke wadah Docker dan mengizinkan penginstal perangkat lunak AWS IoT Greengrass Core untuk secara otomatis menyediakan sumber daya AWS yang diperlukan perangkat inti Greengrass untuk beroperasi. Jika Anda tidak ingin memberikan AWS kredensyal, Anda dapat menyediakan AWS sumber daya secara manual dan menjalankan perangkat lunak AWS IoT Greengrass Core di wadah Docker.

**Topics**
+ [Platform dan persyaratan yang didukung](#greengrass-docker-supported-platforms)
+ [Unduhan perangkat lunak](#greengrass-docker-downloads)
+ [Pilih cara menyediakan AWS sumber daya](#greengrass-docker-resource-provisioning)
+ [Bangun AWS IoT Greengrass gambar dari Dockerfile](build-greengrass-dockerfile.md)
+ [Jalankan AWS IoT Greengrass di Docker dengan penyediaan otomatis](run-greengrass-docker-automatic-provisioning.md)
+ [Jalankan AWS IoT Greengrass di Docker dengan penyediaan manual](run-greengrass-docker-manual-provisioning.md)
+ [Pemecahan masalah AWS IoT Greengrass dalam wadah Docker](docker-troubleshooting.md)

## Platform dan persyaratan yang didukung
<a name="greengrass-docker-supported-platforms"></a>

Komputer host harus memenuhi persyaratan minimum berikut untuk menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core dalam wadah Docker:
+ <a name="docker-host-reqs"></a>Sistem operasi berbasis Linux dengan koneksi internet.
+ <a name="docker-engine-reqs"></a>[Mesin Docker](https://docs.docker.com/engine/install/) versi 18.09 atau yang lebih baru.
+ <a name="docker-compose-reqs"></a>(Opsional) [Docker Compose](https://docs.docker.com/compose/install/) versi 1.22 atau yang lebih baru. Docker Compose diperlukan hanya jika Anda ingin menggunakan Docker Compose CLI untuk menjalankan gambar Docker Anda.

Untuk menjalankan komponen fungsi Lambda dalam kontainer Docker, Anda harus mengonfigurasi kontainer tersebut untuk memenuhi persyaratan tambahan. Untuk informasi selengkapnya, lihat [Persyaratan fungsi Lambda](setting-up.md#greengrass-v2-lambda-requirements).

### Jalankan komponen dalam mode proses
<a name="docker-container-mode-limitation"></a>

AWS IoT Greengrass tidak mendukung menjalankan fungsi Lambda atau komponen yang AWS disediakan di lingkungan runtime yang terisolasi di dalam wadah Docker. AWS IoT Greengrass Anda harus menjalankan komponen ini dalam mode proses tanpa isolasi apapun.

Bila Anda mengonfigurasi komponen fungsi Lambda, atur modus isolasi ke **Tidak ada kontainer**. Untuk informasi selengkapnya, lihat [Jalankan AWS Lambda fungsi](run-lambda-functions.md). 

Saat Anda menerapkan salah satu komponen AWS-provided berikut, perbarui konfigurasi untuk setiap komponen untuk menyetel `containerMode` parameternya. `NoContainer` Untuk informasi selengkapnya tentang pembaruan konfigurasi, lihat [Perbarui konfigurasi komponen](update-component-configurations.md).
+ [CloudWatch metrik](cloudwatch-metrics-component.md)
+ [Pembela Perangkat](device-defender-component.md)
+ [Firehose](kinesis-firehose-component.md)
+ [Adaptor protokol Modbus-RTU](modbus-rtu-protocol-adapter-component.md)
+ [Amazon SNS](sns-component.md)

## AWS IoT Greengrass Unduhan perangkat lunak Docker
<a name="greengrass-docker-downloads"></a>

AWS IoT Greengrass menyediakan Dockerfile untuk membangun image container yang memiliki perangkat lunak AWS IoT Greengrass Core dan dependensi yang diinstal pada image dasar Amazon Linux 2 (x86\$164). Anda dapat memodifikasi gambar dasar di Dockerfile untuk berjalan AWS IoT Greengrass pada arsitektur platform yang berbeda.

Unduh paket Dockerfile dari. [GitHub](https://github.com/aws-greengrass/aws-greengrass-docker)

Dockerfile menggunakan versi Greengrass yang lebih lama. Anda harus memperbarui file untuk menggunakan versi Greengrass yang Anda inginkan. Untuk informasi tentang membangun image AWS IoT Greengrass kontainer dari Dockerfile, lihat. [Buat gambar AWS IoT Greengrass kontainer dari Dockerfile](build-greengrass-dockerfile.md)

## Pilih cara menyediakan AWS sumber daya
<a name="greengrass-docker-resource-provisioning"></a>

Saat Anda menginstal perangkat lunak AWS IoT Greengrass Core dalam wadah Docker, Anda dapat memilih apakah akan secara otomatis menyediakan AWS sumber daya yang diperlukan perangkat inti Greengrass untuk beroperasi, atau menggunakan sumber daya yang Anda sediakan secara manual.
+ **Penyediaan sumber daya otomatis —Penginstal** menyediakan hal, grup AWS IoT AWS IoT benda, peran IAM, dan AWS IoT alias peran saat Anda menjalankan image AWS IoT Greengrass kontainer untuk pertama kalinya. Installer juga dapat men-deploy alat pengembangan lokal ke perangkat inti, sehingga Anda dapat menggunakan perangkat tersebut untuk mengembangkan dan menguji komponen perangkat lunak kustom. Untuk secara otomatis menyediakan sumber daya ini, Anda harus menyediakan kredensial AWS sebagai variabel lingkungan ke gambar Docker.

  Untuk menggunakan penyediaan otomatis, Anda harus mengatur variabel lingkungan Docker `PROVISION=true` dan memasang file kredensial untuk menyediakan kredensial AWS pada kontainer tersebut.
+ **Penyediaan sumber daya manual** —Jika Anda tidak ingin memberikan AWS kredensyal ke wadah, Anda dapat menyediakan AWS sumber daya secara manual sebelum menjalankan image kontainer. AWS IoT Greengrass Anda harus membuat file konfigurasi untuk memberikan informasi tentang sumber daya ini ke penginstal perangkat lunak AWS IoT Greengrass Core dalam wadah Docker.

  Untuk menggunakan penyediaan manual, Anda harus mengatur variabel lingkungan Docker `PROVISION=false`. Penyediaan manual adalah opsi default.

Lihat informasi yang lebih lengkap di [Buat gambar AWS IoT Greengrass kontainer dari Dockerfile](build-greengrass-dockerfile.md).

# Buat gambar AWS IoT Greengrass kontainer dari Dockerfile
<a name="build-greengrass-dockerfile"></a>

AWS menyediakan Dockerfile yang dapat Anda unduh dan gunakan untuk menjalankan perangkat lunak AWS IoT Greengrass Core dalam wadah Docker. Dockerfiles berisi kode sumber untuk membangun gambar AWS IoT Greengrass kontainer. 

Sebelum Anda membangun gambar AWS IoT Greengrass kontainer, Anda harus mengkonfigurasi Dockerfile Anda untuk memilih versi perangkat lunak AWS IoT Greengrass Core yang ingin Anda instal. Anda juga dapat mengonfigurasi variabel lingkungan untuk memilih cara penyediaan sumber daya selama instalasi, dan menyesuaikan opsi instalasi lainnya. Bagian ini menjelaskan cara mengkonfigurasi dan membangun image AWS IoT Greengrass Docker dari Dockerfile. 



## Unduh paket Dockerfile
<a name="download-dockerfile-package"></a>

Anda dapat mengunduh paket AWS IoT Greengrass Dockerfile dari: GitHub

[AWS Greengrass Docker Repositori](https://github.com/aws-greengrass/aws-greengrass-docker)

Setelah Anda men-download paket tersebut, ekstraksi kontennya ke `download-directory/aws-greengrass-docker-nucleus-version` di komputer Anda. Dockerfile menggunakan versi Greengrass yang lebih lama. Anda harus memperbarui file untuk menggunakan versi Greengrass yang Anda inginkan.

## Tentukan versi perangkat lunak AWS IoT Greengrass inti
<a name="set-dockerfile-build-argument"></a>

Gunakan argumen build berikut di Dockerfile untuk menentukan versi perangkat lunak AWS IoT Greengrass Core yang ingin Anda gunakan dalam image AWS IoT Greengrass Docker. Secara default, Dockerfile menggunakan versi terbaru dari perangkat lunak AWS IoT Greengrass Core.

`GREENGRASS_RELEASE_VERSION`  
Versi perangkat lunak AWS IoT Greengrass Core. Secara default, Dockerfile mengunduh versi terbaru yang tersedia dari inti Greengrass. Tetapkan nilai ke versi nukleus yang ingin Anda unduh.

## Tetapkan variabel lingkungan
<a name="set-dockerfile-environment-variables"></a>

Variabel lingkungan memungkinkan Anda untuk menyesuaikan bagaimana perangkat lunak AWS IoT Greengrass Core diinstal dalam wadah Docker. Anda dapat mengatur variabel lingkungan untuk image AWS IoT Greengrass Docker Anda dengan berbagai cara. 
+ Untuk menggunakan variabel lingkungan yang sama untuk membuat beberapa gambar, atur variabel lingkungan langsung di Dockerfile.
+ Jika Anda menggunakan `docker run` untuk memulai kontainer Anda, lewati variabel lingkungan sebagai argumen dalam perintah, atau atur variabel lingkungan dalam file variabel lingkungan dan kemudian lewati file tersebut sebagai argumen. Untuk informasi selengkapnya tentang pengaturan variabel lingkungan di Docker, lihat [variabel lingkungan](https://docs.docker.com/engine/reference/commandline/run/#env) dalam dokumentasi Docker.
+ Jika Anda menggunakan `docker-compose up` untuk memulai kontainer Anda, tetapkan file variabel lingkungan dan kemudian lewati file tersebut sebagai argumen. Untuk informasi selengkapnya tentang pengaturan variabel lingkungan di Compose, lihat [Dokumentasi docker](https://docs.docker.com/compose/environment-variables/).

Anda dapat mengonfigurasi variabel lingkungan berikut untuk image AWS IoT Greengrass Docker.

**catatan**  
Jangan memodifikasi variabel `TINI_KILL_PROCESS_GROUP` dalam Dockerfile. Variabel ini memungkinkan penerusan `SIGTERM` ke semua PIDs dalam grup PID sehingga perangkat lunak AWS IoT Greengrass Core dapat dimatikan dengan benar ketika wadah Docker dihentikan.

`GGC_ROOT_PATH`  
(Opsional) Jalur ke folder dalam wadah untuk digunakan sebagai root untuk perangkat lunak AWS IoT Greengrass Core.  
Default: `/greengrass/v2`

`PROVISION`  
(Opsional) Menentukan apakah AWS IoT Greengrass Inti menyediakan AWS sumber daya.   
+ Jika Anda menentukan`true`, perangkat lunak AWS IoT Greengrass Core mendaftarkan gambar kontainer sebagai AWS IoT sesuatu dan menyediakan AWS sumber daya yang dibutuhkan perangkat inti Greengrass. Perangkat lunak AWS IoT Greengrass Core menyediakan AWS IoT sesuatu, (opsional) grup AWS IoT benda, peran IAM, dan alias AWS IoT peran. Untuk informasi selengkapnya, lihat [Jalankan AWS IoT Greengrass dalam wadah Docker dengan penyediaan sumber daya otomatis](run-greengrass-docker-automatic-provisioning.md).
+ Jika Anda menentukan`false`, maka Anda harus membuat file konfigurasi untuk diberikan kepada penginstal AWS IoT Greengrass Core yang menentukan untuk menggunakan AWS sumber daya dan sertifikat yang Anda buat secara manual. Untuk informasi selengkapnya, lihat [Jalankan AWS IoT Greengrass dalam wadah Docker dengan penyediaan sumber daya manual](run-greengrass-docker-manual-provisioning.md).
Default: `false`

`AWS_REGION`  
(Opsional) Wilayah AWS Yang digunakan perangkat lunak AWS IoT Greengrass Core untuk mengambil atau membuat AWS sumber daya yang diperlukan.   
Default: `us-east-1`.

`THING_NAME`  
(Opsional) Nama AWS IoT benda yang Anda daftarkan sebagai perangkat inti ini. Jika benda dengan nama ini tidak ada di Anda Akun AWS, perangkat lunak AWS IoT Greengrass Core membuatnya.   
Anda harus menentukan `PROVISION=true` untuk menerapkan argumen ini.  
Default: `GreengrassV2IotThing_` ditambah UUID acak.

`THING_GROUP_NAME`  
(Opsional) Nama grup AWS IoT benda tempat Anda menambahkan perangkat inti ini AWS IoT Jika penerapan menargetkan grup hal ini, ini dan perangkat inti lainnya dalam grup itu menerima penerapan itu saat terhubung. AWS IoT Greengrass Jika grup benda dengan nama ini tidak ada di Anda Akun AWS, perangkat lunak AWS IoT Greengrass Core membuatnya.  
Anda harus menentukan `PROVISION=true` untuk menerapkan argumen ini.

`TES_ROLE_NAME`  
(Opsional) Nama peran IAM yang akan digunakan untuk memperoleh AWS kredensyal yang memungkinkan perangkat inti Greengrass berinteraksi dengan layanan. AWS Jika peran dengan nama ini tidak ada di Anda Akun AWS, perangkat lunak AWS IoT Greengrass Core membuatnya dengan `GreengrassV2TokenExchangeRoleAccess` kebijakan. Peran ini tidak memiliki akses ke bucket S3 tempat Anda meng-hosting artefak komponen. Jadi, Anda harus menambahkan izin pada bucket S3 dan objek artefak Anda ketika Anda membuat komponen. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).  
Default: `GreengrassV2TokenExchangeRole`

`TES_ROLE_ALIAS_NAME`  
(Opsional) Nama alias AWS IoT peran yang menunjuk ke peran IAM yang menyediakan AWS kredensyal untuk perangkat inti Greengrass. Jika alias peran dengan nama ini tidak ada di Anda Akun AWS, perangkat lunak AWS IoT Greengrass Core membuatnya dan mengarahkannya ke peran IAM yang Anda tentukan.  
Default: `GreengrassV2TokenExchangeRoleAlias`

`COMPONENT_DEFAULT_USER`  
(Opsional) Nama atau ID pengguna sistem dan grup yang digunakan perangkat lunak AWS IoT Greengrass Core untuk menjalankan komponen. Tentukan pengguna dan grup, yang dipisahkan dengan titik dua. Grup ini opsional. Misalnya, Anda dapat menentukan **ggc\$1user:ggc\$1group** atau **ggc\$1user**.  
+ Jika Anda berjalan sebagai root, hal ini akan menjadi default untuk pengguna dan grup yang ditentukan oleh file konfigurasi. Jika file konfigurasi tersebut tidak menentukan pengguna dan grup, default-nya menjadi `ggc_user:ggc_group`. Jika `ggc_user` atau `ggc_group` tidak ada, perangkat lunak akan membuatnya.
+ Jika Anda menjalankan sebagai pengguna non-root, perangkat lunak AWS IoT Greengrass Core menggunakan pengguna tersebut untuk menjalankan komponen.
+ Jika Anda tidak menentukan grup, perangkat lunak AWS IoT Greengrass Core menggunakan grup utama pengguna sistem.
Untuk informasi selengkapnya, lihat [Konfigurasikan pengguna yang menjalankan komponen](configure-greengrass-core-v2.md#configure-component-user).

`DEPLOY_DEV_TOOLS`  
Mendefinisikan apakah akan mengunduh dan menyebarkan komponen CLI [Greengrass](greengrass-cli-component.md) dalam gambar kontainer. Anda dapat menggunakan Greengrass CLI untuk mengembangkan dan men-debug komponen lokal.  
 <a name="local-dev-tools-production-environment-warning"></a>Kami menyarankan Anda menggunakan komponen ini hanya di lingkungan pengembangan, bukan lingkungan produksi. Komponen ini menyediakan akses ke informasi dan operasi yang biasanya tidak Anda perlukan di lingkungan produksi. Ikuti prinsip hak istimewa paling sedikit dengan menerapkan komponen ini hanya ke perangkat inti di mana Anda membutuhkannya. 
Default: `false`

`INIT_CONFIG`  
(Opsional) Jalur ke file konfigurasi yang akan digunakan untuk menginstal perangkat lunak AWS IoT Greengrass Core. Anda dapat menggunakan opsi ini untuk mengatur perangkat inti Greengrass baru dengan konfigurasi inti tertentu, atau untuk menentukan sumber daya yang ditetapkan secara manual, misalnya. Anda harus memasang file konfigurasi Anda ke jalur yang Anda tentukan dalam argumen ini. 

`TRUSTED_PLUGIN`  
[Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)  
(Opsional) Jalur ke file JAR untuk dimuat sebagai plugin tepercaya. [Gunakan opsi ini untuk menyediakan file JAR plugin penyediaan, seperti menginstal dengan [penyediaan armada atau penyediaan khusus.](fleet-provisioning.md)](custom-provisioning.md) 

`THING_POLICY_NAME`  
[Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md)  
(Opsional) Nama AWS IoT kebijakan untuk dilampirkan ke sertifikat AWS IoT benda perangkat inti ini. Jika AWS IoT kebijakan dengan nama ini tidak ada di perangkat lunak AWS IoT Greengrass Core Anda Akun AWS membuatnya.   
Anda harus menentukan `PROVISION=true` untuk menerapkan argumen ini.  
Perangkat lunak AWS IoT Greengrass Core membuat AWS IoT kebijakan permisif secara default. Anda dapat menjelaskan kebijakan ini, atau membuat kebijakan khusus yang membatasi izin untuk kasus penggunaan Anda. Untuk informasi selengkapnya, lihat [AWS IoT Kebijakan minimal untuk perangkat AWS IoT Greengrass V2 inti](device-auth.md#greengrass-core-minimal-iot-policy). 

## Tentukan dependensi yang akan dipasang
<a name="dockerfile-run-instruction"></a>

Instruksi RUN di AWS IoT Greengrass Dockerfile mempersiapkan lingkungan kontainer untuk menjalankan penginstal perangkat lunak AWS IoT Greengrass Core. Anda dapat menyesuaikan dependensi yang diinstal sebelum penginstal perangkat lunak inti AWS IoT Greengrass berjalan di kontainer Docker. 

## Bangun AWS IoT Greengrass gambar
<a name="build-greengrass-docker-image"></a>

Gunakan AWS IoT Greengrass Dockerfile untuk membangun image AWS IoT Greengrass container. Anda dapat menggunakan CLI Docker atau Docker Compose CLI untuk membangun citra dan memulai kontainer tersebut. Anda juga dapat menggunakan CLI Docker untuk membangun citra dan kemudian menggunakan Docker Compose untuk memulai kontainer Anda dari citra tersebut.

------
#### [ Docker ]

1. Pada mesin host, jalankan perintah berikut untuk beralih ke direktori yang berisi Dockerfile yang dikonfigurasi.

   ```
   cd download-directory/aws-greengrass-docker-nucleus-version
   ```

1. Jalankan perintah berikut untuk membangun image AWS IoT Greengrass container dari Dockerfile.

   ```
   sudo docker build -t "platform/aws-iot-greengrass:nucleus-version" ./
   ```

------
#### [ Docker Compose ]

1. Pada mesin host, jalankan perintah berikut untuk beralih ke direktori yang berisi Dockerfile dan file Compose.

   ```
   cd download-directory/aws-greengrass-docker-nucleus-version
   ```

1. Jalankan perintah berikut untuk menggunakan file Compose untuk membangun image AWS IoT Greengrass container.

   ```
   docker-compose -f docker-compose.yml build
   ```

------

Anda telah berhasil membuat gambar AWS IoT Greengrass kontainer. Gambar Docker memiliki perangkat lunak AWS IoT Greengrass Core yang diinstal. Anda sekarang dapat menjalankan perangkat lunak AWS IoT Greengrass Core dalam wadah Docker.

# Jalankan AWS IoT Greengrass dalam wadah Docker dengan penyediaan sumber daya otomatis
<a name="run-greengrass-docker-automatic-provisioning"></a>

Tutorial ini menunjukkan cara menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core dalam wadah Docker dengan AWS sumber daya yang disediakan secara otomatis dan alat pengembangan lokal. Anda dapat menggunakan lingkungan pengembangan ini untuk menjelajahi AWS IoT Greengrass fitur dalam wadah Docker. Perangkat lunak ini membutuhkan AWS kredensyal untuk menyediakan sumber daya ini dan menyebarkan alat pengembangan lokal.

Jika Anda tidak dapat memberikan AWS kredensi ke penampung, Anda dapat menyediakan AWS sumber daya yang dibutuhkan perangkat inti untuk beroperasi. Anda juga dapat men-deploy alat pengembangan ke perangkat inti untuk digunakan sebagai perangkat pengembangan. Ini memungkinkan Anda memberikan lebih sedikit izin ke perangkat saat menjalankan penampung. Untuk informasi selengkapnya, lihat [Jalankan AWS IoT Greengrass dalam wadah Docker dengan penyediaan sumber daya manual](run-greengrass-docker-manual-provisioning.md).



## Prasyarat
<a name="docker-automatic-provisioning-prereqs"></a>

Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut ini:
+ Sebuah Akun AWS. Jika Anda tidak memilikinya, lihat [Mengatur sebuah Akun AWS](setting-up.md#set-up-aws-account). 
+ Pengguna AWS IAM dengan izin untuk menyediakan sumber daya AWS IoT dan IAM untuk perangkat inti Greengrass. Penginstal perangkat lunak AWS IoT Greengrass Core menggunakan AWS kredensyal Anda untuk menyediakan sumber daya ini secara otomatis. Untuk informasi tentang kebijakan IAM minimal untuk secara otomatis menyediakan sumber daya, lihat[Kebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya](provision-minimal-iam-policy.md).
+ Gambar AWS IoT Greengrass Docker. Anda dapat [membuat gambar dari AWS IoT Greengrass Dockerfile](build-greengrass-dockerfile.md).
+ Komputer host tempat Anda menjalankan wadah Docker harus memenuhi persyaratan berikut:
  + <a name="docker-host-reqs"></a>Sistem operasi berbasis Linux dengan koneksi internet.
  + <a name="docker-engine-reqs"></a>[Mesin Docker](https://docs.docker.com/engine/install/) versi 18.09 atau yang lebih baru.
  + <a name="docker-compose-reqs"></a>(Opsional) [Docker Compose](https://docs.docker.com/compose/install/) versi 1.22 atau yang lebih baru. Docker Compose diperlukan hanya jika Anda ingin menggunakan Docker Compose CLI untuk menjalankan gambar Docker Anda.

## Konfigurasikan AWS kredensyal Anda
<a name="configure-aws-credentials-for-docker"></a>

Pada langkah ini, Anda membuat file kredensial pada komputer host yang berisi kredensial keamanan AWS . Saat Anda menjalankan image AWS IoT Greengrass Docker, Anda harus me-mount folder yang berisi file kredensi ini ke `/root/.aws/` dalam wadah Docker. AWS IoT Greengrass Pemasang menggunakan kredensyal ini untuk menyediakan sumber daya di Anda. Akun AWS Untuk informasi tentang kebijakan IAM minimal yang diperlukan installer untuk secara otomatis menyediakan sumber daya, lihat [Kebijakan IAM minimal untuk penginstal untuk menyediakan sumber daya](provision-minimal-iam-policy.md).

1. Ambil salah satu dari yang berikut ini.
   + Kredensial jangka panjang untuk pengguna IAM. Untuk informasi tentang cara mengambil kredensial jangka panjang, lihat [Mengelola access key untuk pengguna IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html) di *Panduan Pengguna IAM*.
   + (Disarankan) Kredensial sementara untuk IAM role: Untuk informasi tentang cara mengambil kredensial sementara, lihat [Menggunakan kredensial keamanan sementara dengan AWS CLI](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html#using-temp-creds-sdk-cli) di *Panduan Pengguna IAM*.

1. Buat folder tempat Anda menempatkan file kredensial Anda.

   ```
   mkdir ./greengrass-v2-credentials
   ```

1. Gunakan editor teks untuk membuat file konfigurasi bernama `credentials` di folder `./greengrass-v2-credentials`.

   Misalnya, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file `credentials`. 

   ```
   nano ./greengrass-v2-credentials/credentials
   ```

1. Tambahkan AWS kredensyal Anda ke `credentials` file dalam format berikut.

   ```
   [default]
   aws_access_key_id = AKIAIOSFODNN7EXAMPLE
   aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   aws_session_token = AQoEXAMPLEH4aoAH0gNCAPy...truncated...zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
   ```

   Sertakan `aws_session_token` untuk kredensial sementara saja.

**penting**  
Hapus file kredensyal dari komputer host setelah Anda memulai AWS IoT Greengrass wadah. Jika Anda tidak menghapus file kredensialnya, AWS kredensyal Anda akan tetap terpasang di dalam wadah. Untuk informasi selengkapnya, lihat [Jalankan perangkat lunak AWS IoT Greengrass Core dalam wadah](#run-greengrass-image-automatic-provisioning).

## Buat sebuah file lingkungan.
<a name="create-env-file-automatic-provisioning"></a>

Tutorial ini menggunakan file lingkungan untuk mengatur variabel lingkungan yang akan diteruskan ke installer perangkat lunak AWS IoT Greengrass Core di dalam wadah Docker. Anda juga dapat menggunakan [argumen `-e` atau `--env`](https://docs.docker.com/engine/reference/commandline/run/#env) di perintah `docker run` Anda untuk mengatur variabel lingkungan dalam kontainer Docker atau Anda dapat mengatur variabel dalam [sebuah blok `environment`](https://docs.docker.com/compose/compose-file/compose-file-v3/#environment) di file `docker-compose.yml`.

1. Gunakan editor teks untuk membuat file lingkungan bernama `.env`.

   Sebagai contoh, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat `.env` pada direktori saat ini.

   ```
   nano .env
   ```

1. Salin konten berikut ke dalam file tersebut.

   ```
   GGC_ROOT_PATH=/greengrass/v2
   AWS_REGION=region
   PROVISION=true
   THING_NAME=MyGreengrassCore
   THING_GROUP_NAME=MyGreengrassCoreGroup
   TES_ROLE_NAME=GreengrassV2TokenExchangeRole
   TES_ROLE_ALIAS_NAME=GreengrassCoreTokenExchangeRoleAlias
   COMPONENT_DEFAULT_USER=ggc_user:ggc_group
   ```

   Anda harus mengganti nilai berikut.
   + `/greengrass/v2`. Folder root Greengrass yang ingin Anda gunakan untuk instalasi. Anda dapat menggunakan variabel lingkungan `GGC_ROOT` untuk menetapkan nilai ini.
   + *region*. Di Wilayah AWS mana Anda menciptakan sumber daya.
   + *MyGreengrassCore*. Nama AWS IoT benda itu. Jika objek tidak ada, installer akan membuatnya. Pemasang mengunduh sertifikat untuk diautentikasi sebagai masalahnya. AWS IoT 
   + *MyGreengrassCoreGroup*. Nama kelompok AWS IoT benda. Jika grup objek tidak ada, installer akan membuatnya dan menambahkan objek padanya. Jika grup objek ada dan memiliki deployment yang aktif, perangkat inti akan men-download dan menjalankan perangkat lunak yang ditetapkan oleh deployment.
   +  *GreengrassV2TokenExchangeRole*. Ganti dengan nama peran pertukaran token IAM yang memungkinkan perangkat inti Greengrass mendapatkan kredenal sementara. AWS Jika peran tidak ada, penginstal akan membuatnya dan membuat serta melampirkan kebijakan bernama *GreengrassV2TokenExchangeRole* Access. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).
   + *GreengrassCoreTokenExchangeRoleAlias*. Alias peran pertukaran token. Jika alias peran tidak ada, penginstal akan membuatnya dan mengarahkannya ke peran pertukaran token IAM yang Anda tentukan. Untuk informasi selengkapnya, silakan lihat 
**catatan**  <a name="docker-local-dev-tools-production-environment-warning"></a>
Anda dapat mengatur variabel `DEPLOY_DEV_TOOLS` lingkungan `true` untuk menyebarkan komponen [CLI Greengrass](greengrass-cli-component.md), yang memungkinkan Anda mengembangkan komponen khusus di dalam wadah Docker. <a name="local-dev-tools-production-environment-warning"></a>Kami menyarankan Anda menggunakan komponen ini hanya di lingkungan pengembangan, bukan lingkungan produksi. Komponen ini menyediakan akses ke informasi dan operasi yang biasanya tidak Anda perlukan di lingkungan produksi. Ikuti prinsip hak istimewa paling sedikit dengan menerapkan komponen ini hanya ke perangkat inti di mana Anda membutuhkannya. 

## Jalankan perangkat lunak AWS IoT Greengrass Core dalam wadah
<a name="run-greengrass-image-automatic-provisioning"></a>

Tutorial ini menunjukkan cara memulai gambar Docker yang Anda buat di wadah Docker. Anda dapat menggunakan CLI Docker atau CLI Docker Compose untuk AWS IoT Greengrass menjalankan image perangkat lunak Core dalam wadah Docker. 

------
#### [ Docker ]

1. Jalankan perintah berikut untuk memulai kontainer Docker. 

   ```
   docker run --rm --init -it --name docker-image \
    -v path/to/greengrass-v2-credentials:/root/.aws/:ro \
    --env-file .env \
    -p 8883 \
    your-container-image:version
   ```

   Contoh perintah ini menggunakan argumen berikut untuk [docker run](https://docs.docker.com/engine/reference/commandline/run/):
   + <a name="docker-run-rm"></a>[https://docs.docker.com/engine/reference/run/#clean-up---rm](https://docs.docker.com/engine/reference/run/#clean-up---rm). Membersihkan kontainer saat keluar.
   + <a name="docker-run-init"></a>[https://docs.docker.com/engine/reference/run/#specify-an-init-process](https://docs.docker.com/engine/reference/run/#specify-an-init-process). Menggunakan proses init dalam kontainer. 
**catatan**  
`--init`Argumen diperlukan untuk mematikan perangkat lunak AWS IoT Greengrass Core saat Anda menghentikan wadah Docker.
   + <a name="docker-run-it"></a>[https://docs.docker.com/engine/reference/run/#foreground](https://docs.docker.com/engine/reference/run/#foreground). (Opsional) Menjalankan kontainer Docker di latar depan sebagai proses interaktif. Anda dapat mengganti ini dengan `-d` untuk menjalankan kontainer Docker dalam mode terpisah sebagai gantinya. Untuk informasi lebih lanjut, lihat: [Terpisah vs latar depan](https://docs.docker.com/engine/reference/run/#detached-vs-foreground)dalam dokumentasi Docker.
   + <a name="docker-run-name"></a>[https://docs.docker.com/engine/reference/run/#name---name](https://docs.docker.com/engine/reference/run/#name---name). Menjalankan kontainer bernama `aws-iot-greengrass` 
   + <a name="docker-run-v"></a>[https://docs.docker.com/storage/volumes/](https://docs.docker.com/storage/volumes/). Pasang volume ke dalam wadah Docker untuk membuat file konfigurasi dan file sertifikat tersedia untuk AWS IoT Greengrass berjalan di dalam wadah.
   + <a name="docker-run-env-file"></a>[https://docs.docker.com/engine/reference/commandline/run/#env](https://docs.docker.com/engine/reference/commandline/run/#env). (Opsional) Menentukan file lingkungan untuk mengatur variabel lingkungan yang akan diteruskan ke penginstal perangkat lunak AWS IoT Greengrass Core di dalam wadah Docker. Argumen ini diperlukan hanya jika Anda membuat [file lingkungan](run-greengrass-docker-manual-provisioning.md#create-env-file-manual-provisioning) untuk mengatur variabel lingkungan. Jika Anda tidak membuat file lingkungan, Anda dapat menggunakan `--env` argumen untuk mengatur variabel lingkungan secara langsung di perintah run Docker Anda.
   + <a name="docker-run-p"></a>[https://docs.docker.com/engine/reference/commandline/run/#publish](https://docs.docker.com/engine/reference/commandline/run/#publish). (Opsional) Menerbitkan port kontainer 8883 ke mesin host. Argumen ini diperlukan jika Anda ingin terhubung dan berkomunikasi melalui MQTT karena AWS IoT Greengrass menggunakan port 8883 untuk lalu lintas MQTT. Untuk membuka port lain, gunakan `-p` argumen tambahan.
**catatan**  <a name="docker-run-cap-drop"></a>
Untuk menjalankan kontainer Docker Anda dengan peningkatan keamanan, Anda dapat menggunakan `--cap-drop` dan `--cap-add` untuk secara selektif mengaktifkan kemampuan Linux untuk kontainer Anda. Untuk informasi lebih lanjut, lihat:[Keistimewaan waktu aktif dan kemampuan Linux](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) dalam dokumentasi Docker.

1. <a name="docker-automatic-provisioning-remove-credentials-file"></a>Hapus kredensyal dari `./greengrass-v2-credentials` perangkat host.

   ```
   rm -rf ./greengrass-v2-credentials
   ```
**penting**  
Anda menghapus kredensyal ini, karena mereka memberikan izin luas yang hanya dibutuhkan perangkat inti selama penyiapan. Jika Anda tidak menghapus kredensyal ini, komponen Greengrass dan proses lain yang berjalan di wadah dapat mengaksesnya. Jika Anda perlu memberikan AWS kredensyal ke komponen Greengrass, gunakan layanan pertukaran token. Untuk informasi selengkapnya, lihat [Berinteraksi dengan AWS layanan](interact-with-aws-services.md).

------
#### [ Docker Compose ]

1. Gunakan editor teks untuk membuat file Docker Compose dengan nama `docker-compose.yml`.

   Sebagai contoh, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat `docker-compose.yml` pada direktori saat ini.

   ```
   nano docker-compose.yml
   ```
**catatan**  
Anda juga dapat mengunduh dan menggunakan versi terbaru dari file Tulis AWS yang disediakan dari. [GitHub](https://github.com/aws-greengrass/aws-greengrass-docker/releases/)

1. Tambahkan konten berikut ini ke file Compose. File Anda akan terlihat seperti contoh berikut. Ganti *docker-image* dengan nama image Docker Anda. 

   ```
   version: '3.7'
    
   services:
     greengrass:
       init: true
       container_name: aws-iot-greengrass
       image: docker-image
       volumes:
         - ./greengrass-v2-credentials:/root/.aws/:ro 
       env_file: .env
       ports:
         - "8883:8883"
   ```<a name="docker-compose-optional-params"></a>

   Parameter berikut dalam contoh file Compose ini bersifat opsional:
   + `ports`—Menerbitkan port kontainer 8883 ke mesin host. Parameter ini diperlukan jika Anda ingin terhubung dan berkomunikasi melalui MQTT karena AWS IoT Greengrass menggunakan port 8883 untuk lalu lintas MQTT. 
   + `env_file`—Menentukan file lingkungan untuk mengatur variabel lingkungan yang akan diteruskan ke penginstal perangkat lunak AWS IoT Greengrass Core di dalam wadah Docker. Parameter ini diperlukan hanya jika Anda membuat [file lingkungan](run-greengrass-docker-manual-provisioning.md#create-env-file-manual-provisioning) untuk mengatur variabel lingkungan. Jika Anda tidak membuat file lingkungan, Anda dapat menggunakan parameter [lingkungan](https://docs.docker.com/compose/compose-file/compose-file-v3/#environment) untuk menyetel variabel secara langsung di file Compose Anda.
**catatan**  <a name="docker-compose-cap-drop"></a>
Untuk menjalankan kontainer Docker Anda dengan peningkatan keamanan, Anda dapat menggunakan `cap_drop` dan `cap_add` dalam file Compose Anda untuk secara selektif mengaktifkan kemampuan Linux untuk kontainer Anda. Untuk informasi lebih lanjut, lihat: [Keistimewaan waktu aktif dan kemampuan Linux](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) dalam dokumentasi Docker.

1. Jalankan perintah berikut untuk memulai kontainer Docker.

   ```
   docker-compose -f docker-compose.yml up
   ```

1. <a name="docker-automatic-provisioning-remove-credentials-file"></a>Hapus kredensyal dari `./greengrass-v2-credentials` perangkat host.

   ```
   rm -rf ./greengrass-v2-credentials
   ```
**penting**  
Anda menghapus kredensyal ini, karena mereka memberikan izin luas yang hanya dibutuhkan perangkat inti selama penyiapan. Jika Anda tidak menghapus kredensyal ini, komponen Greengrass dan proses lain yang berjalan di wadah dapat mengaksesnya. Jika Anda perlu memberikan AWS kredensyal ke komponen Greengrass, gunakan layanan pertukaran token. Untuk informasi selengkapnya, lihat [Berinteraksi dengan AWS layanan](interact-with-aws-services.md).

------

## Langkah selanjutnya
<a name="run-greengrass-docker-next-steps"></a>

<a name="run-greengrass-docker-success"></a>AWS IoT Greengrass Perangkat lunak inti sekarang berjalan dalam wadah Docker. Jalankan perintah berikut untuk mengambil ID kontainer untuk kontainer yang sedang berjalan.

```
docker ps
```

Anda kemudian dapat menjalankan perintah berikut untuk mengakses wadah dan menjelajahi perangkat lunak AWS IoT Greengrass Core yang berjalan di dalam wadah.

```
docker exec -it container-id /bin/bash
```

Untuk informasi tentang membuat komponen sederhana, lihat [Langkah 4: Kembangkan dan uji komponen di perangkat Anda](create-first-component.md) di [Tutorial: Memulai dengan AWS IoT Greengrass V2](getting-started.md)

**catatan**  <a name="run-greengrass-commands-in-docker-note"></a>
Saat Anda menggunakan `docker exec` untuk menjalankan perintah di dalam kontainer Docker, perintah tersebut tidak tercatat di log Docker. Untuk mencatat perintah Anda di log Docker, lampirkan shell interaktif ke kontainer Docker. Untuk informasi selengkapnya, lihat [Lampirkan shell interaktif ke kontainer Docker](docker-troubleshooting.md#debugging-docker-attach-shell).

File log AWS IoT Greengrass Core dipanggil `greengrass.log` dan terletak di`/greengrass/v2/logs`. File log komponen juga terletak di direktori yang sama. Untuk menyalin log Greengrass ke direktori sementara pada host, jalankan perintah berikut:

```
docker cp container-id:/greengrass/v2/logs /tmp/logs
```

Jika Anda ingin mempertahankan log setelah keluar kontainer atau telah dihapus, kami sarankan Anda hanya melakukan bind-mount pada direktori `/greengrass/v2/logs` ke direktori log sementara pada host dan bukan memasang seluruh direktori Greengrass. Untuk informasi selengkapnya, lihat [Pertahankan log Greengrass di luar kontainer Docker](docker-troubleshooting.md#debugging-docker-persist-logs).

<a name="greengrass-docker-stop"></a>Untuk menghentikan kontainer AWS IoT Greengrass Docker yang sedang berjalan, jalankan `docker stop` atau`docker-compose -f docker-compose.yml stop`. Tindakan ini akan mengirimkan `SIGTERM` ke proses Greengrass dan menutup semua proses terkait yang dimulai dalam kontainer tersebut. Kontainer Docker diinisialisasi dengan executable `docker-init` sebagai proses PID 1, yang membantu dalam menghapus proses zombie sisa. Untuk informasi selengkapnya, lihat [Menentukan proses init](https://docs.docker.com/engine/reference/run/#specify-an-init-process) dalam dokumentasi Docker.

<a name="see-docker-troubleshooting"></a>Untuk informasi tentang pemecahan masalah dengan menjalankan AWS IoT Greengrass dalam kontainer Docker, lihat [Pemecahan masalah AWS IoT Greengrass dalam wadah Docker](docker-troubleshooting.md).

# Jalankan AWS IoT Greengrass dalam wadah Docker dengan penyediaan sumber daya manual
<a name="run-greengrass-docker-manual-provisioning"></a>

Tutorial ini menunjukkan cara menginstal dan menjalankan perangkat lunak AWS IoT Greengrass Core di wadah Docker dengan sumber daya yang disediakan AWS secara manual.

**Topics**
+ [Prasyarat](#docker-manual-provisioning-prereqs)
+ [Ambil titik akhir AWS IoT](#retrieve-iot-endpoints)
+ [Ciptakan AWS IoT sesuatu](#create-iot-thing)
+ [Buat sertifikat benda](#create-thing-certificate-mp)
+ [Buat peran pertukaran token](#create-token-exchange-role)
+ [Unduh sertifikat ke perangkat](#download-thing-certificates)
+ [Buat file konfigurasi](#create-docker-install-configuration-file)
+ [Buat sebuah file lingkungan.](#create-env-file-manual-provisioning)
+ [Jalankan perangkat lunak AWS IoT Greengrass Core dalam wadah](#run-greengrass-image-manual-provisioning)
+ [Langkah selanjutnya](#run-greengrass-docker-next-steps)

## Prasyarat
<a name="docker-manual-provisioning-prereqs"></a>

Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut:
+ Sebuah Akun AWS. Jika Anda tidak memilikinya, lihat [Mengatur sebuah Akun AWS](setting-up.md#set-up-aws-account). 
+ Sebuah gambar AWS IoT Greengrass Docker. Anda dapat [membuat gambar dari AWS IoT Greengrass Dockerfile](build-greengrass-dockerfile.md).
+ Komputer host tempat Anda menjalankan wadah Docker harus memenuhi persyaratan berikut:
  + <a name="docker-host-reqs"></a>Sistem operasi berbasis Linux dengan koneksi internet.
  + <a name="docker-engine-reqs"></a>[Mesin Docker](https://docs.docker.com/engine/install/) versi 18.09 atau yang lebih baru.
  + <a name="docker-compose-reqs"></a>(Opsional) [Docker Compose](https://docs.docker.com/compose/install/) versi 1.22 atau yang lebih baru. Docker Compose diperlukan hanya jika Anda ingin menggunakan Docker Compose CLI untuk menjalankan gambar Docker Anda.

## Ambil titik akhir AWS IoT
<a name="retrieve-iot-endpoints"></a>

Dapatkan AWS IoT titik akhir untuk Anda Akun AWS, dan simpan untuk digunakan nanti. Perangkat Anda menggunakan titik akhir ini untuk tersambung ke AWS IoT. Lakukan hal-hal berikut:

1. Dapatkan titik akhir AWS IoT data untuk Anda Akun AWS.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "endpointAddress": "device-data-prefix-ats.iot.us-west-2.amazonaws.com"
   }
   ```

1. Dapatkan titik akhir AWS IoT kredensyal untuk Anda. Akun AWS

   ```
   aws iot describe-endpoint --endpoint-type iot:CredentialProvider
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "endpointAddress": "device-credentials-prefix.credentials.iot.us-west-2.amazonaws.com"
   }
   ```

## Ciptakan AWS IoT sesuatu
<a name="create-iot-thing"></a>

AWS IoT *hal-hal* mewakili perangkat dan entitas logis yang terhubung ke AWS IoT. Perangkat inti Greengrass adalah benda. AWS IoT Saat Anda mendaftarkan perangkat sebagai AWS IoT sesuatu, perangkat itu dapat menggunakan sertifikat digital untuk mengautentikasi. AWS

Di bagian ini, Anda membuat AWS IoT sesuatu yang mewakili perangkat Anda.

**Untuk menciptakan AWS IoT sesuatu**

1. Buat AWS IoT sesuatu untuk perangkat Anda. Pada komputer pengembangan Anda, jalankan perintah berikut.
   + Ganti *MyGreengrassCore* dengan nama benda yang akan digunakan. Nama ini juga merupakan nama perangkat inti Greengrass Anda.
**catatan**  <a name="install-argument-thing-name-constraint"></a>
Nama objek tidak dapat berisi karakter titik dua (`:`).

   ```
   aws iot create-thing --thing-name MyGreengrassCore
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "thingName": "MyGreengrassCore",
     "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore",
     "thingId": "8cb4b6cd-268e-495d-b5b9-1713d71dbf42"
   }
   ```

1. (Opsional) Tambahkan AWS IoT benda ke grup hal baru atau yang sudah ada. Anda menggunakan grup objek untuk mengelola armada perangkat inti Greengrass. Saat menerapkan komponen perangkat lunak ke perangkat, Anda dapat menargetkan perangkat individual atau grup perangkat. Anda dapat menambahkan suatu perangkat ke grup objek dengan deployment Greengrass aktif untuk men-deploy komponen perangkat lunak grup objek tersebut ke perangkat. Lakukan hal-hal berikut:

   1. (Opsional) Buat grup AWS IoT benda.
      + Ganti *MyGreengrassCoreGroup* dengan nama grup benda yang akan dibuat.
**catatan**  <a name="install-argument-thing-group-name-constraint"></a>
Nama grup objek tidak dapat berisi karakter titik dua (`:`).

      ```
      aws iot create-thing-group --thing-group-name MyGreengrassCoreGroup
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "thingGroupName": "MyGreengrassCoreGroup",
        "thingGroupArn": "arn:aws:iot:us-west-2:123456789012:thinggroup/MyGreengrassCoreGroup",
        "thingGroupId": "4df721e1-ff9f-4f97-92dd-02db4e3f03aa"
      }
      ```

   1. Tambahkan AWS IoT benda itu ke grup benda.
      + Ganti *MyGreengrassCore* dengan nama AWS IoT benda Anda.
      + Ganti *MyGreengrassCoreGroup* dengan nama grup benda.

      ```
      aws iot add-thing-to-thing-group --thing-name MyGreengrassCore --thing-group-name MyGreengrassCoreGroup
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

## Buat sertifikat benda
<a name="create-thing-certificate-mp"></a>

<a name="create-thing-certificate-intro-1"></a>Saat Anda mendaftarkan perangkat sebagai AWS IoT sesuatu, perangkat itu dapat menggunakan sertifikat digital untuk mengautentikasi. AWS Sertifikat ini memungkinkan perangkat untuk berkomunikasi dengan AWS IoT dan AWS IoT Greengrass.

<a name="create-thing-certificate-intro-2"></a>Di bagian ini, Anda membuat dan mengunduh sertifikat yang dapat digunakan perangkat Anda untuk terhubung AWS.<a name="create-thing-certificate-cloud-steps"></a>

**Untuk membuat sertifikat benda**

1. Buat folder tempat Anda mengunduh sertifikat untuk AWS IoT benda itu.

   ```
   mkdir greengrass-v2-certs
   ```

1. Buat dan unduh sertifikat untuk AWS IoT benda itu.

   ```
   aws iot create-keys-and-certificate --set-as-active --certificate-pem-outfile greengrass-v2-certs/device.pem.crt --public-key-outfile greengrass-v2-certs/public.pem.key --private-key-outfile greengrass-v2-certs/private.pem.key
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificateId": "aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4",
     "certificatePem": "-----BEGIN CERTIFICATE-----
   MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w
    0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ
    WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw
    EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5
    jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh
    MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb
    WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx
    HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE
    BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI
    k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ
    ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr
    AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN
    KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo
    EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw
    3rrszlaEXAMPLE=
   -----END CERTIFICATE-----",
     "keyPair": {
       "PublicKey": "-----BEGIN PUBLIC KEY-----\
   MIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\
   MMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\
   59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\
   hJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\
   FQIDAQAB\
   -----END PUBLIC KEY-----\
   ",
       "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\
   key omitted for security reasons\
   -----END RSA PRIVATE KEY-----\
   "
     }
   }
   ```

   Simpan Nama Sumber Daya Amazon (ARN) sertifikat yang akan digunakan untuk mengonfigurasi sertifikat nanti.

Selanjutnya, konfigurasikan sertifikat benda. Untuk informasi selengkapnya, lihat [Konfigurasikan sertifikat benda](manual-installation.md#configure-thing-certificate).

## Buat peran pertukaran token
<a name="create-token-exchange-role"></a>

<a name="installation-create-token-exchange-role-intro"></a>Perangkat inti Greengrass menggunakan peran layanan IAM, yang disebut peran *pertukaran token, untuk mengotorisasi* panggilan ke layanan. AWS Perangkat menggunakan penyedia AWS IoT kredensional untuk mendapatkan AWS kredensi sementara untuk peran ini, yang memungkinkan perangkat berinteraksi, mengirim log ke Amazon Log AWS IoT, dan mengunduh CloudWatch artefak komponen khusus dari Amazon S3. Untuk informasi selengkapnya, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

<a name="installation-create-token-exchange-role-alias-intro"></a>Anda menggunakan *alias AWS IoT peran* untuk mengonfigurasi peran pertukaran token untuk perangkat inti Greengrass. Alias peran memungkinkan Anda mengubah peran pertukaran token untuk suatu perangkat tetapi menjaga konfigurasi perangkat tetap sama. Untuk informasi selengkapnya, lihat [Mengotorisasi panggilan langsung ke layanan AWS](https://docs.aws.amazon.com/iot/latest/developerguide/authorizing-direct-aws.html) di *Panduan Developer AWS IoT Core *.

Di bagian ini, Anda membuat peran IAM pertukaran token dan alias AWS IoT peran yang menunjuk ke peran tersebut. Jika Anda telah menyiapkan perangkat inti Greengrass, Anda dapat menggunakan peran pertukaran token dan alias peran alih-alih membuat yang baru. Kemudian, Anda mengonfigurasi objek AWS IoT untuk menggunakan peran dan alias itu.

**Buat peran pertukaran token IAM role**

1. <a name="create-token-exchange-role-create-iam-role"></a>Buat peran IAM yang dapat digunakan perangkat Anda sebagai peran pertukaran token. Lakukan hal-hal berikut:

   1. Buat file yang berisi dokumen kebijakan kepercayaan yang memerlukan peran pertukaran token.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano device-role-trust-policy.json
      ```

      Salin JSON berikut ke dalam file.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Service": "credentials.iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
          }
        ]
      }
      ```

   1. Buat peran pertukaran token dengan dokumen kebijakan kepercayaan.
      + Ganti *GreengrassV2TokenExchangeRole* dengan nama peran IAM yang akan dibuat.

      ```
      aws iam create-role --role-name GreengrassV2TokenExchangeRole --assume-role-policy-document file://device-role-trust-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "Role": {
          "Path": "/",
          "RoleName": "GreengrassV2TokenExchangeRole",
          "RoleId": "AROAZ2YMUHYHK5OKM77FB",
          "Arn": "arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole",
          "CreateDate": "2021-02-06T00:13:29+00:00",
          "AssumeRolePolicyDocument": {
            "Version": "2012-10-17",		 	 	 
            "Statement": [
              {
                "Effect": "Allow",
                "Principal": {
                  "Service": "credentials.iot.amazonaws.com"
                },
                "Action": "sts:AssumeRole"
              }
            ]
          }
        }
      ```

   1. Buat file yang berisi dokumen kebijakan akses yang diperlukan oleh peran pertukaran token.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano device-role-access-policy.json
      ```

      Salin JSON berikut ke dalam file.

      ```
      {
        "Version": "2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "logs:CreateLogGroup",
              "logs:CreateLogStream",
              "logs:PutLogEvents",
              "logs:DescribeLogStreams",
              "s3:GetBucketLocation"
            ],
            "Resource": "*"
          }
        ]
      }
      ```
**catatan**  
Kebijakan akses ini tidak mengizinkan akses ke artefak komponen dalam bucket S3. Untuk men-deploy komponen kustom yang menentukan artefak di Amazon S3, Anda harus menambahkan izin untuk peran tersebut untuk memungkinkan perangkat inti Anda untuk mengambil artefak komponen. Untuk informasi selengkapnya, lihat [Izinkan akses ke bucket S3 untuk artefak komponen](device-service-role.md#device-service-role-access-s3-bucket).  
Jika Anda belum memiliki bucket S3 untuk artefak komponen, Anda dapat menambahkan izin ini nanti setelah membuat bucket.

   1. Buat kebijakan IAM dari dokumen kebijakan.
      + Ganti *GreengrassV2TokenExchangeRoleAccess* dengan nama kebijakan IAM yang akan dibuat.

      ```
      aws iam create-policy --policy-name GreengrassV2TokenExchangeRoleAccess --policy-document file://device-role-access-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "Policy": {
          "PolicyName": "GreengrassV2TokenExchangeRoleAccess",
          "PolicyId": "ANPAZ2YMUHYHACI7C5Z66",
          "Arn": "arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess",
          "Path": "/",
          "DefaultVersionId": "v1",
          "AttachmentCount": 0,
          "PermissionsBoundaryUsageCount": 0,
          "IsAttachable": true,
          "CreateDate": "2021-02-06T00:37:17+00:00",
          "UpdateDate": "2021-02-06T00:37:17+00:00"
        }
      }
      ```

   1. Lampirkan kebijakan IAM untuk peran pertukaran token.
      + Ganti *GreengrassV2TokenExchangeRole* dengan nama peran IAM.
      + Ganti ARN peran dengan ARN dari kebijakan IAM yang Anda buat di langkah sebelumnya.

      ```
      aws iam attach-role-policy --role-name GreengrassV2TokenExchangeRole --policy-arn arn:aws:iam::123456789012:policy/GreengrassV2TokenExchangeRoleAccess
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

1. <a name="create-token-exchange-role-create-iot-role-alias"></a>Buat alias AWS IoT peran yang menunjuk ke peran pertukaran token.
   + Ganti *GreengrassCoreTokenExchangeRoleAlias* dengan nama alias peran yang akan dibuat.
   + Ganti ARN peran dengan ARN dari IAM role yang Anda buat di langkah sebelumnya.

   ```
   aws iot create-role-alias --role-alias GreengrassCoreTokenExchangeRoleAlias --role-arn arn:aws:iam::123456789012:role/GreengrassV2TokenExchangeRole
   ```

   Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

   ```
   {
     "roleAlias": "GreengrassCoreTokenExchangeRoleAlias",
     "roleAliasArn": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
   }
   ```
**catatan**  
Untuk membuat alias peran, Anda harus memiliki izin untuk melewati IAM role pertukaran token ke AWS IoT. Jika Anda menerima pesan galat saat mencoba membuat alias peran, periksa apakah AWS pengguna Anda memiliki izin ini. Untuk informasi selengkapnya, lihat [Memberikan izin pengguna untuk meneruskan peran ke AWS layanan](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) di *AWS Identity and Access Management Panduan Pengguna*.

1. Buat dan lampirkan AWS IoT kebijakan yang memungkinkan perangkat inti Greengrass Anda menggunakan alias peran untuk mengambil peran pertukaran token. Jika Anda telah menyiapkan perangkat inti Greengrass sebelumnya, Anda dapat melampirkan kebijakan AWS IoT alias perannya alih-alih membuat yang baru. Lakukan hal-hal berikut:

   1. (Opsional) Buat file yang berisi dokumen AWS IoT kebijakan yang diperlukan alias peran.

      <a name="nano-command-intro"></a>Misalnya, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat file.

      ```
      nano greengrass-v2-iot-role-alias-policy.json
      ```

      Salin JSON berikut ke dalam file.
      + Ganti ARN sumber daya dengan ARN alias peran Anda.

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": "iot:AssumeRoleWithCertificate",
            "Resource": "arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias"
          }
        ]
      }
      ```

   1. Buat AWS IoT kebijakan dari dokumen kebijakan.
      + Ganti *GreengrassCoreTokenExchangeRoleAliasPolicy* dengan nama AWS IoT kebijakan yang akan dibuat.

      ```
      aws iot create-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --policy-document file://greengrass-v2-iot-role-alias-policy.json
      ```

      Respons tersebut serupa dengan contoh berikut ini, jika permintaannya berhasil.

      ```
      {
        "policyName": "GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyArn": "arn:aws:iot:us-west-2:123456789012:policy/GreengrassCoreTokenExchangeRoleAliasPolicy",
        "policyDocument": "{
          \\"Version\\":\\"2012-10-17		 	 	 \\",
          \\"Statement\\": [
            {
              \\"Effect\\": \\"Allow\\",
              \\"Action\\": \\"iot:AssumeRoleWithCertificate\\",
              \\"Resource\\": \\"arn:aws:iot:us-west-2:123456789012:rolealias/GreengrassCoreTokenExchangeRoleAlias\\"
            }
          ]
        }",
        "policyVersionId": "1"
      }
      ```

   1. Lampirkan AWS IoT kebijakan ke sertifikat AWS IoT benda itu.
      + Ganti *GreengrassCoreTokenExchangeRoleAliasPolicy* dengan nama AWS IoT kebijakan alias peran.
      + Ganti ARN target dengan ARN sertifikat untuk objek AWS IoT Anda.

      ```
      aws iot attach-policy --policy-name GreengrassCoreTokenExchangeRoleAliasPolicy --target arn:aws:iot:us-west-2:123456789012:cert/aa0b7958770878eabe251d8a7ddd547f4889c524c9b574ab9fbf65f32248b1d4
      ```

      Perintah tersebut tidak memiliki output apa pun jika permintaan berhasil.

## Unduh sertifikat ke perangkat
<a name="download-thing-certificates"></a>

Sebelumnya, Anda mengunduh sertifikat perangkat ke komputer pengembangan Anda. Di bagian ini, Anda mengunduh sertifikat otoritas sertifikat root Amazon (CA). Kemudian, jika Anda berencana untuk menjalankan perangkat lunak AWS IoT Greengrass Core di Docker pada komputer yang berbeda dari komputer pengembangan Anda, Anda menyalin sertifikat ke komputer host itu. Perangkat lunak AWS IoT Greengrass Core menggunakan sertifikat ini untuk terhubung ke layanan AWS IoT cloud.

**Untuk mengunduh sertifikat ke perangkat**

1. Di komputer pengembangan Anda, unduh sertifikat otoritas sertifikat root Amazon (CA). AWS IoT sertifikat dikaitkan dengan sertifikat CA root Amazon secara default.

------
#### [ Linux or Unix ]

   ```
   sudo curl -o ./greengrass-v2-certs/AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -o .\greengrass-v2-certs\AmazonRootCA1.pem https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://www.amazontrust.com/repository/AmazonRootCA1.pem -OutFile .\greengrass-v2-certs\AmazonRootCA1.pem
   ```

------

1. Jika Anda berencana untuk menjalankan perangkat lunak AWS IoT Greengrass Core di Docker pada perangkat yang berbeda dari komputer pengembangan Anda, salin sertifikat ke komputer host. Jika SSH dan SCP diaktifkan pada komputer pengembangan dan komputer host, Anda dapat menggunakan `scp` perintah di komputer pengembangan Anda untuk mentransfer sertifikat. Ganti *device-ip-address* dengan alamat IP komputer host Anda.

   ```
   scp -r greengrass-v2-certs/ device-ip-address:~
   ```

## Buat file konfigurasi
<a name="create-docker-install-configuration-file"></a>

1. Di komputer host, buat folder tempat Anda menempatkan file konfigurasi Anda.

   ```
   mkdir ./greengrass-v2-config
   ```

1. Gunakan editor teks untuk membuat file konfigurasi bernama `config.yaml` di folder `./greengrass-v2-config`.

   Misalnya, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat `config.yaml`. 

   ```
   nano ./greengrass-v2-config/config.yaml
   ```

1. Salin konten YAML berikut ke dalam file tersebut. File konfigurasi parsial ini menentukan parameter sistem dan parameter inti Greengrass.

   ```
   ---
   system:
     certificateFilePath: "/tmp/certs/device.pem.crt"
     privateKeyPath: "/tmp/certs/private.pem.key"
     rootCaPath: "/tmp/certs/AmazonRootCA1.pem"
     rootpath: "/greengrass/v2"
     thingName: "MyGreengrassCore"
   services:
     aws.greengrass.Nucleus:
       componentType: "NUCLEUS"
       version: "nucleus-version"
       configuration:
         awsRegion: "region"
         iotRoleAlias: "GreengrassCoreTokenExchangeRoleAlias"
         iotDataEndpoint: "device-data-prefix-ats.iot.region.amazonaws.com"
         iotCredEndpoint: "device-credentials-prefix.credentials.region.amazonaws.com"
   ```

   Kemudian, ganti nilai berikut:
   + */tmp/certs*. Direktori dalam wadah Docker tempat Anda memasang sertifikat yang diunduh saat Anda memulai penampung.
   + `/greengrass/v2`. Folder root Greengrass yang ingin Anda gunakan untuk instalasi. Anda dapat menggunakan variabel lingkungan `GGC_ROOT` untuk menetapkan nilai ini.
   + *MyGreengrassCore*. Nama AWS IoT benda itu.
   + *nucleus-version*. Versi perangkat lunak AWS IoT Greengrass Core untuk diinstal. Nilai ini harus sesuai dengan versi gambar Docker atau Dockerfile yang telah Anda download. Jika Anda telah mengunduh citra Docker Greengrass dengan tanda `latest`, gunakan ****docker inspect *image-id***** untuk melihat versi citra tersebut.
   + *region*. Di Wilayah AWS mana Anda menciptakan AWS IoT sumber daya Anda. Anda juga harus menentukan nilai yang sama untuk variabel lingkungan `AWS_REGION` di [file lingkungan](#create-env-file-manual-provisioning).
   + *GreengrassCoreTokenExchangeRoleAlias*. Alias peran pertukaran token.
   + *device-data-prefix*. Awalan untuk titik akhir AWS IoT data Anda.
   + *device-credentials-prefix*. Awalan untuk titik akhir AWS IoT kredensyal Anda.

## Buat sebuah file lingkungan.
<a name="create-env-file-manual-provisioning"></a>

Tutorial ini menggunakan file lingkungan untuk mengatur variabel lingkungan yang akan diteruskan ke installer perangkat lunak AWS IoT Greengrass Core di dalam wadah Docker. Anda juga dapat menggunakan [argumen `-e` atau `--env`](https://docs.docker.com/engine/reference/commandline/run/#env) di perintah `docker run` Anda untuk mengatur variabel lingkungan dalam kontainer Docker atau Anda dapat mengatur variabel dalam [sebuah blok `environment`](https://docs.docker.com/compose/compose-file/compose-file-v3/#environment) di file `docker-compose.yml`.

1. Gunakan editor teks untuk membuat file lingkungan bernama `.env`.

   Sebagai contoh, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat `.env` pada direktori saat ini.

   ```
   nano .env
   ```

1. Salin konten berikut ke dalam file tersebut.

   ```
   GGC_ROOT_PATH=/greengrass/v2
   AWS_REGION=region
   PROVISION=false
   COMPONENT_DEFAULT_USER=ggc_user:ggc_group
   INIT_CONFIG=/tmp/config/config.yaml
   ```

   Anda harus mengganti nilai berikut.
   + `/greengrass/v2`. Jalur ke folder root yang akan digunakan untuk menginstal perangkat lunak AWS IoT Greengrass Core.
   + *region*. Di Wilayah AWS mana Anda menciptakan AWS IoT sumber daya Anda. Anda harus menentukan nilai yang sama untuk parameter konfigurasi `awsRegion` di [file konfigurasi](#create-docker-install-configuration-file) Anda.
   + */tmp/config/*. Folder tempat Anda memasang file konfigurasi saat Anda memulai wadah Docker.
**catatan**  <a name="docker-local-dev-tools-production-environment-warning"></a>
Anda dapat mengatur variabel `DEPLOY_DEV_TOOLS` lingkungan `true` untuk menyebarkan komponen [CLI Greengrass](greengrass-cli-component.md), yang memungkinkan Anda mengembangkan komponen khusus di dalam wadah Docker. <a name="local-dev-tools-production-environment-warning"></a>Kami menyarankan Anda menggunakan komponen ini hanya di lingkungan pengembangan, bukan lingkungan produksi. Komponen ini menyediakan akses ke informasi dan operasi yang biasanya tidak Anda perlukan di lingkungan produksi. Ikuti prinsip hak istimewa paling sedikit dengan menerapkan komponen ini hanya ke perangkat inti di mana Anda membutuhkannya. 

## Jalankan perangkat lunak AWS IoT Greengrass Core dalam wadah
<a name="run-greengrass-image-manual-provisioning"></a>

Tutorial ini menunjukkan cara memulai image Docker yang Anda bangun dalam wadah Docker. Anda dapat menggunakan CLI Docker atau CLI Docker Compose untuk AWS IoT Greengrass menjalankan image perangkat lunak Core dalam wadah Docker. 

------
#### [ Docker ]
+ Tutorial ini menunjukkan cara memulai gambar Docker yang Anda buat di wadah Docker. 

  ```
  docker run --rm --init -it --name docker-image \
   -v path/to/greengrass-v2-config:/tmp/config/:ro \
   -v path/to/greengrass-v2-certs:/tmp/certs:ro \ 
   --env-file .env \
   -p 8883 \
   your-container-image:version
  ```

  Contoh perintah ini menggunakan argumen berikut untuk [docker run](https://docs.docker.com/engine/reference/commandline/run/):
  + <a name="docker-run-rm"></a>[https://docs.docker.com/engine/reference/run/#clean-up---rm](https://docs.docker.com/engine/reference/run/#clean-up---rm). Membersihkan kontainer saat keluar.
  + <a name="docker-run-init"></a>[https://docs.docker.com/engine/reference/run/#specify-an-init-process](https://docs.docker.com/engine/reference/run/#specify-an-init-process). Menggunakan proses init dalam kontainer. 
**catatan**  
`--init`Argumen diperlukan untuk mematikan perangkat lunak AWS IoT Greengrass Core saat Anda menghentikan wadah Docker.
  + <a name="docker-run-it"></a>[https://docs.docker.com/engine/reference/run/#foreground](https://docs.docker.com/engine/reference/run/#foreground). (Opsional) Menjalankan kontainer Docker di latar depan sebagai proses interaktif. Anda dapat mengganti ini dengan `-d` untuk menjalankan kontainer Docker dalam mode terpisah sebagai gantinya. Untuk informasi lebih lanjut, lihat: [Terpisah vs latar depan](https://docs.docker.com/engine/reference/run/#detached-vs-foreground)dalam dokumentasi Docker.
  + <a name="docker-run-name"></a>[https://docs.docker.com/engine/reference/run/#name---name](https://docs.docker.com/engine/reference/run/#name---name). Menjalankan kontainer bernama `aws-iot-greengrass` 
  + <a name="docker-run-v"></a>[https://docs.docker.com/storage/volumes/](https://docs.docker.com/storage/volumes/). Pasang volume ke dalam wadah Docker untuk membuat file konfigurasi dan file sertifikat tersedia untuk AWS IoT Greengrass berjalan di dalam wadah.
  + <a name="docker-run-env-file"></a>[https://docs.docker.com/engine/reference/commandline/run/#env](https://docs.docker.com/engine/reference/commandline/run/#env). (Opsional) Menentukan file lingkungan untuk mengatur variabel lingkungan yang akan diteruskan ke penginstal perangkat lunak AWS IoT Greengrass Core di dalam wadah Docker. Argumen ini diperlukan hanya jika Anda membuat [file lingkungan](#create-env-file-manual-provisioning) untuk mengatur variabel lingkungan. Jika Anda tidak membuat file lingkungan, Anda dapat menggunakan `--env` argumen untuk mengatur variabel lingkungan secara langsung di perintah run Docker Anda.
  + <a name="docker-run-p"></a>[https://docs.docker.com/engine/reference/commandline/run/#publish](https://docs.docker.com/engine/reference/commandline/run/#publish). (Opsional) Menerbitkan port kontainer 8883 ke mesin host. Argumen ini diperlukan jika Anda ingin terhubung dan berkomunikasi melalui MQTT karena AWS IoT Greengrass menggunakan port 8883 untuk lalu lintas MQTT. Untuk membuka port lain, gunakan `-p` argumen tambahan.
**catatan**  <a name="docker-run-cap-drop"></a>
Untuk menjalankan kontainer Docker Anda dengan peningkatan keamanan, Anda dapat menggunakan `--cap-drop` dan `--cap-add` untuk secara selektif mengaktifkan kemampuan Linux untuk kontainer Anda. Untuk informasi lebih lanjut, lihat: [Keistimewaan waktu aktif dan kemampuan Linux](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) dalam dokumentasi Docker.

------
#### [ Docker Compose ]

1. Gunakan editor teks untuk membuat file Docker Compose dengan nama `docker-compose.yml`.

   Sebagai contoh, pada sistem berbasis Linux, Anda dapat menjalankan perintah berikut untuk menggunakan GNU nano untuk membuat `docker-compose.yml` pada direktori saat ini.

   ```
   nano docker-compose.yml
   ```
**catatan**  
Anda juga dapat mengunduh dan menggunakan versi terbaru dari file Tulis AWS yang disediakan dari. [GitHub](https://github.com/aws-greengrass/aws-greengrass-docker/releases/)

1. Tambahkan konten berikut ini ke file Compose. File Anda akan terlihat seperti contoh berikut. Ganti *your-container-name:version* dengan nama image Docker Anda. 

   ```
   version: '3.7'
    
   services:
     greengrass:
       init: true
       build:
         context: .
       container_name: aws-iot-greengrass
       image: your-container-name:version
       volumes:
         - /path/to/greengrass-v2-config:/tmp/config/:ro
         - /path/to/greengrass-v2-certs:/tmp/certs:ro 
       env_file: .env
       ports:
         - "8883:8883"
   ```<a name="docker-compose-optional-params"></a>

   Parameter berikut dalam contoh file Compose ini bersifat opsional:
   + `ports`—Menerbitkan port kontainer 8883 ke mesin host. Parameter ini diperlukan jika Anda ingin terhubung dan berkomunikasi melalui MQTT karena AWS IoT Greengrass menggunakan port 8883 untuk lalu lintas MQTT. 
   + `env_file`—Menentukan file lingkungan untuk mengatur variabel lingkungan yang akan diteruskan ke penginstal perangkat lunak AWS IoT Greengrass Core di dalam wadah Docker. Parameter ini diperlukan hanya jika Anda membuat [file lingkungan](#create-env-file-manual-provisioning) untuk mengatur variabel lingkungan. Jika Anda tidak membuat file lingkungan, Anda dapat menggunakan parameter [lingkungan](https://docs.docker.com/compose/compose-file/compose-file-v3/#environment) untuk menyetel variabel secara langsung di file Compose Anda.
**catatan**  <a name="docker-compose-cap-drop"></a>
Untuk menjalankan kontainer Docker Anda dengan peningkatan keamanan, Anda dapat menggunakan `cap_drop` dan `cap_add` dalam file Compose Anda untuk secara selektif mengaktifkan kemampuan Linux untuk kontainer Anda. Untuk informasi lebih lanjut, lihat: [Keistimewaan waktu aktif dan kemampuan Linux](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) dalam dokumentasi Docker.

1. Jalankan perintah berikut untuk memulai kontainer.

   ```
   docker-compose -f docker-compose.yml up
   ```

------

## Langkah selanjutnya
<a name="run-greengrass-docker-next-steps"></a>

<a name="run-greengrass-docker-success"></a>AWS IoT Greengrass Perangkat lunak inti sekarang berjalan dalam wadah Docker. Jalankan perintah berikut untuk mengambil ID kontainer untuk kontainer yang sedang berjalan.

```
docker ps
```

Anda kemudian dapat menjalankan perintah berikut untuk mengakses wadah dan menjelajahi perangkat lunak AWS IoT Greengrass Core yang berjalan di dalam wadah.

```
docker exec -it container-id /bin/bash
```

Untuk informasi tentang membuat komponen sederhana, lihat [Langkah 4: Kembangkan dan uji komponen di perangkat Anda](create-first-component.md) di [Tutorial: Memulai dengan AWS IoT Greengrass V2](getting-started.md)

**catatan**  <a name="run-greengrass-commands-in-docker-note"></a>
Saat Anda menggunakan `docker exec` untuk menjalankan perintah di dalam kontainer Docker, perintah tersebut tidak tercatat di log Docker. Untuk mencatat perintah Anda di log Docker, lampirkan shell interaktif ke kontainer Docker. Untuk informasi selengkapnya, lihat [Lampirkan shell interaktif ke kontainer Docker](docker-troubleshooting.md#debugging-docker-attach-shell).

File log AWS IoT Greengrass Core dipanggil `greengrass.log` dan terletak di`/greengrass/v2/logs`. File log komponen juga terletak di direktori yang sama. Untuk menyalin log Greengrass ke direktori sementara pada host, jalankan perintah berikut:

```
docker cp container-id:/greengrass/v2/logs /tmp/logs
```

Jika Anda ingin mempertahankan log setelah keluar kontainer atau telah dihapus, kami sarankan Anda hanya melakukan bind-mount pada direktori `/greengrass/v2/logs` ke direktori log sementara pada host dan bukan memasang seluruh direktori Greengrass. Untuk informasi selengkapnya, lihat [Pertahankan log Greengrass di luar kontainer Docker](docker-troubleshooting.md#debugging-docker-persist-logs).

<a name="greengrass-docker-stop"></a>Untuk menghentikan kontainer AWS IoT Greengrass Docker yang sedang berjalan, jalankan `docker stop` atau`docker-compose -f docker-compose.yml stop`. Tindakan ini akan mengirimkan `SIGTERM` ke proses Greengrass dan menutup semua proses terkait yang dimulai dalam kontainer tersebut. Kontainer Docker diinisialisasi dengan executable `docker-init` sebagai proses PID 1, yang membantu dalam menghapus proses zombie sisa. Untuk informasi selengkapnya, lihat [Menentukan proses init](https://docs.docker.com/engine/reference/run/#specify-an-init-process) dalam dokumentasi Docker.

<a name="see-docker-troubleshooting"></a>Untuk informasi tentang pemecahan masalah dengan menjalankan AWS IoT Greengrass dalam kontainer Docker, lihat [Pemecahan masalah AWS IoT Greengrass dalam wadah Docker](docker-troubleshooting.md).

# Pemecahan masalah AWS IoT Greengrass dalam wadah Docker
<a name="docker-troubleshooting"></a>

Gunakan informasi berikut untuk membantu Anda memecahkan masalah dengan berjalan AWS IoT Greengrass di wadah Docker dan untuk men-debug masalah AWS IoT Greengrass di wadah Docker.

**Topics**
+ [Memecahkan masalah dengan menjalankan kontainer Docker](#troubleshooting-container-errors)
+ [Debugging AWS IoT Greengrass dalam wadah Docker](#debugging-greengrass-in-docker)

## Memecahkan masalah dengan menjalankan kontainer Docker
<a name="troubleshooting-container-errors"></a>

Gunakan informasi berikut untuk membantu memecahkan masalah dengan berjalan AWS IoT Greengrass di wadah Docker.

**Topics**
+ [Kesalahan: Tidak dapat melakukan login interaktif dari perangkat non TTY](#docker-troubleshootin-ecr-get-login-password)
+ [Kesalahan: Opsi tidak diketahui: - no-include-email](#docker-troubleshooting-cli-version)
+ [Kesalahan: Firewall memblokir berbagi file antara windows dan kontainer.](#docker-troubleshooting-firewall)
+ [Kesalahan: Terjadi kesalahan (AccessDeniedException) saat memanggil GetAuthorizationToken operasi: User: arn:aws:iam: ::user/ *account-id* <user-name>tidak diizinkan untuk melakukan: ecr: on resource: \$1 GetAuthorizationToken](#docker-troubleshooting-ecr-perms)
+ [Kesalahan: Anda telah mencapai batas kecepatan tarik](#docker-troubleshooting-too-many-requests)

### Kesalahan: Tidak dapat melakukan login interaktif dari perangkat non TTY
<a name="docker-troubleshootin-ecr-get-login-password"></a>

Kesalahan ini dapat terjadi ketika Anda menjalankan perintah `aws ecr get-login-password`. Pastikan Anda menginstal AWS CLI versi terbaru 2 atau versi 1. Kami menyarankan Anda menggunakan AWS CLI versi 2. Untuk informasi selengkapnya, lihat [Menginstal AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dalam *Panduan Pengguna AWS Command Line Interface *.

### Kesalahan: Opsi tidak diketahui: - no-include-email
<a name="docker-troubleshooting-cli-version"></a>

Kesalahan ini dapat terjadi ketika Anda menjalankan perintah `aws ecr get-login`. Pastikan Anda telah menginstal AWS CLI versi terbaru (misalnya, Jalankan:`pip install awscli --upgrade --user`). Untuk informasi selengkapnya, lihat [AWS Command Line Interface Menginstal Microsoft Windows](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html) di *Panduan AWS Command Line Interface Pengguna*.

### Kesalahan: Firewall memblokir berbagi file antara windows dan kontainer.
<a name="docker-troubleshooting-firewall"></a>

Anda mungkin menerima kesalahan ini atau `Firewall Detected` saat menjalankan Docker di komputer Windows. Hal ini juga dapat terjadi jika Anda masuk pada jaringan pribadi virtual (VPN) dan pengaturan jaringan Anda mencegah dipasangnya drive bersama. Dalam situasi itu, matikan VPN dan jalankan kembali kontainer Docker.

### Kesalahan: Terjadi kesalahan (AccessDeniedException) saat memanggil GetAuthorizationToken operasi: User: arn:aws:iam: ::user/ *account-id* <user-name>tidak diizinkan untuk melakukan: ecr: on resource: \$1 GetAuthorizationToken
<a name="docker-troubleshooting-ecr-perms"></a>

Anda mungkin menerima kesalahan ini saat menjalankan `aws ecr get-login-password` jika Anda tidak memiliki izin yang memadai untuk mengakses repositori Amazon ECR. Untuk informasi lebih lanjut, lihat: [Contoh Kebijakan Repositori Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) dan [Mengakses Satu Repositori Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security_iam_id-based-policy-examples.html) di *Panduan Pengguna Amazon ECR*.

### Kesalahan: Anda telah mencapai batas kecepatan tarik
<a name="docker-troubleshooting-too-many-requests"></a>

Docker Hub membatasi jumlah permintaan tarik yang dapat dibuat oleh pengguna anonim dan Free Docker Hub. Jika Anda melebihi batas kecepatan tersebut untuk permintaan tarik pengguna anonim atau gratis, Anda akan menerima salah satu dari kesalahan berikut: 

  

```
ERROR: toomanyrequests: Too Many Requests.
```

  

```
You have reached your pull rate limit.
```

Untuk mengatasi kesalahan ini, Anda dapat menunggu selama beberapa jam sebelum Anda mencoba permintaan tarik lain. Jika Anda berencana untuk secara konsisten mengirimkan sejumlah besar permintaan tarik, lihat [situs web Docker Hub](https://www.docker.com/increase-rate-limits) untuk informasi tentang batas kecepatan, dan opsi untuk mengautentikasi dan meningkatkan akun Docker Anda. 

## Debugging AWS IoT Greengrass dalam wadah Docker
<a name="debugging-greengrass-in-docker"></a>

Untuk men-debug masalah dengan kontainer Docker, Anda dapat mempertahankan log waktu aktif Greengrass atau melampirkan shell interaktif pada kontainer Docker.

### Pertahankan log Greengrass di luar kontainer Docker
<a name="debugging-docker-persist-logs"></a>

Setelah Anda menghentikan AWS IoT Greengrass wadah, Anda dapat menggunakan `docker cp ` perintah berikut untuk menyalin log Greengrass dari wadah Docker ke direktori log sementara. 

```
docker cp container-id:/greengrass/v2/logs /tmp/logs
```

Untuk mempertahankan log bahkan setelah wadah keluar atau dihapus, Anda harus menjalankan wadah AWS IoT Greengrass Docker setelah memasang direktori. `/greengrass/v2/logs` 

Untuk mengikat-mount `/greengrass/v2/logs` direktori, lakukan salah satu hal berikut saat Anda menjalankan wadah Docker baru AWS IoT Greengrass .
+ Sertakan `-v /tmp/logs:/greengrass/v2/logs:ro` di perintah `docker run`.

  Ubah blok `volumes` dalam file Compose untuk menyertakan baris berikut sebelum Anda menjalankan perintah `docker-compose up`.

  ```
  volumes:
   - /tmp/logs:/greengrass/v2/logs:ro
  ```

Anda kemudian dapat memeriksa log Anda `/tmp/logs` di host Anda untuk melihat log Greengrass AWS IoT Greengrass saat berjalan di dalam wadah Docker.

Untuk informasi tentang menjalankan kontainer Docker Greengrass, lihat [Jalankan AWS IoT Greengrass di Docker dengan penyediaan manual](run-greengrass-docker-manual-provisioning.md) dan [Jalankan AWS IoT Greengrass di Docker dengan penyediaan otomatis](run-greengrass-docker-automatic-provisioning.md)

### Lampirkan shell interaktif ke kontainer Docker
<a name="debugging-docker-attach-shell"></a>

Saat Anda menggunakan `docker exec` untuk menjalankan perintah di dalam kontainer Docker, perintah tersebut tidak tertangkap di log Docker. Pencatatan perintah Anda dalam log Docker dapat membantu Anda menyelidiki keadaan kontainer Docker Greengrass. Lakukan salah satu tindakan berikut:
+ Jalankan perintah berikut di terminal terpisah untuk melampirkan standar input, output, dan kesalahan terminal Anda ke kontainer yang sedang berjalan. Hal ini memungkinkan Anda untuk melihat dan mengontrol kontainer Docker dari terminal Anda saat ini.

  ```
  docker attach container-id
  ```
+ Jalankan perintah berikut pada terminal yang terpisah. Hal ini memungkinkan Anda untuk menjalankan perintah Anda dalam mode interaktif, bahkan jika kontainer tidak terlampir.

  ```
  docker exec -it container-id sh -c "command > /proc/1/fd/1"
  ```

Untuk AWS IoT Greengrass pemecahan masalah umum, lihat. [Pemecahan masalah AWS IoT Greengrass V2](troubleshooting.md)

# Konfigurasikan perangkat lunak AWS IoT Greengrass Inti
<a name="configure-greengrass-core-v2"></a>

Perangkat lunak AWS IoT Greengrass Core menyediakan opsi yang dapat Anda gunakan untuk mengkonfigurasi perangkat lunak. Anda dapat membuat penerapan untuk mengonfigurasi perangkat lunak AWS IoT Greengrass Core pada setiap perangkat inti.

**Topics**
+ [Menyebarkan komponen inti Greengrass](#configure-nucleus-component)
+ [Konfigurasikan inti Greengrass sebagai layanan sistem](#configure-system-service)
+ [Kontrol alokasi memori dengan opsi JVM](#jvm-tuning)
+ [Konfigurasikan pengguna yang menjalankan komponen](#configure-component-user)
+ [Konfigurasikan batas sumber daya sistem untuk komponen](#configure-component-system-resource-limits)
+ [Hubungkan pada port 443 atau melalui proksi jaringan](#configure-alpn-network-proxy)
+ [Menggunakan sertifikat perangkat yang ditandatangani oleh CA pribadi](#configure-nucleus-private-ca)
+ [Konfigurasikan pengaturan batas waktu dan cache MQTT](#configure-mqtt)
+ [Konfigurasikan Greengrass Nucleus di jaringan IPv6](#configure-ipv6)

## Menyebarkan komponen inti Greengrass
<a name="configure-nucleus-component"></a>

AWS IoT Greengrass menyediakan perangkat lunak AWS IoT Greengrass Core sebagai komponen yang dapat Anda terapkan ke perangkat inti Greengrass Anda. Anda dapat membuat deployment untuk menerapkan konfigurasi yang sama untuk beberapa perangkat inti Greengrass. Untuk informasi selengkapnya, lihat [Inti Greengrass](greengrass-nucleus-component.md) dan [Perbarui perangkat lunak AWS IoT Greengrass Core (OTA)](update-greengrass-core-v2.md).

## Konfigurasikan inti Greengrass sebagai layanan sistem
<a name="configure-system-service"></a>

Anda harus mengonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem di sistem init perangkat Anda untuk melakukan hal berikut:
+ Mulai perangkat lunak AWS IoT Greengrass inti saat perangkat melakukan booting. Merupakan praktik yang baik jika Anda mengelola armada perangkat yang besar.
+ Instal dan jalankan komponen plugin. Beberapa komponen AWS yang disediakan adalah komponen plugin, yang memungkinkannya untuk berinteraksi langsung dengan inti Greengrass. Untuk informasi selengkapnya tentang jenis komponen, lihat[Jenis komponen](develop-greengrass-components.md#component-types).
+ Terapkan pembaruan over-the-air (OTA) ke perangkat lunak AWS IoT Greengrass Core perangkat inti. Untuk informasi selengkapnya, lihat [Perbarui perangkat lunak AWS IoT Greengrass Core (OTA)](update-greengrass-core-v2.md).
+ Aktifkan komponen untuk memulai ulang perangkat lunak Inti atau perangkat inti saat penerapan memperbarui komponen ke versi baru atau memperbarui parameter konfigurasi tertentu. AWS IoT Greengrass Untuk informasi lebih lanjut, lihat [langkah siklus hidup bootstrap](component-recipe-reference.md#bootstrap-lifecycle-definition).

**penting**  <a name="windows-system-service-requirement-important-note"></a>
Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

**Topics**
+ [Konfigurasikan inti sebagai layanan sistem (Linux)](#configure-system-service-linux)
+ [Konfigurasikan nukleus sebagai layanan sistem (Windows)](#configure-system-service-windows)

### Konfigurasikan inti sebagai layanan sistem (Linux)
<a name="configure-system-service-linux"></a>

Perangkat Linux mendukung sistem init yang berbeda, seperti initd, systemd, dan SystemV. Anda menggunakan `--setup-system-service true` argumen saat Anda menginstal perangkat lunak AWS IoT Greengrass Core untuk memulai inti sebagai layanan sistem dan mengonfigurasinya untuk diluncurkan saat perangkat melakukan booting. Installer mengkonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem dengan systemd.

Anda juga dapat mengonfigurasi inti secara manual untuk dijalankan sebagai layanan sistem. Contoh berikut adalah file layanan untuk systemd.

```
[Unit]
Description=Greengrass Core

[Service]
Type=simple
PIDFile=/greengrass/v2/alts/loader.pid
RemainAfterExit=no
Restart=on-failure
RestartSec=10
ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader

[Install]
WantedBy=multi-user.target
```

Setelah Anda mengkonfigurasi layanan sistem, Anda dapat menjalankan perintah berikut untuk mengkonfigurasi memulai perangkat saat boot dan untuk memulai atau menghentikan perangkat lunak AWS IoT Greengrass Core.
+ Untuk memeriksa status layanan (systemd)

  ```
  sudo systemctl status greengrass.service
  ```
+ Untuk mengaktifkan inti untuk memulai saat perangkat melakukan booting.

  ```
  sudo systemctl enable greengrass.service
  ```
+ Untuk menghentikan inti dari memulai saat perangkat melakukan booting.

  ```
  sudo systemctl disable greengrass.service
  ```
+ Untuk memulai perangkat lunak AWS IoT Greengrass inti.

  ```
  sudo systemctl start greengrass.service
  ```
+ Untuk menghentikan perangkat lunak AWS IoT Greengrass inti.

  ```
  sudo systemctl stop greengrass.service
  ```

### Konfigurasikan nukleus sebagai layanan sistem (Windows)
<a name="configure-system-service-windows"></a>

Anda menggunakan `--setup-system-service true` argumen saat menginstal perangkat lunak AWS IoT Greengrass Core untuk memulai inti sebagai layanan Windows dan mengonfigurasinya untuk diluncurkan saat perangkat melakukan booting.

Setelah Anda mengkonfigurasi layanan, Anda dapat menjalankan perintah berikut untuk mengkonfigurasi memulai perangkat saat boot dan untuk memulai atau menghentikan perangkat lunak AWS IoT Greengrass Core. Anda harus menjalankan Command Prompt atau PowerShell sebagai administrator untuk menjalankan perintah ini.

------
#### [ Windows Command Prompt (CMD) ]
+ Untuk memeriksa status layanan

  ```
  sc query "greengrass"
  ```
+ Untuk mengaktifkan inti untuk memulai saat perangkat melakukan booting.

  ```
  sc config "greengrass" start=auto
  ```
+ Untuk menghentikan inti dari memulai saat perangkat melakukan booting.

  ```
  sc config "greengrass" start=disabled
  ```
+ Untuk memulai perangkat lunak AWS IoT Greengrass inti.

  ```
  sc start "greengrass"
  ```
+ Untuk menghentikan perangkat lunak AWS IoT Greengrass inti.

  ```
  sc stop "greengrass"
  ```
**catatan**  <a name="windows-ignore-shutdown-signal-behavior-note"></a>
Pada perangkat Windows, perangkat lunak AWS IoT Greengrass Core mengabaikan sinyal shutdown ini saat mematikan proses komponen Greengrass. Jika perangkat lunak AWS IoT Greengrass Core mengabaikan sinyal shutdown saat Anda menjalankan perintah ini, tunggu beberapa detik, dan coba lagi.

------
#### [ PowerShell ]
+ Untuk memeriksa status layanan

  ```
  Get-Service -Name "greengrass"
  ```
+ Untuk mengaktifkan inti untuk memulai saat perangkat melakukan booting.

  ```
  Set-Service -Name "greengrass" -Status stopped -StartupType automatic
  ```
+ Untuk menghentikan inti dari memulai saat perangkat melakukan booting.

  ```
  Set-Service -Name "greengrass" -Status stopped -StartupType disabled
  ```
+ Untuk memulai perangkat lunak AWS IoT Greengrass inti.

  ```
  Start-Service -Name "greengrass"
  ```
+ Untuk menghentikan perangkat lunak AWS IoT Greengrass inti.

  ```
  Stop-Service -Name "greengrass"
  ```
**catatan**  <a name="windows-ignore-shutdown-signal-behavior-note"></a>
Pada perangkat Windows, perangkat lunak AWS IoT Greengrass Core mengabaikan sinyal shutdown ini saat mematikan proses komponen Greengrass. Jika perangkat lunak AWS IoT Greengrass Core mengabaikan sinyal shutdown saat Anda menjalankan perintah ini, tunggu beberapa detik, dan coba lagi.

------

## Kontrol alokasi memori dengan opsi JVM
<a name="jvm-tuning"></a>

Jika Anda menjalankan AWS IoT Greengrass perangkat dengan memori terbatas, Anda dapat menggunakan opsi mesin virtual Java (JVM) untuk mengontrol ukuran tumpukan maksimum, mode pengumpulan sampah, dan opsi kompiler, yang mengontrol jumlah memori yang AWS IoT Greengrass digunakan perangkat lunak Core. Ukuran tumpukan di JVM menentukan berapa banyak memori yang dapat digunakan aplikasi sebelum [pengumpulan sampah](https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gctuning/introduction.html) terjadi, atau sebelum aplikasi kehabisan memori. Ukuran tumpukan maksimum menentukan jumlah maksimum memori yang dapat dialokasikan oleh JVM ketika memperluas tumpukan selama aktivitas yang berat. 

Untuk mengontrol alokasi memori, buat deployment baru atau revisi deployment yang ada yang mencakup komponen inti, dan tentukan opsi JVM Anda di parameter konfigurasi `jvmOptions` dalam [konfigurasi komponen inti](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-jvm-options). 

Bergantung pada kebutuhan Anda, Anda dapat menjalankan perangkat lunak AWS IoT Greengrass Core dengan alokasi memori yang dikurangi atau dengan alokasi memori minimum. 

**Alokasi memori yang berkurang**  
Untuk menjalankan perangkat lunak AWS IoT Greengrass Core dengan alokasi memori yang dikurangi, kami menyarankan Anda menggunakan contoh pembaruan gabungan konfigurasi berikut untuk menyetel opsi JVM dalam konfigurasi inti Anda:

```
{
  "jvmOptions": "-XX:+UseSerialGC -XX:TieredStopAtLevel=1"
}
```

**Alokasi memori minimum**  
Untuk menjalankan perangkat lunak AWS IoT Greengrass Core dengan alokasi memori minimum, kami menyarankan Anda menggunakan contoh pembaruan gabungan konfigurasi berikut untuk menyetel opsi JVM dalam konfigurasi inti Anda:

```
{
  "jvmOptions": "-Xmx32m -XX:+UseSerialGC -Xint"
}
```

**penting**  
Menjalankan perangkat lunak AWS IoT Greengrass Core dengan alokasi memori minimum dapat memiliki dampak kinerja yang signifikan pada sistem spesifikasi rendah karena JVM akan melakukan lebih banyak pemrosesan ketika menggunakan lebih sedikit memori. Kami merekomendasikan untuk menyetel opsi untuk menyeimbangkan memori dan kebutuhan kinerja Anda.

Konfigurasi ini menggabungkan pembaruan dengan menggunakan opsi JVM berikut:

`-XX:+UseSerialGC`  
Menentukan untuk menggunakan koleksi sampah serial untuk ruang tumpukan JVM. Kolektor sampah serial lebih lambat, tetapi menggunakan memori lebih kecil dari implementasi pengumpulan sampah JVM lainnya.

`-XX:TieredStopAtLevel=1`  
Menginstruksikan JVM untuk menggunakan compiler Java just-in-time (JIT) sekali. Karena kode yang dikompilasi JIT menggunakan ruang dalam memori perangkat, penggunaan compiler JIT lebih dari sekali akan mengonsumsi lebih banyak memori daripada kompilasi tunggal.

`-XmxNNm`  
Menetapkan ukuran tumpukan JVM maksimum.  
Mengatur ukuran tumpukan maksimum terlalu rendah dapat menyebabkan kinerja atau out-of-memory kesalahan lebih lambat. Sebaiknya ukur penggunaan heap Anda saat ini sebelum menyetel ukuran maksimum dengan `-XmxNNm` opsi. Konfigurasikan JVM Anda dengan opsi `-XX:NativeMemoryTracking=detail` JVM. Kemudian, ukur penggunaan heap Anda saat ini dengan menggunakan permintaan `VM.native_memory` perintah dalam Utilitas [jcmd](https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr006.html).
Jika pengukuran heap bukan pilihan, gunakan `-Xmx64m` sebagai nilai awal untuk membatasi ukuran heap ke 64 MB. Anda kemudian dapat secara bertahap mengurangi ukuran tumpukan maks dari sana. Untuk alokasi memori minimum, gunakan `-Xmx32m` sebagai nilai awal untuk membatasi ukuran tumpukan 32 MB.  
Anda dapat menambah atau mengurangi nilai `-Xmx` tergantung pada kebutuhan aktual Anda; namun, kami sangat menyarankan Anda tidak menetapkan ukuran tumpukan maksimum di bawah 16 MB. Jumlah ukuran heap JVM yang dibutuhkan juga dapat bervariasi dari waktu ke waktu berdasarkan komponen plugin yang digunakan ke perangkat inti. Jika ukuran heap maksimum terlalu rendah untuk lingkungan Anda, maka perangkat lunak AWS IoT Greengrass Core mungkin mengalami kesalahan yang tidak terduga karena memori yang tidak mencukupi. Jika Anda mengalami kinerja yang lebih lambat atau mengalami kesalahan karena memori yang tidak mencukupi, kembalilah ke pengaturan yang diketahui baik. Misalnya, jika ukuran tumpukan komit normal Anda`41428KB`, gunakan `-Xmx40m` untuk sedikit membatasi penggunaan heap.

`-Xint`  
Menginstruksikan JVM untuk tidak menggunakan just-in-time (JIT) compiler. Sebaliknya, JVM berjalan dalam mode ditafsirkan-saja. Mode ini lebih lambat (berpotensi 20 kali lebih lambat untuk penerapan pada sistem low-end) daripada menjalankan kode yang dikompilasi JIT; namun, kode yang dikompilasi tidak menggunakan ruang apa pun di memori.

Untuk informasi tentang pembuatan pembaruan penggabungan konfigurasi, lihat [Perbarui konfigurasi komponen](update-component-configurations.md).

## Konfigurasikan pengguna yang menjalankan komponen
<a name="configure-component-user"></a>

Perangkat lunak AWS IoT Greengrass Core dapat menjalankan proses komponen sebagai pengguna sistem dan kelompok yang berbeda dari yang menjalankan perangkat lunak. Ini meningkatkan keamanan, karena Anda dapat menjalankan perangkat lunak AWS IoT Greengrass Core sebagai root, atau sebagai pengguna administrator, tanpa memberikan izin tersebut ke komponen yang berjalan pada perangkat inti.

Tabel berikut menunjukkan jenis komponen yang dapat dijalankan oleh perangkat lunak AWS IoT Greengrass Core sebagai pengguna yang Anda tentukan. Untuk informasi selengkapnya, lihat [Jenis komponen](develop-greengrass-components.md#component-types).


| Jenis komponen | Konfigurasikan pengguna komponen | 
| --- | --- | 
|  Inti  |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/images/icon-no.png) Tidak   | 
|  Plugin  |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/images/icon-no.png) Tidak   | 
|  Generik  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/images/icon-yes.png) Ya   | 
|  Lambda (tidak terkontainerisasi)  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/images/icon-yes.png) Ya   | 
|  Lambda (terkontainerisasi)  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/images/icon-yes.png) Ya   | 

Anda harus membuat pengguna komponen sebelum Anda dapat menentukannya dalam konfigurasi penerapan. Pada perangkat berbasis Windows, Anda juga harus menyimpan nama pengguna dan kata sandi untuk pengguna di instance pengelola kredensyal akun. LocalSystem Untuk informasi selengkapnya, lihat [Mengatur pengguna komponen di perangkat Windows](#create-component-user-windows).

Saat mengonfigurasi pengguna komponen pada perangkat berbasis Linux, Anda juga dapat menentukan grup secara opsional. Anda menentukan pengguna dan grup yang dipisahkan oleh titik dua (`:`) dalam format berikut:`user:group`. Jika Anda tidak menentukan grup, perangkat lunak AWS IoT Greengrass Core default ke grup utama pengguna. Anda dapat menggunakan nama atau ID untuk mengidentifikasi pengguna dan grup. 

Pada perangkat berbasis Linux, Anda juga dapat menjalankan komponen sebagai pengguna sistem yang tidak ada, juga disebut pengguna yang tidak dikenal, untuk meningkatkan keamanan. Proses Linux dapat menandakan proses lain yang dijalankan oleh pengguna yang sama. Pengguna yang tidak dikenal tidak menjalankan proses yang lain, sehingga Anda dapat menjalankan komponen sebagai pengguna yang tidak dikenal untuk mencegah komponen memberi sinyal ke komponen lain pada perangkat inti. Untuk menjalankan komponen sebagai pengguna yang tidak dikenal, tentukan ID pengguna yang tidak ada pada perangkat inti. Anda juga dapat menentukan ID grup yang tidak ada untuk dijalankan sebagai grup yang tidak dikenal.

Anda dapat mengkonfigurasi pengguna untuk setiap komponen dan untuk setiap perangkat inti.
+ **Konfigurasikan untuk komponen**

  Anda dapat mengonfigurasi setiap komponen untuk dijalankan dengan pengguna khusus untuk komponen tersebut. Saat membuat penerapan, Anda dapat menentukan pengguna untuk setiap komponen dalam `runWith` konfigurasi komponen tersebut. Perangkat lunak AWS IoT Greengrass Core menjalankan komponen sebagai pengguna yang ditentukan jika Anda mengonfigurasinya. Jika tidak, default menjalankan komponen sebagai pengguna default yang Anda konfigurasikan untuk perangkat inti. Untuk informasi selengkapnya tentang menentukan pengguna komponen dalam konfigurasi penerapan, lihat parameter [`runWith`](create-deployments.md#component-run-with-config)konfigurasi di. [Buat deployment](create-deployments.md)
+ **Konfigurasikan pengguna default untuk perangkat inti**

  Anda dapat mengonfigurasi pengguna default yang digunakan perangkat lunak AWS IoT Greengrass Core untuk menjalankan komponen. Ketika perangkat lunak AWS IoT Greengrass Core menjalankan komponen, ia memeriksa apakah Anda menentukan pengguna untuk komponen itu, dan menggunakannya untuk menjalankan komponen. Jika komponen tidak menentukan pengguna, maka perangkat lunak AWS IoT Greengrass Core menjalankan komponen sebagai pengguna default yang Anda konfigurasikan untuk perangkat inti. Untuk informasi selengkapnya, lihat [Konfigurasikan pengguna komponen default](#configure-default-component-user).

**catatan**  
Pada perangkat berbasis Windows, Anda harus menentukan setidaknya pengguna default untuk menjalankan komponen.  
Pada perangkat berbasis Linux, pertimbangan berikut berlaku jika Anda tidak mengonfigurasi pengguna untuk menjalankan komponen:   
Jika Anda menjalankan perangkat lunak AWS IoT Greengrass Core sebagai root, maka perangkat lunak tidak akan menjalankan komponen. Anda harus menentukan pengguna default untuk menjalankan komponen jika Anda berjalan sebagai root.
Jika Anda menjalankan perangkat lunak AWS IoT Greengrass Core sebagai pengguna non-root, maka perangkat lunak menjalankan komponen sebagai pengguna tersebut.

**Topics**
+ [Mengatur pengguna komponen di perangkat Windows](#create-component-user-windows)
+ [Konfigurasikan pengguna komponen default](#configure-default-component-user)

### Mengatur pengguna komponen di perangkat Windows
<a name="create-component-user-windows"></a>

**Untuk mengatur pengguna komponen pada perangkat berbasis Windows**

1. Buat pengguna komponen di LocalSystem akun di perangkat.

   ```
   net user /add component-user password
   ```

1. Gunakan [ PsExec utilitas Microsoft](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec) untuk menyimpan nama pengguna dan kata sandi untuk pengguna komponen dalam contoh Credential Manager untuk LocalSystem akun.

   ```
   psexec -s cmd /c cmdkey /generic:component-user /user:component-user /pass:password
   ```
**catatan**  
Pada perangkat berbasis Windows, LocalSystem akun menjalankan inti Greengrass, dan Anda harus menggunakan PsExec utilitas untuk menyimpan informasi pengguna komponen di akun. LocalSystem Menggunakan aplikasi Credential Manager menyimpan informasi ini di akun Windows dari pengguna yang saat ini masuk, bukan LocalSystem akun.

### Konfigurasikan pengguna komponen default
<a name="configure-default-component-user"></a>

Anda dapat menggunakan penerapan untuk mengonfigurasi pengguna default pada perangkat inti. Dalam deployment ini, Anda akan memperbarui konfigurasi [komponen inti](greengrass-nucleus-component.md).

**catatan**  
Anda juga dapat mengatur pengguna default ketika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan `--component-default-user` opsi. Untuk informasi selengkapnya, lihat [Instal perangkat lunak AWS IoT Greengrass Core](install-greengrass-core-v2.md).

[Buat penyebaran](create-deployments.md) yang menentukan pemutakhiran konfigurasi berikut untuk komponen. `aws.greengrass.Nucleus`

------
#### [ Linux ]

```
{
  "runWithDefault": {
    "posixUser": "ggc_user:ggc_group"
  }
}
```

------
#### [ Windows ]

```
{
  "runWithDefault": {
    "windowsUser": "ggc_user"
  }
}
```

**catatan**  
Pengguna yang Anda tentukan harus ada, dan nama pengguna dan kata sandi untuk pengguna ini harus disimpan dalam contoh pengelola kredensyal LocalSystem akun di perangkat Windows Anda. Untuk informasi selengkapnya, lihat [Mengatur pengguna komponen di perangkat Windows](#create-component-user-windows).

------

Contoh berikut mendefinisikan penerapan untuk perangkat berbasis Linux yang mengkonfigurasi `ggc_user` sebagai pengguna default dan sebagai grup default. `ggc_group` Pembaruan konfigurasi `merge` memerlukan objek JSON berserial.

```
{
  "components": {
    "aws.greengrass.Nucleus": {
      "version": "2.16.1",
      "configurationUpdate": {
        "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}"
      }
    }
  }
}
```

## Konfigurasikan batas sumber daya sistem untuk komponen
<a name="configure-component-system-resource-limits"></a>

**catatan**  
[Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass.](greengrass-nucleus-component.md) AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows. 

Anda dapat mengonfigurasi jumlah maksimum penggunaan CPU dan RAM yang dapat digunakan oleh setiap proses komponen pada perangkat inti.

Tabel berikut menunjukkan jenis komponen yang mendukung batas sumber daya sistem. Untuk informasi selengkapnya, lihat [Jenis komponen](develop-greengrass-components.md#component-types).


| Jenis komponen | Konfigurasikan batas sumber daya sistem | 
| --- | --- | 
|  Inti  |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/images/icon-no.png) Tidak   | 
|  Plugin  |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/images/icon-no.png) Tidak   | 
|  Generik  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/images/icon-yes.png) Ya   | 
|  Lambda (tidak terkontainerisasi)  |  <a name="polaris-yes-para"></a> ![\[Yes\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/images/icon-yes.png) Ya   | 
|  Lambda (terkontainerisasi)  |  <a name="polaris-no-para"></a> ![\[No\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/images/icon-no.png) Tidak   | 

**penting**  
Batas sumber daya sistem tidak didukung saat Anda [menjalankan perangkat lunak AWS IoT Greengrass Core dalam wadah Docker](run-greengrass-docker.md).

Anda dapat mengonfigurasi batas sumber daya sistem untuk setiap komponen dan untuk setiap perangkat inti.
+ **Konfigurasikan untuk komponen**

  Anda dapat mengonfigurasi setiap komponen dengan batas sumber daya sistem khusus untuk komponen tersebut. Saat membuat penerapan, Anda dapat menentukan batas sumber daya sistem untuk setiap komponen dalam penerapan. Jika komponen mendukung batas sumber daya sistem, perangkat lunak AWS IoT Greengrass Core menerapkan batasan untuk proses komponen. Jika Anda tidak menentukan batas sumber daya sistem untuk suatu komponen, perangkat lunak AWS IoT Greengrass Core menggunakan default apa pun yang telah Anda konfigurasikan untuk perangkat inti. Untuk informasi selengkapnya, lihat [Buat deployment](create-deployments.md).
+ **Konfigurasikan default untuk perangkat inti**

  Anda dapat mengonfigurasi batas sumber daya sistem default yang diterapkan perangkat lunak AWS IoT Greengrass Core untuk komponen yang mendukung batasan ini. Ketika perangkat lunak AWS IoT Greengrass Core menjalankan komponen, itu menerapkan batas sumber daya sistem yang Anda tentukan untuk komponen itu. Jika komponen tersebut tidak menentukan batas sumber daya sistem, perangkat lunak AWS IoT Greengrass Core menerapkan batas sumber daya sistem default yang Anda konfigurasikan untuk perangkat inti. Jika Anda tidak menentukan batas sumber daya sistem default, perangkat lunak AWS IoT Greengrass Core tidak menerapkan batasan sumber daya sistem apa pun secara default. Untuk informasi selengkapnya, lihat [Konfigurasikan batas sumber daya sistem default](#configure-default-component-system-resource-limits).

### Konfigurasikan batas sumber daya sistem default
<a name="configure-default-component-system-resource-limits"></a>

Anda dapat menerapkan komponen [inti Greengrass untuk mengonfigurasi batas sumber daya sistem default untuk perangkat inti](greengrass-nucleus-component.md). Untuk mengonfigurasi batas sumber daya sistem default, [buat penerapan yang](create-deployments.md) menentukan pemutakhiran konfigurasi berikut untuk komponen tersebut`aws.greengrass.Nucleus`.

```
{
  "runWithDefault": {
    "systemResourceLimits": {
      "cpu": cpuTimeLimit,
      "memory": memoryLimitInKb
    }
  }
}
```

Contoh berikut mendefinisikan penerapan yang mengkonfigurasi batas waktu CPU`2`, yang setara dengan penggunaan 50% pada perangkat dengan 4 core CPU. Contoh ini juga mengkonfigurasi penggunaan memori hingga 100 MB.

```
{
  "components": {
    "aws.greengrass.Nucleus": {
      "version": "2.16.1",
      "configurationUpdate": {
        "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}"
      }
    }
  }
}
```

## Hubungkan pada port 443 atau melalui proksi jaringan
<a name="configure-alpn-network-proxy"></a>

AWS IoT Greengrass perangkat inti berkomunikasi dengan AWS IoT Core menggunakan protokol pesan MQTT dengan otentikasi klien TLS. Menurut konvensi, MQTT atas TLS menggunakan port 8883. Namun, sebagai upaya keamanan, lingkungan yang terbatas mungkin akan membatasi lalu lintas masuk dan keluar untuk kisaran kecil port TCP. Sebagai contoh, firewall perusahaan mungkin akan membuka port 443 untuk lalu lintas HTTPS, tetapi menutup port lain yang digunakan untuk protokol yang kurang umum, seperti port 8883 untuk lalu lintas MQTT. Lingkungan restriktif lainnya mungkin memerlukan semua lalu lintas untuk melalui proxy sebelum terhubung ke internet.

**catatan**  
Perangkat inti Greengrass yang menjalankan komponen [inti Greengrass v2.0.3 dan sebelumnya menggunakan port 8443 untuk terhubung](greengrass-nucleus-component.md) ke titik akhir bidang data. AWS IoT Greengrass Perangkat ini harus dapat terhubung ke titik akhir ini pada port 8443. Untuk informasi selengkapnya, lihat [Izinkan lalu lintas perangkat melalui proxy atau firewall](allow-device-traffic.md).

Untuk mengaktifkan komunikasi dalam skenario ini, AWS IoT Greengrass berikan opsi konfigurasi berikut:
+ **Komunikasi MQTT melalui port 443**. Jika jaringan Anda memungkinkan koneksi ke port 443, Anda dapat mengonfigurasi perangkat inti Greengrass dengan menggunakan port 443 untuk lalu lintas MQTT, dan bukan port default 8883. Hal ini bisa menjadi koneksi langsung ke port 443 atau koneksi melalui server proksi jaringan. Tidak seperti konfigurasi default, yang menggunakan autentikasi klien berbasis sertifikat, MQTT pada port 443 menggunakan [peran layanan perangkat](device-service-role.md) untuk autentikasi.

  Untuk informasi selengkapnya, lihat [Konfigurasikan MQTT melalui port 443](#configure-mqtt-port-443).
+ **Komunikasi HTTPS melalui port 443**. Perangkat lunak AWS IoT Greengrass Core mengirimkan lalu lintas HTTPS melalui port 8443 secara default, tetapi Anda dapat mengonfigurasinya untuk menggunakan port 443. AWS IoT Greengrass menggunakan ekstensi [Application Layer Protocol Network](https://tools.ietf.org/html/rfc7301) (ALPN) TLS untuk mengaktifkan koneksi ini. Seperti konfigurasi default, HTTPS pada port 443 menggunakan autentikasi klien berbasis sertifikat.
**penting**  
Untuk menggunakan ALPN dan mengaktifkan komunikasi HTTPS melalui port 443, perangkat inti Anda harus menjalankan Java 8 update 252 atau yang lebih baru. Semua pembaruan Java versi 9 dan yang lebih baru juga mendukung ALPN.

  Untuk informasi selengkapnya, lihat [Konfigurasikan HTTPS melalui port 443](#configure-https-port-443).
+ **Sambungan melalui proksi rangkaian**. Anda dapat mengonfigurasi server proxy jaringan untuk bertindak sebagai perantara untuk menghubungkan ke perangkat inti Greengrass. AWS IoT Greengrass mendukung otentikasi dasar untuk proxy HTTP dan HTTPS.

  <a name="https-proxy-greengrass-nucleus-requirement"></a>Perangkat inti Greengrass harus menjalankan [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.0 atau yang lebih baru untuk menggunakan proxy HTTPS.

  Perangkat lunak AWS IoT Greengrass Core meneruskan konfigurasi proxy ke komponen melalui`ALL_PROXY`,, `HTTP_PROXY``HTTPS_PROXY`, dan variabel `NO_PROXY` lingkungan. Komponen harus menggunakan pengaturan ini untuk terhubung melalui proksi. Komponen menggunakan pustaka umum (seperti boto3, cURL, dan paket python `requests`) yang biasanya menggunakan variabel lingkungan ini secara default untuk membuat koneksi. Jika suatu komponen juga menentukan variabel lingkungan ini, AWS IoT Greengrass tidak akan menimpanya.

  Untuk informasi selengkapnya, lihat [Konfigurasikan proksi jaringan](#configure-network-proxy).

### Konfigurasikan MQTT melalui port 443
<a name="configure-mqtt-port-443"></a>

Anda dapat mengonfigurasi MQTT melalui port 443 pada perangkat inti yang ada atau saat Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti baru.

**Topics**
+ [Konfigurasikan MQTT melalui port 443 pada perangkat inti yang ada](#configure-mqtt-port-443-deployment)
+ [Konfigurasikan MQTT melalui port 443 selama instalasi](#configure-mqtt-port-443-installer)

#### Konfigurasikan MQTT melalui port 443 pada perangkat inti yang ada
<a name="configure-mqtt-port-443-deployment"></a>

Anda dapat menggunakan deployment untuk mengonfigurasi MQTT melalui port 443 pada perangkat inti tunggal atau sekelompok perangkat inti. Dalam deployment ini, Anda akan memperbarui konfigurasi [komponen inti](greengrass-nucleus-component.md). Nukleus akan dimulai ulang ketika Anda memperbarui konfigurasi `mqtt`-nya.

Untuk mengonfigurasi MQTT melalui port 443, [buat deployment](create-deployments.md) yang menentukan pembaruan konfigurasi berikut untuk komponen `aws.greengrass.Nucleus`.

```
{
  "mqtt": {
    "port": 443
  }
}
```

Contoh berikut menentukan deployment yang mengonfigurasi MQTT melalui port 443. Pembaruan konfigurasi `merge` memerlukan objek JSON berserial.

```
{
  "components": {
    "aws.greengrass.Nucleus": {
      "version": "2.16.1",
      "configurationUpdate": {
        "merge": "{\"mqtt\":{\"port\":443}}"
      }
    }
  }
}
```

#### Konfigurasikan MQTT melalui port 443 selama instalasi
<a name="configure-mqtt-port-443-installer"></a>

Anda dapat mengonfigurasi MQTT melalui port 443 saat Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti. Gunakan argumen `--init-config` installer untuk mengkonfigurasi MQTT melalui port 443. [Anda dapat menentukan argumen ini saat menginstal dengan [penyediaan manual, penyediaan](manual-installation.md)[armada, atau penyediaan](fleet-provisioning.md) kustom.](custom-provisioning.md)

### Konfigurasikan HTTPS melalui port 443
<a name="configure-https-port-443"></a>

Fitur ini memerlukan v2.0.4 [Inti Greengrass](greengrass-nucleus-component.md) atau lebih baru.

Anda dapat mengonfigurasi HTTPS melalui port 443 pada perangkat inti yang ada atau saat Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti baru.

**Topics**
+ [Konfigurasikan HTTPS melalui port 443 pada perangkat inti yang ada](#configure-https-port-443-deployment)
+ [Konfigurasikan HTTPS melalui port 443 selama instalasi](#configure-https-port-443-installer)

#### Konfigurasikan HTTPS melalui port 443 pada perangkat inti yang ada
<a name="configure-https-port-443-deployment"></a>

Anda dapat menggunakan deployment untuk mengonfigurasi HTTPS melalui port 443 pada perangkat inti tunggal atau sekelompok perangkat inti. Dalam deployment ini, Anda akan memperbarui konfigurasi [komponen inti](greengrass-nucleus-component.md).

Untuk mengonfigurasi HTTPS melalui port 443, [buat deployment](create-deployments.md) yang menentukan pembaruan konfigurasi berikut untuk komponen `aws.greengrass.Nucleus`.

```
{
  "greengrassDataPlanePort": 443
}
```

Contoh berikut menentukan deployment yang mengonfigurasi HTTPS melalui port 443. Pembaruan konfigurasi `merge` memerlukan objek JSON berserial.

```
{
  "components": {
    "aws.greengrass.Nucleus": {
      "version": "2.16.1",
      "configurationUpdate": {
        "merge": "{\"greengrassDataPlanePort\":443}"
      }
    }
  }
}
```

#### Konfigurasikan HTTPS melalui port 443 selama instalasi
<a name="configure-https-port-443-installer"></a>

Anda dapat mengonfigurasi HTTPS melalui port 443 saat Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti. Gunakan argumen `--init-config` installer untuk mengonfigurasi HTTPS melalui port 443. [Anda dapat menentukan argumen ini saat menginstal dengan [penyediaan manual, penyediaan](manual-installation.md)[armada, atau penyediaan](fleet-provisioning.md) kustom.](custom-provisioning.md)

### Konfigurasikan proksi jaringan
<a name="configure-network-proxy"></a>

Ikuti prosedur di bagian ini untuk mengonfigurasi perangkat inti Greengrass untuk terhubung ke internet melalui proxy jaringan HTTP atau HTTPS. Untuk informasi selengkapnya tentang titik akhir dan port yang digunakan perangkat inti, lihat[Izinkan lalu lintas perangkat melalui proxy atau firewall](allow-device-traffic.md).

**penting**  
Jika perangkat inti Anda menjalankan versi inti [Greengrass](greengrass-nucleus-component.md) lebih awal dari v2.4.0, peran perangkat Anda harus mengizinkan izin berikut untuk menggunakan proxy jaringan:  
`iot:Connect`
`iot:Publish`
`iot:Receive`
`iot:Subscribe`
Ini diperlukan karena perangkat menggunakan AWS kredensyal dari layanan pertukaran token untuk mengautentikasi koneksi MQTT ke. AWS IoT Perangkat menggunakan MQTT untuk menerima dan menginstal penerapan dari perangkat AWS Cloud, sehingga perangkat Anda tidak akan berfungsi kecuali Anda menentukan izin ini pada perannya. Perangkat biasanya menggunakan sertifikat X.509 untuk mengautentikasi koneksi MQTT, tetapi perangkat tidak dapat melakukan hal ini untuk mengautentikasi saat menggunakan proksi.  
Untuk informasi lebih lanjut tentang cara mengonfigurasi peran perangkat, lihat [Otorisasi perangkat inti untuk berinteraksi dengan layanan AWS](device-service-role.md).

**Topics**
+ [Konfigurasikan proxy jaringan pada perangkat inti yang ada](#configure-network-proxy-deployment)
+ [Konfigurasikan proxy jaringan selama instalasi](#configure-network-proxy-installer)
+ [Aktifkan perangkat inti untuk mempercayai proxy HTTPS](#https-proxy-certificate-trust)
+ [Objek networkProxy](#network-proxy-object)

#### Konfigurasikan proxy jaringan pada perangkat inti yang ada
<a name="configure-network-proxy-deployment"></a>

Anda dapat menggunakan deployment untuk mengonfigurasi proksi jaringan pada perangkat inti tunggal atau sekelompok perangkat inti. Dalam deployment ini, Anda akan memperbarui konfigurasi [komponen inti](greengrass-nucleus-component.md). Nukleus akan dimulai ulang ketika Anda memperbarui konfigurasi `networkProxy`-nya.

Untuk mengonfigurasi proksi jaringan, [buat deployment](create-deployments.md) untuk komponen `aws.greengrass.Nucleus` yang menggabungkan pembaruan konfigurasi berikut. Pembaruan konfigurasi ini berisi [objek networkProxy](#network-proxy-object).

```
{
  "networkProxy": {
    "noProxyAddresses": "http://192.168.0.1,www.example.com",
    "proxy": {
      "url": "https://my-proxy-server:1100"
    }
  }
}
```

Contoh berikut menentukan deployment yang mengonfigurasi proksi jaringan. Pembaruan konfigurasi `merge` memerlukan objek JSON berserial.

```
{
  "components": {
    "aws.greengrass.Nucleus": {
      "version": "2.16.1",
      "configurationUpdate": {
        "merge": "{\"networkProxy\":{\"noProxyAddresses\":\"http://192.168.0.1,www.example.com\",\"proxy\":{\"url\":\"https://my-proxy-server:1100\",\"username\":\"Mary_Major\",\"password\":\"pass@word1357\"}}}"
      }
    }
  }
}
```

#### Konfigurasikan proxy jaringan selama instalasi
<a name="configure-network-proxy-installer"></a>

Anda dapat mengkonfigurasi proxy jaringan ketika Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti. Gunakan argumen `--init-config` installer untuk mengkonfigurasi proxy jaringan. [Anda dapat menentukan argumen ini saat menginstal dengan [penyediaan manual, penyediaan](manual-installation.md)[armada, atau penyediaan](fleet-provisioning.md) kustom.](custom-provisioning.md)

#### Aktifkan perangkat inti untuk mempercayai proxy HTTPS
<a name="https-proxy-certificate-trust"></a>

Saat Anda mengonfigurasi perangkat inti untuk menggunakan proxy HTTPS, Anda harus menambahkan rantai sertifikat server proxy ke perangkat inti untuk memungkinkannya mempercayai proxy HTTPS. Jika tidak, perangkat inti mungkin mengalami kesalahan saat mencoba merutekan lalu lintas melalui proxy. Tambahkan sertifikat CA server proxy ke file sertifikat CA root Amazon perangkat inti.

**Untuk mengaktifkan perangkat inti mempercayai proxy HTTPS**

1. Temukan file sertifikat CA root Amazon di perangkat inti.
   + Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan [penyediaan otomatis](quick-installation.md), file sertifikat CA root Amazon ada di. `/greengrass/v2/rootCA.pem`
   + Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan [penyediaan [manual](manual-installation.md) atau armada](fleet-provisioning.md), file sertifikat CA root Amazon mungkin ada di. `/greengrass/v2/AmazonRootCA1.pem`

   Jika sertifikat CA root Amazon tidak ada di lokasi ini, periksa `system.rootCaPath` properti `/greengrass/v2/config/effectiveConfig.yaml` untuk menemukan lokasinya.

1. Tambahkan konten file sertifikat CA server proxy ke file sertifikat CA root Amazon.

   Contoh berikut menunjukkan sertifikat CA server proxy yang ditambahkan ke file sertifikat CA root Amazon.

   ```
   -----BEGIN CERTIFICATE-----
   MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK
   \nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww
   ... content of proxy CA certificate ...
   +vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui
   GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216
   gJMIADggEPADf2/m45hzEXAMPLE=
   -----END CERTIFICATE-----
   
   -----BEGIN CERTIFICATE-----
   MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg
   ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW
   ... content of root CA certificate ...
   o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa
   5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy
   rqXRfKoQnoZsG4q5WTP46EXAMPLE
   -----END CERTIFICATE-----
   ```

#### Objek networkProxy
<a name="network-proxy-object"></a>

Gunakan objek `networkProxy` untuk menentukan informasi tentang proksi jaringan. Objek ini berisi informasi berikut:

`noProxyAddresses`  
(Opsional) Daftar alamat IP atau nama host yang dipisahkan dengan koma yang dikecualikan dari proksi.

`proxy`  
Proksi yang akan dihubungkan. Objek ini berisi informasi berikut:    
`url`  
URL server proksi dalam format `scheme://userinfo@host:port`.  <a name="nucleus-component-configuration-proxy-url-segments"></a>
+ `scheme` — Skema, yang harus berupa `http` atau `https`.
**penting**  
<a name="https-proxy-greengrass-nucleus-requirement"></a>Perangkat inti Greengrass harus menjalankan [Greengrass](greengrass-nucleus-component.md) nucleus v2.5.0 atau yang lebih baru untuk menggunakan proxy HTTPS.  
Jika Anda mengonfigurasi proxy HTTPS, Anda harus menambahkan sertifikat CA server proxy ke sertifikat CA root Amazon perangkat inti. Untuk informasi selengkapnya, lihat [Aktifkan perangkat inti untuk mempercayai proxy HTTPS](#https-proxy-certificate-trust).
+ `userinfo` - (Opsional) Nama pengguna dan informasi kata sandi. Jika Anda menentukan informasi ini di`url`, perangkat inti Greengrass mengabaikan bidang dan. `username` `password`
+ `host` - Nama host atau alamat IP server proksi.
+ `port` — (Opsional) Nomor port. Jika Anda tidak menentukan port, maka perangkat inti Greengrass akan menggunakan nilai default berikut:
  + `http` – 80
  + `https` – 443  
`username`  
(Opsional) Nama pengguna yang mengautentikasi server proxy.  
`password`  
(Opsional) Kata sandi yang mengautentikasi server proxy.

## Menggunakan sertifikat perangkat yang ditandatangani oleh CA pribadi
<a name="configure-nucleus-private-ca"></a>

Jika Anda menggunakan otoritas sertifikat pribadi kustom (CA), Anda harus menyetel inti Greengrass ke. **greengrassDataPlaneEndpoint** **iotdata** Anda dapat mengatur opsi ini selama penerapan atau instalasi menggunakan argumen **--init-config** [installer](configure-installer.md).

Anda dapat menyesuaikan titik akhir bidang data Greengrass tempat perangkat terhubung. Anda dapat mengatur opsi konfigurasi ini **iotdata** untuk mengatur titik akhir bidang data Greengrass ke titik akhir yang sama dengan titik akhir data IoT, yang dapat Anda tentukan dengan. **iotDataEndpoint**

## Konfigurasikan pengaturan batas waktu dan cache MQTT
<a name="configure-mqtt"></a>

Di AWS IoT Greengrass lingkungan, komponen dapat menggunakan MQTT untuk berkomunikasi dengan. AWS IoT Core Perangkat lunak AWS IoT Greengrass Core mengelola pesan MQTT untuk komponen. Ketika perangkat inti kehilangan koneksi ke AWS Cloud, perangkat lunak akan menangkap pesan MQTT untuk mencoba lagi nanti ketika sambungan pulih kembali. Anda dapat mengonfigurasi pengaturan seperti timeout pesan dan ukuran cache. Untuk informasi lebih lanjut, lihat parameter konfigurasi `mqtt` dan `mqtt.spooler` pada [komponen nukleus Greengrass](greengrass-nucleus-component.md).

AWS IoT Core memberlakukan kuota layanan pada broker pesan MQTT. Kuota ini mungkin berlaku untuk pesan yang Anda kirim antara perangkat inti dan AWS IoT Core. Untuk informasi lebih lanjut, lihat [kuota layanan broker AWS IoT Core pesan](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits) di. *Referensi Umum AWS*

## Konfigurasikan Greengrass Nucleus di jaringan IPv6
<a name="configure-ipv6"></a>

 [Greengrass Nucleus berbicara melalui Greengrass. AWS IoT Core APIs](https://docs.aws.amazon.com/general/latest/gr/greengrassv2.html) Dukungan APIs IPv6 Greengrass di bawah lingkungan dualstack.

Untuk mengaktifkan titik akhir dualstack untuk: IPv6
+  Tambahkan properti sistem`aws.useDualstackEndpoint=true`, dan `java.net.preferIPv6Addresses=true` ke `jvmOptions` 
+  Setel `s3EndpointType` ke `DUALSTACK` 

 Tetapkan opsi ini selama [penerapan](https://docs.aws.amazon.com/greengrass/v2/developerguide/create-deployments.html), atau berikan secara manual dengan argumen `--init-config` [penginstal](https://docs.aws.amazon.com/greengrass/v2/developerguide/configure-installer.html). Lihat [Menggunakan titik akhir tumpukan ganda Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/API/dual-stack-endpoints.html) untuk detail selengkapnya. 

**Example kode untuk penyebaran:**  

```
{
    "jvmOptions": "-Daws.useDualstackEndpoint=true",
    "s3EndpointType":"DUALSTACK"
}
```

**Example `config.yaml`melalui penyediaan manual:**  

```
---
system:
  ...
services:
  aws.greengrass.Nucleus:
    ...
    configuration:
      ...
      jvmOptions: "-Daws.useDualstackEndpoint=true -Djava.net.preferIPv6Addresses=true"
      s3EndpointType: "DUALSTACK"
```

# Perbarui perangkat lunak AWS IoT Greengrass Core (OTA)
<a name="update-greengrass-core-v2"></a>

Perangkat lunak AWS IoT Greengrass Core terdiri dari komponen [inti Greengrass](greengrass-nucleus-component.md) dan komponen opsional lainnya yang dapat Anda terapkan ke perangkat Anda untuk over-the-air melakukan pembaruan (OTA) perangkat lunak. Fitur ini dibangun ke perangkat lunak AWS IoT Greengrass Core.

Pembaruan OTA membuatnya lebih efisien untuk:
+ Memperbaiki kerentanan keamanan.
+ Mengatasi masalah stabilitas perangkat lunak.
+ Men-deploy fitur baru atau yang lebih baik.

**Topics**
+ [Persyaratan](#ota-update-requirements)
+ [Pertimbangan untuk perangkat inti](#ota-update-considerations)
+ [Perilaku pembaruan inti Greengrass](#ota-update-behavior-nucleus)
+ [Lakukan pembaruan OTA](#create-ota-update)

## Persyaratan
<a name="ota-update-requirements"></a>

Persyaratan berikut berlaku untuk menyebarkan pembaruan OTA dari perangkat lunak AWS IoT Greengrass Core:
+ Perangkat inti Greengrass harus memiliki koneksi ke untuk AWS Cloud menerima penyebaran.
+ Perangkat inti Greengrass harus dikonfigurasi dengan benar dan disediakan dengan sertifikat dan kunci untuk otentikasi dengan dan. AWS IoT Core AWS IoT Greengrass
+ Perangkat lunak AWS IoT Greengrass inti harus diatur dan dijalankan sebagai layanan sistem. Pembaruan OTA tidak bekerja jika Anda menjalankan inti dari file JAR, `Greengrass.jar`. Untuk informasi selengkapnya, lihat [Konfigurasikan inti Greengrass sebagai layanan sistem](configure-greengrass-core-v2.md#configure-system-service).

## Pertimbangan untuk perangkat inti
<a name="ota-update-considerations"></a>

Sebelum Anda melakukan pembaruan OTA, perhatikan dampaknya pada perangkat inti yang Anda perbarui dan perangkat kliennya yang terhubung:
+ Nukleus Greengrass dimatikan. 
+ Semua komponen yang berjalan pada perangkat inti juga dimatikan. Jika komponen tersebut menuliskan ke sumber daya lokal, komponen itu mungkin meninggalkan sumber daya tersebut dalam keadaan salah kecuali jika dimatikan dengan benar. Komponen dapat menggunakan [komunikasi antarproses](interprocess-communication.md) untuk memberitahu komponen inti untuk menunda pembaruan sampai komponen itu membersihkan sumber daya yang digunakannya.
+ Sementara komponen nukleus dimatikan, perangkat inti kehilangan koneksinya dengan perangkat lokal AWS Cloud dan lokal. Perangkat inti tidak akan merutekan pesan dari perangkat klien saat dimatikan.
+ Fungsi Lambda berusia panjang yang berjalan sebagai komponen akan kehilangan informasi keadaan dinamisnya dan menurunkan semua pekerjaan tertunda.

## Perilaku pembaruan inti Greengrass
<a name="ota-update-behavior-nucleus"></a>

<a name="component-patch-update"></a>Saat Anda menerapkan komponen, AWS IoT Greengrass instal versi terbaru yang didukung dari semua dependensi komponen tersebut. Karena itu, versi patch baru dari komponen publik AWS yang disediakan mungkin secara otomatis diterapkan ke perangkat inti Anda jika Anda menambahkan perangkat baru ke grup sesuatu, atau Anda memperbarui penerapan yang menargetkan perangkat tersebut. Beberapa pembaruan otomatis, seperti pembaruan inti, dapat menyebabkan perangkat Anda memulai ulang secara tiba-tiba. 

Ketika versi komponen [inti Greengrass](greengrass-nucleus-component.md) berubah, perangkat lunak Inti—yang mencakup inti dan semua komponen lain AWS IoT Greengrass di perangkat Anda—dimulai ulang untuk menerapkan perubahan. Karena [dampak pada perangkat inti](#ota-update-considerations) saat komponen nukleus diperbarui, Anda mungkin ingin mengontrol saat versi patch nukleus baru di-deploy ke perangkat Anda. Untuk melakukannya, Anda harus langsung menyertakan komponen inti Greengrass dalam deployment Anda. Menyertakan komponen secara langsung berarti Anda menyertakan versi tertentu dari komponen tersebut dalam konfigurasi deployment Anda dan tidak bergantung pada dependensi komponen untuk men-deploy komponen tersebut ke perangkat Anda. Untuk informasi lebih lanjut tentang penentuan dependensi dalam resep komponen Anda, lihat [Format resep](component-recipe-reference.md#recipe-format).

Tinjau tabel berikut untuk memahami perilaku pembaruan untuk komponen inti Greengrass berdasarkan tindakan dan deployment konfigurasi Anda.


| Tindakan | Konfigurasi deployment | Perilaku pembaruan nukleus | 
| --- | --- | --- | 
| Tambahkan perangkat baru ke grup objek yang ditargetkan oleh deployment yang ada tanpa merevisi deployment. | Deployment tidak secara langsung menyertakan nukleus Greengrass.Penerapan secara langsung mencakup setidaknya satu komponen AWS yang disediakan, atau menyertakan komponen khusus yang bergantung pada komponen yang AWS disediakan atau pada inti Greengrass. | Pada perangkat baru, instal versi patch terbaru dari nukleus yang memenuhi semua persyaratan dependensi komponen.Pada perangkat yang ada, jangan perbarui versi nukleus yang sudah diinstal. | 
| Tambahkan perangkat baru ke grup objek yang ditargetkan oleh deployment yang ada tanpa merevisi deployment. |  Deployment secara langsung mencakup versi tertentu dari inti Greengrass.  | Pada perangkat baru, instal versi nukleus yang ditentukan.Pada perangkat yang ada, jangan perbarui versi nukleus yang sudah diinstal. | 
| Buat deployment baru atau revisi deployment yang ada. | Deployment tidak secara langsung menyertakan nukleus Greengrass.Penerapan secara langsung mencakup setidaknya satu komponen AWS yang disediakan, atau menyertakan komponen khusus yang bergantung pada komponen yang AWS disediakan atau pada inti Greengrass. | Pada semua perangkat yang ditargetkan, instal versi patch terbaru dari inti yang memenuhi semua persyaratan dependensi komponen, termasuk pada perangkat baru yang Anda tambahkan ke grup objek yang ditargetkan. | 
| Buat deployment baru atau revisi deployment yang ada. | Deployment secara langsung mencakup versi tertentu dari inti Greengrass. | Pada semua perangkat yang ditargetkan, instal versi nukleus yang ditentukan, termasuk perangkat baru yang Anda tambahkan ke grup objek yang ditargetkan.  | 

## Lakukan pembaruan OTA
<a name="create-ota-update"></a>

Untuk melakukan pembaruan OTA, [buat deployment](create-deployments.md) yang mencakup atribut [komponen nukleus](greengrass-nucleus-component.md) dan versi yang akan diinstal.

# Copot pemasangan perangkat lunak AWS IoT Greengrass Inti
<a name="uninstall-greengrass-core-v2"></a>

Anda dapat menghapus perangkat lunak AWS IoT Greengrass Core untuk menghapusnya dari perangkat yang tidak ingin Anda gunakan sebagai perangkat inti Greengrass. Anda juga dapat menggunakan langkah-langkah ini untuk membersihkan instalasi yang gagal.

**Untuk menghapus instalasi perangkat lunak AWS IoT Greengrass Core**

1. Jika Anda menjalankan perangkat lunak sebagai layanan sistem, Anda harus menghentikan, menonaktifkan, dan menghapus layanan. Jalankan perintah berikut yang sesuai untuk sistem operasi Anda.

------
#### [ Linux ]

   1. Hentikan layanan .

      ```
      sudo systemctl stop greengrass.service
      ```

   1. Nonaktifkan layanan.

      ```
      sudo systemctl disable greengrass.service
      ```

   1. Hapus layanan.

      ```
      sudo rm /etc/systemd/system/greengrass.service
      ```

   1. Verifikasi bahwa layanan dihapus.

      ```
      sudo systemctl daemon-reload && sudo systemctl reset-failed
      ```

------
#### [ Windows (Command Prompt) ]

**catatan**  
Anda harus menjalankan Command Prompt sebagai administrator untuk menjalankan perintah ini.

   1. Hentikan layanan .

      ```
      sc stop "greengrass"
      ```

   1. Nonaktifkan layanan.

      ```
      sc config "greengrass" start=disabled
      ```

   1. Hapus layanan.

      ```
      sc delete "greengrass"
      ```

   1. Mulai ulang perangkat.

------
#### [ Windows (PowerShell) ]

**catatan**  
Anda harus menjalankan PowerShell sebagai administrator untuk menjalankan perintah ini.

   1. Hentikan layanan .

      ```
      Stop-Service -Name "greengrass"
      ```

   1. Nonaktifkan layanan.

      ```
      Set-Service -Name "greengrass" -Status stopped -StartupType disabled
      ```

   1. Hapus layanan.
      + Untuk PowerShell 6.0 dan yang lebih baru:

        ```
        Remove-Service -Name "greengrass" -Confirm:$false -Verbose
        ```
      + Untuk PowerShell versi yang lebih awal dari 6.0:

        ```
        Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\greengrass | Remove-Item -Force -Verbose
        ```

   1. Mulai ulang perangkat.

------

1. Keluarkan folder root dari perangkat. Ganti `/greengrass/v2` atau *C:\$1greengrass\$1v2* dengan jalur ke folder root.

------
#### [ Linux ]

   ```
   sudo rm -rf /greengrass/v2
   ```

------
#### [ Windows (Command Prompt) ]

   ```
   rmdir /s /q C:\greengrass\v2
   ```

------
#### [ Windows (PowerShell) ]

   ```
   cmd.exe /c "rmdir /s /q C:\greengrass\v2"
   ```

------

1. Hapus perangkat inti dari AWS IoT Greengrass layanan. Langkah ini menghapus informasi status perangkat inti dari AWS Cloud. Pastikan untuk menyelesaikan langkah ini jika Anda berencana untuk menginstal ulang perangkat lunak inti AWS IoT Greengrass ke perangkat inti dengan nama yang sama.
   + Untuk menghapus perangkat inti dari AWS IoT Greengrass konsol, lakukan hal berikut:

     1. <a name="navigate-greengrass-console"></a>Navigasikan ke [konsol AWS IoT Greengrass](https://console.aws.amazon.com/greengrass) tersebut.

     1. Pilih **Perangkat inti**.

     1. Pilih perangkat inti yang akan dikelola.

     1. Pilih **Hapus**.

     1. Di modal konfirmasi, pilih **Hapus**.
   + Untuk menghapus perangkat inti dengan AWS Command Line Interface, gunakan [DeleteCoreDevice](https://docs.aws.amazon.com/greengrass/v2/APIReference/API_DeleteCoreDevice.html)operasi. Jalankan perintah berikut, dan ganti *MyGreengrassCore* dengan nama perangkat inti.

     ```
     aws greengrassv2 delete-core-device --core-device-thing-name MyGreengrassCore
     ```