

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

# AWS IoT Greengrass alat pengembangan
<a name="greengrass-development-tools"></a>

Gunakan alat AWS IoT Greengrass pengembangan untuk membuat, menguji, membangun, menerbitkan, dan menyebarkan komponen Greengrass kustom.
+ **[Kit Pengembangan Greengrass CLI](greengrass-development-kit-cli.md)**

  [Gunakan AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) di lingkungan pengembangan lokal Anda untuk membuat komponen dari template dan komponen komunitas di Katalog Perangkat Lunak Greengrass.](greengrass-software-catalog.md) Anda dapat menggunakan CLI GDK untuk membangun komponen dan mempublikasikan komponen ke layanan sebagai komponen pribadi AWS IoT Greengrass di Anda. Akun AWS
+ **[Antarmuka Baris Perintah Greengrass](gg-cli.md)**

  Gunakan Antarmuka Baris Perintah Greengrass (Greengrass CLI) pada perangkat inti Greengrass untuk menyebarkan dan men-debug komponen Greengrass. CLI Greengrass adalah komponen yang dapat Anda terapkan ke perangkat inti Anda untuk membuat penerapan lokal, melihat detail tentang komponen yang diinstal, dan menjelajahi file log.
+ **[Konsol debug lokal](local-debug-console-component.md)**

  Gunakan konsol debug lokal di perangkat inti Greengrass untuk menyebarkan dan men-debug komponen Greengrass menggunakan antarmuka web dasbor lokal. Konsol debug lokal adalah komponen yang dapat Anda terapkan ke perangkat inti Anda untuk membuat penerapan lokal dan melihat detail tentang komponen yang diinstal.

AWS IoT Greengrass juga menyediakan hal-hal berikut SDKs yang dapat Anda gunakan dalam komponen Greengrass khusus:
+ Perpustakaan AWS IoT Device SDK, yang berisi perpustakaan komunikasi antarproses (IPC). Untuk informasi selengkapnya, lihat [Gunakan AWS IoT Device SDK untuk berkomunikasi dengan inti Greengrass, komponen lain, dan AWS IoT CoreBerkomunikasi dengan inti Greengrass, komponen lain, dan AWS IoT Core](interprocess-communication.md).
+ Stream Manager SDK, yang dapat Anda gunakan untuk mentransfer aliran data ke file. AWS Cloud Untuk informasi selengkapnya, lihat [Kelola aliran data di perangkat inti Greengrass](manage-data-streams.md).

**Topics**
+ [AWS IoT Greengrass Kit Pengembangan Antarmuka Baris Perintah](greengrass-development-kit-cli.md)
+ [Antarmuka Baris Perintah Greengrass](gg-cli.md)
+ [Gunakan Kerangka AWS IoT Greengrass Pengujian](gg-testing-framework.md)

# AWS IoT Greengrass Kit Pengembangan Antarmuka Baris Perintah
<a name="greengrass-development-kit-cli"></a>

 AWS IoT Greengrass [Development Kit Command-Line Interface (GDK CLI) menyediakan fitur yang membantu Anda mengembangkan komponen Greengrass khusus.](develop-greengrass-components.md) Anda dapat menggunakan CLI GDK untuk membuat, membangun, dan menerbitkan komponen kustom. [Saat Anda membuat repositori komponen dengan CLI GDK, Anda dapat memulai dari template atau komponen komunitas dari Katalog Perangkat Lunak Greengrass.](greengrass-software-catalog.md) Kemudian, Anda dapat memilih sistem build yang mengemas file sebagai arsip ZIP, menggunakan skrip build Maven atau Gradle, atau menjalankan perintah build kustom. Setelah membuat komponen, Anda dapat menggunakan CLI GDK untuk mempublikasikannya ke AWS IoT Greengrass layanan, sehingga Anda dapat menggunakan AWS IoT Greengrass konsol atau API untuk menyebarkan komponen ke perangkat inti Greengrass Anda.

Saat Anda mengembangkan komponen Greengrass tanpa CLI GDK, Anda harus memperbarui versi dan URIs artefak dalam file [resep komponen setiap kali Anda membuat versi baru komponen](component-recipe-reference.md). Saat Anda menggunakan CLI GDK, CLI dapat secara otomatis memperbarui versi dan URIs artefak untuk Anda setiap kali Anda menerbitkan versi baru komponen.

