Konfigurasikan perangkat lunak AWS IoT Greengrass Inti - AWS IoT Greengrass

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

Konfigurasikan perangkat lunak AWS IoT Greengrass Inti

Perangkat lunak AWS IoT Greengrass Core menyediakan opsi yang dapat Anda gunakan untuk mengkonfigurasi perangkat lunak. Anda dapat membuat penerapan untuk mengonfigurasi perangkat lunak AWS IoT Greengrass Core pada setiap perangkat inti.

Menyebarkan komponen inti Greengrass

AWS IoT Greengrass menyediakan perangkat lunak AWS IoT Greengrass Core sebagai komponen yang dapat Anda terapkan ke perangkat inti Greengrass Anda. Anda dapat membuat deployment untuk menerapkan konfigurasi yang sama untuk beberapa perangkat inti Greengrass. Untuk informasi selengkapnya, silakan lihat Inti Greengrass dan Perbarui perangkat lunak inti AWS IoT Greengrass (OTA).

Konfigurasikan inti Greengrass sebagai layanan sistem

Anda harus mengonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem di sistem init perangkat Anda untuk melakukan hal berikut:

  • Mulai perangkat lunak AWS IoT Greengrass inti saat perangkat melakukan booting. Merupakan praktik yang baik jika Anda mengelola armada perangkat yang besar.

  • Instal dan jalankan komponen plugin. Beberapa komponen AWS yang disediakan adalah komponen plugin, yang memungkinkannya untuk berinteraksi langsung dengan inti Greengrass. Untuk informasi selengkapnya tentang jenis komponen, lihatJenis komponen.

  • Terapkan over-the-air (OTA) pembaruan ke perangkat lunak AWS IoT Greengrass Core perangkat inti. Untuk informasi selengkapnya, lihat Perbarui perangkat lunak inti AWS IoT Greengrass (OTA).

  • Aktifkan komponen untuk memulai ulang perangkat lunak Inti atau perangkat inti saat penerapan memperbarui komponen ke versi baru atau memperbarui parameter konfigurasi tertentu. AWS IoT Greengrass Untuk informasi lebih lanjut, lihat langkah siklus hidup bootstrap.

penting

Pada perangkat inti Windows, Anda harus mengatur perangkat lunak AWS IoT Greengrass inti sebagai layanan sistem.

Konfigurasikan inti sebagai layanan sistem (Linux)

Perangkat Linux mendukung sistem init yang berbeda, seperti initd, systemd, dan SystemV. Anda menggunakan --setup-system-service true argumen saat Anda menginstal perangkat lunak AWS IoT Greengrass Core untuk memulai inti sebagai layanan sistem dan mengonfigurasinya untuk diluncurkan saat perangkat melakukan booting. Installer mengkonfigurasi perangkat lunak AWS IoT Greengrass Core sebagai layanan sistem dengan systemd.

Anda juga dapat mengonfigurasi inti secara manual untuk dijalankan sebagai layanan sistem. Contoh berikut adalah file layanan untuk systemd.

[Unit] Description=Greengrass Core [Service] Type=simple PIDFile=/greengrass/v2/alts/loader.pid RemainAfterExit=no Restart=on-failure RestartSec=10 ExecStart=/bin/sh /greengrass/v2/alts/current/distro/bin/loader [Install] WantedBy=multi-user.target

Setelah Anda mengkonfigurasi layanan sistem, Anda dapat menjalankan perintah berikut untuk mengkonfigurasi memulai perangkat saat boot dan untuk memulai atau menghentikan perangkat lunak AWS IoT Greengrass Core.

  • Untuk memeriksa status layanan (systemd)

    sudo systemctl status greengrass.service
  • Untuk mengaktifkan inti untuk memulai saat perangkat melakukan booting.

    sudo systemctl enable greengrass.service
  • Untuk menghentikan inti dari memulai saat perangkat melakukan booting.

    sudo systemctl disable greengrass.service
  • Untuk memulai perangkat lunak AWS IoT Greengrass inti.

    sudo systemctl start greengrass.service
  • Untuk menghentikan perangkat lunak AWS IoT Greengrass inti.

    sudo systemctl stop greengrass.service

Konfigurasikan nukleus sebagai layanan sistem (Windows)

Anda menggunakan --setup-system-service true argumen saat menginstal perangkat lunak AWS IoT Greengrass Core untuk memulai inti sebagai layanan Windows dan mengonfigurasinya untuk diluncurkan saat perangkat melakukan booting.

Setelah Anda mengkonfigurasi layanan, Anda dapat menjalankan perintah berikut untuk mengkonfigurasi memulai perangkat saat boot dan untuk memulai atau menghentikan perangkat lunak AWS IoT Greengrass Core. Anda harus menjalankan Command Prompt atau PowerShell sebagai administrator untuk menjalankan perintah ini.

