

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

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