CLI GDK adalah open source dan tersedia di. GitHub Anda dapat menyesuaikan dan memperluas CLI GDK untuk memenuhi kebutuhan pengembangan komponen Anda. Kami mengundang Anda untuk membuka masalah dan menarik permintaan pada GitHub repositori. Anda dapat menemukan sumber CLI GDK di tautan berikut:. [https://github.com/aws-greengrass/aws-greengrass-gdk-cli](https://github.com/aws-greengrass/aws-greengrass-gdk-cli)

## Prasyarat
<a name="gdk-cli-prerequisites"></a>

Untuk menginstal dan menggunakan CLI Greengrass Development Kit, Anda memerlukan yang berikut ini:
+ Sebuah Akun AWS. Jika Anda tidak memilikinya, lihat [Mengatur sebuah Akun AWS](setting-up.md#set-up-aws-account).
+ Komputer pengembangan seperti Windows, macOS, atau Unix dengan koneksi internet.
+ Untuk GDK CLI versi 1.1.0 atau yang lebih baru, [Python](https://www.python.org/downloads/) 3.6 atau yang lebih baru diinstal pada komputer pengembangan Anda.

  Untuk GDK CLI versi 1.0.0[,](https://www.python.org/downloads/) Python 3.8 atau yang lebih baru diinstal pada komputer pengembangan Anda.
+ [Git](https://git-scm.com/) diinstal pada komputer pengembangan Anda.
+ <a name="development-component-aws-cli-prerequisite"></a>AWS Command Line Interface (AWS CLI) diinstal dan dikonfigurasi dengan kredensional di komputer pengembangan Anda. Untuk informasi selengkapnya, lihat [Menginstal, memperbarui, dan melepas pemasangan AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dan [Mengonfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) di *Panduan Pengguna AWS Command Line Interface *.
**catatan**  
Jika Anda menggunakan Raspberry Pi atau perangkat ARM 32-bit lainnya, instal AWS CLI V1. AWS CLI V2 tidak tersedia untuk perangkat ARM 32-bit. Untuk informasi selengkapnya, lihat [Menginstal, memperbarui, dan menghapus instalan AWS CLI versi 1](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv1.html).
+ Untuk menggunakan CLI GDK untuk mempublikasikan komponen ke AWS IoT Greengrass layanan, Anda harus memiliki izin berikut:
  + `s3:CreateBucket`
  + `s3:GetBucketLocation`
  + `s3:PutObject`
  + `greengrass:CreateComponentVersion`
  + `greengrass:ListComponentVersions`
+ Untuk menggunakan CLI GDK untuk membangun komponen yang artefaknya ada di bucket S3 dan bukan di sistem file lokal, Anda harus memiliki izin berikut:
  + `s3:ListBucket`

  Fitur ini tersedia untuk GDK CLI v1.1.0 dan yang lebih baru.

## Changelog
<a name="gdk-cli-changelog"></a>

Tabel berikut menjelaskan perubahan di setiap versi CLI GDK. Untuk informasi selengkapnya, lihat halaman [Rilis CLI GDK](https://github.com/aws-greengrass/aws-greengrass-gdk-cli/releases) di. GitHub


|  **Versi**  |  **Perubahan**  | 
| --- | --- | 
|  1.6.2  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.6.1  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.6.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.5.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.4.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.3.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.3 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.2 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.1 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
| 1.2.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/greengrass-development-kit-cli.html)  | 
|  1.0.0  |  Versi awal.  | 

# Instal atau perbarui Antarmuka AWS IoT Greengrass Baris Perintah Kit Pengembangan
<a name="install-greengrass-development-kit-cli"></a>

 AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) dibangun di atas Python, sehingga Anda dapat `pip` menggunakannya untuk menginstalnya di komputer pengembangan Anda.

**Tip**  
[Anda juga dapat menginstal CLI GDK di lingkungan virtual Python seperti venv.](https://docs.python.org/3/library/venv.html#module-venv) Untuk informasi selengkapnya, lihat [Lingkungan dan Paket Virtual](https://docs.python.org/3/tutorial/venv.html) dalam *dokumentasi Python 3*.

**Untuk menginstal atau memperbarui CLI GDK**

1. [Jalankan perintah berikut untuk menginstal versi terbaru CLI GDK dari GitHub repositorinya.](https://github.com/aws-greengrass/aws-greengrass-gdk-cli)

   ```
   python3 -m pip install -U git+https://github.com/aws-greengrass/aws-greengrass-gdk-cli.git@v1.6.2
   ```
**catatan**  
Untuk menginstal versi tertentu dari CLI GDK, *versionTag* ganti dengan tag versi untuk menginstal. [Anda dapat melihat tag versi untuk CLI GDK di GitHub repositorinya.](https://github.com/aws-greengrass/aws-greengrass-gdk-cli/tags)  

   ```
   python3 -m pip install -U git+https://github.com/aws-greengrass/aws-greengrass-gdk-cli.git@versionTag
   ```

1. <a name="gdk-cli-verify-installation"></a>Jalankan perintah berikut untuk memverifikasi bahwa CLI GDK berhasil diinstal.

   ```
   gdk --help
   ```

   Jika `gdk` perintah tidak ditemukan, tambahkan foldernya ke PATH.
   + Di perangkat Linux, tambahkan `/home/MyUser/.local/bin` ke PATH, dan ganti *MyUser* dengan nama pengguna Anda.
   + Pada perangkat Windows, tambahkan `PythonPath\\Scripts` ke PATH, dan ganti *PythonPath* dengan jalur ke folder Python di perangkat Anda.

Anda sekarang dapat menggunakan CLI GDK untuk membuat, membangun, dan menerbitkan komponen Greengrass. Untuk informasi selengkapnya tentang cara menggunakan CLI GDK, lihat. [AWS IoT Greengrass Perintah Antarmuka Baris Perintah Kit Pengembangan](greengrass-development-kit-cli-commands.md)

# AWS IoT Greengrass Perintah Antarmuka Baris Perintah Kit Pengembangan
<a name="greengrass-development-kit-cli-commands"></a>

 AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) menyediakan antarmuka baris perintah yang dapat Anda gunakan untuk membuat, membangun, dan menerbitkan komponen Greengrass di komputer pengembangan Anda. Perintah CLI GDK menggunakan format berikut.

```
gdk <command> <subcommand> [arguments]
```

Saat Anda [menginstal CLI GDK](install-greengrass-development-kit-cli.md), penginstal `gdk` menambahkan ke PATH sehingga Anda dapat menjalankan CLI GDK dari baris perintah.

Anda dapat menggunakan argumen berikut dengan perintah apa pun:
+ Gunakan `-h` atau `--help` untuk informasi tentang perintah CLI GDK.
+ Gunakan `-v` atau `--version` untuk melihat versi CLI GDK apa yang diinstal.
+ Gunakan `-d` atau `--debug` untuk menampilkan log verbose yang dapat Anda gunakan untuk men-debug CLI GDK.

Bagian ini menjelaskan perintah CLI GDK dan memberikan contoh untuk setiap perintah. Sinopsis untuk setiap perintah menunjukkan argumen dan penggunaannya. Argumen opsional ditampilkan dalam tanda kurung siku.

**Topics**
+ [komponen](greengrass-development-kit-cli-component.md)
+ [config](greengrass-development-kit-cli-config.md)
+ [tes-e2e](greengrass-development-kit-cli-test.md)

# komponen
<a name="greengrass-development-kit-cli-component"></a>

Gunakan `component` perintah di AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) untuk membuat, membangun, dan menerbitkan komponen Greengrass kustom.

**Topics**
+ [inisialisasi](#greengrass-development-kit-cli-component-init)
+ [build](#greengrass-development-kit-cli-component-build)
+ [publish](#greengrass-development-kit-cli-component-publish)
+ [daftar](#greengrass-development-kit-cli-component-list)

## inisialisasi
<a name="greengrass-development-kit-cli-component-init"></a>

Menginisialisasi folder komponen Greengrass dari template komponen atau komponen komunitas.

<a name="gdk-cli-component-templates-community-components"></a>[CLI GDK mengambil komponen komunitas dari Katalog [Perangkat Lunak Greengrass dan templat komponen dari repositori Template](greengrass-software-catalog.md) Komponen pada.AWS IoT Greengrass GitHub](https://github.com/aws-greengrass/aws-greengrass-component-templates)

**catatan**  
<a name="gdk-cli-component-init-empty-folder-requirement"></a>Jika Anda menggunakan GDK CLI v1.0.0, Anda harus menjalankan perintah ini di folder kosong. CLI GDK mengunduh template atau komponen komunitas ke folder saat ini.  
<a name="gdk-cli-component-init-empty-folder-requirement-gdk-cli-v1.1.0"></a>Jika Anda menggunakan GDK CLI v1.1.0 atau yang lebih baru, Anda dapat menentukan `--name` argumen untuk menentukan folder tempat CLI GDK mengunduh template atau komponen komunitas. Jika Anda menggunakan argumen ini, tentukan folder yang tidak ada. CLI GDK membuat folder untuk Anda. Jika Anda tidak menentukan argumen ini, CLI GDK menggunakan folder saat ini, yang harus kosong.  
Jika komponen menggunakan [sistem pembuatan zip](gdk-cli-configuration-file.md#gdk-cli-configuration-file-build-system), CLI GDK membuat zip file tertentu di folder komponen ke dalam file zip dengan nama yang sama dengan folder komponen. Misalnya, jika nama folder komponen adalah`HelloWorld`, CLI GDK membuat file zip bernama. `HelloWorld.zip` Dalam resep komponen, nama artefak zip harus cocok dengan nama folder komponen. Jika Anda menggunakan GDK CLI versi 1.0.0 pada perangkat Windows, folder komponen dan nama file zip harus berisi hanya huruf kecil.  
Jika Anda menginisialisasi template atau komponen komunitas yang menggunakan sistem pembuatan zip ke folder dengan nama yang berbeda dari template atau komponen, Anda harus mengubah nama artefak zip dalam resep komponen. Perbarui `Artifacts` dan `Lifecycle` definisi sedemikian rupa sehingga nama file zip cocok dengan nama folder komponen. Contoh berikut menyoroti nama file zip dalam `Artifacts` dan `Lifecycle` definisi.  

```
{
  ...
  "Manifests": [
    {
      "Platform": {
        "os": "all"
      },
      "Artifacts": [
        {
          "URI": "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip",
          "Unarchive": "ZIP"
        }
      ],
      "Lifecycle": {
        "Run": "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
      }
    }
  ]
}
```

```
---
...
Manifests:
  - Platform:
      os: all
    Artifacts:
      - URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip"
        Unarchive: ZIP
    Lifecycle:
      Run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
```

**Sinopsis**  

```
$ gdk component init
    [--language]
    [--template]
    [--repository]
    [--name]
```

**Argumen (inisialisasi dari template komponen)**  
+ `-l`, `--language` — Bahasa pemrograman yang digunakan untuk template yang Anda tentukan.

  Anda harus menentukan salah satu `--repository` atau `--language` dan`--template`.
+ `-t`, `--template` — Template komponen yang digunakan untuk proyek komponen lokal. Untuk melihat template yang tersedia, gunakan perintah [list](#greengrass-development-kit-cli-component-list).

  Anda harus menentukan salah satu `--repository` atau `--language` dan`--template`.
+ `-n`, `--name` — (Opsional) Nama folder lokal tempat CLI GDK menginisialisasi komponen. Tentukan folder yang tidak ada. CLI GDK membuat folder untuk Anda.

  Fitur ini tersedia untuk GDK CLI v1.1.0 dan yang lebih baru.

**Argumen (inisialisasi dari komponen komunitas)**  
+ `-r`, `--repository` — Komponen komunitas untuk memeriksa ke folder lokal. Untuk melihat komponen komunitas yang tersedia, gunakan perintah [list](#greengrass-development-kit-cli-component-list).

  Anda harus menentukan salah satu `--repository` atau `--language` dan`--template`.
+ `-n`, `--name` — (Opsional) Nama folder lokal tempat CLI GDK menginisialisasi komponen. Tentukan folder yang tidak ada. CLI GDK membuat folder untuk Anda.

  Fitur ini tersedia untuk GDK CLI v1.1.0 dan yang lebih baru.

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini untuk menginisialisasi folder komponen dari template Python Hello World.  

```
$ gdk component init -l python -t HelloWorld
[2021-11-29 12:51:40] INFO - Initializing the project directory with a python component template - 'HelloWorld'.
[2021-11-29 12:51:40] INFO - Fetching the component template 'HelloWorld-python' from Greengrass Software Catalog.
```
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini untuk menginisialisasi folder komponen dari komponen komunitas.  

```
$ gdk component init -r aws-greengrass-labs-database-influxdb
[2022-01-24 15:44:33] INFO - Initializing the project directory with a component from repository catalog - 'aws-greengrass-labs-database-influxdb'.
[2022-01-24 15:44:33] INFO - Fetching the component repository 'aws-greengrass-labs-database-influxdb' from Greengrass Software Catalog.
```

## build
<a name="greengrass-development-kit-cli-component-build"></a>

Bangun sumber komponen menjadi resep dan artefak yang dapat Anda publikasikan ke AWS IoT Greengrass layanan. CLI GDK menjalankan sistem build yang Anda tentukan dalam file konfigurasi [CLI GDK](gdk-cli-configuration-file.md),. `gdk-config.json` Anda harus menjalankan perintah ini di folder yang sama di mana `gdk-config.json` file itu ada.

Saat Anda menjalankan perintah ini, CLI GDK membuat resep dan artefak di folder `greengrass-build` di folder komponen. CLI GDK menyimpan resep di `greengrass-build/recipes` folder dan menyimpan artefak di folder. `greengrass-build/artifacts/componentName/componentVersion`

Jika Anda menggunakan GDK CLI v1.1.0 atau yang lebih baru, resep komponen dapat menentukan artefak yang ada di bucket S3 tetapi tidak di folder build komponen lokal. Anda dapat menggunakan fitur ini untuk mengurangi penggunaan bandwidth ketika Anda mengembangkan komponen dengan artefak besar, seperti model pembelajaran mesin.

Setelah membuat komponen, Anda dapat melakukan salah satu hal berikut untuk mengujinya di perangkat inti Greengrass:
+ Jika Anda mengembangkan pada perangkat yang berbeda dari tempat Anda menjalankan perangkat lunak AWS IoT Greengrass Core, Anda harus mempublikasikan komponen untuk menerapkannya ke perangkat inti Greengrass. Publikasikan komponen ke AWS IoT Greengrass layanan, dan terapkan ke perangkat inti Greengrass. Untuk informasi selengkapnya, lihat perintah [publish](#greengrass-development-kit-cli-component-build) dan[Buat deployment](create-deployments.md).
+ Jika Anda mengembangkan pada perangkat yang sama di mana Anda menjalankan perangkat lunak AWS IoT Greengrass Core, Anda dapat mempublikasikan komponen ke AWS IoT Greengrass layanan yang akan digunakan, atau Anda dapat membuat penyebaran lokal untuk menginstal dan menjalankan komponen. Untuk membuat penerapan lokal, gunakan CLI Greengrass. Untuk informasi selengkapnya, silakan lihat [Antarmuka Baris Perintah Greengrass](gg-cli.md) dan [Uji AWS IoT Greengrass komponen dengan penerapan lokal](test-components.md). Saat Anda membuat penyebaran lokal, tentukan `greengrass-build/recipes` sebagai folder resep dan `greengrass-build/artifacts` sebagai folder artefak.

**Sinopsis**  

```
$ gdk component build
```

**Argumen**  
Tidak ada

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ gdk component build
[2021-11-29 13:18:49] INFO - Getting project configuration from gdk-config.json
[2021-11-29 13:18:49] INFO - Found component recipe file 'recipe.yaml' in the  project directory.
[2021-11-29 13:18:49] INFO - Building the component 'com.example.PythonHelloWorld' with the given project configuration.
[2021-11-29 13:18:49] INFO - Using 'zip' build system to build the component.
[2021-11-29 13:18:49] WARNING - This component is identified as using 'zip' build system. If this is incorrect, please exit and specify custom build command in the 'gdk-config.json'.
[2021-11-29 13:18:49] INFO - Zipping source code files of the component.
[2021-11-29 13:18:49] INFO - Copying over the build artifacts to the greengrass component artifacts build folder.
[2021-11-29 13:18:49] INFO - Updating artifact URIs in the recipe.
[2021-11-29 13:18:49] INFO - Creating component recipe in 'C:\Users\MyUser\Documents\greengrass-components\python\HelloWorld\greengrass-build\recipes'.
```

## publish
<a name="greengrass-development-kit-cli-component-publish"></a>

Publikasikan komponen ini ke AWS IoT Greengrass layanan. Perintah ini mengunggah artefak build ke bucket S3, memperbarui URI artefak dalam resep, dan membuat versi komponen baru dari resep. CLI GDK menggunakan bucket S3 AWS dan Wilayah yang Anda tentukan dalam file konfigurasi [CLI GDK](gdk-cli-configuration-file.md),. `gdk-config.json` Anda harus menjalankan perintah ini di folder yang sama di mana `gdk-config.json` file itu ada.

<a name="gdk-cli-s3-bucket-name-formation"></a>Jika Anda menggunakan GDK CLI v1.1.0 atau yang lebih baru, Anda dapat menentukan argumen untuk menentukan `--bucket` bucket S3 tempat CLI GDK mengunggah artefak komponen. <a name="gdk-cli-s3-bucket-name-formation-format"></a>Jika Anda tidak menentukan argumen ini, CLI GDK akan mengunggah ke bucket S3 yang namanya, di *bucket* mana *region* dan `bucket-region-accountId` merupakan nilai yang Anda tentukan, *accountId* dan merupakan ID `gdk-config.json` Anda. Akun AWS  CLI GDK membuat bucket jika tidak ada.

Jika Anda menggunakan GDK CLI v1.2.0 atau yang lebih baru, Anda dapat mengganti yang ditentukan dalam file Wilayah AWS konfigurasi CLI GDK menggunakan parameter. `--region` Anda juga dapat menentukan opsi tambahan menggunakan `--options` parameter. Untuk daftar opsi yang tersedia, lihat[File konfigurasi CLI Kit Pengembangan Greengrass](gdk-cli-configuration-file.md).

Saat Anda menjalankan perintah ini, CLI GDK menerbitkan komponen dengan versi yang Anda tentukan dalam resep. Jika Anda menentukan`NEXT_PATCH`, CLI GDK menggunakan versi patch berikutnya yang belum ada. *Versi semantik menggunakan mayor.* *kecil*. sistem penomoran *patch*. Untuk informasi lebih lanjut, lihat [spesifikasi versi semantik](https://semver.org/).

**catatan**  
Jika Anda menggunakan GDK CLI v1.1.0 atau yang lebih baru, saat Anda menjalankan perintah ini, CLI GDK akan memeriksa apakah komponen tersebut dibangun. Jika komponen tidak dibangun, [CLI GDK akan membangun](#greengrass-development-kit-cli-component-build) komponen sebelum menerbitkan komponen.

**Sinopsis**  

```
$ gdk component publish
    [--bucket] [--region] [--options]
```

**Argumen**  
+ `-b`, `--bucket` — (Opsional) Tentukan nama bucket S3 tempat CLI GDK menerbitkan artefak komponen.

   <a name="gdk-cli-s3-bucket-name-formation-format"></a>Jika Anda tidak menentukan argumen ini, CLI GDK akan mengunggah ke bucket S3 yang namanya, di *bucket* mana *region* dan `bucket-region-accountId` merupakan nilai yang Anda tentukan, *accountId* dan merupakan ID `gdk-config.json` Anda. Akun AWS  CLI GDK membuat bucket jika tidak ada. 

  CLI GDK membuat bucket jika tidak ada.

  Fitur ini tersedia untuk GDK CLI v1.1.0 dan yang lebih baru.
+ `-r`, `--region` — (Opsional) Tentukan nama Wilayah AWS to saat komponen dibuat. Argumen ini mengesampingkan nama Wilayah dalam konfigurasi CLI GDK.

  Fitur ini tersedia untuk GDK CLI v1.2.0 dan yang lebih baru.
+ `-o`, `--options` (Opsional) Tentukan daftar opsi untuk menerbitkan komponen. Argumen harus berupa string JSON yang valid atau path file ke file JSON yang berisi opsi penerbitan. Argumen ini mengesampingkan opsi dalam konfigurasi CLI GDK. 

  Fitur ini tersedia untuk GDK CLI v1.2.0 dan yang lebih baru.

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ gdk component publish
[2021-11-29 13:45:29] INFO - Getting project configuration from gdk-config.json
[2021-11-29 13:45:29] INFO - Found component recipe file 'recipe.yaml' in the  project directory.
[2021-11-29 13:45:29] INFO - Found credentials in shared credentials file: ~/.aws/credentials
[2021-11-29 13:45:30] INFO - Publishing the component 'com.example.PythonHelloWorld' with the given project configuration.
[2021-11-29 13:45:30] INFO - No private version of the component 'com.example.PythonHelloWorld' exist in the account. Using '1.0.0' as the next version to create.
[2021-11-29 13:45:30] INFO - Uploading the component built artifacts to s3 bucket.
[2021-11-29 13:45:30] INFO - Uploading component artifacts to S3 bucket: {bucket}. If this is your first time using this bucket, add the 's3:GetObject' permission to each core device's token exchange role to allow it to download the component artifacts. For more information, see https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html.
[2021-11-29 13:45:30] INFO - Not creating an artifacts bucket as it already exists.
[2021-11-29 13:45:30] INFO - Updating the component recipe com.example.PythonHelloWorld-1.0.0.
[2021-11-29 13:45:30] INFO - Creating a new greengrass component com.example.PythonHelloWorld-1.0.0
[2021-11-29 13:45:30] INFO - Created private version '1.0.0' of the component in the account.'com.example.PythonHelloWorld'.
```

## daftar
<a name="greengrass-development-kit-cli-component-list"></a>

Ambil daftar template komponen dan komponen komunitas yang tersedia.

<a name="gdk-cli-component-templates-community-components"></a>[CLI GDK mengambil komponen komunitas dari Katalog [Perangkat Lunak Greengrass dan templat komponen dari repositori Template](greengrass-software-catalog.md) Komponen pada.AWS IoT Greengrass GitHub](https://github.com/aws-greengrass/aws-greengrass-component-templates)

Anda dapat meneruskan output dari perintah ini ke perintah [init](#greengrass-development-kit-cli-component-init) untuk menginisialisasi repositori komponen dari template dan komponen komunitas.

**Sinopsis**  

```
$ gdk component list
    [--template]
    [--repository]
```

**Argumen**  
+ `-t`, `--template` — (Opsional) Tentukan argumen ini untuk mencantumkan templat komponen yang tersedia. Perintah ini menampilkan nama dan bahasa dari setiap template dalam format`name-language`. Misalnya, di`HelloWorld-python`, nama template adalah `HelloWorld` dan bahasanya`python`.
+ `-r`, `--repository` — (Opsional) Tentukan argumen ini untuk daftar repositori komponen komunitas yang tersedia.

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ gdk component list --template
[2021-11-29 12:29:04] INFO - Listing all the available component templates from Greengrass Software Catalog.
[2021-11-29 12:29:04] INFO - Found '2' component templates to display.
1. HelloWorld-python
2. HelloWorld-java
```

# config
<a name="greengrass-development-kit-cli-config"></a>

Gunakan `config` perintah di AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) untuk memodifikasi konfigurasi untuk GDK dalam file konfigurasi,. `gdk-config.json`

**Topics**
+ [perbarui](#greengrass-development-kit-cli-config-update)

## perbarui
<a name="greengrass-development-kit-cli-config-update"></a>

Mulai prompt interaktif untuk memodifikasi bidang dalam file konfigurasi GDK yang ada.

**Sinopsis**  

```
$ gdk config update
    [--component]
```

**Argumen**  
+ `-c`, `--component` — Untuk memperbarui bidang terkait komponen dalam file. `gdk-config.json` Argumen ini diperlukan karena ini adalah satu-satunya pilihan.

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini untuk mengkonfigurasi komponen.  

```
$ gdk config update --component
Current value of the REQUIRED component_name is (default: com.example.PythonHelloWorld): 
Current value of the REQUIRED author is (default: author): 
Current value of the REQUIRED version is (default: NEXT_PATCH): 
Do you want to change the build configurations? (y/n) 
Do you want to change the publish configurations? (y/n)
[2023-09-26 10:19:48] INFO - Config file has been updated. Exiting...
```

# tes-e2e
<a name="greengrass-development-kit-cli-test"></a>

Gunakan `test-e2e` perintah dalam AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) untuk menginisialisasi, membangun, dan end-to-end menjalankan modul pengujian dalam proyek GDK.

**Topics**
+ [inisialisasi](#greengrass-development-kit-cli-test-init)
+ [build](#greengrass-development-kit-cli-test-build)
+ [run](#greengrass-development-kit-cli-test-run)

## inisialisasi
<a name="greengrass-development-kit-cli-test-init"></a>

Inisialisasi proyek CLI GDK yang ada dengan modul pengujian yang menggunakan Greengrass Testing Framework (GTF).

[Secara default, CLI GDK mengambil template modul maven dari AWS IoT Greengrass repositori Component Templates pada. GitHub](https://github.com/aws-greengrass/aws-greengrass-component-templates) Modul maven ini dilengkapi dengan ketergantungan pada file JAR. `aws-greengrass-testing-standalone`

Perintah ini membuat direktori baru yang disebut `gg-e2e-tests` di dalam proyek GDK. Jika direktori modul pengujian sudah ada dan tidak kosong, perintah keluar tanpa melakukan apa pun. `gg-e2e-tests`Folder ini berisi fitur Mentimun dan definisi langkah yang terstruktur dalam proyek maven.

Secara default, perintah ini akan mencoba menggunakan versi rilis terbaru dari GTF.

**Sinopsis**  

```
$ gdk test-e2e init
    [--gtf-version]
```

**Argumen**  
+ `-ov`, `--gtf-version` — (Opsional) Versi GTF untuk digunakan dengan modul end-to-end pengujian dalam proyek GDK. Nilai ini harus menjadi salah satu versi GTF dari [rilis](https://github.com/aws-greengrass/aws-greengrass-testing/releases). Argumen ini mengesampingkan konfigurasi CLI GDK. `gtf_version`

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini untuk menginisialisasi proyek GDK dengan modul pengujian.  

```
$ gdk test-e2e init
[2023-12-06 12:20:28] INFO - Using the GTF version provided in the GDK test config 1.2.0
[2023-12-06 12:20:28] INFO - Downloading the E2E testing template from GitHub into gg-e2e-tests directory...
```

## build
<a name="greengrass-development-kit-cli-test-build"></a>

**catatan**  
Anda harus membangun komponen dengan menjalankan **gdk component build** sebelum membangun modul end-to-end pengujian.

Bangun modul end-to-end pengujian. CLI GDK membangun modul pengujian menggunakan sistem build yang Anda tentukan dalam file [konfigurasi CLI GDK](gdk-cli-configuration-file.md), di bawah properti. `gdk-config.json` `test-e2e` Anda harus menjalankan perintah ini di folder yang sama di mana `gdk-config.json` file itu ada.

Secara default, CLI GDK menggunakan sistem build maven untuk membangun modul pengujian. [Maven](https://maven.apache.org/) diperlukan untuk menjalankan perintah. `gdk test-e2e build`

Anda harus membangun komponen dengan menjalankan **gdk-component-build** sebelum membangun modul pengujian, jika file fitur pengujian memiliki variabel seperti `GDK_COMPONENT_NAME` dan `GDK_COMPONENT_RECIPE_FILE` untuk diinterpolasi.

Saat Anda menjalankan perintah ini, CLI GDK menginterpolasi semua variabel dari konfigurasi proyek GDK dan membangun modul untuk menghasilkan file JAR `gg-e2e-tests` pengujian akhir.

**Sinopsis**  

```
$ gdk test-e2e build
```

**Argumen**  
Tidak ada

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ gdk test-e2e build
[2023-07-20 15:36:48] INFO - Updating feature file: file:///path/to//HelloWorld/greengrass-build/gg-e2e-tests/src/main/resources/greengrass/features/component.feature
[2023-07-20 15:36:48] INFO - Creating the E2E testing recipe file:///path/to/HelloWorld/greengrass-build/recipes/e2e_test_recipe.yaml
[2023-07-20 15:36:48] INFO - Building the E2E testing module
[2023-07-20 15:36:48] INFO - Running the build command 'mvn package'
.........
```

## run
<a name="greengrass-development-kit-cli-test-run"></a>

Jalankan modul pengujian dengan opsi pengujian di file konfigurasi GDK.

**catatan**  
Anda harus membangun modul pengujian dengan menjalankan **gdk test-e2e build** sebelum menjalankan end-to-end tes.

**Sinopsis**  

```
$ gdk test-e2e run
    [--gtf-options]
```

**Argumen**  
+ `-oo`, `--gtf-options` — (Opsional) Tentukan daftar opsi untuk menjalankan end-to-end tes. Argumen harus berupa string JSON yang valid atau path file ke file JSON yang berisi opsi GTF. Opsi yang disediakan dalam file konfigurasi digabungkan dengan yang disediakan dalam argumen perintah. Jika opsi hadir di kedua tempat, yang ada dalam argumen lebih diutamakan daripada yang dari file konfigurasi.

  Jika `tags` opsi tidak ditentukan dalam perintah ini, GDK menggunakan `Sample` tag. Jika tidak `ggc-archive` ditentukan, GDK mengunduh versi terbaru dari arsip inti Greengrass.

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ gdk test-e2e run
[2023-07-20 16:35:53] INFO - Downloading latest nucleus archive from url https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-latest.zip
[2023-07-20 16:35:57] INFO - Running test jar with command java -jar /path/to/greengrass-build/gg-e2e-tests/target/uat-features-1.0.0.jar —ggc-archive=/path/to/aws-greengrass-gdk-cli/HelloWorld/greengrass-build/greengrass-nucleus-latest.zip —tags=Sample

16:35:59.693 [] [] [] [INFO] com.aws.greengrass.testing.modules.GreengrassContextModule - Extracting /path/to/workplace/aws-greengrass-gdk-cli/HelloWorld/greengrass-build/greengrass-nucleus-latest.zip into /var/folders/7g/ltzcb_3s77nbtmkzfb6brwv40000gr/T/gg-testing-7718418114158172636/greengrass
16:36:00.534 [gtf-1.1.0-SNAPSHOT] [] [] [INFO] com.aws.greengrass.testing.features.LoggerSteps - GTF Version is gtf-1.1.0-SNAPSHOT
.......
```

# File konfigurasi CLI Kit Pengembangan Greengrass
<a name="gdk-cli-configuration-file"></a>

 AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) membaca dari file konfigurasi `gdk-config.json` bernama untuk membangun dan menerbitkan komponen. File konfigurasi ini harus ada di root repositori komponen. Anda dapat menggunakan perintah GDK [CLI init](greengrass-development-kit-cli-component.md#greengrass-development-kit-cli-component-init) untuk menginisialisasi repositori komponen dengan file konfigurasi ini.

**Topics**
+ [Format file konfigurasi GDK CLI](#gdk-config-format)
+ [Contoh file konfigurasi GDK CLI](#gdk-config-examples)

## Format file konfigurasi GDK CLI
<a name="gdk-config-format"></a>

Saat Anda menentukan file konfigurasi CLI GDK untuk komponen, Anda menentukan informasi berikut dalam format JSON.

`gdk_version`  
Versi minimum CLI GDK yang kompatibel dengan komponen ini. [Nilai ini harus menjadi salah satu versi CLI GDK dari rilis.](https://github.com/aws-greengrass/aws-greengrass-gdk-cli/releases)

`component`  
Konfigurasi untuk komponen ini.    
`componentName`    
`author`  
Penulis atau penerbit komponen.  
`version`  
Versi komponen. Tentukan satu dari yang berikut ini:  <a name="gdk-cli-configuration-file-component-version-options"></a>
+ `NEXT_PATCH`— Saat Anda memilih opsi ini, CLI GDK menetapkan versi saat Anda mempublikasikan komponen. CLI GDK menanyakan layanan AWS IoT Greengrass untuk mengidentifikasi versi komponen terbaru yang diterbitkan. Kemudian, ia menetapkan versi ke versi patch berikutnya setelah versi itu. Jika Anda belum mempublikasikan komponen sebelumnya, CLI GDK menggunakan versi. `1.0.0`

  Jika Anda memilih opsi ini, Anda tidak dapat menggunakan [CLI Greengrass](greengrass-cli-component.md) untuk menyebarkan dan menguji komponen secara lokal ke komputer pengembangan lokal Anda yang menjalankan perangkat lunak Core. AWS IoT Greengrass Untuk mengaktifkan penerapan lokal, Anda harus menentukan versi semantik sebagai gantinya.
+ Versi semantik, seperti. **1.0.0** *Versi semantik menggunakan mayor.* *kecil*. sistem penomoran *patch*. Untuk informasi lebih lanjut, lihat [spesifikasi versi semantik](https://semver.org/).

  Jika Anda mengembangkan komponen pada perangkat inti Greengrass tempat Anda ingin menerapkan dan menguji komponen, pilih opsi ini. [Anda harus membangun komponen dengan versi tertentu untuk membuat penerapan lokal dengan CLI Greengrass.](greengrass-cli-component.md)  
`build`  
Konfigurasi yang digunakan untuk membangun sumber komponen ini menjadi artefak. Objek ini berisi informasi berikut:    
  `build_system`   
Sistem build yang akan digunakan. Pilih dari salah satu pilihan berikut:  <a name="gdk-cli-configuration-file-component-build-system-options"></a>
+ `zip`— Paket folder komponen ke dalam file ZIP untuk didefinisikan sebagai satu-satunya artefak komponen. Pilih opsi ini untuk jenis komponen berikut:
  + Komponen yang menggunakan bahasa pemrograman yang ditafsirkan, seperti JavaScript Python atau.
  + Komponen yang mengemas file selain kode, seperti model pembelajaran mesin atau sumber daya lainnya.

  CLI GDK meritsleting folder komponen ke dalam file zip dengan nama yang sama dengan folder komponen. Misalnya, jika nama folder komponen adalah`HelloWorld`, CLI GDK membuat file zip bernama. `HelloWorld.zip`
**catatan**  
Jika Anda menggunakan GDK CLI versi 1.0.0 pada perangkat Windows, folder komponen dan nama file zip harus berisi hanya huruf kecil.

  Ketika CLI GDK meritsleting folder komponen ke dalam file zip, ia melewatkan file-file berikut:
  + File `gdk-config.json`
  + File resep (`recipe.json`atau`recipe.yaml`)
  + Membangun folder, seperti `greengrass-build`
+ `maven`— Menjalankan `mvn clean package` perintah untuk membangun sumber komponen menjadi artefak. Pilih opsi ini untuk komponen yang menggunakan [Maven](https://maven.apache.org/), seperti komponen Java.

  Pada perangkat Windows, fitur ini tersedia untuk GDK CLI v1.1.0 dan yang lebih baru.
+ `gradle`— Menjalankan `gradle build` perintah untuk membangun sumber komponen menjadi artefak. Pilih opsi ini untuk komponen yang menggunakan [Gradle](https://gradle.org/). Fitur ini tersedia untuk GDK CLI v1.1.0 dan yang lebih baru.

  Sistem `gradle` build mendukung Kotlin DSL sebagai file build. Fitur ini tersedia untuk GDK CLI v1.2.0 dan yang lebih baru.
+ `gradlew`— Menjalankan `gradlew` perintah untuk membangun sumber komponen menjadi artefak. Pilih opsi ini untuk komponen yang menggunakan [Gradle Wrapper](https://docs.gradle.org/current/userguide/gradle_wrapper.html).

  Fitur ini tersedia untuk GDK CLI v1.2.0 dan yang lebih baru.
+ `custom`— Menjalankan perintah khusus untuk membangun sumber komponen menjadi resep dan artefak. Tentukan perintah khusus dalam `custom_build_command` parameter.  
`custom_build_command`  
(Opsional) Perintah custom build untuk dijalankan untuk sistem build kustom. Anda harus menentukan parameter ini jika Anda menentukan `custom` untuk`build_system`.  
Perintah ini harus membuat resep dan artefak di folder berikut dalam folder komponen. CLI GDK membuat folder ini untuk Anda saat Anda menjalankan perintah build [komponen](greengrass-development-kit-cli-component.md#greengrass-development-kit-cli-component-build).  
+ Folder resep: `greengrass-build/recipes`
+ Folder artefak: `greengrass-build/artifacts/componentName/componentVersion`

  Ganti *componentName* dengan nama komponen, dan ganti *componentVersion* dengan versi komponen atau`NEXT_PATCH`.
Anda dapat menentukan satu string atau daftar string, di mana setiap string adalah kata dalam perintah. Misalnya, untuk menjalankan perintah build kustom untuk komponen C\$1\$1, Anda dapat menentukan **cmake --build build --config Release** atau**["cmake", "--build", "build", "--config", "Release"]**.  
Untuk melihat contoh sistem build kustom, lihat [aws.greengrass.labs.LocalWebServer community component pada GitHub](https://github.com/awslabs/aws-greengrass-labs-local-web-server).  
`options`  
(Opsional) Opsi konfigurasi tambahan yang digunakan selama proses pembuatan komponen.  
Fitur ini tersedia untuk GDK CLI v1.2.0 dan yang lebih baru.    
`excludes`  
Daftar pola glob yang menentukan file mana yang akan dikecualikan dari direktori komponen saat membuat file zip. Hanya berlaku ketika `build_system` ada`zip`.  
Di GDK CLI versi 1.4.0 dan sebelumnya, file apa pun yang cocok dengan entri dalam daftar pengecualian dikecualikan dari semua subdirektori komponen. Untuk mencapai perilaku yang sama di GDK CLI versi 1.5.0 dan yang lebih baru, tambahkan `**/` entri yang ada dalam daftar pengecualian. Misalnya, `*.txt` akan mengecualikan file teks hanya dari direktori; `**/*.txt` akan mengecualikan file teks dari semua direktori dan subdirektori.  
Di GDK CLI versi 1.5.0 dan yang lebih baru, Anda mungkin melihat peringatan selama pembuatan komponen `excludes` saat ditentukan dalam file konfigurasi GDK. Untuk menonaktifkan peringatan ini, atur variabel lingkungan `GDK_EXCLUDES_WARN_IGNORE` ke`true`.
CLI GDK selalu mengecualikan file berikut dari file zip:  
+ File `gdk-config.json`
+ File resep (`recipe.json`atau`recipe.yaml`)
+ Membangun folder, seperti `greengrass-build`
File-file berikut dikecualikan secara default. Namun, Anda dapat mengontrol file mana yang dikecualikan dengan `excludes` opsi.  
+ Setiap folder yang dimulai dengan awalan “test” () `test*`
+ Semua file tersembunyi
+ `node_modules`Folder
Jika Anda menentukan `excludes` opsi, CLI GDK hanya mengecualikan file-file yang Anda atur dengan opsi. `excludes` Jika Anda tidak menentukan `excludes` opsi, CLI GDK mengecualikan file dan folder default yang disebutkan sebelumnya.  
`zip_name`  
Nama file zip yang akan digunakan saat Anda membuat artefak zip selama proses pembuatan. Hanya berlaku ketika `build_system` ada`zip`. Jika kosong, nama komponen digunakan untuk nama file zip. `build_system`  
`publish`  
Konfigurasi yang digunakan untuk mempublikasikan komponen ini ke AWS IoT Greengrass layanan.  
<a name="gdk-cli-s3-bucket-name-formation"></a>Jika Anda menggunakan GDK CLI v1.1.0 atau yang lebih baru, Anda dapat menentukan argumen untuk menentukan `--bucket` bucket S3 tempat CLI GDK mengunggah artefak komponen. <a name="gdk-cli-s3-bucket-name-formation-format"></a>Jika Anda tidak menentukan argumen ini, CLI GDK akan mengunggah ke bucket S3 yang namanya, di *bucket* mana *region* dan `bucket-region-accountId` merupakan nilai yang Anda tentukan, *accountId* dan merupakan ID `gdk-config.json` Anda. Akun AWS  CLI GDK membuat bucket jika tidak ada.  
Objek ini berisi informasi berikut:    
`bucket`  
Nama bucket S3 yang akan digunakan untuk meng-host artefak komponen.  
`region`  
 Wilayah AWS Tempat CLI GDK menerbitkan komponen ini.  
Properti ini bersifat opsional jika Anda menggunakan GDK CLI v1.3.0 atau yang lebih baru.  
`options`  
(Opsional) Opsi konfigurasi tambahan yang digunakan selama pembuatan versi komponen.  
Fitur ini tersedia untuk GDK CLI v1.2.0 dan yang lebih baru.    
`file_upload_args`  
Struktur JSON yang berisi argumen yang dikirim ke Amazon S3 saat mengunggah file ke bucket, seperti metadata dan mekanisme enkripsi. Untuk daftar argumen yang diizinkan, lihat [https://boto3.amazonaws.com/v1/documentation/api/latest/reference/customizations/s3.html#boto3.s3.transfer.S3Transfer.ALLOWED_UPLOAD_ARGS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/customizations/s3.html#boto3.s3.transfer.S3Transfer.ALLOWED_UPLOAD_ARGS)kelas dalam dokumentasi *Boto3*. .

`test-e2e`  
(Opsional) Konfigurasi yang akan digunakan selama end-to-end pengujian komponen. Fitur ini tersedia untuk GDK CLI v1.3.0 dan yang lebih baru.    
`build`  
`build_system`— Sistem build yang akan digunakan. Opsi default adalah`maven`. Pilih dari salah satu pilihan berikut:  
+ `maven`— Menjalankan `mvn package` perintah untuk membangun modul pengujian. Pilih opsi ini untuk membangun modul pengujian yang menggunakan [Maven](https://maven.apache.org/).
+ `gradle`— Menjalankan `gradle build` perintah untuk membangun modul pengujian. Pilih opsi ini untuk modul pengujian yang menggunakan [Gradle](https://gradle.org/).   
`gtf_version`  
(Opsional) Versi Greengrass Testing Framework (GTF) untuk digunakan sebagai dependensi modul pengujian saat Anda menginisialisasi proyek GDK end-to-end dengan GTF. Nilai ini harus menjadi salah satu versi GTF dari [rilis](https://github.com/aws-greengrass/aws-greengrass-testing/releases). Defaultnya adalah GTF versi 1.1.0.  
`gtf_options`  
(Opsional) Opsi konfigurasi tambahan yang digunakan selama end-to-end pengujian komponen.  
<a name="gtf_options"></a>Daftar berikut mencakup opsi yang dapat Anda gunakan dengan GTF versi 1.1.0.  
+ `additional-plugins`- (Opsional) Plugin Mentimun Tambahan
+ `aws-region`— Menargetkan titik akhir regional tertentu untuk AWS layanan. Default untuk apa yang ditemukan SDK AWS .
+ `credentials-path`— Jalur kredensial AWS profil opsional. Default untuk kredensil yang ditemukan di lingkungan host.
+ `credentials-path-rotation`— Durasi rotasi opsional untuk AWS kredensil. Default hingga 15 menit atau. `PT15M`
+ `csr-path`— Jalur untuk CSR yang menggunakan sertifikat perangkat yang akan dihasilkan.
+ `device-mode`— Perangkat target yang sedang diuji. Default ke perangkat lokal.
+ `env-stage`— Menargetkan lingkungan penyebaran Greengrass. Default untuk produksi.
+ `existing-device-cert-arn`— Arn dari sertifikat yang ada yang ingin Anda gunakan sebagai sertifikat perangkat untuk Greengrass.
+ `feature-path`— File atau direktori yang berisi file fitur tambahan. Default adalah tidak ada file fitur tambahan yang digunakan.
+ `gg-cli-version`— Mengganti versi CLI Greengrass. Default ke nilai yang ditemukan di. `ggc.version`
+ `gg-component-bucket`— Nama ember Amazon S3 yang ada yang menampung komponen Greengrass.
+ `gg-component-overrides`— Daftar penggantian komponen Greengrass.
+ `gg-persist`— Daftar elemen pengujian untuk bertahan setelah uji coba. Perilaku default adalah tidak mempertahankan apa pun. Nilai yang diterima adalah:`aws.resources`,`installed.software`, dan`generated.files`.
+ `gg-runtime`— Daftar nilai untuk mempengaruhi bagaimana tes berinteraksi dengan sumber daya pengujian. Nilai-nilai ini menggantikan parameter. `gg.persist` Jika default kosong, itu mengasumsikan semua sumber daya pengujian dikendalikan oleh kasus uji, termasuk runtime Greengrass yang diinstal. Nilai yang diterima adalah:`aws.resources`,`installed.software`, dan`generated.files`.
+ `ggc-archive`— Jalur menuju komponen inti Greengrass yang diarsipkan.
+ `ggc-install-root`— Direktori untuk menginstal komponen inti Greengrass. Default ke test.temp.path dan test run folder.
+ `ggc-log-level`— Atur level log nukleus Greengrass untuk uji coba. Defaultnya adalah “INFO”.
+ `ggc-tes-rolename`— Peran IAM yang akan diasumsikan AWS IoT Greengrass Core untuk mengakses AWS layanan. Jika peran dengan nama yang diberikan tidak ada maka akan dibuat dan kebijakan akses default.
+ `ggc-trusted-plugins`— Daftar koma terpisah dari jalur (pada host) dari plugin tepercaya yang perlu ditambahkan ke Greengrass. Untuk menyediakan jalur pada DUT itu sendiri, awali jalur dengan 'dut: '
+ `ggc-user-name`— Nilai user:group POSIXuser untuk inti Greengrass. Default ke nama pengguna saat ini yang masuk.
+ `ggc-version`— Mengganti versi komponen inti Greengrass yang sedang berjalan. Default ke nilai yang ditemukan di ggc.archive.
+ `log-level`— Tingkat log uji coba. Default ke “INFO”.
+ `parallel-config`— Set indeks batch dan jumlah batch sebagai JSON String. Nilai default indeks batch adalah 0 dan jumlah batch adalah 1.
+ `proxy-url`— Konfigurasikan semua tes untuk merutekan lalu lintas melalui URL ini.
+ `tags`— Hanya jalankan tag fitur. Dapat berpotongan dengan '&'
+ `test-id-prefix`- Awalan umum diterapkan untuk semua sumber daya pengujian tertentu termasuk nama AWS sumber daya dan tag. Default adalah awalan “gg”.
+ `test-log-path`— Direktori yang akan berisi hasil dari seluruh uji coba. Default ke “TestResults”.
+ `test-results-json`— Tandai untuk menentukan apakah laporan Cucumber JSON yang dihasilkan ditulis ke disk. Default ke true.
+ `test-results-log`— Tandai untuk menentukan apakah output konsol dihasilkan ditulis ke disk. Default ke false.
+ `test-results-xml`- Tandai untuk menentukan apakah laporan JUnit XHTML yang dihasilkan dihasilkan ditulis ke disk. Default ke true.
+ `test-temp-path`— Direktori untuk menghasilkan artefak uji lokal. Default ke direktori temp acak diawali dengan gg-testing.
+ `timeout-multiplier`— Pengganda disediakan untuk semua batas waktu pengujian. Defaultnya adalah 1.0.

## Contoh file konfigurasi GDK CLI
<a name="gdk-config-examples"></a>

Anda dapat mereferensikan contoh file konfigurasi CLI GDK berikut untuk membantu Anda mengonfigurasi lingkungan komponen Greengrass.

### Halo Dunia (Python)
<a name="gdk-config-example-hello-world-python"></a>

File konfigurasi CLI GDK berikut mendukung komponen Hello World yang menjalankan skrip Python. File konfigurasi ini menggunakan sistem `zip` build untuk mengemas skrip Python komponen ke dalam file ZIP yang diunggah CLI GDK sebagai artefak.

```
{
  "component": {
    "com.example.PythonHelloWorld": {
      "author": "Amazon",
      "version": "NEXT_PATCH",
      "build": {
        "build_system" : "zip",
        "options": {
           "excludes": [".*"]
        }
      },
      "publish": {
        "bucket": "greengrass-component-artifacts",
        "region": "us-west-2",
        "options": {
           "file_upload_args": {
              "Metadata": {
                 "some-key": "some-value"
              }
           }
        }
      }
    },
  "test-e2e":{
    "build":{
        "build_system": "maven"
    },
    "gtf_version": "1.1.0",
    "gtf_options": { 
         "tags": "Sample"
     }
  },
  "gdk_version": "1.6.1"
  }
}
```

### Hello World (Jawa)
<a name="gdk-config-example-hello-world-java"></a>

File konfigurasi CLI GDK berikut mendukung komponen Hello World yang menjalankan aplikasi Java. File konfigurasi ini menggunakan sistem `maven` build untuk mengemas kode sumber Java komponen ke dalam file JAR yang diunggah CLI GDK sebagai artefak.

```
{
  "component": {
    "com.example.JavaHelloWorld": {
      "author": "Amazon",
      "version": "NEXT_PATCH",
      "build": {
        "build_system" : "maven"
      },
      "publish": {
        "bucket": "greengrass-component-artifacts",
        "region": "us-west-2",
        "options": {
           "file_upload_args": {
              "Metadata": {
                 "some-key": "some-value"
              }
           }
        }
      }
  },
  "test-e2e":{
    "build":{
        "build_system": "maven"
    },
    "gtf_version": "1.1.0",
    "gtf_options": { 
         "tags": "Sample"
     }
  },
  "gdk_version": "1.6.1"
  }
}
```

### Komponen komunitas
<a name="gdk-config-community-component-examples"></a>

Beberapa komponen komunitas dalam [Katalog Perangkat Lunak Greengrass menggunakan](greengrass-software-catalog.md) CLI GDK. Anda dapat menjelajahi file konfigurasi CLI GDK di repositori komponen ini.

**Untuk melihat file konfigurasi CLI GDK komponen komunitas**

1. Jalankan perintah berikut untuk membuat daftar komponen komunitas yang menggunakan CLI GDK.

   ```
   gdk component list --repository
   ```

   Respons mencantumkan nama GitHub repositori untuk setiap komponen komunitas yang menggunakan CLI GDK. Setiap repositori ada di organisasi. `awslabs`

   ```
   [2022-02-22 17:27:31] INFO - Listing all the available component repositories from Greengrass Software Catalog.
   [2022-02-22 17:27:31] INFO - Found '6' component repositories to display.
   1. aws-greengrass-labs-database-influxdb
   2. aws-greengrass-labs-telemetry-influxdbpublisher
   3. aws-greengrass-labs-dashboard-grafana
   4. aws-greengrass-labs-dashboard-influxdb-grafana
   5. aws-greengrass-labs-local-web-server
   6. aws-greengrass-labs-lookoutvision-gstreamer
   ```

1. Buka GitHub repositori komponen komunitas di URL berikut. Ganti *community-component-name* dengan nama komponen komunitas dari langkah sebelumnya.

   ```
   https://github.com/awslabs/community-component-name
   ```

# Antarmuka Baris Perintah Greengrass
<a name="gg-cli"></a>

Greengrass Command Line Interface (CLI) memungkinkan Anda berinteraksi AWS IoT Greengrass dengan Core di perangkat Anda untuk mengembangkan komponen dan masalah debug secara lokal. Misalnya, Anda dapat menggunakan Greengrass CLI untuk membuat deployment lokal dan me-restart komponen pada perangkat inti. 

Deploy [Komponen Greengrass CLI](greengrass-cli-component.md) (`aws.greengrass.Cli`) untuk menginstal Greengrass CLI pada perangkat inti Anda.

**penting**  
 <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. 

**Topics**
+ [Instal Greengrass CLI](install-gg-cli.md)
+ [Perintah Greengrass CLI](gg-cli-reference.md)

# Instal Greengrass CLI
<a name="install-gg-cli"></a>

Anda dapat menginstal Greengrass CLI dengan salah satu cara berikut: 
+ Gunakan `--deploy-dev-tools` argumen saat pertama kali menyiapkan perangkat lunak AWS IoT Greengrass Core di perangkat Anda. Anda juga harus menentukan `--provision true` untuk menerapkan argumen ini.
+ Deploy komponen Greengrass CLI (`aws.greengrass.Cli`) di perangkat Anda.

Bagian ini menjelaskan langkah-langkah untuk men-deploy komponen Greengrass CLI. Untuk informasi tentang menginstal Greengrass CLI selama pengaturan awal, lihat [Tutorial: Memulai dengan AWS IoT Greengrass V2](getting-started.md).

## Prasyarat
<a name="gg-cli-prereqs"></a>

Untuk menerapkan komponen CLI Greengrass, Anda harus memenuhi persyaratan berikut:
+ AWS IoT Greengrass Perangkat lunak inti diinstal dan dikonfigurasi pada perangkat inti Anda. Untuk informasi selengkapnya, lihat [Tutorial: Memulai dengan AWS IoT Greengrass V2](getting-started.md). 
+ Untuk menggunakan AWS CLI untuk menyebarkan CLI Greengrass, Anda harus telah menginstal dan mengkonfigurasi. AWS CLI Untuk informasi lebih lanjut, lihat [Mengonfigurasi AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html) di *Panduan Pengguna AWS Command Line Interface *.
+ <a name="greengrass-cli-authorization-requirement"></a>Anda harus diberi wewenang untuk menggunakan CLI Greengrass untuk berinteraksi dengan perangkat lunak Core. AWS IoT Greengrass Lakukan salah satu langkah berikut untuk menggunakan Greengrass CLI:
  + Gunakan pengguna sistem yang menjalankan perangkat lunak AWS IoT Greengrass Core.
  + Gunakan pengguna dengan izin root atau adminstratif. Pada perangkat inti Linux, Anda dapat menggunakan `sudo` untuk mendapatkan izin root.
  + Gunakan pengguna sistem yang berada dalam grup yang Anda tentukan dalam parameter `AuthorizedPosixGroups` atau `AuthorizedWindowsGroups` konfigurasi saat Anda menerapkan komponen. Untuk informasi selengkapnya, lihat konfigurasi [komponen CLI Greengrass](greengrass-cli-component.md#greengrass-cli-component-configuration).

## Deploy komponen Greengrass CLI
<a name="gg-cli-deploy"></a>

Selesaikan langkah-langkah berikut untuk men-deploy komponen Greengrass CLI ke perangkat inti Anda:

### Untuk men-deploy komponen Greengrass CLI (konsol)
<a name="gg-cli-deploy-console"></a>

1. Masuk ke [konsol AWS IoT Greengrass](https://console.aws.amazon.com/greengrass).

1. Dalam menu navigasi, pilih **Komponen**.

1. Pada halaman **Komponen**, pada tab **Komponen publik**, pilih `aws.greengrass.Cli`.

1. Pada halaman **aws.greengrass.Cli** pilih **Deploy**.

1. Dari **Tambahkan ke deployment**, pilih **Buat deployment baru**.

1. Pada halaman **Tentukan target**, di bawah **Target deployment**, di daftar **Nama target**, pilih grup Greengrass yang ingin Anda deploy, dan pilih **Selanjutnya**.

1. Pada halaman **Pilih komponen**, verifikasi bahwa komponen **aws.greengrass.Cli** tersebut dipilih, dan pilih **Selanjutnya**.

1. Pada halaman **Konfigurasikan komponen**, simpan pengaturan konfigurasi default, dan pilih **Selanjutnya**.

1. Pada halaman **Konfigurasikan pengaturan lanjutan**, simpan pengaturan konfigurasi default tersebut, dan pilih **Selanjutnya**.

1. Di halaman **Tinjauan**, klik **Deploy**.

### Untuk men-deploy komponen Greengrass CLI (AWS CLI)
<a name="gg-cli-deploy-cli"></a>

1. Di perangkat Anda, buatlah file `deployment.json` untuk menentukan konfigurasi deployment untuk komponen Greengrass CLI. File ini akan terlihat seperti berikut:

   ```
   {
     "targetArn":"targetArn",
     "components": {
       "aws.greengrass.Cli": {
         "componentVersion": "2.16.1",
         "configurationUpdate": {
           "merge": "{\"AuthorizedPosixGroups\":\"<group1>,<group2>,...,<groupN>\",\"AuthorizedWindowsGroups\":\"<group1>,<group2>,...,<groupN>\"}"
         }
       }
     }
   }
   ```
   + Di kolom `target`, ganti `targetArn` dengan Amazon Resource Name (ARN) dari grup objek atau objek yang ditargetkan untuk deployment tersebut, dalam format berikut: 
     + Objek: `arn:aws:iot:region:account-id:thing/thingName`
     + Grup objek: `arn:aws:iot:region:account-id:thinggroup/thingGroupName`
   + Di objek komponen `aws.greengrass.Cli`, tentukan nilai-nilai sebagai berikut:  
`version`  
Versi komponen Greengrass CLI.  
`configurationUpdate.AuthorizedPosixGroups`  
(Opsional) String yang berisi daftar kelompok sistem yang dipisahkan dengan koma. Anda mengizinkan grup sistem ini untuk menggunakan CLI Greengrass untuk berinteraksi dengan perangkat lunak Inti. AWS IoT Greengrass Anda dapat menentukan nama grup atau grup IDs. Misalnya, `group1,1002,group3` mengotorisasi tiga grup sistem (`group1`, `1002`, dan `group3`) untuk menggunakan Greengrass CLI.  
Jika Anda tidak menentukan grup apa pun untuk diotorisasi, Anda dapat menggunakan Greengrass CLI sebagai `sudo` pengguna root () atau sebagai pengguna sistem yang menjalankan perangkat lunak Core. AWS IoT Greengrass   
`configurationUpdate.AuthorizedWindowsGroups`  
(Opsional) String yang berisi daftar kelompok sistem yang dipisahkan dengan koma. Anda mengizinkan grup sistem ini untuk menggunakan CLI Greengrass untuk berinteraksi dengan perangkat lunak Inti. AWS IoT Greengrass Anda dapat menentukan nama grup atau grup IDs. Misalnya, `group1,1002,group3` mengotorisasi tiga grup sistem (`group1`, `1002`, dan `group3`) untuk menggunakan Greengrass CLI.  
Jika Anda tidak menentukan grup apa pun untuk diotorisasi, Anda dapat menggunakan CLI Greengrass sebagai administrator atau sebagai pengguna sistem yang menjalankan perangkat lunak Core. AWS IoT Greengrass 

1. Jalankan perintah berikut untuk men-deploy komponen Greengrass CLI pada perangkat:

   ```
   $ aws greengrassv2 create-deployment --cli-input-json file://path/to/deployment.json
   ```

Selama instalasi, komponen menambahkan link simbolik ke `greengrass-cli` dalam folder `/greengrass/v2/bin` pada perangkat Anda, dan Anda menjalankan Greengrass CLI dari jalur ini. Untuk menjalankan Greengrass CLI tanpa path absolut, tambahkan folder `/greengrass/v2/bin` Anda ke variabel PATH Anda. Untuk memverifikasi instalasi Greengrass CLI, jalankan perintah berikut:

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

```
/greengrass/v2/bin/greengrass-cli help
```

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

```
C:\greengrass\v2\bin\greengrass-cli help
```

------

Anda akan melihat output berikut:

```
Usage: greengrass-cli [-hV] [--ggcRootPath=<ggcRootPath>] [COMMAND]
Greengrass command line interface

      --ggcRootPath=<ggcRootPath>
                  The AWS IoT Greengrass V2 root directory.
  -h, --help      Show this help message and exit.
  -V, --version   Print version information and exit.
Commands:
  help                Show help information for a command.
  component           Retrieve component information and stop or restart
                        components.
  deployment          Create local deployments and retrieve deployment status.
  logs                Analyze Greengrass logs.
  get-debug-password  Generate a password for use with the HTTP debug view
                        component.
```

Jika `greengrass-cli` tidak ditemukan, deployment mungkin gagal untuk menginstal Greengrass CLI. Lihat informasi yang lebih lengkap di [Pemecahan masalah AWS IoT Greengrass V2](troubleshooting.md).

# Perintah Greengrass CLI
<a name="gg-cli-reference"></a>

CLI Greengrass menyediakan antarmuka baris perintah untuk berinteraksi secara lokal dengan perangkat inti Anda. AWS IoT Greengrass Perintah Greengrass CLI menggunakan format berikut.

```
$ greengrass-cli <command> <subcommand> [arguments]
```

Secara default, file yang `greengrass-cli` dapat dieksekusi di `/greengrass/v2/bin/` folder berinteraksi dengan versi perangkat lunak AWS IoT Greengrass Core yang berjalan di folder. `/greengrass/v2` Jika Anda memanggil executable yang tidak ditempatkan di lokasi ini, atau jika Anda ingin berinteraksi dengan perangkat lunak AWS IoT Greengrass Core di lokasi yang berbeda, maka Anda harus menggunakan salah satu metode berikut untuk secara eksplisit menentukan jalur root perangkat lunak AWS IoT Greengrass Core yang ingin Anda berinteraksi dengan:<a name="greengrass-cli-set-root-path"></a>
+ Atur `GGC_ROOT_PATH` variabel lingkungan ke `/greengrass/v2`.
+ Tambahkan `--ggcRootPath /greengrass/v2` argumen ke perintah Anda seperti yang ditunjukkan pada contoh berikut.

  ```
  greengrass-cli --ggcRootPath /greengrass/v2 <command> <subcommand> [arguments]
  ```

Anda dapat menggunakan argumen berikut dengan perintah apa pun:
+ Gunakan `--help` untuk informasi tentang perintah Greengrass CLI tertentu. 
+ Gunakan `--version` untuk informasi tentang versi Greengrass CLI.

Bagian ini menjelaskan perintah Greengrass CLI dan memberikan contoh untuk perintah ini. Sinopsis untuk setiap perintah menunjukkan argumen dan penggunaannya. Argumen opsional ditampilkan dalam tanda kurung siku.

**Topics**
+ [komponen](gg-cli-component.md)
+ [deployment](gg-cli-deployment.md)
+ [log](gg-cli-logs.md)
+ [get-debug-password](gg-cli-get-debug-password.md)

# komponen
<a name="gg-cli-component"></a>

Gunakan perintah `component` untuk berinteraksi dengan komponen lokal pada perangkat inti Anda. 

**Subperintah**
+ [detail](#component-details)
+ [daftar](#component-list)
+ [restart](#component-restart)
+ [berhenti](#component-stop)

## detail
<a name="component-details"></a>

Ambil versi, status, dan konfigurasi dari satu komponen. 

**Sinopsis**  

```
greengrass-cli component details --name <component-name> 
```

**Argumen**  
`--name`, `-n`. Nama komponen.

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ sudo greengrass-cli component details --name MyComponent 

Component Name: MyComponent 
Version: 1.0.0
State: RUNNING
Configuration: null
```

## daftar
<a name="component-list"></a>

Ambil nama, versi, status, dan konfigurasi setiap komponen yang diinstal pada perangkat.

**Sinopsis**  

```
greengrass-cli component list
```

**Argumen**  
Tidak ada

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ sudo greengrass-cli component list

Components currently running in Greengrass:
Component Name: FleetStatusService
Version: 0.0.0
State: RUNNING
Configuration: {"periodicUpdateIntervalSec":86400.0}
Component Name: UpdateSystemPolicyService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: aws.greengrass.Nucleus
Version: 2.0.0
State: FINISHED
Configuration: {"awsRegion":"region","runWithDefault":{"posixUser":"ggc_user:ggc_group"},"telemetry":{}}
Component Name: DeploymentService
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: TelemetryAgent
Version: 0.0.0
State: RUNNING
Configuration: null
Component Name: aws.greengrass.Cli
Version: 2.0.0
State: RUNNING
Configuration: {"AuthorizedPosixGroups":"ggc_user"}
```

## restart
<a name="component-restart"></a>

Mulai ulang komponen.

**Sinopsis**  

```
greengrass-cli component restart --names <component-name>,...
```

**Argumen**  
`--names`, `-n`. Nama komponen. Setidaknya satu nama komponen diperlukan. Anda dapat menentukan nama komponen tambahan, yang memisahkan setiap nama dengan koma.

**Keluaran**  
Tidak ada

## berhenti
<a name="component-stop"></a>

Berhenti menjalankan komponen. 

**Sinopsis**  

```
greengrass-cli component stop --names <component-name>,...
```

**Argumen**  
`--names`, `-n`. Nama komponen. Setidaknya satu nama komponen diperlukan. Anda dapat menentukan nama komponen tambahan jika diperlukan, yang memisahkan setiap nama dengan koma.

**Keluaran**  
Tidak ada

# deployment
<a name="gg-cli-deployment"></a>

Gunakan perintah `deployment` untuk berinteraksi dengan komponen lokal pada perangkat inti Anda. 

Untuk memantau kemajuan penerapan lokal, gunakan `status` subperintah. Anda tidak dapat memantau kemajuan penerapan lokal menggunakan konsol.

**Subperintah**
+ [buat](#deployment-create)
+ [membatalkan](#deployment-cancel)
+ [daftar](#deployment-list)
+ [status](#deployment-status)

## buat
<a name="deployment-create"></a>

Buat atau perbarui deployment lokal menggunakan resep komponen tertentu, artefak, dan argumen waktu aktif.

**Sinopsis**  

```
greengrass-cli deployment create 
    --recipeDir path/to/component/recipe
    [--artifactDir path/to/artifact/folder ]
    [--update-config {component-configuration}]
    [--groupId <thing-group>]
    [--merge "<component-name>=<component-version>"]...
    [--runWith "<component-name>:posixUser=<user-name>[:<group-name>]"]...
    [--systemLimits "{component-system-resource-limits}]"]...
    [--remove <component-name>,...]
    [--failure-handling-policy <policy name[ROLLBACK, DO_NOTHING]>]
```

**Argumen**  
+ `--recipeDir`, `-r`. Jalur lengkap ke folder yang berisi file resep komponen.
+ `--artifactDir`, `-a`. Jalur lengkap ke folder yang berisi file artefak yang ingin Anda sertakan dalam deployment Anda. Folder artefak harus berisi struktur direktori berikut:

  ```
  /path/to/artifact/folder/<component-name>/<component-version>/<artifacts>
  ```
+ `--update-config`, `-c`. Argumen konfigurasi untuk deployment, disediakan sebagai string JSON atau file JSON. String JSON harus dalam format berikut: 

  ```
  { \
    "componentName": { \ 
      "MERGE": {"config-key": "config-value"}, \
      "RESET": ["path/to/reset/"] \
    } \
  }
  ```

  `MERGE` dan `RESET` peka huruf besar-kecil dan harus dalam huruf besar.
+ `--groupId`, `-g`. Grup sasaran objek untuk deployment.
+ `--merge`, `-m`. Nama dan versi komponen target yang ingin Anda tambahkan atau perbarui. Anda harus memberikan informasi komponen dalam format `<component>=<version>`. Gunakan argumen terpisah untuk setiap komponen tambahan yang akan ditentukan. Jika diperlukan, gunakan `--runWith` argumen untuk memberikan`posixUser`,`posixGroup`, dan `windowsUser` informasi untuk menjalankan komponen.
+ `--runWith`. The`posixUser`,`posixGroup`, dan `windowsUser` informasi untuk menjalankan komponen generik atau Lambda. Anda harus memberikan informasi ini dalam format `<component>:{posixUser|windowsUser}=<user>[:<=posixGroup>]`. Misalnya, Anda dapat menentukan **HelloWorld:posixUser=ggc\$1user:ggc\$1group** atau**HelloWorld:windowsUser=ggc\$1user**. Gunakan argumen terpisah untuk setiap opsi tambahan yang akan ditentukan.

  Untuk informasi selengkapnya, lihat [Konfigurasikan pengguna yang menjalankan komponen](configure-greengrass-core-v2.md#configure-component-user).
+ `--systemLimits`. Batas sumber daya sistem untuk diterapkan pada proses komponen Lambda generik dan non-kontainer pada perangkat inti. Anda dapat mengonfigurasi jumlah maksimum penggunaan CPU dan RAM yang dapat digunakan oleh setiap proses komponen. Tentukan objek JSON serial atau jalur file ke file JSON. Objek JSON harus memiliki format berikut.

  ```
  {  \
    "componentName": { \ 
      "cpus": cpuTimeLimit, \
      "memory": memoryLimitInKb \
    } \
  }
  ```

  Anda dapat mengonfigurasi batas sumber daya sistem berikut untuk setiap komponen:
  + `cpus`— <a name="system-resource-limits-cpu-definition-this"></a>Jumlah maksimum waktu CPU yang dapat digunakan oleh proses komponen ini pada perangkat inti. Total waktu CPU perangkat inti setara dengan jumlah inti CPU perangkat. Misalnya, pada perangkat inti dengan 4 core CPU, Anda dapat mengatur nilai ini `2` untuk membatasi proses komponen ini hingga 50 persen penggunaan setiap inti CPU. Pada perangkat dengan 1 inti CPU, Anda dapat mengatur nilai ini `0.25` untuk membatasi proses komponen ini hingga 25 persen penggunaan CPU. Jika Anda menetapkan nilai ini ke angka yang lebih besar dari jumlah inti CPU, perangkat lunak AWS IoT Greengrass Core tidak membatasi penggunaan CPU komponen. 
  + `memory`— <a name="system-resource-limits-memory-definition-this"></a>Jumlah maksimum RAM (dalam kilobyte) yang dapat digunakan oleh proses komponen ini pada perangkat inti. 

  Untuk informasi selengkapnya, lihat [Konfigurasikan batas sumber daya sistem untuk komponen](configure-greengrass-core-v2.md#configure-component-system-resource-limits).

  Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari [komponen inti Greengrass dan CLI Greengrass pada perangkat inti](greengrass-nucleus-component.md) Linux. AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows. 
+ `--remove`. Nama komponen target yang ingin Anda hapus dari deployment lokal. Untuk menghapus komponen yang digabung dari deployment cloud, Anda harus memberikan ID grup dari grup objek target dalam format berikut:

------
#### [ Greengrass nucleus v2.4.0 and later ]

  ```
  --remove <component-name> --groupId <group-name>
  ```

------
#### [ Earlier than v2.4.0 ]

  ```
  --remove <component-name> --groupId thinggroup/<group-name>
  ```

------
+ `--failure-handling-policy`. Mendefinisikan tindakan yang diambil saat penerapan gagal. Ada dua tindakan yang dapat Anda tentukan:
  + `ROLLBACK` – 
  + `DO_NOTHING` – 

  Fitur ini tersedia untuk v2.11.0 dan yang lebih baru. [Inti Greengrass](greengrass-nucleus-component.md)

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ sudo greengrass-cli deployment create \
    --merge MyApp1=1.0.0 \
    --merge MyApp2=1.0.0 --runWith MyApp2:posixUser=ggc_user \
    --remove MyApp3 \
    --recipeDir recipes/ \ 
    --artifactDir artifacts/

Local deployment has been submitted! Deployment Id: 44d89f46-1a29-4044-ad89-5151213dfcbc
```

## membatalkan
<a name="deployment-cancel"></a>

Membatalkan penerapan yang ditentukan.

Sinopsis  

```
greengrass-cli deployment cancel
    -i <deployment-id>
```

Pendapat  
`-i`. Pengenal unik dari penerapan untuk membatalkan. ID penyebaran dikembalikan dalam output `create` perintah.

Output  
+ Tidak ada

## daftar
<a name="deployment-list"></a>

Ambil status dari 10 deployment lokal terakhir.

**Sinopsis**  

```
greengrass-cli deployment list
```

**Argumen**  
Tidak ada

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini. Tergantung pada status deployment Anda, output menunjukkan salah satu dari nilai status berikut: `IN_PROGRESS`, `SUCCEEDED`, atau `FAILED`.  

```
$ sudo greengrass-cli deployment list

44d89f46-1a29-4044-ad89-5151213dfcbc: SUCCEEDED
Created on: 6/27/23 11:05 AM
```

## status
<a name="deployment-status"></a>

Ambil status deployment tertentu.

**Sinopsis**  

```
greengrass-cli deployment status -i <deployment-id>
```

**Argumen**  
`-i`. ID deployment.

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini. Tergantung pada status deployment Anda, output menunjukkan salah satu dari nilai status berikut: `IN_PROGRESS`, `SUCCEEDED`, atau `FAILED`.  

```
$ sudo greengrass-cli deployment status -i 44d89f46-1a29-4044-ad89-5151213dfcbc

44d89f46-1a29-4044-ad89-5151213dfcbc: FAILED
Created on: 6/27/23 11:05 AM
Detailed Status: <Detailed deployment status>
Deployment Error Stack: List of error codes
Deployment Error Types: List of error types
Failure Cause: Cause
```

# log
<a name="gg-cli-logs"></a>

Gunakan perintah `logs` untuk menganalisis log Greengrass pada perangkat inti Anda. 

**Subperintah**
+ [memperoleh](#logs-get)
+ [list-keywords](#logs-list-keywords)
+ [list-log-files](#logs-list-log-files)

## memperoleh
<a name="logs-get"></a>

Kumpulkan, filter, dan visualisasikan file log Greengrass. Perintah ini hanya mendukung file log berformat JSON. Anda dapat menentukan [format logging](greengrass-nucleus-component.md#greengrass-nucleus-component-configuration-logging-format) dalam konfigurasi nukleus.

**Sinopsis**  

```
greengrass-cli logs get
    [--log-dir path/to/a/log/folder]
    [--log-file path/to/a/log/file]
    [--follow true | false ]
    [--filter <filter> ]
    [--time-window <start-time>,<end-time> ]
    [--verbose ]
    [--no-color ]
    [--before <value> ]
    [--after <value> ]
    [--syslog ]
    [--max-long-queue-size <value> ]
```

**Argumen**  
+ `--log-dir`,`-ld`. Jalur ke direktori untuk memeriksa file log, seperti**`/greengrass/v2`/logs**. Jangan gunakan dengan `--syslog`. Gunakan argumen terpisah untuk setiap direktori tambahan yang akan ditentukan. Anda harus menggunakan setidaknya salah satu dari `--log-dir` atau `--log-file`. Anda juga dapat menggunakan kedua argumen dalam satu perintah. 
+ `--log-file`, `-lf`. Jalur ke direktori log yang ingin Anda gunakan. Gunakan argumen terpisah untuk setiap direktori tambahan yang akan ditentukan. Anda harus menggunakan setidaknya salah satu dari `--log-dir` atau `--log-file`. Anda juga dapat menggunakan kedua argumen dalam satu perintah.
+ `--follow`, `-fol`. Tampilkan pembaruan log saat terjadi. Greengrass CLI terus berjalan dan membaca dari log tertentu. Jika Anda menentukan jendela waktu, Greengrass CLI berhenti memantau log setelah semua jendela waktu berakhir.
+ `--filter`, `-f`. Kata kunci, ekspresi reguler, atau pasangan kunci-nilai untuk digunakan sebagai filter. Berikan nilai ini sebagai string, ekspresi reguler, atau sebagai pasangan kunci-nilai. Gunakan argumen terpisah untuk setiap filter tambahan yang akan ditentukan. 

  Ketika dievaluasi, beberapa filter yang ditentukan dalam argumen tunggal dipisahkan oleh operator OR, dan filter yang ditentukan dalam argumen tambahan digabungkan dengan operator AND. Misalnya, jika perintah Anda mencakup `--filter "installed" --filter "name=alpha,name=beta"`, maka Greengrass CLI akan memfilter dan menampilkan pesan log yang berisi baik kata kunci `installed` maupun kunci `name` yang memiliki nilai `alpha` atau `beta`.
+ `--time-window`, `-t`. Jendela waktu untuk menampilkan informasi log. Anda dapat menggunakan kedua stempel waktu yang tepat dan offset relatif. Anda harus memberikan informasi ini dalam format `<begin-time>,<end-time>`. Jika Anda tidak menentukan baik waktu mulai maupun waktu akhir, nilai untuk opsi default ke tanggal dan waktu sistem saat ini. Gunakan argumen terpisah untuk setiap jendela waktu tambahan yang akan ditentukan. 

  Greengrass CLI mendukung format berikut untuk stempel waktu:
  + `yyyy-MM-DD`, misalnya, `2020-06-30`. Waktu default adalah 00:00:00 ketika Anda menggunakan format ini.

    `yyyyMMDD`, misalnya, `20200630`. Waktu default adalah 00:00:00 ketika Anda menggunakan format ini.

    `HH:mm:ss`, misalnya, `15:30:45`. Tanggal default adalah tanggal sistem saat ini ketika Anda menggunakan format ini.

    `HH:mm:ssSSS`, misalnya, `15:30:45`. Tanggal default adalah tanggal sistem saat ini ketika Anda menggunakan format ini.

    `YYYY-MM-DD'T'HH:mm:ss'Z'`, misalnya, `2020-06-30T15:30:45Z`.

    `YYYY-MM-DD'T'HH:mm:ss`, misalnya, `2020-06-30T15:30:45`. 

    `yyyy-MM-dd'T'HH:mm:ss.SSS`, misalnya, `2020-06-30T15:30:45.250`.

  Offset relatif menentukan jangka waktu offset dari waktu sistem saat ini. Greengrass CLI mendukung format berikut untuk offset relatif: `+|-[<value>h|hr|hours][valuem|min|minutes][value]s|sec|seconds`. 

  Misalnya, argumen berikut untuk menentukan jendela waktu antara 1 jam dan 2 jam 15 menit sebelum waktu saat ini adalah `--time-window -2h15min,-1hr`.
+ `--verbose`. Tampilkan semua kolom dari pesan log. Jangan gunakan dengan `--syslog`.
+ `--no-color`, `-nc`. Hapus kode warna. Default pengkodean warna untuk pesan log menggunakan teks merah tebal. Mendukung hanya terminal seperti UNIX karena menggunakan ANSI escape sequence.
+ `--before`, `-b`. Jumlah baris yang akan ditunjukkan mendahului entri log yang cocok. Default-nya adalah 0.
+ `--after`, `-a`. Jumlah baris yang akan ditunjukkan mengikuti entri log yang cocok. Default-nya adalah 0.
+ `--syslog`. Proses semua file log menggunakan protokol syslog yang ditentukan oleh. RFC3164 Jangan gunakan dengan `--log-dir` dan `--verbose`. Protokol syslog menggunakan format berikut: `"<$Priority>$Timestamp $Host $Logger ($Class): $Message"`. Jika Anda tidak menentukan berkas log, Greengrass CLI akan membaca pesan log dari lokasi-lokasi berikut: `/var/log/messages`, `/var/log/syslog`, atau `/var/log/system.log`. 

  AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows. 
+ `--max-log-queue-size`, `-m`. Jumlah maksimum entri log yang akan dialokasikan ke memori. Gunakan opsi ini untuk mengoptimalkan penggunaan memori. Default adalah 100.

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ sudo greengrass-cli logs get --verbose \
    --log-file /greengrass/v2/logs/greengrass.log \
    --filter deployment,serviceName=DeploymentService \
    --filter level=INFO \
    --time-window 2020-12-08T01:11:17,2020-12-08T01:11:22

2020-12-08T01:11:17.615Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.DeploymentService: Current deployment finished. {DeploymentId=44d89f46-1a29-4044-ad89-5151213dfcbc, serviceName=DeploymentService, currentState=RUNNING}
2020-12-08T01:11:17.675Z [INFO] (pool-2-thread-14) com.aws.greengrass.deployment.IotJobsHelper: Updating status of persisted deployment. {Status=SUCCEEDED, StatusDetails={detailed-deployment-status=SUCCESSFUL}, ThingName=MyThing, JobId=22d89f46-1a29-4044-ad89-5151213dfcbc
```

## list-keywords
<a name="logs-list-keywords"></a>

Tampilkan kata kunci yang disarankan yang dapat Anda gunakan untuk memfilter berkas log.

**Sinopsis**  

```
greengrass-cli logs list-keywords [arguments]
```

**Argumen**  
Tidak ada

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ sudo greengrass-cli logs list-keywords

Here is a list of suggested keywords for Greengrass log:
level=$str
thread=$str
loggerName=$str
eventType=$str
serviceName=$str
error=$str
```

```
$ sudo greengrass-cli logs list-keywords --syslog

Here is a list of suggested keywords for syslog:
priority=$int
host=$str
logger=$str
class=$str
```

## list-log-files
<a name="logs-list-log-files"></a>

Tampilkan file log yang terletak di direktori tertentu.

**Sinopsis**  

```
greengrass-cli logs list-log-files [arguments]
```

**Argumen**  
`--log-dir`, `-ld`. Jalur ke direktori untuk memeriksa file log. 

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ sudo greengrass-cli logs list-log-files -ld /greengrass/v2/logs/

/greengrass/v2/logs/aws.greengrass.Nucleus.log
/greengrass/v2/logs/main.log
/greengrass/v2/logs/greengrass.log
Total 3 files found.
```

# get-debug-password
<a name="gg-cli-get-debug-password"></a>

Menggunakan perintah `get-debug-password` untuk mencetak sandi yang dihasilkan secara acak untuk [komponen konsol debug lokal](local-debug-console-component.md) (`aws.greengrass.LocalDebugConsole`). Kata sandi kedaluwarsa 8 jam setelah dibuat.

**Sinopsis**  

```
greengrass-cli get-debug-password
```

**Argumen**  
Tidak ada

**Keluaran**  
Contoh berikut menunjukkan output yang dihasilkan ketika Anda menjalankan perintah ini.  

```
$ sudo greengrass-cli get-debug-password

Username: debug
Password: bEDp3MOHdj8ou2w5de_sCBI2XAaguy3a8XxREXAMPLE
Password expires at: 2021-04-01T17:01:43.921999931-07:00
The local debug console is configured to use TLS security. The certificate is self-signed so you will need to bypass your web browser's security warnings to open the console.
Before you bypass the security warning, verify that the certificate fingerprint matches the following fingerprints.
SHA-256: 15 0B 2C E2 54 8B 22 DE 08 46 54 8A B1 2B 25 DE FB 02 7D 01 4E 4A 56 67 96 DA A6 CC B1 D2 C4 1B
SHA-1: BC 3E 16 04 D3 80 70 DA E0 47 25 F9 90 FA D6 02 80 3E B5 C1
```

# Gunakan Kerangka AWS IoT Greengrass Pengujian
<a name="gg-testing-framework"></a>

Greengrass Testing Framework (GTF) adalah kumpulan blok bangunan yang mendukung otomatisasi dari perspektif pelanggan. end-to-end GTF menggunakan [Cucumber](https://cucumber.io) sebagai driver fitur. AWS IoT Greengrass menggunakan blok bangunan yang sama untuk memenuhi syarat perubahan perangkat lunak pada berbagai perangkat. Untuk informasi lebih lanjut, lihat [Greengrass](https://github.com/aws-greengrass/aws-greengrass-testing/tree/dev_v1) Testing Framework di Github.

GTF diimplementasikan menggunakan Cucumber, alat yang digunakan untuk menjalankan tes otomatis, untuk mendorong Behavior-Driven Development (BDD) komponen. Di Mentimun, fitur-fitur sistem ini diuraikan dalam jenis file khusus yang disebut`feature`. Setiap fitur dijelaskan dalam format yang dapat dibaca manusia yang disebut skenario yang merupakan spesifikasi yang dapat diubah menjadi pengujian otomatis. Setiap skenario diuraikan sebagai serangkaian langkah yang menentukan interaksi dan hasil dari sistem ini yang diuji menggunakan bahasa khusus domain yang disebut Gherkin. [Langkah Gherkin](https://cucumber.io/docs/gherkin/reference/#steps) ditautkan ke kode pemrograman menggunakan metode yang disebut definisi langkah yang menghubungkan spesifikasi dengan keras ke aliran pengujian. Definisi langkah dalam GTF diimplementasikan dengan Java.

**Topics**
+ [Cara kerjanya](#gg-testing-framework-how-gtf-works)
+ [Changelog](#gtf-changelog)
+ [Opsi konfigurasi Kerangka Pengujian Greengrass](configuration-options-gtf.md)
+ [Tutorial: Jalankan end-to-end tes menggunakan Greengrass Testing Framework dan Greengrass Development Kit](run-e2e-tests-tutorial.md)
+ [Tutorial: Gunakan tes kepercayaan diri dari rangkaian tes kepercayaan](confidence-tests-tutorial.md)

## Cara kerjanya
<a name="gg-testing-framework-how-gtf-works"></a>

AWS IoT Greengrass mendistribusikan GTF sebagai JAR mandiri yang terdiri dari beberapa modul Java. Untuk menggunakan GTF untuk end-to-end pengujian komponen, Anda harus mengimplementasikan pengujian dalam proyek Java. Menambahkan JAR standar pengujian sebagai ketergantungan dalam proyek Java Anda memungkinkan Anda untuk menggunakan fungsionalitas GTF yang ada dan memperluasnya dengan menulis kasus uji kustom Anda sendiri. Untuk menjalankan kasus uji kustom, Anda dapat membangun proyek Java Anda dan menjalankan JAR target dengan opsi konfigurasi yang dijelaskan di[Opsi konfigurasi Kerangka Pengujian Greengrass](configuration-options-gtf.md).

### JAR mandiri GTF
<a name="w2ab1c24c19c25c11b5"></a>

Greengrass menggunakan Cloudfront sebagai repositori Maven untuk meng-host [berbagai](https://maven.apache.org/) versi JAR mandiri GTF. Untuk daftar lengkap versi GTF, lihat rilis [GTF](https://github.com/aws-greengrass/aws-greengrass-testing/releases).

JAR mandiri GTF mencakup modul-modul berikut. Tidak terbatas hanya pada modul-modul ini. Anda dapat memilih dan memilih masing-masing dependensi ini secara terpisah dalam proyek Anda atau menyertakan semuanya sekaligus dengan file JAR [mandiri pengujian](https://github.com/aws-greengrass/aws-greengrass-testing/tree/dev_v1/aws-greengrass-testing-standalone).
+ `aws-greengrass-testing-resources`: Modul ini menyediakan abstraksi untuk mengelola siklus hidup AWS sumber daya selama pengujian. Anda dapat menggunakan ini untuk menentukan AWS sumber daya kustom Anda menggunakan `ResourceSpec` abstraksi sehingga GTF dapat menangani pembuatan dan penghapusan sumber daya tersebut untuk Anda.
+ `aws-greengrass-testing-platform`: Modul ini menyediakan abstraksi tingkat platform untuk perangkat yang diuji selama siklus hidup pengujian. Ini berisi APIs digunakan untuk berinteraksi dengan OS independen dari platform dan dapat digunakan untuk mensimulasikan perintah yang berjalan di shell perangkat.
+ `aws-greengrass-testing-components`: Modul ini terdiri dari komponen sampel yang digunakan untuk menguji fitur inti Greengrass seperti penerapan, IPC, dan fitur lainnya.
+ `aws-greengrass-testing-features`: Modul ini terdiri dari langkah-langkah umum yang dapat digunakan kembali dan definisinya yang digunakan untuk pengujian di dalam lingkungan Greengrass.

**Topics**
+ [Cara kerjanya](#gg-testing-framework-how-gtf-works)
+ [Changelog](#gtf-changelog)
+ [Opsi konfigurasi Kerangka Pengujian Greengrass](configuration-options-gtf.md)
+ [Tutorial: Jalankan end-to-end tes menggunakan Greengrass Testing Framework dan Greengrass Development Kit](run-e2e-tests-tutorial.md)
+ [Tutorial: Gunakan tes kepercayaan diri dari rangkaian tes kepercayaan](confidence-tests-tutorial.md)

## Changelog
<a name="gtf-changelog"></a>

Tabel berikut menjelaskan perubahan di setiap versi GTF. Untuk informasi selengkapnya, lihat [halaman Rilis GTF](https://github.com/aws-greengrass/aws-greengrass-testing/releases) di GitHub.


|  **Versi**  |  **Perubahan**  | 
| --- | --- | 
| 1.2.0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/gg-testing-framework.html) [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/gg-testing-framework.html)  | 
|  1.1.0  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v2/developerguide/gg-testing-framework.html)  | 
|  1.0.0  |  Versi awal.  | 

# Opsi konfigurasi Kerangka Pengujian Greengrass
<a name="configuration-options-gtf"></a>

## Opsi konfigurasi GTF
<a name="configuration-options-gtf-options"></a>

Greengrass Testing Framework (GTF) memungkinkan Anda mengonfigurasi parameter tertentu selama peluncuran proses pengujian untuk mengatur alur end-to-end pengujian. Anda dapat menentukan opsi konfigurasi ini sebagai argumen CLI untuk JAR mandiri GTF.

<a name="gtf_options"></a>GTF versi 1.1.0 dan yang lebih baru menyediakan opsi konfigurasi berikut.
+ `additional-plugins`- (Opsional) Plugin Mentimun Tambahan
+ `aws-region`— Menargetkan titik akhir regional tertentu untuk AWS layanan. Default untuk apa yang ditemukan SDK AWS .
+ `credentials-path`— Jalur kredensial AWS profil opsional. Default untuk kredensil yang ditemukan di lingkungan host.
+ `credentials-path-rotation`— Durasi rotasi opsional untuk AWS kredensil. Default hingga 15 menit atau. `PT15M`
+ `csr-path`— Jalur untuk CSR yang menggunakan sertifikat perangkat yang akan dihasilkan.
+ `device-mode`— Perangkat target yang sedang diuji. Default ke perangkat lokal.
+ `env-stage`— Menargetkan lingkungan penyebaran Greengrass. Default untuk produksi.
+ `existing-device-cert-arn`— Arn dari sertifikat yang ada yang ingin Anda gunakan sebagai sertifikat perangkat untuk Greengrass.
+ `feature-path`— File atau direktori yang berisi file fitur tambahan. Default adalah tidak ada file fitur tambahan yang digunakan.
+ `gg-cli-version`— Mengganti versi CLI Greengrass. Default ke nilai yang ditemukan di. `ggc.version`
+ `gg-component-bucket`— Nama ember Amazon S3 yang ada yang menampung komponen Greengrass.
+ `gg-component-overrides`— Daftar penggantian komponen Greengrass.
+ `gg-persist`— Daftar elemen pengujian untuk bertahan setelah uji coba. Perilaku default adalah tidak mempertahankan apa pun. Nilai yang diterima adalah:`aws.resources`,`installed.software`, dan`generated.files`.
+ `gg-runtime`— Daftar nilai untuk mempengaruhi bagaimana tes berinteraksi dengan sumber daya pengujian. Nilai-nilai ini menggantikan parameter. `gg.persist` Jika default kosong, itu mengasumsikan semua sumber daya pengujian diatur oleh kasus uji, termasuk runtime Greengrass yang diinstal. Nilai yang diterima adalah:`aws.resources`,`installed.software`, dan`generated.files`.
+ `ggc-archive`— Jalur menuju komponen inti Greengrass yang diarsipkan.
+ `ggc-install-root`— Direktori untuk menginstal komponen inti Greengrass. Default ke test.temp.path dan test run folder.
+ `ggc-log-level`— Atur level log nukleus Greengrass untuk uji coba. Defaultnya adalah “INFO”.
+ `ggc-tes-rolename`— Peran IAM yang akan diasumsikan AWS IoT Greengrass Core untuk mengakses AWS layanan. Jika peran dengan nama yang diberikan tidak ada maka satu akan dibuat dan kebijakan akses default.
+ `ggc-trusted-plugins`— Daftar koma terpisah dari jalur (pada host) dari plugin tepercaya yang perlu ditambahkan ke Greengrass. Untuk menyediakan jalur pada DUT itu sendiri, awali jalur dengan 'dut: '
+ `ggc-user-name`— Nilai user:group POSIXuser untuk inti Greengrass. Default ke nama pengguna saat ini yang masuk.
+ `ggc-version`— Mengganti versi komponen inti Greengrass yang sedang berjalan. Default ke nilai yang ditemukan di ggc.archive.
+ `log-level`— Tingkat log uji coba. Default ke “INFO”.
+ `parallel-config`— Set indeks batch dan jumlah batch sebagai JSON String. Nilai default indeks batch adalah 0 dan jumlah batch adalah 1.
+ `proxy-url`— Konfigurasikan semua tes untuk merutekan lalu lintas melalui URL ini.
+ `tags`— Hanya jalankan tag fitur. Dapat berpotongan dengan '&'
+ `test-id-prefix`- Awalan umum diterapkan untuk semua sumber daya pengujian tertentu termasuk nama AWS sumber daya dan tag. Default adalah awalan “gg”.
+ `test-log-path`— Direktori yang akan berisi hasil dari seluruh uji coba. Default ke “TestResults”.
+ `test-results-json`— Tandai untuk menentukan apakah laporan Cucumber JSON yang dihasilkan ditulis ke disk. Default ke true.
+ `test-results-log`— Tandai untuk menentukan apakah output konsol dihasilkan ditulis ke disk. Default ke false.
+ `test-results-xml`- Tandai untuk menentukan apakah laporan JUnit XHTML yang dihasilkan dihasilkan ditulis ke disk. Default ke true.
+ `test-temp-path`— Direktori untuk menghasilkan artefak uji lokal. Default ke direktori temp acak diawali dengan gg-testing.
+ `timeout-multiplier`— Pengganda disediakan untuk semua batas waktu pengujian. Defaultnya adalah 1.0.

# Tutorial: Jalankan end-to-end tes menggunakan Greengrass Testing Framework dan Greengrass Development Kit
<a name="run-e2e-tests-tutorial"></a>

AWS IoT Greengrass Testing Framework (GTF) dan Greengrass Development Kit (GDK) menawarkan pengembang cara untuk menjalankan pengujian. end-to-end Anda dapat menyelesaikan tutorial ini untuk menginisialisasi proyek GDK dengan komponen, menginisialisasi proyek GDK dengan modul end-to-end pengujian, dan membangun kasus uji khusus. Setelah Anda membangun kasus uji kustom Anda, Anda kemudian dapat menjalankan pengujian.

Dalam tutorial ini, Anda akan melakukan hal-hal berikut:

1. Inisialisasi proyek GDK dengan komponen.

1. Inisialisasi proyek GDK dengan modul end-to-end uji.

1. Buat kasus uji khusus.

1. Tambahkan tag ke kasus uji baru.

1. Bangun JAR tes.

1. Jalankan tes.

**Topics**
+ [Prasyarat](#run-e2e-tests-tutorial-prerequisites)
+ [Langkah 1: Inisialisasi proyek GDK dengan komponen](#init-gdk-with-component)
+ [Langkah 2: Inisialisasi proyek GDK dengan modul uji end-to-end](#init-gdk-with-e2e-test)
+ [Langkah 3: Bangun kasus uji khusus](#run-e2e-tests-tutorial-instructions)
+ [Langkah 4: Tambahkan tag ke kasus uji baru](#add-tag-to-test-case)
+ [Langkah 5: Bangun JAR tes](#build-test-jar)
+ [Langkah 6: Jalankan tes](#run-test-gtf)
+ [Contoh: Membangun kasus uji khusus](#build-test-case-example)

## Prasyarat
<a name="run-e2e-tests-tutorial-prerequisites"></a>

Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut:
+ GDK versi 1.3.0 atau yang lebih baru
+ Java
+ Maven
+ Git

## Langkah 1: Inisialisasi proyek GDK dengan komponen
<a name="init-gdk-with-component"></a>
+ Inisialisasi folder kosong dengan proyek GDK. Unduh `HelloWorld` komponen yang diimplementasikan dengan Python dengan menjalankan perintah berikut.

  ```
  gdk component init -t HelloWorld -l python -n HelloWorld
  ```

  Perintah ini membuat direktori baru bernama `HelloWorld` dalam direktori saat ini.

## Langkah 2: Inisialisasi proyek GDK dengan modul uji end-to-end
<a name="init-gdk-with-e2e-test"></a>
+ GDK memungkinkan Anda mengunduh templat modul pengujian yang terdiri dari implementasi fitur dan langkah. Jalankan perintah berikut untuk membuka `HelloWorld` direktori dan menginisialisasi proyek GDK yang ada menggunakan modul pengujian.

  ```
  cd HelloWorld
  gdk test-e2e init
  ```

  Perintah ini membuat direktori baru bernama `gg-e2e-tests` dalam `HelloWorld` direktori. Direktori pengujian ini adalah proyek [Maven](https://maven.apache.org/) yang memiliki ketergantungan pada JAR mandiri pengujian Greengrass.

## Langkah 3: Bangun kasus uji khusus
<a name="run-e2e-tests-tutorial-instructions"></a>

Menulis kasus uji khusus secara luas terdiri dari dua langkah: membuat file fitur dengan skenario pengujian dan menerapkan definisi langkah. Untuk contoh pembuatan kasus uji kustom, lihat[Contoh: Membangun kasus uji khusus](#build-test-case-example). Gunakan langkah-langkah berikut untuk membuat kasus uji kustom Anda:

1. Buat file fitur dengan skenario pengujian

   Sebuah fitur biasanya menggambarkan fungsionalitas spesifik dari perangkat lunak yang sedang diuji. Di Cucumber, setiap fitur ditentukan sebagai file fitur individual dengan judul, deskripsi rinci, dan satu atau lebih contoh kasus tertentu yang disebut skenario. Setiap skenario terdiri dari judul, deskripsi rinci, dan serangkaian langkah yang menentukan interaksi dan hasil yang diharapkan. Skenario ditulis dalam format terstruktur menggunakan kata kunci “diberikan,” “kapan,” dan “lalu”.

1. Menerapkan definisi langkah

   Definisi langkah menghubungkan [langkah Gherkin](https://cucumber.io/docs/gherkin/reference/#steps) dalam bahasa sederhana ke kode program. Ketika Mentimun mengidentifikasi langkah Gherkin dalam skenario, itu akan mencari definisi langkah yang cocok untuk dijalankan.

## Langkah 4: Tambahkan tag ke kasus uji baru
<a name="add-tag-to-test-case"></a>
+ Anda dapat menetapkan tag ke fitur dan skenario untuk mengatur proses pengujian. Anda dapat menggunakan tag untuk mengkategorikan subset skenario dan juga memilih kait secara kondisional untuk dijalankan. Fitur dan skenario dapat memiliki beberapa tag yang dipisahkan oleh spasi.

  Dalam contoh ini, kita menggunakan `HelloWorld` komponen.

  Dalam file fitur, tambahkan tag baru bernama `@HelloWorld` di samping `@Sample` tag.

  ```
  @Sample @HelloWorld
  Scenario: As a developer, I can create a component and deploy it on my device
  ....
  ```

## Langkah 5: Bangun JAR tes
<a name="build-test-jar"></a>

1. Membangun komponen. Anda harus membangun komponen sebelum membangun modul pengujian.

   ```
   gdk component build
   ```

1. Bangun modul pengujian menggunakan perintah berikut. Perintah ini akan membangun JAR pengujian di `greengrass-build` folder.

   ```
   gdk test-e2e build
   ```

## Langkah 6: Jalankan tes
<a name="run-test-gtf"></a>

Saat Anda menjalankan kasus uji khusus, GTF mengotomatiskan siklus hidup pengujian bersama dengan mengelola sumber daya yang dibuat selama pengujian. Ini pertama-tama menyediakan perangkat yang sedang diuji (DUT) sebagai AWS IoT sesuatu dan menginstal perangkat lunak inti Greengrass di atasnya. Kemudian akan membuat komponen baru bernama `HelloWorld` menggunakan resep yang ditentukan di jalur itu. `HelloWorld`Komponen tersebut kemudian dikerahkan ke perangkat inti melalui penerapan hal Greengrass. Ini kemudian akan diverifikasi jika penerapan berhasil. Status penerapan akan berubah menjadi `COMPLETED` dalam waktu 3 menit jika penerapan berhasil.

1. Buka `gdk-config.json` file di direktori proyek untuk menargetkan tes dengan `HelloWorld` tag. Perbarui `test-e2e` kunci menggunakan perintah berikut.

   ```
     "test-e2e":{
       "gtf_options" : { 
            "tags":"HelloWorld"
        }
     }
   ```

1. Sebelum menjalankan pengujian, Anda harus memberikan AWS kredensi ke perangkat host. GTF menggunakan kredensi ini untuk mengelola AWS sumber daya selama proses pengujian. Pastikan peran yang Anda berikan memiliki izin untuk mengotomatiskan operasi yang diperlukan yang disertakan dalam pengujian.

   Jalankan perintah berikut untuk memberikan AWS kredensialnya.

   1. 

------
#### [ 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. Jalankan tes menggunakan perintah berikut.

   ```
   gdk test-e2e run
   ```

   Perintah ini mengunduh versi terbaru dari inti Greengrass di folder dan menjalankan pengujian `greengrass-build` menggunakannya. Perintah ini juga hanya menargetkan skenario dengan `HelloWorld` tag dan menghasilkan laporan untuk skenario tersebut. Anda akan melihat AWS sumber daya yang dibuat selama tes ini dibuang di akhir tes.

## Contoh: Membangun kasus uji khusus
<a name="build-test-case-example"></a>

**Example**  
Modul pengujian yang diunduh dalam proyek GDK terdiri dari fitur sampel dan file implementasi langkah.  
Dalam contoh berikut, kami membuat file fitur untuk menguji fitur penyebaran hal dari perangkat lunak Greengrass. Kami menguji sebagian fungsionalitas fitur ini dengan skenario yang melakukan penerapan komponen melalui AWS Cloud Greengrass. Ini adalah serangkaian langkah yang membantu kita memahami interaksi dan hasil yang diharapkan dari kasus penggunaan ini.  <a name="build-test-case-example-steps"></a>

1. 

**Buat file fitur**

   Arahkan ke `gg-e2e-tests/src/main/resources/greengrass/features` folder di direktori saat ini. Anda dapat menemukan sampel `component.feature` yang terlihat seperti contoh berikut.

   Dalam file fitur ini, Anda dapat menguji fitur penyebaran benda dari perangkat lunak Greengrass. Anda dapat menguji sebagian fungsionalitas fitur ini dengan skenario yang melakukan penerapan komponen melalui cloud Greengrass. Skenario ini adalah serangkaian langkah yang membantu memahami interaksi dan hasil yang diharapkan dari kasus penggunaan ini.

   ```
   Feature: Testing features of Greengrassv2 component
   
   Background:
       Given my device is registered as a Thing
       And my device is running Greengrass
   
   @Sample
   Scenario: As a developer, I can create a component and deploy it on my device
       When I create a Greengrass deployment with components
           HelloWorld | /path/to/recipe/file
       And I deploy the Greengrass deployment configuration
       Then the Greengrass deployment is COMPLETED on the device after 180 seconds
       And I call my custom step
   ```

   GTF berisi definisi langkah dari semua langkah berikut, kecuali untuk langkah bernama:`And I call my custom step`.

1. 

**Menerapkan definisi langkah**

   JAR mandiri GTF berisi definisi langkah dari semua langkah kecuali satu langkah:. `And I call my custom step` Anda dapat menerapkan langkah ini dalam modul pengujian.

   Arahkan ke kode sumber file pengujian. Anda dapat menautkan langkah kustom Anda menggunakan definisi langkah dengan menggunakan perintah berikut.

   ```
   @And("I call my custom step")
   public void customStep() {
       System.out.println("My custom step was called ");
   }
   ```

# Tutorial: Gunakan tes kepercayaan diri dari rangkaian tes kepercayaan
<a name="confidence-tests-tutorial"></a>

AWS IoT Greengrass Testing Framework (GTF) dan Greengrass Development Kit (GDK) menawarkan pengembang cara untuk menjalankan pengujian. end-to-end Anda dapat menyelesaikan tutorial ini untuk menginisialisasi proyek GDK dengan komponen, menginisialisasi proyek GDK dengan modul end-to-end pengujian, dan menggunakan tes kepercayaan dari rangkaian pengujian kepercayaan. Setelah Anda membangun kasus uji kustom Anda, Anda kemudian dapat menjalankan pengujian.

Tes kepercayaan adalah tes generik yang disediakan oleh Greengrass yang memvalidasi perilaku komponen mendasar. Tes ini dapat dimodifikasi atau diperluas agar sesuai dengan kebutuhan komponen yang lebih spesifik. 

Untuk tutorial ini kita akan menggunakan HelloWorld komponen. Jika Anda menggunakan komponen lain, ganti HelloWorld komponen dengan komponen Anda.

Dalam tutorial ini, Anda akan melakukan hal-hal berikut:

1. Inisialisasi proyek GDK dengan komponen.

1. Inisialisasi proyek GDK dengan modul end-to-end uji.

1. Gunakan tes dari rangkaian tes kepercayaan.

1. Tambahkan tag ke kasus uji baru.

1. Bangun JAR tes.

1. Jalankan tes.

**Topics**
+ [Prasyarat](#confidence-tests-tutorial-prerequisites)
+ [Langkah 1: Inisialisasi proyek GDK dengan komponen](#init-gdk-with-component)
+ [Langkah 2: Inisialisasi proyek GDK dengan modul uji end-to-end](#init-gdk-with-e2e-test)
+ [Langkah 3: Gunakan tes dari rangkaian pengujian kepercayaan](#confidence-tests-tutorial-instructions)
+ [Langkah 4: Tambahkan tag ke kasus uji baru](#add-tag-to-test-case)
+ [Langkah 5: Bangun JAR tes](#build-test-jar)
+ [Langkah 6: Jalankan tes](#run-test-gtf)
+ [Contoh: Gunakan tes kepercayaan](#build-confidence-test-case-example)

## Prasyarat
<a name="confidence-tests-tutorial-prerequisites"></a>

Untuk menyelesaikan tutorial ini, Anda memerlukan hal berikut:
+ GDK versi 1.6.0 atau yang lebih baru
+ Java
+ Maven
+ Git

## Langkah 1: Inisialisasi proyek GDK dengan komponen
<a name="init-gdk-with-component"></a>
+ Inisialisasi folder kosong dengan proyek GDK. Unduh `HelloWorld` komponen yang diimplementasikan dengan Python dengan menjalankan perintah berikut.

  ```
  gdk component init -t HelloWorld -l python -n HelloWorld
  ```

  Perintah ini membuat direktori baru bernama `HelloWorld` dalam direktori saat ini.

## Langkah 2: Inisialisasi proyek GDK dengan modul uji end-to-end
<a name="init-gdk-with-e2e-test"></a>
+ GDK memungkinkan Anda mengunduh templat modul pengujian yang terdiri dari implementasi fitur dan langkah. Jalankan perintah berikut untuk membuka `HelloWorld` direktori dan menginisialisasi proyek GDK yang ada menggunakan modul pengujian.

  ```
  cd HelloWorld
  gdk test-e2e init
  ```

  Perintah ini membuat direktori baru bernama `gg-e2e-tests` dalam `HelloWorld` direktori. Direktori pengujian ini adalah proyek [Maven](https://maven.apache.org/) yang memiliki ketergantungan pada JAR mandiri pengujian Greengrass.

## Langkah 3: Gunakan tes dari rangkaian pengujian kepercayaan
<a name="confidence-tests-tutorial-instructions"></a>

Menulis kasus uji kepercayaan terdiri dari menggunakan file fitur yang disediakan dan, jika perlu, memodifikasi skenario. Untuk contoh menggunakan tes kepercayaan diri, lihat[Contoh: Membangun kasus uji khusus](run-e2e-tests-tutorial.md#build-test-case-example). Gunakan langkah-langkah berikut untuk menggunakan tes kepercayaan diri:
+ Gunakan file fitur yang disediakan.

  Arahkan ke `gg-e2e-tests/src/main/resources/greengrass/features` folder di direktori saat ini. Buka `confidenceTest.feature` file sampel untuk menggunakan tes kepercayaan.

## Langkah 4: Tambahkan tag ke kasus uji baru
<a name="add-tag-to-test-case"></a>
+ Anda dapat menetapkan tag ke fitur dan skenario untuk mengatur proses pengujian. Anda dapat menggunakan tag untuk mengkategorikan subset skenario dan juga memilih kait secara kondisional untuk dijalankan. Fitur dan skenario dapat memiliki beberapa tag yang dipisahkan oleh spasi.

  Dalam contoh ini, kita menggunakan `HelloWorld` komponen.

  Setiap skenario ditandai dengan`@ConfidenceTest`. Ubah atau tambahkan tag jika Anda hanya ingin menjalankan sebagian dari rangkaian pengujian. Setiap skenario tes dijelaskan di bagian atas setiap tes kepercayaan. Skenario ini adalah serangkaian langkah yang membantu memahami interaksi dan hasil yang diharapkan dari setiap kasus uji. Anda dapat memperpanjang tes ini dengan menambahkan langkah Anda sendiri atau dengan memodifikasi yang sudah ada.

  ```
  @ConfidenceTest
  Scenario: As a Developer, I can deploy GDK_COMPONENT_NAME to my device and see it is working as expected
  ....
  ```

## Langkah 5: Bangun JAR tes
<a name="build-test-jar"></a>

1. Membangun komponen. Anda harus membangun komponen sebelum membangun modul pengujian.

   ```
   gdk component build
   ```

1. Bangun modul pengujian menggunakan perintah berikut. Perintah ini akan membangun JAR pengujian di `greengrass-build` folder.

   ```
   gdk test-e2e build
   ```

## Langkah 6: Jalankan tes
<a name="run-test-gtf"></a>

Saat Anda menjalankan uji kepercayaan diri, GTF mengotomatiskan siklus hidup pengujian bersama dengan mengelola sumber daya yang dibuat selama pengujian. Ini pertama-tama menyediakan perangkat yang sedang diuji (DUT) sebagai AWS IoT sesuatu dan menginstal perangkat lunak inti Greengrass di atasnya. Kemudian akan membuat komponen baru bernama `HelloWorld` menggunakan resep yang ditentukan di jalur itu. `HelloWorld`Komponen tersebut kemudian dikerahkan ke perangkat inti melalui penerapan hal Greengrass. Ini kemudian akan diverifikasi jika penerapan berhasil. Status penerapan akan berubah menjadi `COMPLETED` dalam waktu 3 menit jika penerapan berhasil.

1. Pergi ke `gdk-config.json` file di direktori proyek untuk menargetkan tes dengan `ConfidenceTest` tag atau tag mana pun yo8u yang ditentukan dalam Langkah 4. Perbarui `test-e2e` kunci menggunakan perintah berikut.

   ```
     "test-e2e":{
       "gtf_options" : { 
            "tags":"ConfidenceTest"
        }
     }
   ```

1. Sebelum menjalankan pengujian, Anda harus memberikan AWS kredensi ke perangkat host. GTF menggunakan kredensi ini untuk mengelola AWS sumber daya selama proses pengujian. Pastikan peran yang Anda berikan memiliki izin untuk mengotomatiskan operasi yang diperlukan yang disertakan dalam pengujian.

   Jalankan perintah berikut untuk memberikan AWS kredensialnya.

   1. 

------
#### [ 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. Jalankan tes menggunakan perintah berikut.

   ```
   gdk test-e2e run
   ```

   Perintah ini mengunduh versi terbaru dari inti Greengrass di folder dan menjalankan pengujian `greengrass-build` menggunakannya. Perintah ini juga hanya menargetkan skenario dengan `ConfidenceTest` tag dan menghasilkan laporan untuk skenario tersebut. Anda akan melihat AWS sumber daya yang dibuat selama tes ini dibuang di akhir tes.

## Contoh: Gunakan tes kepercayaan
<a name="build-confidence-test-case-example"></a>

**Example**  
Modul pengujian yang diunduh dalam proyek GDK terdiri dari file fitur yang disediakan.  
Dalam contoh berikut, kami menggunakan file fitur untuk menguji fitur penyebaran benda dari perangkat lunak Greengrass. Kami menguji sebagian fungsionalitas fitur ini dengan skenario yang melakukan penerapan komponen melalui AWS Cloud Greengrass. Ini adalah serangkaian langkah yang membantu kita memahami interaksi dan hasil yang diharapkan dari kasus penggunaan ini.  <a name="build-confidence-test-case-example-steps"></a>
+ 

**Gunakan file fitur yang disediakan.**

  Arahkan ke `gg-e2e-tests/src/main/resources/greengrass/features` folder di direktori saat ini. Anda dapat menemukan sampel `confidenceTest.feature` yang terlihat seperti contoh berikut.

  ```
  Feature: Confidence Test Suite
  
  Background:
      Given my device is registered as a Thing
      And my device is running Greengrass
  
  @ConfidenceTest
  Scenario: As a Developer, I can deploy GDK_COMPONENT_NAME to my device and see it is working as expected
      When I create a Greengrass deployment with components
        | GDK_COMPONENT_NAME | GDK_COMPONENT_RECIPE_FILE |
        | aws.greengrass.Cli | LATEST                    |
      And I deploy the Greengrass deployment configuration
      Then the Greengrass deployment is COMPLETED on the device after 180 seconds
      # Update component state accordingly. Possible states: {RUNNING, FINISHED, BROKEN, STOPPING}
      And I verify the GDK_COMPONENT_NAME component is RUNNING using the greengrass-cli
  ```

  Setiap skenario tes dijelaskan di bagian atas setiap tes kepercayaan. Skenario ini adalah serangkaian langkah yang membantu memahami interaksi dan hasil yang diharapkan dari setiap kasus uji. Anda dapat memperpanjang tes ini dengan menambahkan langkah Anda sendiri atau dengan memodifikasi yang sudah ada. Masing-masing skenario mencakup komentar yang membantu Anda melakukan penyesuaian ini.