Windows Command Prompt (CMD)
  • Untuk memeriksa status layanan

    sc query "greengrass"
  • Untuk mengaktifkan inti untuk memulai saat perangkat melakukan booting.

    sc config "greengrass" start=auto
  • Untuk menghentikan inti dari memulai saat perangkat melakukan booting.

    sc config "greengrass" start=disabled
  • Untuk memulai perangkat lunak AWS IoT Greengrass inti.

    sc start "greengrass"
  • Untuk menghentikan perangkat lunak AWS IoT Greengrass inti.

    sc stop "greengrass"
    catatan

    Pada perangkat Windows, perangkat lunak AWS IoT Greengrass Core mengabaikan sinyal shutdown ini saat mematikan proses komponen Greengrass. Jika perangkat lunak AWS IoT Greengrass Core mengabaikan sinyal shutdown saat Anda menjalankan perintah ini, tunggu beberapa detik, dan coba lagi.

PowerShell
  • Untuk memeriksa status layanan

    Get-Service -Name "greengrass"
  • Untuk mengaktifkan inti untuk memulai saat perangkat melakukan booting.

    Set-Service -Name "greengrass" -Status stopped -StartupType automatic
  • Untuk menghentikan inti dari memulai saat perangkat melakukan booting.

    Set-Service -Name "greengrass" -Status stopped -StartupType disabled
  • Untuk memulai perangkat lunak AWS IoT Greengrass inti.

    Start-Service -Name "greengrass"
  • Untuk menghentikan perangkat lunak AWS IoT Greengrass inti.

    Stop-Service -Name "greengrass"
    catatan

    Pada perangkat Windows, perangkat lunak AWS IoT Greengrass Core mengabaikan sinyal shutdown ini saat mematikan proses komponen Greengrass. Jika perangkat lunak AWS IoT Greengrass Core mengabaikan sinyal shutdown saat Anda menjalankan perintah ini, tunggu beberapa detik, dan coba lagi.

Kontrol alokasi memori dengan opsi JVM

Jika Anda menjalankan AWS IoT Greengrass perangkat dengan memori terbatas, Anda dapat menggunakan opsi Java virtual machine (JVM) untuk mengontrol ukuran tumpukan maksimum, mode pengumpulan sampah, dan opsi kompiler, yang mengontrol jumlah memori yang digunakan perangkat lunak AWS IoT Greengrass Core. Ukuran heap dalam JVM menentukan berapa banyak memori yang dapat digunakan aplikasi sebelum pengumpulan sampah terjadi, atau sebelum aplikasi kehabisan memori. Ukuran tumpukan maksimum menentukan jumlah maksimum memori yang JVM dapat dialokasikan saat memperluas tumpukan selama aktivitas berat.

Untuk mengontrol alokasi memori, buat penerapan baru atau revisi penerapan yang sudah ada yang menyertakan komponen inti, dan tentukan JVM opsi Anda dalam parameter jvmOptions konfigurasi dalam konfigurasi komponen inti.

Bergantung pada kebutuhan Anda, Anda dapat menjalankan perangkat lunak AWS IoT Greengrass Core dengan alokasi memori yang dikurangi atau dengan alokasi memori minimum.

Alokasi memori yang berkurang

Untuk menjalankan perangkat lunak AWS IoT Greengrass Core dengan alokasi memori yang dikurangi, sebaiknya Anda menggunakan contoh pembaruan gabungan konfigurasi berikut untuk menyetel JVM opsi dalam konfigurasi nukleus Anda:

{ "jvmOptions": "-XX:+UseSerialGC -XX:TieredStopAtLevel=1" }
Alokasi memori minimum

Untuk menjalankan perangkat lunak AWS IoT Greengrass Core dengan alokasi memori minimum, sebaiknya Anda menggunakan contoh pembaruan gabungan konfigurasi berikut untuk menyetel JVM opsi dalam konfigurasi nukleus Anda:

{ "jvmOptions": "-Xmx32m -XX:+UseSerialGC -Xint" }
penting

Menjalankan perangkat lunak AWS IoT Greengrass Core dengan alokasi memori minimum dapat memiliki dampak kinerja yang signifikan pada sistem spesifikasi rendah karena JVM akan melakukan lebih banyak pemrosesan ketika menggunakan lebih sedikit memori. Kami merekomendasikan untuk menyetel opsi untuk menyeimbangkan memori dan kebutuhan kinerja Anda.

Contoh pembaruan gabungan konfigurasi ini menggunakan JVM opsi berikut:

-XX:+UseSerialGC

Menentukan untuk menggunakan pengumpulan sampah serial untuk ruang JVM tumpukan. Pengumpul sampah serial lebih lambat, tetapi menggunakan lebih sedikit memori daripada implementasi pengumpulan JVM sampah lainnya.

-XX:TieredStopAtLevel=1

Menginstruksikan JVM untuk menggunakan compiler Java just-in-time (JIT) sekali. Karena kode yang JIT dikompilasi menggunakan ruang dalam memori perangkat, menggunakan JIT kompiler lebih dari sekali mengkonsumsi lebih banyak memori daripada satu kompilasi.

