

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

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