

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

# Kembangkan AWS IoT Greengrass komponen
<a name="develop-greengrass-components"></a>

Anda dapat mengembangkan dan menguji komponen pada perangkat inti Greengrass Anda. Akibatnya, Anda dapat membuat dan mengulangi AWS IoT Greengrass perangkat lunak Anda tanpa berinteraksi dengan perangkat lunak. AWS Cloud Setelah menyelesaikan versi komponen, Anda dapat mengunggahnya AWS IoT Greengrass di cloud, sehingga Anda dan tim dapat menerapkan komponen tersebut ke perangkat lain di armada Anda. Untuk informasi selengkapnya tentang cara men-deploy komponen, lihat [Menyebarkan AWS IoT Greengrass komponen ke perangkat](manage-deployments.md).

Setiap komponen terdiri dari *resep* dan *artifact*.
+ <a name="component-recipe-definition"></a>**Resep**

  Setiap komponen berisi file resep, yang mendefinisikan metadata nya. Resep ini juga menentukan parameter konfigurasi komponen, dependensi komponen, siklus hidup, dan kompatibilitas platform. Siklus hidup komponen menentukan perintah yang menginstal, menjalankan, dan menutup komponen. Untuk informasi selengkapnya, lihat [AWS IoT Greengrass referensi resep komponen](component-recipe-reference.md).

  Anda bisa menentukan resep dalam format [JSON](https://en.wikipedia.org/wiki/JSON) atau [YAML](https://en.wikipedia.org/wiki/YAML).
+ <a name="component-artifacts-definition"></a>**Artefak**

  Komponen dapat memiliki sejumlah artifact, yang merupakan komponen biner. Artifact dapat mencakup skrip, kode yang dikompilasi, sumber daya statis, dan file lain yang dikonsumsi komponen. Komponen juga dapat mengonsumsi artifact dari dependensi komponen.

AWS IoT Greengrass menyediakan komponen pra-bangun yang dapat Anda gunakan dalam aplikasi Anda dan menyebarkan ke perangkat Anda. Misalnya, Anda dapat menggunakan komponen pengelola aliran untuk mengunggah data ke berbagai AWS layanan, atau Anda dapat menggunakan komponen CloudWatch metrik untuk mempublikasikan metrik kustom ke Amazon. CloudWatch Untuk informasi selengkapnya, lihat [Komponen yang disediakan oleh AWS](public-components.md).

AWS IoT Greengrass mengkurasi indeks komponen Greengrass, yang disebut Greengrass Software Catalog. Katalog ini melacak komponen Greengrass yang dikembangkan oleh komunitas Greengrass. Dari katalog ini, Anda dapat mengunduh, memodifikasi, dan menyebarkan komponen untuk membuat aplikasi Greengrass Anda. Untuk informasi selengkapnya, lihat [Komponen komunitas](greengrass-software-catalog.md).

Perangkat lunak AWS IoT Greengrass Core menjalankan komponen sebagai pengguna dan grup sistem, seperti `ggc_user` dan`ggc_group`, yang Anda konfigurasikan pada perangkat inti. Ini berarti bahwa komponen memiliki izin dari pengguna sistem itu. Jika Anda menggunakan pengguna sistem tanpa direktori home, maka komponen tidak dapat menggunakan perintah atau kode run yang menggunakan direktori home. Ini berarti Anda tidak dapat menggunakan perintah `pip install some-library --user` untuk menginstal paket Python misalnya. Jika Anda mengikuti [Memulai tutorial](getting-started.md) untuk mengatur perangkat inti, maka pengguna sistem Anda tidak memiliki direktori home. Untuk informasi selengkapnya tentang cara mengonfigurasi pengguna dan grup yang menjalankan komponen, lihat [Konfigurasikan pengguna yang menjalankan komponen](configure-greengrass-core-v2.md#configure-component-user).

**catatan**  <a name="semver-note"></a>
<a name="semver-para"></a>AWS IoT Greengrass menggunakan versi semantik untuk komponen. Versi semantik mengikuti sistem nomor *mayor*.*minor*.*patch*. Sebagai contoh, versi `1.0.0` merupakan rilis mayor pertama untuk sebuah komponen. Untuk informasi lebih lanjut, lihat [spesifikasi versi semantik](https://semver.org/).

**Topics**
+ [Siklus hidup komponen](#component-lifecycle)
+ [Jenis komponen](#component-types)
+ [Buat AWS IoT Greengrass komponen](create-components.md)
+ [Uji AWS IoT Greengrass komponen dengan penerapan lokal](test-components.md)
+ [Publikasikan komponen untuk diterapkan ke perangkat inti Anda](publish-components.md)
+ [Berinteraksi dengan AWS layanan](interact-with-aws-services.md)
+ [Jalankan kontainer Docker](run-docker-container.md)
+ [AWS IoT Greengrass referensi resep komponen](component-recipe-reference.md)
+ [Referensi variabel lingkungan komponen](component-environment-variables.md)

## Siklus hidup komponen
<a name="component-lifecycle"></a>

*Siklus hidup komponen* mendefinisikan tahapan yang digunakan perangkat lunak AWS IoT Greengrass Core untuk menginstal dan menjalankan komponen. Setiap tahap mendefinisikan skrip dan informasi lain yang menentukan bagaimana komponen berperilaku. Misalnya, ketika Anda menginstal komponen, perangkat lunak AWS IoT Greengrass Core menjalankan skrip `install` siklus hidup untuk komponen tersebut. Komponen pada perangkat inti memiliki status siklus hidup berikut:
+ `NEW` – Resep dan artefak komponen dimuat pada perangkat inti, namun komponennya tidak terpasang. Setelah komponen memasuki status ini, ia menjalankan [skrip instalasinya](component-recipe-reference.md#install-lifecycle-definition).
+ `INSTALLED` – Komponen dipasang pada perangkat inti. Komponen memasuki keadaan ini setelah menjalankan [install scripts](component-recipe-reference.md#install-lifecycle-definition).
+ `STARTING` – Komponen mulai pada perangkat inti. Komponen memasuki keadaan ini ketika menjalankan [install scripts](component-recipe-reference.md#startup-lifecycle-definition). Jika permulaan ini berhasil, komponen akan memasuki keadaan `RUNNING`.
+ `RUNNING` – Komponen mulai pada perangkat inti. Komponen memasuki keadaan ini ketika menjalankan [run script](component-recipe-reference.md#run-lifecycle-definition) atau saat memiliki proses latar belakang aktif dari startup script.
+ `FINISHED`— Komponen berjalan dengan sukses dan menyelesaikan operasinya.
+ `STOPPING` – Komponen berhenti. Komponen memasuki keadaan ini ketika menjalankan [shutdown scripts](component-recipe-reference.md#shutdown-lifecycle-definition).
+ `ERRORED` — Komponen mengalami kesalahan. Ketika komponen memasuki keadaan ini, ia akan menjalankan [skrip pemulihan](component-recipe-reference.md#recover-lifecycle-definition). Kemudian, komponen restart untuk mencoba kembali ke penggunaan normal. Jika komponen memasuki keadaan `ERRORED` tiga kali tanpa berjalan sukses, komponen menjadi `BROKEN`.
+ `BROKEN` — Komponen mengalami kesalahan beberapa kali dan tidak dapat pulih. Anda harus men-deploy komponen lagi untuk memperbaikinya.
+ `UNINSTALLING`— Komponen menjalankan [skrip uninstall](component-recipe-reference.md#uninstall-lifecycle-definition) sebelum penghapusan permanen. Komponen memasuki status ini ketika penerapan menghapus komponen dari perangkat. Status ini tidak berlaku selama upgrade versi komponen.
+ `UNINSTALLED`— Komponen menyelesaikan langkah siklus hidup uninstall dan dihapus dari perangkat.

## Jenis komponen
<a name="component-types"></a>

*Jenis komponen* menentukan bagaimana perangkat lunak AWS IoT Greengrass Core menjalankan komponen. Komponen dapat memiliki jenis berikut:
+ **Inti** (`aws.greengrass.nucleus`)

  Inti Greengrass adalah komponen yang menyediakan fungsionalitas minimum perangkat lunak Core. AWS IoT Greengrass Untuk informasi selengkapnya, lihat [Inti Greengrass](greengrass-nucleus-component.md).
+ **Plugin** (`aws.greengrass.plugin`)

  Inti Greengrass menjalankan komponen plugin dalam Java Virtual Machine (JVM) yang sama sebagai inti. Nukleus dimulai ulang saat Anda mengubah versi komponen plugin pada perangkat inti. Untuk menginstal dan menjalankan komponen plugin, Anda harus mengonfigurasi inti Greengrass agar berjalan sebagai layanan sistem. Untuk informasi selengkapnya, lihat [Konfigurasikan inti Greengrass sebagai layanan sistem](configure-greengrass-core-v2.md#configure-system-service).

  Beberapa komponen yang disediakan oleh AWS adalah komponen plugin, yang memungkinkan mereka untuk berinteraksi langsung dengan inti Greengrass. Komponen plugin menggunakan file log yang sama seperti inti Greengrass. Untuk informasi selengkapnya, lihat [Memantau AWS IoT Greengrass log](monitor-logs.md).
+ **Generik** (`aws.greengrass.generic`)

  Inti Greengrass menjalankan skrip siklus hidup komponen generik, jika komponen mendefinisikan siklus hidup.

  Jenis ini adalah jenis default untuk komponen kustom.
+ **Lambda (**) `aws.greengrass.lambda`

  Inti Greengrass menjalankan komponen fungsi Lambda menggunakan [Komponen peluncur Lambda](lambda-launcher-component.md).

  Bila Anda membuat komponen dari fungsi Lambda, komponen memiliki jenis ini. Untuk informasi selengkapnya, lihat [Jalankan AWS Lambda fungsi](run-lambda-functions.md).

**catatan**  <a name="recipe-component-type-recommendation"></a>
Kami tidak menyarankan Anda menentukan jenis komponen dalam resep. AWS IoT Greengrass menetapkan tipe untuk Anda saat Anda membuat komponen.