-XmxNNm

Mengatur ukuran JVM tumpukan maksimum.

penting

Mengatur ukuran tumpukan maksimum terlalu rendah dapat menyebabkan kinerja atau out-of-memory kesalahan lebih lambat. Sebaiknya ukur penggunaan heap Anda saat ini sebelum menyetel ukuran maksimum dengan -XmxNNm opsi. Konfigurasikan Anda JVM dengan -XX:NativeMemoryTracking=detail JVM opsi. Kemudian, ukur penggunaan heap Anda saat ini dengan menggunakan permintaan VM.native_memory perintah dalam Utilitas jcmd.

Jika pengukuran heap bukan pilihan, gunakan -Xmx64m sebagai nilai awal untuk membatasi ukuran heap ke 64 MB. Anda kemudian dapat secara bertahap mengurangi ukuran tumpukan maks dari sana. Untuk alokasi memori minimum, gunakan -Xmx32m sebagai nilai awal untuk membatasi ukuran tumpukan 32 MB.

Anda dapat menambah atau mengurangi nilai -Xmx tergantung pada kebutuhan aktual Anda; namun, kami sangat menyarankan Anda tidak menetapkan ukuran tumpukan maksimum di bawah 16 MB. Jumlah ukuran JVM heap yang dibutuhkan juga dapat bervariasi dari waktu ke waktu berdasarkan komponen plugin yang digunakan ke perangkat inti. Jika ukuran heap maksimum terlalu rendah untuk lingkungan Anda, maka perangkat lunak AWS IoT Greengrass Core mungkin mengalami kesalahan yang tidak terduga karena memori yang tidak mencukupi. Jika Anda mengalami kinerja yang lebih lambat atau mengalami kesalahan karena memori yang tidak mencukupi, kembalilah ke pengaturan yang diketahui baik. Misalnya, jika ukuran tumpukan komit normal Anda41428KB, gunakan -Xmx40m untuk sedikit membatasi penggunaan heap.

-Xint

Menginstruksikan untuk JVM tidak menggunakan just-in-time (JIT) compiler. Sebaliknya, JVM berjalan dalam mode yang ditafsirkan saja. Mode ini lebih lambat (berpotensi 20 kali lebih lambat untuk penerapan pada sistem low-end) daripada menjalankan kode yang JIT dikompilasi; namun, kode yang dikompilasi tidak menggunakan ruang apa pun dalam memori.

Untuk informasi tentang pembuatan pembaruan penggabungan konfigurasi, lihat Perbarui konfigurasi komponen.

Konfigurasikan pengguna yang menjalankan komponen

Perangkat lunak AWS IoT Greengrass Core dapat menjalankan proses komponen sebagai pengguna sistem dan kelompok yang berbeda dari yang menjalankan perangkat lunak. Ini meningkatkan keamanan, karena Anda dapat menjalankan perangkat lunak AWS IoT Greengrass Core sebagai root, atau sebagai pengguna administrator, tanpa memberikan izin tersebut ke komponen yang berjalan pada perangkat inti.

Tabel berikut menunjukkan jenis komponen yang dapat dijalankan oleh perangkat lunak AWS IoT Greengrass Core sebagai pengguna yang Anda tentukan. Untuk informasi selengkapnya, lihat Jenis komponen.

Jenis komponen Konfigurasikan pengguna komponen

Inti

Tidak

Plugin

Tidak

Generik

Ya

Lambda (tidak terkontainerisasi)

Ya

Lambda (terkontainerisasi)

Ya

Anda harus membuat pengguna komponen sebelum Anda dapat menentukannya dalam konfigurasi penerapan. Pada perangkat berbasis Windows, Anda juga harus menyimpan nama pengguna dan kata sandi untuk pengguna di instance pengelola kredensi akun. LocalSystem Untuk informasi selengkapnya, lihat Mengatur pengguna komponen di perangkat Windows.

Saat mengonfigurasi pengguna komponen pada perangkat berbasis Linux, Anda juga dapat menentukan grup secara opsional. Anda menentukan pengguna dan grup yang dipisahkan oleh titik dua (:) dalam format berikut:user:group. Jika Anda tidak menentukan grup, perangkat lunak AWS IoT Greengrass Core default ke grup utama pengguna. Anda dapat menggunakan nama atau ID untuk mengidentifikasi pengguna dan grup.

Pada perangkat berbasis Linux, Anda juga dapat menjalankan komponen sebagai pengguna sistem yang tidak ada, juga disebut pengguna yang tidak dikenal, untuk meningkatkan keamanan. Proses Linux dapat menandakan proses lain yang dijalankan oleh pengguna yang sama. Pengguna yang tidak dikenal tidak menjalankan proses yang lain, sehingga Anda dapat menjalankan komponen sebagai pengguna yang tidak dikenal untuk mencegah komponen memberi sinyal ke komponen lain pada perangkat inti. Untuk menjalankan komponen sebagai pengguna yang tidak dikenal, tentukan ID pengguna yang tidak ada pada perangkat inti. Anda juga dapat menentukan ID grup yang tidak ada untuk dijalankan sebagai grup yang tidak dikenal.

