

Pemberitahuan akhir dukungan: Pada 7 Oktober 2026, AWS akan menghentikan dukungan untuk. AWS IoT Greengrass Version 1 Setelah 7 Oktober 2026, Anda tidak akan lagi dapat mengakses sumber daya. AWS IoT Greengrass V1 Untuk informasi lebih lanjut, silakan kunjungi [Migrasi dari AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

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

# Konfigurasikan AWS IoT Greengrass inti
<a name="gg-core"></a>

 AWS IoT Greengrass Inti adalah AWS IoT benda (perangkat) yang bertindak sebagai hub atau gateway di lingkungan tepi. Seperti AWS IoT perangkat lain, inti ada di registri, memiliki bayangan perangkat, dan menggunakan sertifikat perangkat untuk mengautentikasi dengan AWS IoT Core dan AWS IoT Greengrass. Perangkat core menjalankan AWS IoT Greengrass perangkat lunak Core, yang memungkinkannya untuk mengelola proses lokal untuk grup Greengrass, seperti komunikasi, sinkronisasi bayangan, dan pertukaran token.

Perangkat lunak AWS IoT Greengrass Core menyediakan fungsionalitas berikut:<a name="ggc-software-features"></a>
+ Deployment dan menjalankan lokal konektor dan fungsi Lambda.
+ Memproses aliran data secara lokal dengan ekspor otomatis ke file. AWS Cloud
+ Olahpesan MQTT melalui jaringan lokal antara perangkat, konektor, dan fungsi Lambda menggunakan langganan terkelola.
+ Pesan MQTT antara AWS IoT dan perangkat, konektor, dan fungsi Lambda menggunakan langganan terkelola.
+ Koneksi aman antara perangkat dan AWS Cloud menggunakan otentikasi dan otorisasi perangkat.
+ Sinkronisasi bayangan lokal perangkat. Bayangan dapat dikonfigurasi untuk disinkronkan dengan AWS Cloud.
+ Akses terkontrol ke perangkat lokal dan sumber daya volume.
+ Deployment model machine learning dengan pelatihan cloud untuk menjalankan inferensi lokal.
+ Deteksi alamat IP otomatis yang mengaktifkan perangkat untuk menemukan perangkat Core Greengrass.
+ Deployment pusat dar konfigurasi grup yang baru atau diperbarui. Setelah data konfigurasi diunduh, perangkat core di-restart secara otomatis.
+ Pembaruan perangkat lunak over-the-air (OTA) yang aman dari fungsi Lambda yang ditentukan pengguna.
+ Penyimpanan rahasia lokal yang aman dan terenkripsi dan akses yang dikendalikan oleh konektor dan fungsi Lambda.

## AWS IoT Greengrass file konfigurasi inti
<a name="config-json"></a>

File konfigurasi untuk perangkat lunak AWS IoT Greengrass Core adalah`config.json`. Ini terletak di `/greengrass-root/config` direktori.

**catatan**  
*greengrass-root*mewakili jalur di mana perangkat lunak AWS IoT Greengrass Core diinstal pada perangkat Anda. Biasanya, adalah direktori `/greengrass` ini.  
Jika Anda menggunakan opsi **pembuatan Grup Default** dari AWS IoT Greengrass konsol, maka `config.json` file tersebut dikerahkan ke perangkat inti dalam keadaan kerja.

 Anda dapat meninjau isi file ini dengan menjalankan perintah berikut:

```
cat /greengrass-root/config/config.json
```

Berikut ini adalah contoh `config.json` file. Ini adalah versi yang dihasilkan saat Anda membuat inti dari AWS IoT Greengrass konsol.

------
#### [ GGC v1.11 ]

```
{
    "coreThing": {
        "caPath": "root.ca.pem",
        "certPath": "hash.cert.pem",
        "keyPath": "hash.private.key",
        "thingArn": "arn:partition:iot:region:account-id:thing/core-thing-name",
        "iotHost": "host-prefix-ats.iot.region.amazonaws.com",
        "ggHost": "greengrass-ats.iot.region.amazonaws.com",
        "keepAlive": 600,
        "ggDaemonPort": 8000,
        "systemComponentAuthTimeout": 5000
    },
    "runtime": {
        "maxWorkItemCount": 1024,
        "maxConcurrentLimit": 25,
        "lruSize": 25,
        "mountAllBlockDevices": "no",
        "cgroup": {
            "useSystemd": "yes"
        }
    },
    "managedRespawn": false,
    "crypto": {
        "principals": {
            "SecretsManager": {
                "privateKeyPath": "file:///greengrass/certs/hash.private.key"
            },
            "IoTCertificate": {
                "privateKeyPath": "file:///greengrass/certs/hash.private.key",
                "certificatePath": "file:///greengrass/certs/hash.cert.pem"
            }
        },
        "caPath": "file:///greengrass/certs/root.ca.pem"
    },
    "writeDirectory": "/var/snap/aws-iot-greengrass/current/ggc-write-directory",
    "pidFileDirectory": "/var/snap/aws-iot-greengrass/current/pidFileDirectory"
}
```

File `config.json` mendukung properti berikut:

**CoreThing**


| Bidang | Deskripsi | Catatan | 
| --- | --- | --- | 
| <a name="shared-config-capath"></a>caPath |  Jalur ke AWS IoT root CA relatif terhadap `/greengrass-root/certs` direktori.  |  Untuk kompatibilitas backward dengan versi lebih awal dari 1.7.0. Properti ini diabaikan ketika `crypto` objek hadir.  Pastikan bahwa [titik akhir Anda sesuai dengan jenis sertifikat Anda](#certificate-endpoints).   | 
| <a name="shared-config-certpath"></a>certPath |  Jalur ke sertifikat perangkat core relatif terhadap `/greengrass-root/certs` direktori.  | Untuk kompatibilitas backward dengan versi lebih awal dari 1.7.0. Properti ini diabaikan ketika crypto objek hadir. | 
| <a name="shared-config-keypath"></a>keyPath | Jalur ke kunci privat core tergantung pada /greengrass-root/certs direktori. | Untuk kompatibilitas backward dengan versi lebih awal dari 1.7.0. Properti ini diabaikan ketika crypto objek hadir. | 
| <a name="shared-config-thingarn"></a>thingArn | Nama Sumber Daya Amazon (ARN) dari AWS IoT hal yang mewakili perangkat AWS IoT Greengrass inti. | Temukan ARN untuk inti Anda di AWS IoT Greengrass konsol di bawah Cores, atau dengan menjalankan perintah CLI [https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-core-definition-version.html](https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-core-definition-version.html). | 
| <a name="shared-config-iothost-v1.9"></a>iotHost |  AWS IoT Titik akhir Anda. |  Temukan titik akhir di AWS IoT konsol di bawah **Pengaturan**, atau dengan menjalankan perintah [https://docs.aws.amazon.com/cli/latest/reference/iot/describe-endpoint.html](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-endpoint.html)CLI. Perintah ini mengembalikan titik akhir Amazon Trust Services (ATS). Untuk informasi lebih lanjut, lihat [Dokumentasi](https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html) autentikasi server.  Pastikan bahwa [titik akhir Anda sesuai dengan jenis sertifikat Anda](#certificate-endpoints). Pastikan bahwa [ titik akhir Anda sesuai dengan Wilayah AWS](https://docs.aws.amazon.com/general/latest/gr/greengrass.html).    | 
| <a name="shared-config-gghost-v1.9"></a>ggHost |  AWS IoT Greengrass Titik akhir Anda. |  Ini adalah titik akhir `iotHost` Anda dengan prefiks host digantikan oleh *greengrass* (sebagai contoh, `greengrass-ats.iot.region.amazonaws.com`). Gunakan yang sama Wilayah AWS seperti`iotHost`.  Pastikan bahwa [titik akhir Anda sesuai dengan jenis sertifikat Anda](#certificate-endpoints). Pastikan bahwa [ titik akhir Anda sesuai dengan Wilayah AWS](https://docs.aws.amazon.com/general/latest/gr/greengrass.html).    | 
| <a name="shared-config-iotmqttport"></a>iotMqttPort | Tidak wajib. Nomor port yang digunakan untuk komunikasi MQTT dengan. AWS IoT | Nilai yang valid adalah 8883 atau 443. Nilai default-nya adalah 8883. Untuk informasi selengkapnya, lihat [Hubungkan pada port 443 atau melalui proksi jaringan](#alpn-network-proxy). | 
| <a name="shared-config-iothttpport"></a>iotHttpPort | Tidak wajib. Nomor port yang digunakan untuk membuat koneksi HTTPS ke AWS IoT. | Nilai yang valid adalah 8443 atau 443. Nilai default-nya adalah 8443. Untuk informasi selengkapnya, lihat [Hubungkan pada port 443 atau melalui proksi jaringan](#alpn-network-proxy). | 
| <a name="shared-config-ggmqttport"></a>ggMqttPort | Tidak wajib. Nomor port yang digunakan untuk komunikasi MQTT melalui jaringan lokal. | Nilai yang valid adalah 1024 melalui 65535. Nilai default-nya adalah 8883. Untuk informasi selengkapnya, lihat [Konfigurasi port MQTT untuk pesan lokal](#config-local-mqtt-port). | 
| <a name="shared-config-gghttpport"></a>ggHttpPort | Tidak wajib. Nomor port yang digunakan untuk membuat koneksi HTTPS ke AWS IoT Greengrass layanan. | Nilai yang valid adalah 8443 atau 443. Nilai default-nya adalah 8443. Untuk informasi selengkapnya, lihat [Hubungkan pada port 443 atau melalui proksi jaringan](#alpn-network-proxy). | 
| <a name="shared-config-keepalive"></a>keepAlive | Tidak wajib. Periode KeepAlive MQTT, dalam detik. | Kisaran valid adalah antara 30 dan 1200 detik. Nilai default adalah 600. | 
| <a name="shared-config-networkproxy"></a>networkProxy | Tidak wajib. Sebuah objek yang mendefinisikan server proksi untuk terhubung ke. | Server proksi dapat HTTP atau HTTPS. Untuk informasi selengkapnya, lihat [Hubungkan pada port 443 atau melalui proksi jaringan](#alpn-network-proxy). | 
| <a name="config-mqttOperationTimeout-v1.11.0"></a>mqttOperationTimeout | Tidak wajib. Jumlah waktu (dalam detik) untuk mengizinkan core Greengrass untuk menyelesaikan penerbitan, berlangganan, atau berhenti berlangganan operasi di koneksi MQTT ke AWS IoT Core. | Nilai bawaannya adalah 5. Nilai minimum adalah 5. | 
| <a name="shared-conifg-ggDaemonPort"></a>ggDaemonPort | Tidak wajib. Nomor port IPC core Greengrass. |  Properti ini tersedia di AWS IoT Greengrass v1.11.0 atau versi lebih baru. Nilai yang valid adalah antara 1024 dan 65535. Nilai default adalah 8000.  | 
| <a name="shared-config-systemComponentAuthTimeout"></a>systemComponentAuthTimeout | Tidak wajib. Waktu (dalam milidetik) untuk mengizinkan core Greengrass IPC untuk menyelesaikan pengesahan. |  Properti ini tersedia di AWS IoT Greengrass v1.11.0 atau versi lebih baru. Nilai yang valid adalah antara 500 dan 5000. Nilai default-nya adalah 5000.  | 

**runtime**


| Bidang | Deskripsi | Catatan | 
| --- |--- |--- |
| maxWorkItemCount | Tidak wajib. Jumlah maksimum item pekerjaan yang Greengrass daemon dapat memproses pada satu waktu. Item kerja yang melebihi batas ini diabaikan. Antrian item kerja dibagi oleh komponen sistem, fungsi Lambda yang ditetapkan pengguna, dan konektor. | Nilai default adalah 1024. Nilai maksimum dibatasi oleh perangkat keras perangkat Anda. Meningkatkan nilai ini meningkatkan memori yang AWS IoT Greengrass digunakan. Anda dapat meningkatkan nilai ini jika Anda mengharapkan core Anda untuk menerima lalu lintas pesan MQTT berat.  | 
| maxConcurrentLimit | Tidak wajib. Jumlah maksimum pekerja Lambda yang tidak disematkan bersamaan yang dapat dimiliki oleh Greengrass daemon. Anda dapat menentukan integer yang berbeda untuk menimpa parameter ini. | Nilai default adalah 25. Nilai minimum ditetapkan oleh `lruSize`.  | 
| lruSize | Tidak wajib. Mendefinisikan nilai minimum untukmaxConcurrentLimit. | Nilai default adalah 25. | 
| mountAllBlockDevices | Tidak wajib. Memungkinkan AWS IoT Greengrass untuk menggunakan bind mount untuk me-mount semua perangkat blok ke dalam wadah setelah menyiapkan OverlayFS. |  Properti ini tersedia di AWS IoT Greengrass v1.11.0 atau versi lebih baru. Nilai yang valid adalah `yes` dan `no`. Nilai default-nya adalah `no`. Atur nilai ini ke `yes` jika direktori `/usr` Anda tidak di bawah `/` hierarki. | 
| postStartHealthCheckTimeout | Tidak wajib. Waktu (dalam milidetik) setelah memulai bahwa daemon Greengrass menunggu pemeriksaan kesehatan selesai. | Batas waktu default adalah 30 detik (30000 ms). | 
| `cgroup` | 
| --- |
| useSystemd | Menunjukkan apakah perangkat Anda menggunakan [https://en.wikipedia.org/wiki/Systemd](https://en.wikipedia.org/wiki/Systemd). | Nilai yang valid adalah yes atau no. Jalankan check\$1ggc\$1dependencies skrip di [Modul 1](module1.md) untuk melihat apakah perangkat Anda menggunakan systemd. | 

**kripto**

Ini `crypto` Berisi properti yang mendukung penyimpanan kunci privat pada hardware security module (HSM) melalui PKCS \$111 dan penyimpanan rahasia lokal. Lihat informasi selengkapnya di [AWS IoT Greengrass prinsip keamanan inti](gg-sec.md#gg-principals), [Integrasi keamanan perangkat keras](hardware-security.md), dan [Menyebarkan rahasia ke inti AWS IoT Greengrass](secrets.md). Konfigurasi untuk penyimpanan kunci pribadi pada HSMs atau dalam sistem file didukung.


| Bidang | Deskripsi | Catatan | 
| --- |--- |--- |
| caPath |  Jalur absolut ke AWS IoT root CA.  |  Harus berupa URI file dalam bentuk: `file:///absolute/path/to/file`.  Pastikan bahwa [titik akhir Anda sesuai dengan jenis sertifikat Anda](#certificate-endpoints).   | 
| `PKCS11` | 
| --- |
| OpenSSLEngine |  Tidak wajib. Jalur absolut ke file `.so` mesin OpenSSL untuk mengaktifkan mendukung PKCS\$111 pada OpenSSL.  |  Harus berupa jalur ke file pada sistem file. Properti ini diperlukan jika Anda menggunakan agen pembaruan Greengrass OTA dengan keamanan perangkat keras. Untuk informasi selengkapnya, lihat [Konfigurasikan dukungan untuk over-the-air pembaruan](hardware-security.md#hardware-security-ota-updates).  | 
| P11Provider |  Jalur absolut ke perpustakaan libdl-loadable implementasi PKCS\$111.  |  Harus berupa jalur ke file pada sistem file.  | 
| slotLabel |  Slot label yang digunakan untuk mengidentifikasi modul perangkat keras.  |  Harus sesuai dengan spesifikasi label PKCS\$111.  | 
| slotUserPin |  PIN pengguna yang digunakan untuk mengautentikasi core Greengrass ke modul.  |  Harus memiliki izin yang memadai untuk melakukan C\$1Sign dengan kunci privat yang dikonfigurasi.  | 
| `principals` | 
| --- |
| IoTCertificate | Sertifikat dan kunci pribadi yang digunakan inti untuk membuat permintaan AWS IoT. | 
| IoTCertificate  .privateKeyPath  |  Jalur ke kunci privat core.  |  Untuk penyimpanan sistem file, harus berupa URI file dalam bentuk: `file:///absolute/path/to/file`. Untuk penyimpanan HSM, harus jalur [RFC 7512 PKCS\$111](https://tools.ietf.org/html/rfc7512) yang menentukan label objek.  | 
| IoTCertificate  .certificatePath |  Jalur absolut untuk sertifikat perangkat core.  |  Harus berupa URI file dalam bentuk: `file:///absolute/path/to/file`.  | 
| MQTTServerCertificate |  Tidak wajib. Kunci privat yang menggunakan core dalam kombinasi dengan sertifikat untuk bertindak sebagai server MQTT atau gateway.  | 
| MQTTServerCertificate  .privateKeyPath |  Jalur ke kunci privat server MQTT lokal.  |  Gunakan nilai ini untuk menentukan kunci privat Anda sendiri untuk server MQTT lokal. Untuk penyimpanan sistem file, harus berupa URI file dalam bentuk: `file:///absolute/path/to/file`. Untuk penyimpanan HSM, harus jalur [RFC 7512 PKCS\$111](https://tools.ietf.org/html/rfc7512) yang menentukan label objek. Jika properti ini dihilangkan, AWS IoT Greengrass putar kunci berdasarkan pengaturan rotasi Anda. Jika ditentukan, pelanggan bertanggung jawab untuk memutar kunci.  | 
| SecretsManager | Kunci pribadi yang mengamankan kunci data yang digunakan untuk enkripsi. Untuk informasi selengkapnya, lihat [Menyebarkan rahasia ke inti AWS IoT Greengrass](secrets.md). | 
| SecretsManager  .privateKeyPath |  Jalur ke kunci privat secrets manager lokal.  |  Hanya kunci RSA yang didukung. Untuk penyimpanan sistem file, harus berupa URI file dalam bentuk: `file:///absolute/path/to/file`. Untuk penyimpanan HSM, harus jalur [RFC 7512 PKCS\$111](https://tools.ietf.org/html/rfc7512) yang menentukan label objek. Kunci privat harus dibuat dengan menggunakan mekanisme padding [PKCS \$11 v1.5](https://tools.ietf.org/html/rfc2313) ini.  | 

Properti konfigurasi berikut juga didukung:


****  

| Bidang | Deskripsi | Catatan | 
| --- | --- | --- | 
| <a name="shared-config-mqttmaxconnectionretryinterval"></a> mqttMaxConnectionRetryInterval  |  Tidak wajib. Interval maksimum (dalam detik) antara koneksi retries MQTT jika koneksi terputus.  |  Tentukan nilai ini sebagai unsigned integer. Default-nya adalah `60`.  | 
| <a name="shared-config-managedrespawn"></a> managedRespawn  |  Tidak wajib. Mengindikasikan bahwa agen OTA perlu menjalankan kode kustom sebelum pembaruan.  |  Nilai yang valid adalah `true` atau `false`. Untuk informasi selengkapnya, lihat [Pembaruan OTA dari perangkat lunak AWS IoT Greengrass Core](core-ota-update.md).  | 
| <a name="shared-config-writedirectory"></a> writeDirectory  |  Tidak wajib. Direktori tulis tempat AWS IoT Greengrass membuat semua read/write sumber daya.  |  Untuk informasi selengkapnya, lihat [Konfigurasikan direktori tulis untuk AWS IoT Greengrass](#write-directory).  | 
| <a name="shared-config-piddirectory"></a>pidFileDirectory |  Opsional. AWS IoT Greengrass menyimpan ID proses (PID) di bawah direktori ini.  |  Nilai default-nya adalah `/var/run`.  | 

------
#### [ Extended life versions ]

Versi perangkat lunak AWS IoT Greengrass Core berikut ini berada dalam [fase umur yang diperpanjang](maintenance-policy.md). Informasi ini disertakan untuk tujuan referensi saja.

GGC v1.10  

```
{
  "coreThing" : {
    "caPath" : "root.ca.pem",
    "certPath" : "hash.cert.pem",
    "keyPath" : "hash.private.key",
    "thingArn" : "arn:partition:iot:region:account-id:thing/core-thing-name",
    "iotHost" : "host-prefix-ats.iot.region.amazonaws.com",
    "ggHost" : "greengrass-ats.iot.region.amazonaws.com",
    "keepAlive" : 600,
    "systemComponentAuthTimeout": 5000
  },
  "runtime" : {
    "maxWorkItemCount" : 1024,
    "maxConcurrentLimit" : 25,
    "lruSize": 25,
    "cgroup" : {
      "useSystemd" : "yes"
    }
  },
  "managedRespawn" : false,
  "crypto" : {
    "principals" : {
      "SecretsManager" : {
        "privateKeyPath" : "file:///greengrass/certs/hash.private.key"
      },
      "IoTCertificate" : {
        "privateKeyPath" : "file:///greengrass/certs/hash.private.key",
        "certificatePath" : "file:///greengrass/certs/hash.cert.pem"
      } 
    },
    "caPath" : "file:///greengrass/certs/root.ca.pem"
  }
}
```
File `config.json` mendukung properti berikut:  
**CoreThing**      
<a name="config-json-properties-corething-v1.9"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
**runtime**      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
**kripto**  
Ini `crypto` Berisi properti yang mendukung penyimpanan kunci privat pada hardware security module (HSM) melalui PKCS \$111 dan penyimpanan rahasia lokal. Lihat informasi selengkapnya di [AWS IoT Greengrass prinsip keamanan inti](gg-sec.md#gg-principals), [Integrasi keamanan perangkat keras](hardware-security.md), dan [Menyebarkan rahasia ke inti AWS IoT Greengrass](secrets.md). Konfigurasi untuk penyimpanan kunci pribadi pada HSMs atau dalam sistem file didukung.      
<a name="config-crypto"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
Properti konfigurasi berikut juga didukung:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)

GGC v1.9  

```
{
  "coreThing" : {
    "caPath" : "root.ca.pem",
    "certPath" : "hash.cert.pem",
    "keyPath" : "hash.private.key",
    "thingArn" : "arn:partition:iot:region:account-id:thing/core-thing-name",
    "iotHost" : "host-prefix-ats.iot.region.amazonaws.com",
    "ggHost" : "greengrass-ats.iot.region.amazonaws.com",
    "keepAlive" : 600
  },
  "runtime" : {
    "cgroup" : {
      "useSystemd" : "yes"
    }
  },
  "managedRespawn" : false,
  "crypto" : {
    "principals" : {
      "SecretsManager" : {
        "privateKeyPath" : "file:///greengrass/certs/hash.private.key"
      },
      "IoTCertificate" : {
        "privateKeyPath" : "file:///greengrass/certs/hash.private.key",
        "certificatePath" : "file:///greengrass/certs/hash.cert.pem"
      } 
    },
    "caPath" : "file:///greengrass/certs/root.ca.pem"
  }
}
```
File `config.json` mendukung properti berikut:  
**CoreThing**      
<a name="config-json-properties-corething-v1.9"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
**runtime**      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
**kripto**  
Objek `crypto` ditambahkan di v1.7.0. Ini memperkenalkan properti yang mendukung penyimpanan kunci privat pada hardware security module (HSM) melalui PKCS \$111 dan penyimpanan rahasia lokal. Lihat informasi selengkapnya di [AWS IoT Greengrass prinsip keamanan inti](gg-sec.md#gg-principals), [Integrasi keamanan perangkat keras](hardware-security.md), dan [Menyebarkan rahasia ke inti AWS IoT Greengrass](secrets.md). Konfigurasi untuk penyimpanan kunci pribadi pada HSMs atau dalam sistem file didukung.      
<a name="config-crypto"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
Properti konfigurasi berikut juga didukung.    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)

**GGC v1.8**  

```
{
  "coreThing" : {
    "caPath" : "root.ca.pem",
    "certPath" : "hash.cert.pem",
    "keyPath" : "hash.private.key",
    "thingArn" : "arn:aws:iot:region:account-id:thing/core-thing-name",
    "iotHost" : "host-prefix-ats.iot.region.amazonaws.com",
    "ggHost" : "greengrass-ats.iot.region.amazonaws.com",
    "keepAlive" : 600
  },
  "runtime" : {
    "cgroup" : {
      "useSystemd" : "yes"
    }
  },
  "managedRespawn" : false,
  "crypto" : {
    "principals" : {
      "SecretsManager" : {
        "privateKeyPath" : "file:///greengrass/certs/hash.private.key"
      },
      "IoTCertificate" : {
        "privateKeyPath" : "file:///greengrass/certs/hash.private.key",
        "certificatePath" : "file:///greengrass/certs/hash.cert.pem"
      } 
    },
    "caPath" : "file:///greengrass/certs/root.ca.pem"
  }
}
```
File `config.json` mendukung properti berikut.  
**CoreThing**      
<a name="config-json-properties-corething-v1.8"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
**runtime**      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
**kripto**  
Objek `crypto` ditambahkan di v1.7.0. Ini memperkenalkan properti yang mendukung penyimpanan kunci privat pada hardware security module (HSM) melalui PKCS \$111 dan penyimpanan rahasia lokal. Lihat informasi selengkapnya di [AWS IoT Greengrass prinsip keamanan inti](gg-sec.md#gg-principals), [Integrasi keamanan perangkat keras](hardware-security.md), dan [Menyebarkan rahasia ke inti AWS IoT Greengrass](secrets.md). Konfigurasi untuk penyimpanan kunci pribadi pada HSMs atau dalam sistem file didukung.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
Properti konfigurasi berikut juga didukung:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)

**GGC v1.7**  

```
{
  "coreThing" : {
    "caPath" : "root.ca.pem",
    "certPath" : "hash.cert.pem",
    "keyPath" : "hash.private.key",
    "thingArn" : "arn:aws:iot:region:account-id:thing/core-thing-name",
    "iotHost" : "host-prefix-ats.iot.region.amazonaws.com",
    "ggHost" : "greengrass-ats.iot.region.amazonaws.com",
    "keepAlive" : 600
  },
  "runtime" : {
    "cgroup" : {
      "useSystemd" : "yes"
    }
  },
  "managedRespawn" : false,
  "crypto" : {
    "principals" : {
      "SecretsManager" : {
        "privateKeyPath" : "file:///greengrass/certs/hash.private.key"
      },
      "IoTCertificate" : {
        "privateKeyPath" : "file:///greengrass/certs/hash.private.key",
        "certificatePath" : "file:///greengrass/certs/hash.cert.pem"
      } 
    },
    "caPath" : "file:///greengrass/certs/root.ca.pem"
  }
}
```
File `config.json` mendukung properti berikut:  
**CoreThing**      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
**runtime**      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
**kripto**  
Objek `crypto` tersebut, ditambahkan di v1.7.0, memperkenalkan properti yang mendukung penyimpanan kunci privat pada hardware security module (HSM) melalui PKCS \$111 dan penyimpanan rahasia lokal. Untuk informasi selengkapnya, lihat [Integrasi keamanan perangkat keras](hardware-security.md) dan [Menyebarkan rahasia ke inti AWS IoT Greengrass](secrets.md). Konfigurasi untuk penyimpanan kunci pribadi pada HSMs atau dalam sistem file didukung.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)
Properti konfigurasi berikut juga didukung:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)

**GGC v1.6**  

```
{
   "coreThing": {
       "caPath": "root-ca-pem",
       "certPath": "cloud-pem-crt",
       "keyPath": "cloud-pem-key",
       "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name",
       "iotHost": "host-prefix.iot.region.amazonaws.com",
       "ggHost": "greengrass.iot.region.amazonaws.com",
       "keepAlive": 600,
       "mqttMaxConnectionRetryInterval": 60
   },
   "runtime": {
       "cgroup": {
           "useSystemd": "yes|no"
       }
   },
   "managedRespawn": true,
   "writeDirectory": "/write-directory"
}
```
Jika Anda menggunakan opsi **pembuatan Grup Default** dari AWS IoT Greengrass konsol, maka `config.json` file tersebut dikerahkan ke perangkat inti dalam keadaan kerja yang menentukan konfigurasi default.
File `config.json` mendukung properti berikut:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)

**GGC v1.5**  

```
{
   "coreThing": {
       "caPath": "root-ca-pem",
       "certPath": "cloud-pem-crt",
       "keyPath": "cloud-pem-key",
       "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name",
       "iotHost": "host-prefix.iot.region.amazonaws.com",
       "ggHost": "greengrass.iot.region.amazonaws.com",
       "keepAlive": 600
   },
   "runtime": {
       "cgroup": {
           "useSystemd": "yes|no"
       }
   },
   "managedRespawn": true
}
```
File `config.json` eksis di `/greengrass-root/config` dan berisi parameter berikut:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)

**GGC v1.3**  

```
{
   "coreThing": {
       "caPath": "root-ca-pem",
       "certPath": "cloud-pem-crt",
       "keyPath": "cloud-pem-key",
       "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name",
       "iotHost": "host-prefix.iot.region.amazonaws.com",
       "ggHost": "greengrass.iot.region.amazonaws.com",
       "keepAlive": 600
   },
   "runtime": {
       "cgroup": {
           "useSystemd": "yes|no"
       }
   },
   "managedRespawn": true
}
```
File `config.json` eksis di `/greengrass-root/config` dan berisi parameter berikut:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)

**GGC v1.1**  

```
{
   "coreThing": {
       "caPath": "root-ca-pem",
       "certPath": "cloud-pem-crt",
       "keyPath": "cloud-pem-key",
       "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name",
       "iotHost": "host-prefix.iot.region.amazonaws.com",
       "ggHost": "greengrass.iot.region.amazonaws.com",
       "keepAlive": 600
   },
   "runtime": {
       "cgroup": {
           "useSystemd": "yes|no"
       }
   }
}
```
File `config.json` eksis di `/greengrass-root/config` dan berisi parameter berikut:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)

**GGC v1.0**  
Di AWS IoT Greengrass Core v1.0, `config.json` diterapkan ke. `greengrass-root/configuration`  

```
{
   "coreThing": {
       "caPath": "root-ca-pem",
       "certPath": "cloud-pem-crt",
       "keyPath": "cloud-pem-key",
       "thingArn": "arn:aws:iot:region:account-id:thing/core-thing-name",
       "iotHost": "host-prefix.iot.region.amazonaws.com",
       "ggHost": "greengrass.iot.region.amazonaws.com",
       "keepAlive": 600
   },
   "runtime": {
       "cgroup": {
           "useSystemd": "yes|no"
       }
   }
}
```
File `config.json` eksis di `/greengrass-root/configuration` dan berisi parameter berikut:    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)

------

## Titik akhir layanan harus sesuai dengan jenis sertifikat CA root
<a name="certificate-endpoints"></a>

 AWS IoT Greengrass Titik akhir Anda AWS IoT Core dan titik akhir harus sesuai dengan jenis sertifikat sertifikat root CA pada perangkat Anda. Jika titik akhir dan jenis sertifikat tidak cocok, upaya otentikasi gagal antara perangkat dan AWS IoT Core atau. AWS IoT Greengrass Untuk informasi lebih lanjut, lihat [Autentikasi Server](https://docs.aws.amazon.com/iot/latest/developerguide/server-authentication.html) dalam *Panduan Developer AWS IoT *.

Jika perangkat Anda menggunakan sertifikat CA akar Amazon Trust Services (ATS), yang merupakan metode pilihan, perangkat ini juga harus menggunakan titik akhir ATS untuk manajemen perangkat dan pengoperasian bidang data. Titik akhir ATS menyertakan `ats` segmen, seperti yang ditunjukkan dalam sintaks berikut untuk titik akhir. AWS IoT Core 

```
prefix-ats.iot.region.amazonaws.com
```

**catatan**  
Untuk kompatibilitas mundur, AWS IoT Greengrass saat ini mendukung sertifikat CA VeriSign root lama dan titik akhir di beberapa s. Wilayah AWS Jika Anda menggunakan sertifikat CA VeriSign root lama, sebaiknya Anda membuat endpoint ATS dan menggunakan sertifikat CA root ATS sebagai gantinya. Jika tidak, pastikan untuk menggunakan titik akhir warisan yang sesuai. Untuk informasi selengkapnya, lihat [Titik akhir warisan yang didukung](https://docs.aws.amazon.com/general/latest/gr/greengrass.html#greengrass-legacy-endpoints) di. *Referensi Umum Amazon Web Services*

### Titik akhir di config.json
<a name="certificate-endpoints-config"></a>

Pada perangkat core Greengrass, titik akhir ditentukan di `coreThing` objek di [`config.json`](#config-json) file. `iotHost`Properti mewakili AWS IoT Core titik akhir. `ggHost`Properti mewakili AWS IoT Greengrass titik akhir. Di contoh potongan berikut, properti ini menentukan titik akhir ATS.

```
{
  "coreThing" : {
    ...
    "iotHost" : "abcde1234uwxyz-ats.iot.us-west-2.amazonaws.com",
    "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com",
    ...
  },
```

**AWS IoT Core titik akhir**  
Anda bisa mendapatkan AWS IoT Core endpoint Anda dengan menjalankan perintah [https://docs.aws.amazon.com/cli/latest/reference/iot/describe-endpoint.html](https://docs.aws.amazon.com/cli/latest/reference/iot/describe-endpoint.html)CLI dengan parameter yang `--endpoint-type` sesuai.  
+ Untuk mengembalikan titik akhir yang ditandatangani ATS, jalankan:

  ```
  aws iot describe-endpoint --endpoint-type iot:Data-ATS
  ```
+ Untuk mengembalikan titik akhir yang VeriSign ditandatangani lama, jalankan:

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

**AWS IoT Greengrass titik akhir**  
 AWS IoT Greengrass *Titik akhir Anda adalah `iotHost` titik akhir Anda dengan awalan host diganti dengan greengrass.* Sebagai contoh, titik akhir ATS signed adalah `greengrass-ats.iot.region.amazonaws.com`. Ini menggunakan Wilayah yang sama dengan AWS IoT Core titik akhir Anda.

## Connect pada port 443 atau melalui proksi jaringan
<a name="alpn-network-proxy"></a>

Fitur ini tersedia untuk AWS IoT Greengrass Core v1.7 dan yang lebih baru.

Greengrass core berkomunikasi AWS IoT Core dengan menggunakan protokol pesan MQTT dengan otentikasi klien TLS. Menurut konvensi, MQTT atas TLS menggunakan port 8883. Namun, sebagai upaya keamanan, lingkungan yang terbatas mungkin akan membatasi lalu lintas masuk dan keluar untuk kisaran kecil port TCP. Sebagai contoh, firewall perusahaan mungkin akan membuka port 443 untuk lalu lintas HTTPS, tetapi menutup port lain yang digunakan untuk protokol yang kurang umum, seperti port 8883 untuk lalu lintas MQTT. Lingkungan terbatas lainnya mungkin mengharuskan semua lalu lintas melalui proksi HTTP sebelum terhubung ke internet.

Untuk mengaktifkan komunikasi dalam skenario ini, AWS IoT Greengrass memungkinkan konfigurasi berikut:
+ **MQTT dengan autentikasi klien TLS melalui port 443**. Jika jaringan Anda mengizinkan koneksi ke port 443, Anda dapat mengonfigurasi core untuk menggunakan port 443 untuk lalu lintas MQTT menggantikan port default 8883. Ini bisa menjadi koneksi langsung ke port 443 atau koneksi melalui server proksi jaringan.

  AWS IoT Greengrass menggunakan ekstensi [Application Layer Protocol Network](https://tools.ietf.org/html/rfc7301) (ALPN) TLS untuk mengaktifkan koneksi ini. Seperti konfigurasi default, MQTT melalui TLS pada port 443 menggunakan autentikasi klien berbasis sertifikat.

  Ketika dikonfigurasi untuk menggunakan koneksi langsung ke port 443, inti mendukung [pembaruan over-the-air (OTA)](core-ota-update.md) untuk AWS IoT Greengrass perangkat lunak. Dukungan ini membutuhkan AWS IoT Greengrass Core v1.9.3 atau yang lebih baru.
+ **Komunikasi HTTPS melalui port 443**. AWS IoT Greengrass mengirimkan lalu lintas HTTPS melalui port 8443 secara default, tetapi Anda dapat mengonfigurasinya untuk menggunakan port 443.
+ **Koneksi melalui proksi jaringan**. Anda dapat mengonfigurasi server proksi jaringan untuk bertindak sebagai perantara untuk menghubungkan ke core Greengrass. Hanya autentikasi dasar dan HTTP dan HTTPS proxy yang didukung.

  Konfigurasi proksi dilewatkan ke fungsi Lambda yang ditetapkan pengguna melalui `http_proxy`, `https_proxy`, dan `no_proxy` variabel lingkungan. Fungsi user-defined Lambda harus menggunakan pengaturan passed-in ini untuk terhubung melalui proksi. Perpustakaan umum yang digunakan oleh fungsi Lambda untuk membuat koneksi (seperti paket `requests` boto3 atau cURL dan python) biasanya menggunakan variabel lingkungan ini secara default. Jika fungsi Lambda juga menentukan variabel lingkungan yang sama ini, AWS IoT Greengrass tidak akan menimpa mereka.
**penting**  
core Greengrass yang dikonfigurasi untuk menggunakan proksi jaringan tidak mendukung [pembaruan OTA](core-ota-update.md).<a name="config-mqtt-port"></a>

**Untuk mengonfigurasi MQTT melalui port 443**

Fitur ini membutuhkan AWS IoT Greengrass Core v1.7 atau yang lebih baru.

Prosedur ini memungkinkan core Greengrass untuk menggunakan port 443 untuk pesan MQTT dengan AWS IoT Core.

1. Jalankan perintah berikut untuk menghentikan Greengrass daemon:

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd stop
   ```

1. Buka `greengrass-root/config/config.json` untuk diedit sebagai pengguna su.

1. Di `coreThing` objek, tambahkan `iotMqttPort` properti dan atur nilai untuk **443**, seperti yang ditunjukkan di contoh berikut.

   ```
   {
       "coreThing" : {
           "caPath" : "root.ca.pem",
           "certPath" : "12345abcde.cert.pem",
           "keyPath" : "12345abcde.private.key",
           "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name",
           "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com",
           "iotMqttPort" : 443,
           "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com",
           "keepAlive" : 600
       },
       ...
   }
   ```

1. Mulai daemon.

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd start
   ```

 <a name="config-http-port"></a>

**Untuk mengonfigurasi HTTPS melalui port 443**

Fitur ini membutuhkan AWS IoT Greengrass Core v1.8 atau yang lebih baru.

Prosedur ini mengonfigurasi core untuk menggunakan port 443 untuk komunikasi HTTPS.

1. Jalankan perintah berikut untuk menghentikan Greengrass daemon:

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd stop
   ```

1. Buka `greengrass-root/config/config.json` untuk diedit sebagai pengguna su.

1. Di `coreThing` objek, tambahkan `iotHttpPort` dan `ggHttpPort` properti, seperti yang ditunjukkan di contoh berikut.

   ```
   {
       "coreThing" : {
           "caPath" : "root.ca.pem",
           "certPath" : "12345abcde.cert.pem",
           "keyPath" : "12345abcde.private.key",
           "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name",
           "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com",
           "iotHttpPort" : 443,
           "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com",
           "ggHttpPort" : 443,
           "keepAlive" : 600
       },
       ...
   }
   ```

1. Mulai daemon.

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd start
   ```

 <a name="config-network-proxy"></a>

**Untuk mengonfigurasi proksi jaringan**

Fitur ini membutuhkan AWS IoT Greengrass Core v1.7 atau yang lebih baru.

Prosedur ini memungkinkan AWS IoT Greengrass untuk terhubung ke internet melalui proxy jaringan HTTP atau HTTPS.

1. Jalankan perintah berikut untuk menghentikan Greengrass daemon:

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd stop
   ```

1. Buka `greengrass-root/config/config.json` untuk diedit sebagai pengguna su.

1. Di `coreThing` objek, tambahkan [objek](#networkProxy-object) networkProxy, seperti yang ditunjukkan dalam contoh berikut.

   ```
   {
       "coreThing" : {
           "caPath" : "root.ca.pem",
           "certPath" : "12345abcde.cert.pem",
           "keyPath" : "12345abcde.private.key",
           "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name",
           "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com",
           "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com",
           "keepAlive" : 600,
           "networkProxy": {
               "noProxyAddresses" : "http://128.12.34.56,www.mywebsite.com",
               "proxy" : {
                   "url" : "https://my-proxy-server:1100",
                   "username" : "Mary_Major",
                   "password" : "pass@word1357"
               }
           }
       },
       ...
   }
   ```

1. Mulai daemon.

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd start
   ```

**objek networkProxy**

Gunakan `networkProxy` objek untuk menentukan informasi tentang proksi jaringan. Objek ini memiliki sifat berikut.


| Bidang | Deskripsi | 
| --- | --- | 
| noProxyAddresses |  Tidak wajib. Daftar comma-separated alamat IP atau nama host yang dibebaskan dari proksi.  | 
| proxy |  Proksi untuk terhubung ke. Proksi memiliki sifat berikut. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/gg-core.html)  | 

### Mengizinkan titik akhir
<a name="allow-endpoints-proxy"></a>

Komunikasi antara perangkat AWS IoT Core Greengrass dan atau harus diautentikasi. AWS IoT Greengrass Autentikasi ini didasarkan pada sertifikat perangkat X.509 terdaftar dan kunci kriptografi. Untuk mengizinkan permintaan diautentifikasi untuk melewati proksi tanpa enkripsi tambahan, mengizinkan titik akhir berikut.


| Titik akhir | Port | Deskripsi | 
| --- | --- | --- | 
| greengrass.region.amazonaws.com | 443 |  Digunakan untuk operasi pesawat kontrol untuk manajemen grup.  | 
| `prefix-ats.iot.region.amazonaws.com` atau `prefix.iot.region.amazonaws.com` | MQTT: 8883 atau 443 HTTPS: 8443 atau 443 |  Digunakan untuk operasi pesawat data untuk manajemen perangkat, seperti sinkronisasi bayangan. Izinkan penggunaan salah satu atau kedua titik akhir, tergantung pada apakah perangkat inti dan klien Anda menggunakan sertifikat root CA Amazon Trust Services (pilihan), sertifikat CA root lama, atau keduanya. Untuk informasi selengkapnya, lihat [Titik akhir layanan harus sesuai dengan jenis sertifikat CA root](#certificate-endpoints).  | 
| `greengrass-ats.iot.region.amazonaws.com` atau `greengrass.iot.region.amazonaws.com` | 8443 atau 443 |  Digunakan untuk operasi penemuan perangkat. Izinkan penggunaan salah satu atau kedua titik akhir, tergantung pada apakah perangkat inti dan klien Anda menggunakan sertifikat root CA Amazon Trust Services (pilihan), sertifikat CA root lama, atau keduanya. Untuk informasi selengkapnya, lihat [Titik akhir layanan harus sesuai dengan jenis sertifikat CA root](#certificate-endpoints).  Klien yang terhubung pada port 443 harus mengimplementasikan [ Application Layer Protocol Negotiation (ALPN)](https://tools.ietf.org/html/rfc7301) TLS ekstensi dan lulus `x-amzn-http-ca` sebagai `ProtocolName` di `ProtocolNameList`. Untuk informasi selengkapnya, lihat [Protokol](https://docs.aws.amazon.com/iot/latest/developerguide/protocols.html) di *AWS IoT Panduan Pengembang*.   | 
| \$1.s3.amazonaws.com | 443 |  Digunakan untuk operasi penyebaran dan over-the-air pembaruan. Format ini mencakup karakter `*` karena prefiks titik akhir dikendalikan secara internal dan mungkin berubah setiap saat.  | 
| logs.region.amazonaws.com | 443 |  Diperlukan jika grup Greengrass dikonfigurasi untuk menulis log ke. CloudWatch  | 

## Konfigurasikan direktori tulis untuk AWS IoT Greengrass
<a name="write-directory"></a>

Fitur ini tersedia untuk AWS IoT Greengrass Core v1.6 dan yang lebih baru.

Secara default, perangkat lunak AWS IoT Greengrass Core digunakan di bawah direktori root tunggal di mana AWS IoT Greengrass melakukan semua operasi baca dan tulis. Namun, Anda dapat mengonfigurasi AWS IoT Greengrass untuk menggunakan direktori terpisah untuk semua operasi penulisan, termasuk membuat direktori dan file. Dalam hal ini, AWS IoT Greengrass menggunakan dua direktori tingkat atas:
+ *greengrass-root*Direktori, yang dapat Anda tinggalkan sebagai baca-tulis atau opsional membuat read-only. Ini berisi perangkat lunak AWS IoT Greengrass Core dan komponen penting lainnya yang harus tetap tidak berubah selama runtime, seperti sertifikat dan. `config.json`
+ Direktori tulis yang ditentukan. Ini berisi konten yang dapat ditulis, seperti log, informasi keadaan, dan di-deployed fungsi Lambda yang ditetapkan pengguna.

Konfigurasi ini menghasilkan struktur direktori berikut.

**Direktori root Greengrass**  

```
greengrass-root/
|-- certs/
|   |-- root.ca.pem
|   |-- hash.cert.pem
|   |-- hash.private.key
|   |-- hash.public.key
|-- config/
|   |-- config.json
|-- ggc/
|   |-- packages/
|       |-- package-version/
|           |-- bin/
|               |-- daemon 
|           |-- greengrassd
|           |-- lambda/
|           |-- LICENSE/
|           |-- release_notes_package-version.html
|               |-- runtime/
|                   |-- java8/
|                   |-- nodejs8.10/
|                   |-- python3.8/
|   |-- core/
```

**Tulis Direktori**  

```
write-directory/
|-- packages/
|   |-- package-version/
|       |-- ggc_root/
|       |-- rootfs_nosys/
|       |-- rootfs_sys/
|       |-- var/
|-- deployment/
|   |-- group/
|       |-- group.json
|   |-- lambda/
|   |-- mlmodel/
|-- var/
|   |-- log/
|   |-- state/
```

 

**Untuk mengonfigurasi direktori tulis**

1. Jalankan perintah berikut untuk menghentikan AWS IoT Greengrass daemon:

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd stop
   ```

1. Buka `greengrass-root/config/config.json` untuk diedit sebagai pengguna su.

1. Tambahkan `writeDirectory` sebagai parameter dan tentukan jalur ke direktori target, seperti yang ditunjukkan di contoh berikut.

   ```
   {
       "coreThing": {
           "caPath": "root-CA.pem",
           "certPath": "hash.pem.crt",
           ...
       },
       ...
       "writeDirectory" : "/write-directory"
   }
   ```
**catatan**  
Anda dapat memperbarui `writeDirectory` pengaturan sesering yang Anda inginkan. Setelah pengaturan diperbarui, AWS IoT Greengrass gunakan direktori tulis yang baru ditentukan di awal berikutnya, tetapi tidak memigrasikan konten dari direktori tulis sebelumnya.

1. Sekarang direktori tulis Anda dikonfigurasi, Anda dapat secara opsional membuat *greengrass-root* direktori hanya-baca. Untuk instruksi, lihat. [Untuk Membuat Direktori Root Greengrass Hanya Baca](#configure-ro-directory).

   Jika tidak, mulai AWS IoT Greengrass daemon:

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd start
   ```

 <a name="configure-ro-directory"></a>

**Untuk membuat direktori root Greengrass hanya baca**

Ikuti langkah-langkah ini hanya jika Anda ingin membuat direktori root Greengrass hanya baca. Direktori tulis harus dikonfigurasi sebelum Anda mulai.

1. Berikan izin akses ke direktori yang diperlukan:

   1. Memberikan izin baca dan tulis ke `config.json` pemilik.

      ```
      sudo chmod 0600 /greengrass-root/config/config.json
      ```

   1. Membuat ggc\$1user pemilik sertifikat dan direktori sistem Lambda.

      ```
      sudo chown -R ggc_user:ggc_group /greengrass-root/certs/
      sudo chown -R ggc_user:ggc_group /greengrass-root/ggc/packages/1.11.6/lambda/
      ```
**catatan**  
Akun ggc\$1user dan ggc\$1group digunakan secara default untuk menjalankan fungsi sistem Lambda. Jika Anda mengonfigurasi tingkat grup [identitas akses default](lambda-group-config.md#lambda-access-identity-groupsettings) untuk menggunakan akun yang berbeda, Anda harus memberikan izin kepada pengguna tersebut (UID) dan grup (GID) sebagai gantinya.

1. Jadikan *greengrass-root* direktori hanya-baca dengan menggunakan mekanisme pilihan Anda.
**catatan**  
Salah satu cara untuk membuat *greengrass-root* direktori read-only adalah dengan me-mount direktori sebagai read-only. Namun, untuk menerapkan pembaruan over-the-air (OTA) ke perangkat lunak AWS IoT Greengrass Core di direktori yang dipasang, direktori harus dilepas terlebih dahulu, dan kemudian dipasang kembali setelah pembaruan. Anda dapat menambahkan `umount` dan `mount` operasi `ota_pre_update` dan `ota_post_update` skrip. Untuk informasi lebih lanjut tentang pembaruan OTA, lihat [Agen pembaruan OTA Greengrass](core-ota-update.md#ota-agent) dan [Respawn terkelola dengan pembaruan OTA](core-ota-update.md#ota-managed-respawn).

1. Mulai daemon.

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd start
   ```

   Jika izin dari langkah 1 tidak diatur dengan benar, daemon tidak akan dimulai.

## Konfigurasikan pengaturan MQTT
<a name="configure-mqtt"></a>

Di AWS IoT Greengrass lingkungan, perangkat klien lokal, fungsi Lambda, konektor, dan komponen sistem dapat berkomunikasi satu sama lain dan dengan. AWS IoT Core Semua komunikasi berjalan melalui core, yang mengelola [langganan](gg-sec.md#gg-msg-workflow) yang mengotorisasi komunikasi MQTT antar entitas.

Untuk informasi tentang pengaturan MQTT yang dapat Anda konfigurasikan AWS IoT Greengrass, lihat bagian berikut:
+ [Kualitas layanan pesan](#message-quality-of-service)
+ [Antrean pesan MQTT untuk target cloud](#mqtt-message-queue)
+ [Sesi persisten MQTT dengan AWS IoT Core](#mqtt-persistent-sessions)
+ [Klien IDs untuk koneksi MQTT dengan AWS IoT](#connection-client-id)
+ [Port MQTT untuk olahpesan lokal](#config-local-mqtt-port)
+ [Batas waktu untuk mempublikasikan, berlangganan, berhenti berlangganan operasi dalam koneksi MQTT dengan AWS Cloud](#mqtt-operation-timeout)

**catatan**  
<a name="sitewise-connector-opcua-support"></a>OPC-UA adalah standar pertukaran informasi untuk komunikasi industri. [Untuk mengimplementasikan dukungan OPC-UA pada inti Greengrass, Anda dapat menggunakan konektor IoT. SiteWise ](iot-sitewise-connector.md) Konektor mengirimkan data perangkat industri dari server OPC-UA ke properti aset di. AWS IoT SiteWise

### Kualitas layanan pesan
<a name="message-quality-of-service"></a>

AWS IoT Greengrass mendukung kualitas layanan (QoS) level 0 atau 1, tergantung pada konfigurasi Anda dan target serta arah komunikasi. Inti Greengrass bertindak sebagai klien untuk komunikasi AWS IoT Core dengan dan broker pesan untuk komunikasi di jaringan lokal.

![\[Core sebagai klien dan broker pesan lokal.\]](http://docs.aws.amazon.com/id_id/greengrass/v1/developerguide/images/mqtt-qos.png)


Untuk informasi lebih lanjut tentang MQTT dan QoS, lihat [Memulai](https://mqtt.org/getting-started/) di situs web MQTT.

**Komunikasi dengan AWS Cloud**  
+ **Pesan keluar menggunakan QoS 1**

  Inti mengirim pesan yang ditujukan untuk AWS Cloud target menggunakan QoS 1. AWS IoT Greengrass menggunakan antrian pesan MQTT untuk memproses pesan ini. Jika pengiriman pesan tidak dikonfirmasi oleh AWS IoT, pesan akan di-spooled untuk dicoba lagi nanti. Pesan tidak dapat dicoba lagi jika antrean penuh. Konfirmasi pengiriman pesan dapat membantu meminimalkan kehilangan data dari konektivitas intermiten.

  Karena pesan keluar untuk AWS IoT menggunakan QoS 1, tingkat maksimum di mana inti Greengrass dapat mengirim pesan tergantung pada latensi antara inti dan. AWS IoT Setiap kali inti mengirim pesan, ia menunggu sampai AWS IoT mengakui pesan sebelum mengirim pesan berikutnya. Misalnya, jika waktu pulang-pergi antara inti dan nya Wilayah AWS adalah 50 milidetik, inti dapat mengirim hingga 20 pesan per detik. Pertimbangkan perilaku ini ketika Anda memilih Wilayah AWS tempat inti Anda terhubung. [Untuk menelan data IoT volume tinggi ke file AWS Cloud, Anda dapat menggunakan pengelola aliran.](stream-manager.md)

  Untuk informasi selengkapnya tentang antrian pesan MQTT, termasuk cara mengonfigurasi cache penyimpanan lokal yang dapat mempertahankan pesan yang ditujukan untuk target, lihat. AWS Cloud [Antrean pesan MQTT untuk target cloud](#mqtt-message-queue)
+ **Pesan masuk menggunakan QoS 0 (default) atau QoS 1**

  Secara default, core berlangganan dengan QoS 0 untuk pesan dari AWS Cloud sumber. Jika Anda mengaktifkan sesi persisten, core berlangganan dengan QoS 1. Hal ini dapat membantu meminimalkan kehilangan data dari konektivitas intermiten. Untuk mengelola QoS untuk langganan ini, Anda mengkonfigurasi pengaturan persistensi pada komponen sistem spooler lokal.

  Untuk informasi lebih lanjut, termasuk cara mengaktifkan inti untuk membuat sesi persisten dengan AWS Cloud target, lihat[Sesi persisten MQTT dengan AWS IoT Core](#mqtt-persistent-sessions).

**Komunikasi dengan target lokal**  
Semua komunikasi lokal menggunakan QoS 0. [Inti membuat satu upaya untuk mengirim pesan ke target lokal, yang dapat berupa fungsi Greengrass Lambda, konektor, atau perangkat klien.](what-is-gg.md#greengrass-devices) Inti tidak menyimpan pesan atau mengonfirmasi pengiriman. Pesan dapat diputus di mana saja antara komponen.  
Meskipun komunikasi langsung antara fungsi Lambda tidak menggunakan pesan MQTT, perilaku adalah sama.

### Antrean pesan MQTT untuk target cloud
<a name="mqtt-message-queue"></a>

Pesan MQTT yang ditujukan untuk AWS Cloud target diantrian untuk menunggu pemrosesan. Pesan antrean diproses di urutan pertama dalam, pertama keluar (FIFO). Setelah pesan diproses dan dipublikasikan ke AWS IoT Core, pesan akan dihapus dari antrian.

Secara default, inti Greengrass menyimpan dalam memori pesan yang belum diproses yang ditujukan untuk target. AWS Cloud Anda dapat mengkonfigurasi core untuk menyimpan pesan yang belum diproses dalam cache penyimpanan lokal sebagai gantinya. Tidak seperti penyimpanan dalam memori, cache penyimpanan lokal memiliki kemampuan untuk bertahan di seluruh restart inti (misalnya, setelah penyebaran grup atau perangkat reboot), sehingga AWS IoT Greengrass dapat terus memproses pesan. Anda juga dapat mengonfigurasi ukuran penyimpanan.

**Awas**  
Inti Greengrass mungkin mengantri duplikat pesan MQTT ketika kehilangan koneksi, karena ia mencoba ulang operasi publikasi sebelum klien MQTT mendeteksi bahwa itu offline. Untuk menghindari duplikat pesan MQTT untuk target cloud, konfigurasikan `keepAlive` nilai inti menjadi kurang dari setengah nilainya. `mqttOperationTimeout` Untuk informasi selengkapnya, lihat [AWS IoT Greengrass file konfigurasi inti](#config-json).

AWS IoT Greengrass menggunakan komponen sistem spooler (fungsi `GGCloudSpooler` Lambda) untuk mengelola antrian pesan. Anda dapat menggunakan yang berikut ini `GGCloudSpooler` variabel lingkungan untuk mengonfigurasi pengaturan penyimpanan.
+ **GG\$1CONFIG\$1STORAGE\$1TYPE**. Lokasi antrean pesan. Berikut adalah nilai yang valid:
  + `FileSystem`. Menyimpan pesan yang belum diproses dalam cache penyimpanan lokal pada disk perangkat core fisik. Ketika core dimulai ulang, pesan antrean dipertahankan untuk diproses. Pesan akan dihapus setelah pesan diproses.
  + `Memory` (default). Menyimpan pesan yang belum diproses dalam memori. Ketika restart core, pesan antrean hilang.

    Opsi ini dioptimalkan untuk perangkat dengan kemampuan perangkat keras terbatas. Saat menggunakan konfigurasi ini, kami sarankan Anda men-deploy grup atau me-restart perangkat ketika gangguan layanan adalah yang terendah.
+ **GG\$1CONFIG\$1MAX\$1SIZE\$1BYTES**. Ukuran penyimpanannya, dalam byte. Nilai ini dapat berupa bilangan bulat non-negatif yang **lebih besar dari atau sama dengan 262144** (256 KB); ukuran yang lebih kecil mencegah perangkat lunak Core dimulai. AWS IoT Greengrass Ukuran default-nya adalah 2,5 MB. Bila batas ukuran tercapai, pesan antrean tertua digantikan oleh pesan baru.

**catatan**  
Fitur ini tersedia untuk AWS IoT Greengrass Core v1.6 dan yang lebih baru. Versi sebelumnya menggunakan penyimpanan dalam memori dengan ukuran antrean 2,5 MB. Anda tidak dapat mengonfigurasi pengaturan penyimpanan untuk versi sebelumnya.

#### Untuk cache pesan di penyimpanan lokal
<a name="configure-local-storage-cache"></a>

Anda dapat mengonfigurasi AWS IoT Greengrass untuk menyimpan pesan ke sistem file sehingga mereka bertahan di seluruh restart inti. Untuk melakukannya, Anda men-deploy versi definisi fungsi di mana `GGCloudSpooler` mengatur fungsi menetapkan jenis penyimpanan untuk `FileSystem`. Anda harus menggunakan AWS IoT Greengrass API untuk mengkonfigurasi cache penyimpanan lokal. Anda tidak dapat melakukan ini di konsol.

Prosedur berikut menggunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition-version.html](https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition-version.html)CLI untuk mengkonfigurasi spooler untuk menyimpan pesan antrian ke sistem file. Ini juga mengonfigurasi ukuran antrean 2,6 MB.

1. <a name="get-group-id-latestversion"></a>Dapatkan IDs versi grup dan grup Greengrass target. Prosedur ini mengasumsikan bahwa ini adalah versi grup dan grup terbaru. Query berikut mengembalikan grup yang paling baru dibuat.

   ```
   aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
   ```

   Atau, Anda dapat melakukan query berdasarkan nama. Nama grup tidak perlu unik, sehingga beberapa grup mungkin ditampilkan.

   ```
   aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
   ```
**catatan**  
<a name="find-group-ids-console"></a>Anda juga dapat menemukan nilai-nilai ini di AWS IoT konsol. ID grup ditampilkan pada halaman **Pengaturan** grup. Versi grup IDs ditampilkan di tab **Deployment** grup.

1. <a name="copy-group-id-latestversion"></a>Salin nilai `Id` dan `LatestVersion` dari grup target di dalam output.

1. <a name="get-latest-group-version"></a>Dapatkan versi grup terbaru.
   + Ganti *group-id* dengan `Id` yang Anda salin.
   + Ganti *latest-group-version-id* dengan `LatestVersion` yang Anda salin.

   ```
   aws greengrass get-group-version \
   --group-id group-id \
   --group-version-id latest-group-version-id
   ```

1. <a name="copy-group-component-arns-except-function"></a>Dari `Definition` objek dalam output, salin `CoreDefinitionVersionArn` dan semua ARNs komponen grup lainnya kecuali`FunctionDefinitionVersionArn`. Anda menggunakan nilai-nilai ini ketika membuat versi grup baru.

1. <a name="parse-function-def-id"></a>Dari `FunctionDefinitionVersionArn` di output, salin ID dari definisi fungsi. ID adalah GUID yang mengikuti `functions` segmen di dalam ARN, seperti yang ditunjukkan dalam contoh berikut.

   ```
   arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/bcfc6b49-beb0-4396-b703-6dEXAMPLEcu5/versions/0f7337b4-922b-45c5-856f-1aEXAMPLEsf6
   ```
**catatan**  
Atau, Anda dapat membuat definisi fungsi dengan menjalankan [https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition.html](https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition.html) perintah, dan kemudian menyalin ID dari output.

1. Menambahkan versi definisi fungsi untuk definisi fungsi.
   + Ganti *function-definition-id* dengan `Id` yang Anda salin untuk definisi fungsi.
   + Ganti *arbitrary-function-id* dengan nama untuk fungsi tersebut, seperti**spooler-function**.
   + Tambahkan fungsi Lambda yang ingin Anda sertakan dalam versi ini ke `functions` array. Anda dapat menggunakan [https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-function-definition-version.html](https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-function-definition-version.html) perintah untuk mendapatkan fungsi Greengrass Lambda dari versi definisi fungsi yang ada.
**Awas**  
Pastikan Anda menentukan nilai untuk `GG_CONFIG_MAX_SIZE_BYTES` itu **lebih besar dari atau sama dengan 262144**. Ukuran yang lebih kecil mencegah perangkat lunak AWS IoT Greengrass Core dimulai.

   ```
   aws greengrass create-function-definition-version \
   --function-definition-id function-definition-id \
   --functions '[{"FunctionArn": "arn:aws:lambda:::function:GGCloudSpooler:1","FunctionConfiguration": {"Environment": {"Variables":{"GG_CONFIG_MAX_SIZE_BYTES":"2621440","GG_CONFIG_STORAGE_TYPE":"FileSystem"}},"Executable": "spooler","MemorySize": 32768,"Pinned": true,"Timeout": 3},"Id": "arbitrary-function-id"}]'
   ```
**catatan**  
Jika sebelumnya Anda menyetel variabel `GG_CONFIG_SUBSCRIPTION_QUALITY` lingkungan untuk [mendukung sesi persisten AWS IoT Core](#mqtt-persistent-sessions), sertakan dalam instance fungsi ini.

1. <a name="copy-function-def-version-arn"></a>Salin `Arn` dari versi definisi fungsi dari output.

1. <a name="create-group-version-with-sys-lambda"></a>Buat versi grup yang berisi fungsi Lambda sistem.
   + Ganti *group-id* dengan `Id` untuk grup.
   + Ganti *core-definition-version-arn* dengan `CoreDefinitionVersionArn` yang Anda salin dari versi grup terbaru.
   + Ganti *function-definition-version-arn* dengan `Arn` yang Anda salin untuk versi definisi fungsi baru.
   + Ganti ARNs untuk komponen grup lain (misalnya, `SubscriptionDefinitionVersionArn` atau`DeviceDefinitionVersionArn`) yang Anda salin dari versi grup terbaru.
   + Hapus parameter yang tidak terpakai. Sebagai contoh, Hapus `--resource-definition-version-arn` jika versi grup Anda tidak berisi sumber daya apa pun.

   ```
   aws greengrass create-group-version \
   --group-id group-id \
   --core-definition-version-arn core-definition-version-arn \
   --function-definition-version-arn function-definition-version-arn \
   --device-definition-version-arn device-definition-version-arn \
   --logger-definition-version-arn logger-definition-version-arn \
   --resource-definition-version-arn resource-definition-version-arn \
   --subscription-definition-version-arn subscription-definition-version-arn
   ```

1. <a name="copy-group-version-id"></a>Salin `Version` dari output. Ini adalah ID dari versi grup baru.

1. <a name="create-group-deployment"></a>Men-deploy grup dengan versi grup baru.
   + Ganti *group-id* dengan `Id` yang Anda salin untuk grup.
   + Ganti *group-version-id* dengan `Version` yang Anda salin untuk versi grup baru.

   ```
   aws greengrass create-deployment \
   --group-id group-id \
   --group-version-id group-version-id \
   --deployment-type NewDeployment
   ```

 Untuk memperbarui pengaturan penyimpanan, Anda menggunakan AWS IoT Greengrass API untuk membuat versi definisi fungsi baru yang berisi `GGCloudSpooler` fungsi dengan konfigurasi yang diperbarui. Kemudian tambahkan versi definisi fungsi ke versi grup baru (bersama dengan komponen grup Anda yang lain) dan men-deploy versi grup. Jika Anda ingin memulihkan konfigurasi default, Anda dapat men-deploy versi definisi fungsi yang tidak termasuk `GGCloudSpooler` fungsi. 

 Fungsi Lambda sistem ini tidak terlihat di konsol. Namun, setelah fungsi ditambahkan ke versi grup terbaru, itu termasuk dalam deployment yang Anda buat dari konsol, kecuali jika Anda menggunakan API untuk mengganti atau menghapusnya. 

### Sesi persisten MQTT dengan AWS IoT Core
<a name="mqtt-persistent-sessions"></a>

Fitur ini tersedia untuk AWS IoT Greengrass Core v1.10 dan yang lebih baru.

Inti Greengrass dapat membuat sesi persisten dengan broker pesan. AWS IoT Sesi persisten adalah koneksi yang sedang berlangsung yang mengizinkan core untuk menerima pesan yang dikirim saat core offline. Core adalah klien dalam koneksi.

Dalam sesi persisten, broker AWS IoT pesan menyimpan semua langganan yang dibuat inti selama koneksi. [Jika inti terputus, broker AWS IoT pesan menyimpan pesan yang tidak diakui dan baru diterbitkan sebagai QoS 1 dan ditujukan untuk target lokal, seperti fungsi Lambda dan perangkat klien.](what-is-gg.md#greengrass-devices) Ketika inti terhubung kembali, sesi persisten dilanjutkan dan broker AWS IoT pesan mengirim pesan yang disimpan ke inti dengan kecepatan maksimum 10 pesan per detik. Sesi persisten memiliki periode kedaluwarsa default 1 jam, yang dimulai ketika broker pesan mendeteksi bahwa core terputus. Untuk informasi selengkapnya, lihat [sesi persisten MQTT](https://docs.aws.amazon.com/iot/latest/developerguide/mqtt-persistent-sessions.html) di *AWS IoT Panduan Pengembang*.

AWS IoT Greengrass menggunakan komponen sistem spooler (fungsi `GGCloudSpooler` Lambda) untuk membuat langganan yang memiliki sumber. AWS IoT Anda dapat menggunakan variabel lingkungan `GGCloudSpooler` berikut untuk mengonfigurasi sesi persisten.
+ **GG\$1CONFIG\$1SUBSCRIPTION\$1QUALITY**. Kualitas langganan yang dimiliki AWS IoT sebagai sumbernya. Berikut adalah nilai yang valid:
  + `AtMostOnce` (default). Menonaktifkan sesi persisten. Langganan menggunakan QoS 0.
  + `AtLeastOncePersistent`. Mengaktifkan sesi persisten. Atur `cleanSession` bendera ke `0` di `CONNECT` pesan dan berlangganan dengan QoS 1.

    Pesan yang diterbitkan dengan QoS 1 yang diterima core dijamin dapat mencapai antrean pekerjaan Greengrass daemon's in-memory. Core mengakui pesan setelah ditambahkan ke antrean. Komunikasi berikutnya dari antrean ke target lokal (sebagai contoh, fungsi Greengrass Lambda, konektor, atau perangkat) dikirim sebagai QoS 0. AWS IoT Greengrass tidak menjamin pengiriman ke target lokal.
**catatan**  
Anda dapat menggunakan properti konfigurasi [maxWorkItemHitung](#config-json-runtime) untuk mengontrol ukuran antrian item kerja. Misalnya, Anda dapat meningkatkan ukuran antrean jika beban kerja Anda memerlukan lalu lintas MQTT berat.

    Ketika sesi persisten diaktifkan, inti membuka setidaknya satu koneksi tambahan untuk pertukaran pesan MQTT dengan. AWS IoT Untuk informasi selengkapnya, lihat [Klien IDs untuk koneksi MQTT dengan AWS IoT](#connection-client-id).

#### Untuk mengonfigurasi sesi persisten MQTT
<a name="configure-persistent-sessions"></a>

Anda dapat mengonfigurasi AWS IoT Greengrass untuk menggunakan sesi persisten dengan AWS IoT Core. Untuk melakukannya, Anda men-deploy versi definisi fungsi di mana `GGCloudSpooler` fungsi mengatur kualitas berlangganan untuk `AtLeastOncePersistent`. Pengaturan ini berlaku untuk semua langganan yang memiliki AWS IoT Core (`cloud`) sebagai sumber. Anda harus menggunakan AWS IoT Greengrass API untuk mengonfigurasi sesi persisten. Anda tidak dapat melakukan ini di konsol.

Prosedur berikut menggunakan perintah [https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition-version.html](https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition-version.html)CLI untuk mengkonfigurasi spooler untuk menggunakan sesi persisten. Dalam prosedur ini, kami menganggap bahwa Anda memperbarui konfigurasi versi grup terbaru dari grup yang ada.

1. <a name="get-group-id-latestversion"></a>Dapatkan IDs versi grup dan grup Greengrass target. Prosedur ini mengasumsikan bahwa ini adalah versi grup dan grup terbaru. Query berikut mengembalikan grup yang paling baru dibuat.

   ```
   aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
   ```

   Atau, Anda dapat melakukan query berdasarkan nama. Nama grup tidak perlu unik, sehingga beberapa grup mungkin ditampilkan.

   ```
   aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
   ```
**catatan**  
<a name="find-group-ids-console"></a>Anda juga dapat menemukan nilai-nilai ini di AWS IoT konsol. ID grup ditampilkan pada halaman **Pengaturan** grup. Versi grup IDs ditampilkan di tab **Deployment** grup.

1. <a name="copy-group-id-latestversion"></a>Salin nilai `Id` dan `LatestVersion` dari grup target di dalam output.

1. <a name="get-latest-group-version"></a>Dapatkan versi grup terbaru.
   + Ganti *group-id* dengan `Id` yang Anda salin.
   + Ganti *latest-group-version-id* dengan `LatestVersion` yang Anda salin.

   ```
   aws greengrass get-group-version \
   --group-id group-id \
   --group-version-id latest-group-version-id
   ```

1. <a name="copy-group-component-arns-except-function"></a>Dari `Definition` objek dalam output, salin `CoreDefinitionVersionArn` dan semua ARNs komponen grup lainnya kecuali`FunctionDefinitionVersionArn`. Anda menggunakan nilai-nilai ini ketika membuat versi grup baru.

1. <a name="parse-function-def-id"></a>Dari `FunctionDefinitionVersionArn` di output, salin ID dari definisi fungsi. ID adalah GUID yang mengikuti `functions` segmen di dalam ARN, seperti yang ditunjukkan dalam contoh berikut.

   ```
   arn:aws:greengrass:us-west-2:123456789012:/greengrass/definition/functions/bcfc6b49-beb0-4396-b703-6dEXAMPLEcu5/versions/0f7337b4-922b-45c5-856f-1aEXAMPLEsf6
   ```
**catatan**  
Atau, Anda dapat membuat definisi fungsi dengan menjalankan [https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition.html](https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition.html) perintah, dan kemudian menyalin ID dari output.

1. Menambahkan versi definisi fungsi untuk definisi fungsi.
   + Ganti *function-definition-id* dengan `Id` yang Anda salin untuk definisi fungsi.
   + Ganti *arbitrary-function-id* dengan nama untuk fungsi tersebut, seperti**spooler-function**.
   + Tambahkan fungsi Lambda yang ingin Anda sertakan dalam versi ini ke `functions` array. Anda dapat menggunakan [https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-function-definition-version.html](https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-function-definition-version.html) perintah untuk mendapatkan fungsi Greengrass Lambda dari versi definisi fungsi yang ada.

   ```
   aws greengrass create-function-definition-version \
   --function-definition-id function-definition-id \
   --functions '[{"FunctionArn": "arn:aws:lambda:::function:GGCloudSpooler:1","FunctionConfiguration": {"Environment": {"Variables":{"GG_CONFIG_SUBSCRIPTION_QUALITY":"AtLeastOncePersistent"}},"Executable": "spooler","MemorySize": 32768,"Pinned": true,"Timeout": 3},"Id": "arbitrary-function-id"}]'
   ```
**catatan**  
Jika Anda sebelumnya mengatur `GG_CONFIG_STORAGE_TYPE` atau `GG_CONFIG_MAX_SIZE_BYTES` variabel lingkungan ke [menentukan pengaturan penyimpanan](#mqtt-message-queue), termasuk mereka dalam contoh fungsi ini.

1. <a name="copy-function-def-version-arn"></a>Salin `Arn` dari versi definisi fungsi dari output.

1. <a name="create-group-version-with-sys-lambda"></a>Buat versi grup yang berisi fungsi Lambda sistem.
   + Ganti *group-id* dengan `Id` untuk grup.
   + Ganti *core-definition-version-arn* dengan `CoreDefinitionVersionArn` yang Anda salin dari versi grup terbaru.
   + Ganti *function-definition-version-arn* dengan `Arn` yang Anda salin untuk versi definisi fungsi baru.
   + Ganti ARNs untuk komponen grup lain (misalnya, `SubscriptionDefinitionVersionArn` atau`DeviceDefinitionVersionArn`) yang Anda salin dari versi grup terbaru.
   + Hapus parameter yang tidak terpakai. Sebagai contoh, Hapus `--resource-definition-version-arn` jika versi grup Anda tidak berisi sumber daya apa pun.

   ```
   aws greengrass create-group-version \
   --group-id group-id \
   --core-definition-version-arn core-definition-version-arn \
   --function-definition-version-arn function-definition-version-arn \
   --device-definition-version-arn device-definition-version-arn \
   --logger-definition-version-arn logger-definition-version-arn \
   --resource-definition-version-arn resource-definition-version-arn \
   --subscription-definition-version-arn subscription-definition-version-arn
   ```

1. <a name="copy-group-version-id"></a>Salin `Version` dari output. Ini adalah ID dari versi grup baru.

1. <a name="create-group-deployment"></a>Men-deploy grup dengan versi grup baru.
   + Ganti *group-id* dengan `Id` yang Anda salin untuk grup.
   + Ganti *group-version-id* dengan `Version` yang Anda salin untuk versi grup baru.

   ```
   aws greengrass create-deployment \
   --group-id group-id \
   --group-version-id group-version-id \
   --deployment-type NewDeployment
   ```

1. (Opsional) Meningkatkan properti [maxWorkItemCount](#config-json-runtime) dalam file konfigurasi inti. Hal ini dapat membantu menangani core meningkatkan lalu lintas MQTT dan komunikasi dengan target lokal.

 Untuk memperbarui inti dengan perubahan konfigurasi ini, Anda menggunakan AWS IoT Greengrass API untuk membuat versi definisi fungsi baru yang berisi `GGCloudSpooler` fungsi dengan konfigurasi yang diperbarui. Kemudian tambahkan versi definisi fungsi ke versi grup baru (bersama dengan komponen grup Anda yang lain) dan men-deploy versi grup. Jika Anda ingin memulihkan konfigurasi default, Anda dapat membuat versi definisi fungsi yang tidak menyertakan `GGCloudSpooler` fungsi. 

 Fungsi Lambda sistem ini tidak terlihat di konsol. Namun, setelah fungsi ditambahkan ke versi grup terbaru, itu termasuk dalam deployment yang Anda buat dari konsol, kecuali jika Anda menggunakan API untuk mengganti atau menghapusnya. 

### Klien IDs untuk koneksi MQTT dengan AWS IoT
<a name="connection-client-id"></a>

Fitur ini tersedia untuk AWS IoT Greengrass Core v1.8 dan yang lebih baru.

Inti Greengrass membuka koneksi MQTT untuk operasi seperti sinkronisasi bayangan dan manajemen AWS IoT Core sertifikat. Untuk koneksi ini, inti menghasilkan klien yang dapat diprediksi IDs berdasarkan nama inti. Klien yang IDs dapat diprediksi dapat digunakan dengan fitur pemantauan, audit, dan penetapan harga, termasuk AWS IoT Device Defender dan peristiwa [AWS IoT siklus hidup](https://docs.aws.amazon.com/iot/latest/developerguide/life-cycle-events.html). Anda juga dapat membuat logika seputar klien yang dapat diprediksi IDs (misalnya, templat [kebijakan berlangganan](https://docs.aws.amazon.com/iot/latest/developerguide/pub-sub-policy.html#pub-sub-policy-cert) berdasarkan atribut sertifikat).

------
#### [ GGC v1.9 and later ]

Dua komponen sistem Greengrass membuka koneksi MQTT dengan. AWS IoT Core Komponen-komponen ini menggunakan pola berikut untuk menghasilkan klien IDs untuk koneksi.


| Operasi | Pola ID klien | 
| --- | --- | 
| Deployment | `core-thing-name` Contoh: `MyCoreThing` Gunakan ID klien ini untuk notifikasi kejadian connect, disconnect, berlangganan, dan berhenti berlangganan. | 
| Langganan |  `core-thing-name-cn` Contoh: `MyCoreThing-c01` `n` adalah integer yang dimulai pada 00 dan bertahap dengan setiap koneksi baru ke jumlah maksimum 250. Jumlah koneksi ditentukan oleh jumlah perangkat yang menyinkronkan keadaan bayangan mereka dengan AWS IoT Core (maksimum 2.500 per grup) dan jumlah langganan dengan `cloud` sebagai sumber mereka di grup (maksimum 10.000 per grup). Komponen sistem spooler terhubung dengan AWS IoT Core untuk bertukar pesan untuk langganan dengan sumber cloud atau target. Spooler juga bertindak sebagai proxy untuk pertukaran pesan antara AWS IoT Core dan layanan bayangan lokal dan manajer sertifikat perangkat.  | 

Untuk menghitung jumlah koneksi MQTT per grup, gunakan rumus berikut:

`number of MQTT connections per group = number of connections for Deployment Agent + number of connections for Subscriptions`

Di mana,
+ jumlah koneksi untuk Deployment Agent = 1.
+ jumlah koneksi untuk Langganan = `(2 subscriptions for supporting certificate generation + number of MQTT topics in AWS IoT Core + number of device shadows synced) / 50`.
  + Dimana, `50` = jumlah maksimum langganan per koneksi yang AWS IoT Core dapat mendukung.

**catatan**  
Jika Anda mengaktifkan [sesi persisten](#mqtt-persistent-sessions) untuk berlangganan AWS IoT Core, inti membuka setidaknya satu koneksi tambahan untuk digunakan dalam sesi persisten. Komponen sistem tidak mendukung sesi persisten, sehingga mereka tidak dapat berbagi koneksi tersebut.

Untuk mengurangi jumlah koneksi MQTT dan membantu mengurangi biaya, Anda dapat menggunakan fungsi Lambda lokal untuk mengumpulkan data di edge. Kemudian Anda mengirim data gabungan ke AWS Cloud. Akibatnya, Anda menggunakan lebih sedikit topik MQTT di. AWS IoT Core Untuk informasi selengkapnya, silakan lihat [Harga AWS IoT Greengrass](https://aws.amazon.com/greengrass/pricing/).

------
#### [ GGC v1.8 ]

Beberapa komponen sistem Greengrass membuka koneksi MQTT dengan AWS IoT Core. Komponen-komponen ini menggunakan pola berikut untuk menghasilkan klien IDs untuk koneksi.


| Operasi | Pola ID klien | 
| --- | --- | 
| Deployment | `core-thing-name` Contoh: `MyCoreThing` Gunakan ID klien ini untuk notifikasi kejadian connect, disconnect, berlangganan, dan berhenti berlangganan. | 
| Pertukaran pesan MQTT dengan AWS IoT Core | `core-thing-name-spr` Contoh: `MyCoreThing-spr` | 
| Sinkronisasi bayangan | `core-thing-name-snn` Contoh: `MyCoreThing-s01` `nn` adalah integer yang dimulai pada 00 dan bertahap dengan setiap koneksi baru untuk maksimum 03. Jumlah koneksi ditentukan oleh jumlah perangkat (maksimum 200 perangkat per grup) yang menyinkronkan status bayangan mereka dengan AWS IoT Core (maksimum 50 langganan per koneksi). | 
| Manajemen sertifikat perangkat lunak | `core-thing-name-dcm` Contoh: `MyCoreThing-dcm` | 

------

**catatan**  
Klien duplikat yang IDs digunakan dalam koneksi simultan dapat menyebabkan loop connect-disconnect tak terbatas. Hal ini dapat terjadi jika perangkat lain hardcoded untuk menggunakan nama perangkat core sebagai ID klien di koneksi. Untuk informasi lebih lanjut, lihat [langkah pemecahan masalah](gg-troubleshooting.md#config-client-id).

Perangkat Greengrass juga terintegrasi sepenuhnya dengan layanan Fleet Indexing AWS IoT Device Management. Hal ini memungkinkan Anda untuk indeks dan mencari perangkat berdasarkan atribut perangkat, keadaan bayangan, dan status koneksi di cloud. Sebagai contoh, perangkat Greengrass membangun setidaknya satu koneksi yang menggunakan nama hal sebagai ID klien, sehingga Anda dapat menggunakan pengindeksan konektivitas perangkat untuk menemukan perangkat Greengrass yang saat ini terhubung atau terputus ke AWS IoT Core. Untuk informasi selengkapnya, lihat [layanan pengindeksan armada](https://docs.aws.amazon.com/iot/latest/developerguide/iot-indexing.html) di *AWS IoT Panduan Pengembang*.

### Konfigurasi port MQTT untuk pesan lokal
<a name="config-local-mqtt-port"></a>

Fitur ini membutuhkan AWS IoT Greengrass Core v1.10 atau yang lebih baru.

[Inti Greengrass bertindak sebagai broker pesan lokal untuk pengiriman pesan MQTT antara fungsi Lambda lokal, konektor, dan perangkat klien.](what-is-gg.md#greengrass-devices) Secara default, core menggunakan port 8883 untuk lalu lintas MQTT pada jaringan lokal. Anda mungkin ingin mengubah port untuk menghindari konflik dengan perangkat lunak lain yang berjalan pada port 8883.

**Untuk mengkonfigurasi nomor port yang menggunakan contoh untuk lalu lintas MQTT lokal**

1. Jalankan perintah berikut untuk menghentikan Greengrass daemon:

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd stop
   ```

1. Buka `greengrass-root/config/config.json` untuk diedit sebagai pengguna su.

1. Di `coreThing` objek, tambahkan `ggMqttPort` properti dan tetapkan nilai ke nomor port yang ingin Anda gunakan. Nilai yang valid adalah 1024 sampai 65535. Contoh berikut menetapkan nomor port menjadi `9000`.

   ```
   {
       "coreThing" : {
           "caPath" : "root.ca.pem",
           "certPath" : "12345abcde.cert.pem",
           "keyPath" : "12345abcde.private.key",
           "thingArn" : "arn:aws:iot:us-west-2:123456789012:thing/core-thing-name",
           "iotHost" : "abcd123456wxyz-ats.iot.us-west-2.amazonaws.com",
           "ggHost" : "greengrass-ats.iot.us-west-2.amazonaws.com",
           "ggMqttPort" : 9000,
           "keepAlive" : 600
       },
       ...
   }
   ```

1. Mulai daemon.

   ```
   cd /greengrass-root/ggc/core/
   sudo ./greengrassd start
   ```

1. Jika [deteksi IP otomatis](#ip-auto-detect) diaktifkan untuk core, konfigurasi selesai.

   Jika deteksi IP otomatis tidak diaktifkan, Anda harus memperbarui informasi konektivitas untuk core. Hal ini memungkinkan perangkat klien untuk menerima nomor port yang benar selama operasi penemuan untuk memperoleh informasi konektivitas inti. Anda dapat menggunakan AWS IoT konsol atau AWS IoT Greengrass API untuk memperbarui informasi konektivitas inti. Untuk prosedur ini, Anda memperbarui hanya nomor port. Alamat IP lokal untuk core tetap sama.  
**Untuk memperbarui informasi konektivitas untuk inti (konsol)**  

   1. Pada halaman konfigurasi grup, pilih inti Greengrass.

   1. Pada halaman detail inti, pilih tab titik akhir **broker MQTT**.

   1. Pilih **Kelola titik akhir** dan kemudian pilih **Tambah** titik akhir 

   1. Masukkan alamat IP lokal Anda saat ini dan nomor port baru. Contoh berikut mengatur nomor port `9000` untuk alamat IP `192.168.1.8`.

   1. Hapus titik akhir usang, dan kemudian pilih **Perbarui**  
**Untuk memperbarui informasi konektivitas untuk inti (API)**  
   + Gunakan [UpdateConnectivityInfo](https://docs.aws.amazon.com/greengrass/v1/apireference/updateconnectivityinfo-put.html)tindakan. Contoh berikut menggunakan `update-connectivity-info` di AWS CLI untuk mengatur nomor port `9000` untuk alamat IP `192.168.1.8`.

     ```
     aws greengrass update-connectivity-info \
         --thing-name "MyGroup_Core" \
         --connectivity-info "[{\"Metadata\":\"\",\"PortNumber\":9000,\"HostAddress\":\"192.168.1.8\",\"Id\":\"localIP_192.168.1.8\"},{\"Metadata\":\"\",\"PortNumber\":8883,\"HostAddress\":\"127.0.0.1\",\"Id\":\"localhost_127.0.0.1_0\"}]"
     ```
**catatan**  
Anda juga dapat mengonfigurasi port yang digunakan inti untuk pengiriman pesan MQTT. AWS IoT Core Untuk informasi selengkapnya, lihat [Connect pada port 443 atau melalui proksi jaringan](#alpn-network-proxy).

### Batas waktu untuk mempublikasikan, berlangganan, berhenti berlangganan operasi dalam koneksi MQTT dengan AWS Cloud
<a name="mqtt-operation-timeout"></a>

Fitur ini tersedia di AWS IoT Greengrass v1.10.2 atau yang lebih baru.

Anda dapat mengkonfigurasi jumlah waktu (dalam detik) untuk mengizinkan core Greengrass untuk menyelesaikan penerbitan, berlangganan, atau berhenti berlangganan operasi di koneksi MQTT ke AWS IoT Core. Anda mungkin ingin menyesuaikan pengaturan ini jika waktu operasi habis karena kendala bandwidth atau latency tinggi. Untuk mengonfigurasi pengaturan ini di [config.json](#config-json) file, tambah atau ubah `mqttOperationTimeout` properti `coreThing` objek. Contoh:

```
{
  "coreThing": {
    "mqttOperationTimeout": 10,
    "caPath": "root-ca.pem",
    "certPath": "hash.cert.pem",
    "keyPath": "hash.private.key",
    ...
  },
  ...
}
```

Waktu habis default adalah 5 detik. Waktu habis minimal adalah 5 detik.

## Aktifkan deteksi IP otomatis
<a name="ip-auto-detect"></a>

Anda dapat mengonfigurasi AWS IoT Greengrass untuk mengaktifkan perangkat klien dalam grup Greengrass untuk secara otomatis menemukan inti Greengrass. Ketika diaktifkan, core mencatat untuk perubahan ke alamat IP-nya. Jika alamat berubah, core menerbitkan daftar alamat yang diperbarui. Alamat ini tersedia untuk perangkat klien yang berada dalam grup Greengrass yang sama dengan intinya.

**catatan**  
 AWS IoT Kebijakan untuk perangkat klien harus memberikan `greengrass:Discover` izin untuk mengizinkan perangkat mengambil informasi konektivitas untuk inti. Untuk informasi selengkapnya tentang kebijakan laporan, lihat [Otorisasi Discovery](gg-discover-api.md#gg-discover-auth).

Untuk mengaktifkan fitur ini dari AWS IoT Greengrass konsol, pilih **Deteksi otomatis** saat Anda menggunakan grup Greengrass untuk pertama kalinya. Anda juga dapat mengaktifkan atau menonaktifkan fitur ini pada halaman konfigurasi grup dengan memilih tab **fungsi Lambda** dan memilih detektor **IP**. Deteksi IP otomatis diaktifkan jika **Secara otomatis mendeteksi dan mengganti titik akhir broker MQTT dipilih**.

Untuk mengelola penemuan otomatis dengan AWS IoT Greengrass API, Anda harus mengonfigurasi fungsi `IPDetector` sistem Lambda. Prosedur berikut menunjukkan cara menggunakan perintah [ create-function-definition-version](https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition-version.html)CLI untuk mengkonfigurasi penemuan otomatis inti Greengrass.

1. <a name="get-group-id-latestversion"></a>Dapatkan IDs versi grup dan grup Greengrass target. Prosedur ini mengasumsikan bahwa ini adalah versi grup dan grup terbaru. Query berikut mengembalikan grup yang paling baru dibuat.

   ```
   aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
   ```

   Atau, Anda dapat melakukan query berdasarkan nama. Nama grup tidak perlu unik, sehingga beberapa grup mungkin ditampilkan.

   ```
   aws greengrass list-groups --query "Groups[?Name=='MyGroup']"
   ```
**catatan**  
<a name="find-group-ids-console"></a>Anda juga dapat menemukan nilai-nilai ini di AWS IoT konsol. ID grup ditampilkan pada halaman **Pengaturan** grup. Versi grup IDs ditampilkan di tab **Deployment** grup.

1. <a name="copy-group-id-latestversion"></a>Salin nilai `Id` dan `LatestVersion` dari grup target di dalam output.

1. <a name="get-latest-group-version"></a>Dapatkan versi grup terbaru.
   + Ganti *group-id* dengan `Id` yang Anda salin.
   + Ganti *latest-group-version-id* dengan `LatestVersion` yang Anda salin.

   ```
   aws greengrass get-group-version \
   --group-id group-id \
   --group-version-id latest-group-version-id
   ```

1. <a name="copy-group-component-arns-except-function"></a>Dari `Definition` objek dalam output, salin `CoreDefinitionVersionArn` dan semua ARNs komponen grup lainnya kecuali`FunctionDefinitionVersionArn`. Anda menggunakan nilai-nilai ini ketika membuat versi grup baru.

1. Dari `FunctionDefinitionVersionArn` di output, salin ID definisi fungsi dan versi definisi fungsi:

   ```
   arn:aws:greengrass:region:account-id:/greengrass/groups/function-definition-id/versions/function-definition-version-id
   ```
**catatan**  
Anda dapat secara opsional membuat definisi fungsi dengan menjalankan [https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition.html](https://docs.aws.amazon.com/cli/latest/reference/greengrass/create-function-definition.html)perintah, dan kemudian menyalin ID dari output.

1.  Gunakan [https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-function-definition-version.html](https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-function-definition-version.html) perintah untuk mendapatkan keadaan definisi saat ini. Gunakan yang *function-definition-id* Anda salin untuk definiton fungsi. Misalnya, *4d941bc7-92a1-4f45-8d64-EXAMPLEf76c3*. 

   ```
   aws greengrass get-function-definition-version
   --function-definition-id function-definition-id
   --function-definition-version-id function-definition-version-id
   ```

    Buat catatan konfigurasi fungsi yang tercantum. Anda harus menyertakan ini saat membuat versi definisi fungsi baru untuk mencegah hilangnya pengaturan definisi Anda saat ini. 

1.  Tambahkan versi definisi fungsi untuk definisi fungsi. 
   + Ganti *function-definition-id* dengan `Id` yang Anda salin untuk definisi fungsi. Misalnya, *4d941bc7-92a1-4f45-8d64-EXAMPLEf76c3*.
   + Ganti *arbitrary-function-id* dengan nama untuk fungsi tersebut, seperti**auto-detection-function**.
   + Tambahkan semua fungsi Lambda yang ingin Anda sertakan dalam versi ini ke `functions` Array, seperti yang tercantum dalam langkah sebelumnya.

   ```
   aws greengrass create-function-definition-version \
   --function-definition-id function-definition-id \
   --functions '[{"FunctionArn":"arn:aws:lambda:::function:GGIPDetector:1","Id":"arbitrary-function-id","FunctionConfiguration":{"Pinned":true,"MemorySize":32768,"Timeout":3}}]'\
   --region us-west-2
   ```

1. <a name="copy-function-def-version-arn"></a>Salin `Arn` dari versi definisi fungsi dari output.

1. <a name="create-group-version-with-sys-lambda"></a>Buat versi grup yang berisi fungsi Lambda sistem.
   + Ganti *group-id* dengan `Id` untuk grup.
   + Ganti *core-definition-version-arn* dengan `CoreDefinitionVersionArn` yang Anda salin dari versi grup terbaru.
   + Ganti *function-definition-version-arn* dengan `Arn` yang Anda salin untuk versi definisi fungsi baru.
   + Ganti ARNs untuk komponen grup lain (misalnya, `SubscriptionDefinitionVersionArn` atau`DeviceDefinitionVersionArn`) yang Anda salin dari versi grup terbaru.
   + Hapus parameter yang tidak terpakai. Sebagai contoh, Hapus `--resource-definition-version-arn` jika versi grup Anda tidak berisi sumber daya apa pun.

   ```
   aws greengrass create-group-version \
   --group-id group-id \
   --core-definition-version-arn core-definition-version-arn \
   --function-definition-version-arn function-definition-version-arn \
   --device-definition-version-arn device-definition-version-arn \
   --logger-definition-version-arn logger-definition-version-arn \
   --resource-definition-version-arn resource-definition-version-arn \
   --subscription-definition-version-arn subscription-definition-version-arn
   ```

1. <a name="copy-group-version-id"></a>Salin `Version` dari output. Ini adalah ID dari versi grup baru.

1. <a name="create-group-deployment"></a>Men-deploy grup dengan versi grup baru.
   + Ganti *group-id* dengan `Id` yang Anda salin untuk grup.
   + Ganti *group-version-id* dengan `Version` yang Anda salin untuk versi grup baru.

   ```
   aws greengrass create-deployment \
   --group-id group-id \
   --group-version-id group-version-id \
   --deployment-type NewDeployment
   ```

 Jika Anda ingin secara manual memasukkan alamat IP core Greengrass Anda, Anda dapat menyelesaikan tutorial ini dengan definisi fungsi yang berbeda yang tidak termasuk `IPDetector` fungsi. Ini akan mencegah fungsi deteksi dari menemukan dan secara otomatis memasukkan alamat IP core Greengrass Anda. 

 Fungsi Lambda sistem ini tidak terlihat di konsol Lambda. Setelah fungsi ditambahkan ke versi grup terbaru, itu termasuk dalam deployment yang Anda buat dari konsol, kecuali jika Anda menggunakan API untuk mengganti atau menghapusnya. 

## Konfigurasikan sistem init untuk memulai Greengrass daemon
<a name="start-on-boot"></a>

Ini adalah praktik yang baik untuk mengatur sistem init Anda untuk memulai Greengrass daemon saat boot, terutama ketika mengelola armada besar perangkat.

**catatan**  
Jika Anda biasa `apt` menginstal perangkat lunak AWS IoT Greengrass Core, Anda dapat menggunakan skrip systemd untuk mengaktifkan start on boot. Untuk informasi selengkapnya, lihat [Gunakan skrip systemd untuk mengelola siklus hidup Greengrass daemon](install-ggc.md#ggc-package-manager-systemd).

Ada berbagai jenis sistem init, seperti initd, systemd, dan SystemV, dan mereka menggunakan parameter konfigurasi yang sama. Contoh berikut adalah file layanan untuk systemd. Parameter `Type` diatur ke `forking` karena greengrassd (yang digunakan untuk memulai Greengrass) forks proses Greengrass daemon, dan `Restart` parameter diatur ke `on-failure` untuk mengarahkan systemd untuk me-restart Greengrass jika Greengrass memasuki keadaan gagal.

**catatan**  
Untuk melihat apakah perangkat Anda menggunakan systemd, jalankan `check_ggc_dependencies` seperti yang dijelaskan di [Modul 1](module1.md). Kemudian untuk menggunakan systemd, pastikan bahwa parameter `useSystemd` di [`config.json`](#config-json) diatur ke `yes`.

```
[Unit]
Description=Greengrass Daemon

[Service]
Type=forking
PIDFile=/var/run/greengrassd.pid
Restart=on-failure
ExecStart=/greengrass/ggc/core/greengrassd start
ExecReload=/greengrass/ggc/core/greengrassd restart
ExecStop=/greengrass/ggc/core/greengrassd stop

[Install]
WantedBy=multi-user.target
```

## Lihat juga
<a name="cores-see-also"></a>
+ [Apa itu AWS IoT Greengrass?](what-is-gg.md)
+ [Platform dan persyaratan yang didukung](what-is-gg.md#gg-platforms)
+ [Memulai dengan AWS IoT Greengrass](gg-gs.md)
+ [Ikhtisar model objek AWS IoT Greengrass grup](deployments.md#api-overview)
+ [Integrasi keamanan perangkat keras](hardware-security.md)