Anda dapat mengkonfigurasi pengguna untuk setiap komponen dan untuk setiap perangkat inti.

  • Konfigurasikan untuk komponen

    Anda dapat mengonfigurasi setiap komponen untuk dijalankan dengan pengguna khusus untuk komponen tersebut. Saat membuat penerapan, Anda dapat menentukan pengguna untuk setiap komponen dalam runWith konfigurasi komponen tersebut. Perangkat lunak AWS IoT Greengrass Core menjalankan komponen sebagai pengguna yang ditentukan jika Anda mengonfigurasinya. Jika tidak, default menjalankan komponen sebagai pengguna default yang Anda konfigurasikan untuk perangkat inti. Untuk informasi selengkapnya tentang menentukan pengguna komponen dalam konfigurasi penerapan, lihat parameter runWithkonfigurasi di. Buat deployment

  • Konfigurasikan pengguna default untuk perangkat inti

    Anda dapat mengonfigurasi pengguna default yang digunakan perangkat lunak AWS IoT Greengrass Core untuk menjalankan komponen. Ketika perangkat lunak AWS IoT Greengrass Core menjalankan komponen, ia memeriksa apakah Anda menentukan pengguna untuk komponen itu, dan menggunakannya untuk menjalankan komponen. Jika komponen tidak menentukan pengguna, maka perangkat lunak AWS IoT Greengrass Core menjalankan komponen sebagai pengguna default yang Anda konfigurasikan untuk perangkat inti. Untuk informasi selengkapnya, lihat Konfigurasikan pengguna komponen default.

catatan

Pada perangkat berbasis Windows, Anda harus menentukan setidaknya pengguna default untuk menjalankan komponen.

Pada perangkat berbasis Linux, pertimbangan berikut berlaku jika Anda tidak mengonfigurasi pengguna untuk menjalankan komponen:

  • Jika Anda menjalankan perangkat lunak AWS IoT Greengrass Core sebagai root, maka perangkat lunak tidak akan menjalankan komponen. Anda harus menentukan pengguna default untuk menjalankan komponen jika Anda berjalan sebagai root.

  • Jika Anda menjalankan perangkat lunak AWS IoT Greengrass Core sebagai pengguna non-root, maka perangkat lunak menjalankan komponen sebagai pengguna tersebut.

Mengatur pengguna komponen di perangkat Windows

Untuk mengatur pengguna komponen pada perangkat berbasis Windows
  1. Buat pengguna komponen di LocalSystem akun di perangkat.

    net user /add component-user password
  2. Gunakan PsExec utilitas Microsoft untuk menyimpan nama pengguna dan kata sandi untuk pengguna komponen dalam contoh Credential Manager untuk LocalSystem akun tersebut.

    psexec -s cmd /c cmdkey /generic:component-user /user:component-user /pass:password
    catatan

    Pada perangkat berbasis Windows, LocalSystem akun menjalankan inti Greengrass, dan Anda harus menggunakan PsExec utilitas untuk menyimpan informasi pengguna komponen di akun. LocalSystem Menggunakan aplikasi Credential Manager menyimpan informasi ini di akun Windows dari pengguna yang saat ini masuk, bukan LocalSystem akun.

Konfigurasikan pengguna komponen default

Anda dapat menggunakan penerapan untuk mengonfigurasi pengguna default pada perangkat inti. Dalam deployment ini, Anda akan memperbarui konfigurasi komponen inti.

catatan

Anda juga dapat mengatur pengguna default ketika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan --component-default-user opsi. Untuk informasi selengkapnya, lihat Instal perangkat lunak inti AWS IoT Greengrass.

Buat penyebaran yang menentukan pemutakhiran konfigurasi berikut untuk komponen. aws.greengrass.Nucleus

Linux
{ "runWithDefault": { "posixUser": "ggc_user:ggc_group" } }
Windows
{ "runWithDefault": { "windowsUser": "ggc_user" } }
catatan

Pengguna yang Anda tentukan harus ada, dan nama pengguna dan kata sandi untuk pengguna ini harus disimpan dalam contoh pengelola kredensi LocalSystem akun di perangkat Windows Anda. Untuk informasi selengkapnya, lihat Mengatur pengguna komponen di perangkat Windows.

Contoh berikut mendefinisikan penerapan untuk perangkat berbasis Linux yang mengkonfigurasi ggc_user sebagai pengguna default dan sebagai grup default. ggc_group Pembaruan merge konfigurasi membutuhkan JSON objek serial.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"posixUser\":\"ggc_user:ggc_group\"}}" } } } }

Konfigurasikan batas sumber daya sistem untuk komponen

catatan

Fitur ini tersedia untuk v2.4.0 dan yang lebih baru dari komponen inti Greengrass. AWS IoT Greengrass saat ini tidak mendukung fitur ini di perangkat inti Windows.

Anda dapat mengonfigurasi jumlah maksimum CPU dan RAM penggunaan yang dapat digunakan oleh setiap proses komponen pada perangkat inti.

Tabel berikut menunjukkan jenis komponen yang mendukung batas sumber daya sistem. Untuk informasi selengkapnya, lihat Jenis komponen.

Jenis komponen Konfigurasikan batas sumber daya sistem

Inti

Tidak

Plugin

Tidak

Generik

Ya

Lambda (tidak terkontainerisasi)

Ya

Lambda (terkontainerisasi)

Tidak

penting

Batas sumber daya sistem tidak didukung saat Anda menjalankan perangkat lunak AWS IoT Greengrass Core dalam wadah Docker.

Anda dapat mengonfigurasi batas sumber daya sistem untuk setiap komponen dan untuk setiap perangkat inti.

  • Konfigurasikan untuk komponen

    Anda dapat mengonfigurasi setiap komponen dengan batas sumber daya sistem khusus untuk komponen tersebut. Saat membuat penerapan, Anda dapat menentukan batas sumber daya sistem untuk setiap komponen dalam penerapan. Jika komponen mendukung batas sumber daya sistem, perangkat lunak AWS IoT Greengrass Core menerapkan batasan untuk proses komponen. Jika Anda tidak menentukan batas sumber daya sistem untuk suatu komponen, perangkat lunak AWS IoT Greengrass Core menggunakan default apa pun yang telah Anda konfigurasikan untuk perangkat inti. Untuk informasi selengkapnya, lihat Buat deployment.

  • Konfigurasikan default untuk perangkat inti

    Anda dapat mengonfigurasi batas sumber daya sistem default yang diterapkan perangkat lunak AWS IoT Greengrass Core untuk komponen yang mendukung batasan ini. Ketika perangkat lunak AWS IoT Greengrass Core menjalankan komponen, itu menerapkan batas sumber daya sistem yang Anda tentukan untuk komponen itu. Jika komponen tersebut tidak menentukan batas sumber daya sistem, perangkat lunak AWS IoT Greengrass Core menerapkan batas sumber daya sistem default yang Anda konfigurasikan untuk perangkat inti. Jika Anda tidak menentukan batas sumber daya sistem default, perangkat lunak AWS IoT Greengrass Core tidak menerapkan batasan sumber daya sistem apa pun secara default. Untuk informasi selengkapnya, lihat Konfigurasikan batas sumber daya sistem default.

Konfigurasikan batas sumber daya sistem default

Anda dapat menerapkan komponen inti Greengrass untuk mengonfigurasi batas sumber daya sistem default untuk perangkat inti. Untuk mengonfigurasi batas sumber daya sistem default, buat penerapan yang menentukan pemutakhiran konfigurasi berikut untuk komponen tersebutaws.greengrass.Nucleus.

{ "runWithDefault": { "systemResourceLimits": { "cpu": cpuTimeLimit, "memory": memoryLimitInKb } } }

Contoh berikut mendefinisikan penerapan yang mengkonfigurasi batas CPU waktu2, yang setara dengan penggunaan 50% pada perangkat dengan 4 core. CPU Contoh ini juga mengkonfigurasi penggunaan memori hingga 100 MB.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"runWithDefault\":{\"systemResourceLimits\":\"cpus\":2,\"memory\":102400}}}" } } } }

Hubungkan pada port 443 atau melalui proksi jaringan

AWS IoT Greengrass perangkat inti berkomunikasi dengan AWS IoT Core menggunakan protokol MQTT pesan dengan otentikasi TLS klien. Dengan konvensi, MQTT over TLS menggunakan port 8883. Namun, sebagai tindakan keamanan, lingkungan yang membatasi mungkin membatasi lalu lintas masuk dan keluar ke sejumlah kecil port. TCP Misalnya, firewall perusahaan mungkin membuka port 443 untuk HTTPS lalu lintas, tetapi menutup port lain yang digunakan untuk protokol yang kurang umum, seperti port 8883 untuk lalu lintas. MQTT Lingkungan restriktif lainnya mungkin memerlukan semua lalu lintas untuk melalui proxy sebelum terhubung ke internet.

catatan

Perangkat inti Greengrass yang menjalankan komponen inti Greengrass v2.0.3 dan sebelumnya menggunakan port 8443 untuk terhubung ke titik akhir bidang data. AWS IoT Greengrass Perangkat ini harus dapat terhubung ke titik akhir ini pada port 8443. Untuk informasi selengkapnya, lihat Izinkan lalu lintas perangkat melalui proxy atau firewall.

Untuk mengaktifkan komunikasi dalam skenario ini, AWS IoT Greengrass berikan opsi konfigurasi berikut:

  • MQTTkomunikasi melalui port 443. Jika jaringan Anda mengizinkan koneksi ke port 443, Anda dapat mengonfigurasi perangkat inti Greengrass untuk menggunakan port 443 MQTT untuk lalu lintas alih-alih port default 8883. Hal ini bisa menjadi koneksi langsung ke port 443 atau koneksi melalui server proksi jaringan. Berbeda dengan konfigurasi default, yang menggunakan otentikasi klien berbasis sertifikat, MQTT pada port 443 menggunakan peran layanan perangkat untuk otentikasi.

    Untuk informasi selengkapnya, lihat Konfigurasikan MQTT melalui port 443.

  • HTTPSkomunikasi melalui port 443. Perangkat lunak AWS IoT Greengrass Core mengirimkan HTTPS lalu lintas melalui port 8443 secara default, tetapi Anda dapat mengonfigurasinya untuk menggunakan port 443. AWS IoT Greengrass menggunakan TLS ekstensi Application Layer Protocol Network (ALPN) untuk mengaktifkan koneksi ini. Seperti konfigurasi default, HTTPS pada port 443 menggunakan otentikasi klien berbasis sertifikat.

    penting

    Untuk menggunakan ALPN dan mengaktifkan HTTPS komunikasi melalui port 443, perangkat inti Anda harus menjalankan pembaruan Java 8 252 atau yang lebih baru. Semua pembaruan Java versi 9 dan yang lebih baru juga mendukungALPN.

    Untuk informasi selengkapnya, lihat Konfigurasikan HTTPS melalui port 443.

  • Sambungan melalui proksi rangkaian. Anda dapat mengonfigurasi server proxy jaringan untuk bertindak sebagai perantara untuk menghubungkan ke perangkat inti Greengrass. AWS IoT Greengrass mendukung otentikasi dasar untuk HTTP dan HTTPS proxy.

    Perangkat inti Greengrass harus menjalankan Greengrass nucleus v2.5.0 atau yang lebih baru untuk menggunakan proxy. HTTPS

    Perangkat lunak AWS IoT Greengrass Core meneruskan konfigurasi proxy ke komponen melaluiALL_PROXY,, HTTP_PROXYHTTPS_PROXY, dan variabel NO_PROXY lingkungan. Komponen harus menggunakan pengaturan ini untuk terhubung melalui proksi. Komponen menggunakan pustaka umum (seperti boto3, cURL, dan requests paket python) yang biasanya menggunakan variabel lingkungan ini secara default untuk membuat koneksi. Jika suatu komponen juga menentukan variabel lingkungan ini, AWS IoT Greengrass tidak akan menimpanya.

    Untuk informasi selengkapnya, lihat Konfigurasikan proksi jaringan.

Konfigurasikan MQTT melalui port 443

Anda dapat mengonfigurasi MQTT melalui port 443 pada perangkat inti yang ada atau saat Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti baru.

Konfigurasikan MQTT melalui port 443 pada perangkat inti yang ada

Anda dapat menggunakan penyebaran untuk mengkonfigurasi MQTT lebih dari port 443 pada perangkat inti tunggal atau sekelompok perangkat inti. Dalam deployment ini, Anda akan memperbarui konfigurasi komponen inti. Nukleus akan dimulai ulang ketika Anda memperbarui konfigurasi mqtt-nya.

Untuk mengonfigurasi MQTT melalui port 443, buat penerapan yang menentukan pemutakhiran konfigurasi berikut untuk komponen tersebut. aws.greengrass.Nucleus

{ "mqtt": { "port": 443 } }

Contoh berikut mendefinisikan penyebaran yang mengkonfigurasi MQTT lebih dari port 443. Pembaruan merge konfigurasi membutuhkan JSON objek serial.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"mqtt\":{\"port\":443}}" } } } }

Konfigurasikan MQTT melalui port 443 selama instalasi

Anda dapat mengonfigurasi MQTT melalui port 443 saat Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti. Gunakan argumen --init-config installer untuk mengkonfigurasi MQTT lebih dari port 443. Anda dapat menentukan argumen ini saat menginstal dengan penyediaan manual, penyediaanarmada, atau penyediaan kustom.

Konfigurasikan HTTPS melalui port 443

Fitur ini memerlukan v2.0.4 Inti Greengrass atau lebih baru.

Anda dapat mengonfigurasi HTTPS melalui port 443 pada perangkat inti yang ada atau saat Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti baru.

Konfigurasikan HTTPS melalui port 443 pada perangkat inti yang ada

Anda dapat menggunakan penyebaran untuk mengkonfigurasi HTTPS lebih dari port 443 pada perangkat inti tunggal atau sekelompok perangkat inti. Dalam deployment ini, Anda akan memperbarui konfigurasi komponen inti.

Untuk mengonfigurasi HTTPS melalui port 443, buat penerapan yang menentukan pemutakhiran konfigurasi berikut untuk komponen tersebut. aws.greengrass.Nucleus

{ "greengrassDataPlanePort": 443 }

Contoh berikut mendefinisikan penyebaran yang mengkonfigurasi HTTPS lebih dari port 443. Pembaruan merge konfigurasi membutuhkan JSON objek serial.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"greengrassDataPlanePort\":443}" } } } }

Konfigurasikan HTTPS melalui port 443 selama instalasi

Anda dapat mengonfigurasi HTTPS melalui port 443 saat Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti. Gunakan argumen --init-config installer untuk mengkonfigurasi HTTPS lebih dari port 443. Anda dapat menentukan argumen ini saat menginstal dengan penyediaan manual, penyediaanarmada, atau penyediaan kustom.

Konfigurasikan proksi jaringan

Ikuti prosedur di bagian ini untuk mengonfigurasi perangkat inti Greengrass untuk terhubung ke internet melalui proxy atau jaringan. HTTP HTTPS Untuk informasi selengkapnya tentang titik akhir dan port yang digunakan perangkat inti, lihatIzinkan lalu lintas perangkat melalui proxy atau firewall.

penting

Jika perangkat inti Anda menjalankan versi inti Greengrass lebih awal dari v2.4.0, peran perangkat Anda harus mengizinkan izin berikut untuk menggunakan proxy jaringan:

  • iot:Connect

  • iot:Publish

  • iot:Receive

  • iot:Subscribe

Ini diperlukan karena perangkat menggunakan AWS kredensi dari layanan pertukaran token untuk mengautentikasi MQTT koneksi ke. AWS IoT Perangkat digunakan MQTT untuk menerima dan menginstal penerapan dari AWS Cloud, sehingga perangkat Anda tidak akan berfungsi kecuali Anda menentukan izin ini pada perannya. Perangkat biasanya menggunakan sertifikat X.509 untuk mengautentikasi MQTT koneksi, tetapi perangkat tidak dapat melakukan ini untuk mengautentikasi saat menggunakan proxy.

Untuk informasi lebih lanjut tentang cara mengonfigurasi peran perangkat, lihat Otorisasi perangkat inti untuk berinteraksi dengan AWS layanan.

Konfigurasikan proxy jaringan pada perangkat inti yang ada

Anda dapat menggunakan deployment untuk mengonfigurasi proksi jaringan pada perangkat inti tunggal atau sekelompok perangkat inti. Dalam deployment ini, Anda akan memperbarui konfigurasi komponen inti. Nukleus akan dimulai ulang ketika Anda memperbarui konfigurasi networkProxy-nya.

Untuk mengonfigurasi proksi jaringan, buat deployment untuk komponen aws.greengrass.Nucleus yang menggabungkan pembaruan konfigurasi berikut. Pembaruan konfigurasi ini berisi networkProxy objek.

{ "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100" } } }

Contoh berikut menentukan deployment yang mengonfigurasi proksi jaringan. Pembaruan merge konfigurasi membutuhkan JSON objek serial.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.13.0", "configurationUpdate": { "merge": "{\"networkProxy\":{\"noProxyAddresses\":\"http://192.168.0.1,www.example.com\",\"proxy\":{\"url\":\"https://my-proxy-server:1100\",\"username\":\"Mary_Major\",\"password\":\"pass@word1357\"}}}" } } } }

Konfigurasikan proxy jaringan selama instalasi

Anda dapat mengkonfigurasi proxy jaringan ketika Anda menginstal perangkat lunak AWS IoT Greengrass Core pada perangkat inti. Gunakan argumen --init-config installer untuk mengkonfigurasi proxy jaringan. Anda dapat menentukan argumen ini saat menginstal dengan penyediaan manual, penyediaanarmada, atau penyediaan kustom.

Aktifkan perangkat inti untuk mempercayai HTTPS proxy

Saat Anda mengonfigurasi perangkat inti untuk menggunakan HTTPS proxy, Anda harus menambahkan rantai sertifikat server proxy ke perangkat inti untuk memungkinkannya mempercayai HTTPS proxy. Jika tidak, perangkat inti mungkin mengalami kesalahan saat mencoba merutekan lalu lintas melalui proxy. Tambahkan sertifikat CA server proxy ke file sertifikat CA root Amazon perangkat inti.

Untuk mengaktifkan perangkat inti untuk mempercayai HTTPS proxy
  1. Temukan file sertifikat CA root Amazon di perangkat inti.

    • Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan otomatis, file sertifikat CA root Amazon ada di. /greengrass/v2/rootCA.pem

    • Jika Anda menginstal perangkat lunak AWS IoT Greengrass Core dengan penyediaan manual atau armada, file sertifikat CA root Amazon mungkin ada di. /greengrass/v2/AmazonRootCA1.pem

    Jika sertifikat CA root Amazon tidak ada di lokasi ini, periksa system.rootCaPath properti /greengrass/v2/config/effectiveConfig.yaml untuk menemukan lokasinya.

  2. Tambahkan konten file sertifikat CA server proxy ke file sertifikat CA root Amazon.

    Contoh berikut menunjukkan sertifikat CA server proxy yang ditambahkan ke file sertifikat CA root Amazon.

    -----BEGIN CERTIFICATE----- MIIEFTCCAv2gAwIQWgIVAMHSAzWG/5YVRYtRQOxXUTEpHuEmApzGCSqGSIb3DQEK \nCwUAhuL9MQswCQwJVUzEPMAVUzEYMBYGA1UECgwP1hem9uLmNvbSBJbmMuMRww ... content of proxy CA certificate ... +vHIRlt0e5JAm5\noTIZGoFbK82A0/nO7f/t5PSIDAim9V3Gc3pSXxCCAQoFYnui GaPUlGk1gCE84a0X\n7Rp/lND/PuMZ/s8YjlkY2NmYmNjMCAXDTE5MTEyN2cM216 gJMIADggEPADf2/m45hzEXAMPLE= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIDQTCCAimgF6AwIBAgITBmyfz/5mjAo54vB4ikPmljZKyjANJmApzyMZFo6qBg ADA5MQswCQYDVQQGEwJVUzEPMA0tMVT8QtPHRh8jrdkGA1UEChMGDV3QQDExBBKW ... content of root CA certificate ... o/ufQJQWUCyziar1hem9uMRkwFwYVPSHCb2XV4cdFyQzR1KldZwgJcIQ6XUDgHaa 5MsI+yMRQ+hDaXJiobldXgjUka642M4UwtBV8oK2xJNDd2ZhwLnoQdeXeGADKkpy rqXRfKoQnoZsG4q5WTP46EXAMPLE -----END CERTIFICATE-----

networkProxy Objeknya

Gunakan objek networkProxy untuk menentukan informasi tentang proksi jaringan. Objek ini berisi informasi berikut:

noProxyAddresses

(Opsional) Daftar alamat IP atau nama host yang dipisahkan dengan koma yang dikecualikan dari proksi.

proxy

Proksi yang akan dihubungkan. Objek ini berisi informasi berikut:

url

URLDari server proxy dalam formatscheme://userinfo@host:port.

  • scheme — Skema, yang harus berupa http atau https.

    penting

    Perangkat inti Greengrass harus menjalankan Greengrass nucleus v2.5.0 atau yang lebih baru untuk menggunakan proxy. HTTPS

    Jika Anda mengonfigurasi HTTPS proxy, Anda harus menambahkan sertifikat CA server proxy ke sertifikat Amazon root CA perangkat inti. Untuk informasi selengkapnya, lihat Aktifkan perangkat inti untuk mempercayai HTTPS proxy.

  • userinfo - (Opsional) Nama pengguna dan informasi kata sandi. Jika Anda menentukan informasi ini diurl, perangkat inti Greengrass mengabaikan bidang dan. username password

  • host - Nama host atau alamat IP server proksi.

  • port — (Opsional) Nomor port. Jika Anda tidak menentukan port, maka perangkat inti Greengrass akan menggunakan nilai default berikut:

    • http – 80

    • https – 443

username

(Opsional) Nama pengguna yang mengautentikasi server proxy.

password

(Opsional) Kata sandi yang mengautentikasi server proxy.

Menggunakan sertifikat perangkat yang ditandatangani oleh CA pribadi

Jika Anda menggunakan otoritas sertifikat pribadi kustom (CA), Anda harus mengatur inti Greengrass ke. greengrassDataPlaneEndpoint iotdata Anda dapat mengatur opsi ini selama penerapan atau instalasi menggunakan argumen --init-config installer.

Anda dapat menyesuaikan titik akhir bidang data Greengrass tempat perangkat terhubung. Anda dapat mengatur opsi konfigurasi ini iotdata untuk mengatur titik akhir bidang data Greengrass ke titik akhir yang sama dengan titik akhir data IoT, yang dapat Anda tentukan dengan. iotDataEndpoint

Konfigurasikan MQTT batas waktu dan pengaturan cache

Di AWS IoT Greengrass lingkungan, komponen dapat digunakan MQTT untuk berkomunikasi dengan AWS IoT Core. Perangkat lunak AWS IoT Greengrass Core mengelola MQTT pesan untuk komponen. Ketika perangkat inti kehilangan koneksi ke AWS Cloud, perangkat lunak menyimpan MQTT pesan untuk mencoba lagi nanti ketika koneksi pulih. Anda dapat mengonfigurasi pengaturan seperti timeout pesan dan ukuran cache. Untuk informasi lebih lanjut, lihat parameter konfigurasi mqtt dan mqtt.spooler pada komponen nukleus Greengrass.

AWS IoT Core memberlakukan kuota layanan pada broker MQTT pesannya. Kuota ini mungkin berlaku untuk pesan yang Anda kirim antara perangkat inti dan AWS IoT Core. Untuk informasi lebih lanjut, lihat kuota layanan broker AWS IoT Core pesan di. Referensi Umum AWS