Konfigurasikan perangkat lunak inti AWS IoT Greengrass - 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 inti AWS IoT Greengrass

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

Deploy komponen nukleus Greengrass

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

Konfigurasikan nukleus Greengrass sebagai layanan sistem

Anda harus mengonfigurasiAWS IoT GreengrassPerangkat lunak inti sebagai layanan sistem dalam sistem init perangkat Anda untuk melakukan hal berikut:

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

  • Instal dan jalankan komponen plugin. BeberapaAWSkomponen yang disediakan adalah komponen plugin, yang memungkinkannya untuk terhubung dengan antarmuka secara langsung dengan inti Greengrass. Untuk informasi selengkapnya tentang jenis komponen, lihatJenis komponen.

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

  • Aktifkan komponen untuk me-restart perangkat lunak inti AWS IoT Greengrass atau perangkat inti ketika deployment memperbarui komponen ke versi baru atau memperbarui parameter konfigurasi tertentu. Untuk informasi lebih lanjut, lihat langkah siklus hidup bootstrap.

penting

Pada perangkat inti Windows, Anda harus mengaturAWS IoT GreengrassPerangkat lunak inti sebagai layanan sistem.

Konfigurasikan nukleus sebagai layanan sistem (Linux)

Perangkat Linux mendukung sistem init yang berbeda, seperti initd, systemd, dan SystemV. Anda menggunakan--setup-system-service trueargumen saat Anda menginstalAWS IoT Greengrassperangkat lunak inti untuk memulai nukleus sebagai layanan sistem dan mengonfigurasinya untuk dimulai ketika perangkat melakukan boot. Installer mengkonfigurasiAWS IoT GreengrassPerangkat lunak inti sebagai layanan sistem dengan systemd.

Anda juga dapat mengkonfigurasi nukleus 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

Untuk informasi tentang cara membuat dan mengaktifkan file layanan untuk systemd di Raspberry Pi, lihatDaemondalam dokumentasi Raspberry Pi.

Setelah Anda mengonfigurasi layanan sistem, Anda dapat menjalankan perintah berikut untuk mengonfigurasi permulaan perangkat pada boot dan untuk memulai atau menghentikanAWS IoT GreengrassPerangkat lunak inti.

  • Untuk memeriksa status layanan (systemd)

    sudo systemctl status greengrass.service
  • Untuk mengaktifkan nukleus untuk dimulai saat perangkat melakukan boot.

    sudo systemctl enable greengrass.service
  • Untuk menghentikan nukleus agar tidak dimulai saat perangkat melakukan boot.

    sudo systemctl disable greengrass.service
  • Untuk memulaiAWS IoT GreengrassPerangkat lunak inti.

    sudo systemctl start greengrass.service
  • Untuk menghentikanAWS IoT GreengrassPerangkat lunak inti.

    sudo systemctl stop greengrass.service

Konfigurasikan nukleus sebagai layanan sistem (Windows)

Anda menggunakan--setup-system-service trueargumen saat Anda menginstalAWS IoT Greengrassperangkat lunak inti untuk memulai nukleus sebagai layanan Windows dan mengonfigurasinya untuk dimulai ketika perangkat melakukan boot.

Setelah Anda mengonfigurasi layanan, Anda dapat menjalankan perintah berikut untuk mengonfigurasi permulaan perangkat pada boot dan untuk memulai atau menghentikanAWS IoT GreengrassPerangkat lunak inti. 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 nukleus untuk dimulai saat perangkat melakukan boot.

    sc config "greengrass" start=auto
  • Untuk menghentikan nukleus agar tidak dimulai saat perangkat melakukan boot.

    sc config "greengrass" start=disabled
  • Untuk memulaiAWS IoT GreengrassPerangkat lunak inti.

    sc start "greengrass"
  • Untuk menghentikanAWS IoT GreengrassPerangkat lunak inti.

    sc stop "greengrass"
    catatan

    Pada perangkat Windows,AWS IoT GreengrassPerangkat lunak inti mengabaikan sinyal shutdown ini saat mematikan proses komponen Greengrass. JikaAWS IoT GreengrassPerangkat lunak inti 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 nukleus untuk dimulai saat perangkat melakukan boot.

    Set-Service -Name "greengrass" -Status stopped -StartupType automatic
  • Untuk menghentikan nukleus agar tidak dimulai saat perangkat melakukan boot.

    Set-Service -Name "greengrass" -Status stopped -StartupType disabled
  • Untuk memulaiAWS IoT GreengrassPerangkat lunak inti.

    Start-Service -Name "greengrass"
  • Untuk menghentikanAWS IoT GreengrassPerangkat lunak inti.

    Stop-Service -Name "greengrass"
    catatan

    Pada perangkat Windows,AWS IoT GreengrassPerangkat lunak inti mengabaikan sinyal shutdown ini saat mematikan proses komponen Greengrass. JikaAWS IoT GreengrassPerangkat lunak inti 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 pada perangkat dengan memori terbatas, Anda dapat menggunakan opsi mesin virtual Java (JVM) untuk mengontrol ukuran tumpukan maksimum, mode pengumpulan sampah, dan opsi compiler, yang mengontrol jumlah memori yang digunakan oleh perangkat lunak inti AWS IoT Greengrass. Ukuran tumpukan di 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 dapat dialokasikan oleh JVM ketika memperluas tumpukan selama aktivitas yang berat.

Untuk mengontrol alokasi memori, buat deployment baru atau revisi deployment yang ada yang mencakup komponen inti, dan tentukan opsi JVM Anda di parameter konfigurasi jvmOptions dalam konfigurasi komponen inti.

Tergantung pada kebutuhan Anda, Anda dapat menjalankan perangkat lunak inti AWS IoT Greengrass dengan alokasi memori yang berkurang atau dengan alokasi memori minimum.

Alokasi memori yang berkurang

Untuk menjalankan perangkat lunak inti AWS IoT Greengrass dengan alokasi memori yang berkurang, kami sarankan Anda menggunakan pembaruan penggabungan konfigurasi contoh berikut untuk mengatur opsi JVM dalam konfigurasi inti Anda:

{ "jvmOptions": "-Xmx64m -XX:+UseSerialGC -XX:TieredStopAtLevel=1" }

Alokasi memori minimum

Untuk menjalankan perangkat lunak inti AWS IoT Greengrass dengan alokasi memori minimum, kami sarankan Anda menggunakan pembaruan penggabungan konfigurasi contoh berikut untuk mengatur opsi JVM dalam konfigurasi inti Anda:

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

Konfigurasi ini menggabungkan pembaruan dengan menggunakan opsi JVM berikut:

-XmxNNm

Menetapkan ukuran tumpukan JVM maksimum.

Untuk alokasi memori yang berkurang, gunakan -Xmx64m sebagai nilai awal untuk membatasi ukuran tumpukan 64 MB. 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. Jika ukuran tumpukan maksimum terlalu rendah untuk lingkungan Anda, maka perangkat lunak inti AWS IoT Greengrass mungkin akan mengalami kesalahan tak terduga karena memori tidak mencukupi.

-XX:+UseSerialGC

Menentukan untuk menggunakan koleksi sampah serial untuk ruang tumpukan JVM. Kolektor sampah serial lebih lambat, tetapi menggunakan memori lebih kecil dari implementasi pengumpulan sampah JVM lainnya.

-XX:TieredStopAtLevel=1

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

-Xint

Menginstruksikan JVM untuk tidak menggunakan just-in-time (JIT) kompiler. Sebaliknya, JVM berjalan dalam mode ditafsirkan-saja. Mode ini lebih lambat daripada menjalankan kode yang dikompilasi JIT; namun, kode yang dikompilasi itu tidak menggunakan ruang apa pun dalam memori.

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

Mengkonfigurasi pengguna yang menjalankan komponen

Perangkat lunak inti AWS IoT Greengrass dapat menjalankan proses komponen sebagai pengguna dan grup sistem yang berbeda dari komponen yang menjalankan perangkat lunak tersebut. Hal ini meningkatkan keamanan, karena Anda dapat menjalankanAWS IoT GreengrassPerangkat lunak inti sebagai root, atau sebagai pengguna administrator, tanpa memberikan izin tersebut ke komponen yang berjalan di perangkat inti.

Tabel berikut menunjukkan jenis komponenAWS IoT GreengrassPerangkat lunak inti dapat berjalan 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 penyebaran. Pada perangkat berbasis Windows, Anda juga harus menyimpan nama pengguna dan kata sandi untuk pengguna di instance pengelola kredensi LocalSystem akun. Untuk informasi selengkapnya, lihat Menyiapkan 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 dengan titik dua (:) dalam format berikut: user:group. Jika Anda tidak menentukan grup,AWS IoT GreengrassPerangkat lunak inti default ke grup utama pengguna. Anda dapat menggunakan nama atau ID untuk mengidentifikasi pengguna dan grup.

Di perangkat berbasis Linux, Anda juga dapat menjalankan komponen sebagai pengguna sistem yang tidak ada, yang juga disebut sebagai pengguna yang tidak dikenal, untuk meningkatkan keamanan. Proses Linux dapat memberi sinyal ke setiap 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 mengonfigurasi pengguna untuk setiap komponen dan untuk setiap perangkat inti.

  • Konfigurasikan untuk komponen

    Anda dapat mengonfigurasi setiap komponen untuk berjalan dengan pengguna yang khusus untuk komponen tersebut. Saat Anda membuat deployment, Anda dapat menentukan pengguna untuk setiap komponen dalamrunWithkonfigurasi untuk komponen itu. YangAWS IoT GreengrassPerangkat lunak inti akan menjalankan komponen sebagai pengguna yang ditentukan jika Anda mengonfigurasi mereka. Jika tidak, ia akan default untuk menjalankan komponen sebagai default pengguna yang Anda konfigurasikan untuk perangkat inti. Untuk informasi selengkapnya tentang menentukan pengguna komponen di konfigurasi deployment, lihatrunWithparameter konfigurasiBuat deployment.

  • Konfigurasikan default pengguna untuk perangkat inti

    Anda dapat mengkonfigurasi pengguna default yangAWS IoT GreengrassPerangkat lunak inti digunakan untuk menjalankan komponen. SaatAWS IoT Greengrassperangkat lunak inti menjalankan suatu komponen, ia memeriksa apakah Anda menentukan pengguna untuk komponen itu, dan menggunakannya untuk menjalankan komponen. Jika komponen tidak menentukan pengguna, makaAWS IoT GreengrassPerangkat lunak inti akan menjalankan komponen tersebut sebagai pengguna default yang Anda konfigurasikan untuk perangkat inti. Untuk informasi selengkapnya, lihat Konfigurasikan default pengguna komponen.

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 menjalankanAWS IoT GreengrassPerangkat lunak inti sebagai root, maka perangkat lunak tidak akan menjalankan komponen. Anda harus menentukan pengguna default untuk menjalankan komponen jika Anda berjalan sebagai root.

  • Jika Anda menjalankanAWS IoT GreengrassPerangkat lunak inti sebagai pengguna non-root, maka perangkat lunak akan menjalankan komponen sebagai pengguna itu.

Menyiapkan pengguna komponen di perangkat Windows

Cara menyiapkan pengguna komponen di perangkat berbasis Windows

  1. Buat pengguna komponen di LocalSystem akun di perangkat.

    net user /add component-user password
  2. GunakanMicrosoft PsExec utilitasuntuk menyimpan nama pengguna dan kata sandi bagi pengguna komponen di instance Manajer Kredensi LocalSystem akun.

    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 LocalSystemakun. Menggunakan aplikasi Credential Manager menyimpan informasi ini di akun Windows pengguna yang saat ini masuk, bukan LocalSystemakun.

Konfigurasikan default pengguna komponen

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

catatan

Anda juga dapat mengatur pengguna default saat Anda menginstalAWS IoT GreengrassPerangkat lunak inti--component-default-userpilihan. Untuk informasi selengkapnya, lihat Instal perangkat lunak inti AWS IoT Greengrass.

Buat deploymentyang menentukan pemutakhiran konfigurasi berikut untukaws.greengrass.Nucleuskomponen.

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 instance pengelola kredensi LocalSystem akun di perangkat Windows Anda. Untuk informasi selengkapnya, lihat Menyiapkan pengguna komponen di perangkat Windows.

Contoh berikut menentukan deployment untuk perangkat berbasis Linux yang mengonfigurasiggc_usersebagai default pengguna danggc_groupsebagai grup default. Pembaruan konfigurasi merge memerlukan objek JSON berserial.

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

Mengkonfigurasi batas sumber daya sistem untuk komponen

catatan

Fitur ini tersedia untuk v2.4.0 dan versi yang lebih baruKomponen inti Greengrass.AWS IoT GreengrassSaat ini tidak mendukung fitur ini pada perangkat inti Windows.

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

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

Jenis komponen Konfigurasikan batas sumber daya

Inti

Tidak

Plugin

Tidak

Generik

Ya

Lambda (tidak terkontainerisasi)

Ya

Lambda (terkontainerisasi)

Tidak

penting

Batas sumber daya sistem tidak didukung saat AndamenjalankanAWS IoT GreengrassPerangkat lunak inti dalam kontainer Docker.

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

  • Konfigurasikan untuk komponen

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

  • Konfigurasikan default untuk perangkat inti

    Anda dapat mengkonfigurasi batas sumber daya sistem default yangAWS IoT GreengrassPerangkat lunak inti berlaku untuk komponen yang mendukung batasan ini. SaatAWS IoT Greengrassperangkat lunak inti menjalankan suatu komponen, ia menerapkan batas sumber daya sistem yang Anda tentukan untuk komponen itu. Jika komponen tersebut tidak menentukan batas sumber daya sistem, makaAWS IoT GreengrassPerangkat lunak inti menerapkan batas sumber daya sistem default yang Anda konfigurasikan untuk perangkat inti. Jika Anda tidak menentukan batas sumber sumber sistem default,AWS IoT GreengrassPerangkat lunak inti tidak menerapkan batasan sumber daya sistem secara default. Untuk informasi selengkapnya, lihat Mengkonfigurasi batas sumber daya sistem default.

Mengkonfigurasi batas sumber daya sistem default

Anda dapat menyebarkanKomponen inti Greengrassuntuk mengkonfigurasi batas sumber daya sistem default untuk perangkat inti. Untuk mengkonfigurasi batas sumber daya sistem default,buat deploymentyang menentukan pemutakhiran konfigurasi berikut untukaws.greengrass.Nucleuskomponen.

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

Contoh berikut menentukan deployment yang mengonfigurasi batas waktu CPU2, yang setara dengan 50% penggunaan pada perangkat dengan 4 core CPU. Contoh ini juga mengkonfigurasi penggunaan memori untuk 100 MB.

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

Hubungkan pada port 443 atau melalui proksi jaringan

Perangkat inti AWS IoT Greengrass berkomunikasi dengan AWS IoT Core menggunakan protokol olahpesan MQTT dengan autentikasi 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 sebelum terhubung ke internet.

catatan

Perangkat inti Greengrass yang menjalankan komponen inti Greengrass v2.0.3 dan yang lebih awal 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 menyediakan opsi konfigurasi berikut:

  • Komunikasi MQTT melalui port 443. Jika jaringan Anda memungkinkan koneksi ke port 443, Anda dapat mengonfigurasi perangkat inti Greengrass dengan menggunakan port 443 untuk lalu lintas MQTT, dan bukan port default 8883. Hal ini bisa menjadi koneksi langsung ke port 443 atau koneksi melalui server proksi jaringan. Tidak seperti konfigurasi default, yang menggunakan autentikasi klien berbasis sertifikat, MQTT pada port 443 menggunakan peran layanan perangkat untuk autentikasi.

    Untuk informasi selengkapnya, lihat Konfigurasikan MQTT melalui port 443.

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

    penting

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

    Untuk informasi selengkapnya, lihat Konfigurasikan HTTPS melalui port 443.

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

    Perangkat inti Greengrass harus berjalanInti Greengrassv2.5.0 atau versi yang lebih baru untuk menggunakan proksi HTTPS.

    Perangkat lunak inti AWS IoT Greengrass menyampaikan konfigurasi proksi ke komponen melalui variabel lingkungan ALL_PROXY, HTTP_PROXY, HTTPS_PROXY, dan NO_PROXY. Komponen harus menggunakan pengaturan ini untuk terhubung melalui proksi. Komponen menggunakan pustaka umum (seperti boto3, cURL, dan paket python requests) 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 mengkonfigurasi MQTT melalui port 443 pada perangkat inti yang ada atau ketika Anda menginstalAWS IoT GreengrassPerangkat lunak inti pada perangkat inti baru.

Konfigurasikan MQTT melalui port 443 pada perangkat inti yang ada

Anda dapat menggunakan deployment untuk mengonfigurasi MQTT melalui 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 deployment yang menentukan pembaruan konfigurasi berikut untuk komponen aws.greengrass.Nucleus.

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

Contoh berikut menentukan deployment yang mengonfigurasi MQTT melalui port 443. Pembaruan konfigurasi merge memerlukan objek JSON berserial.

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

Konfigurasikan MQTT melalui port 443 selama instalasi

Anda dapat mengonfigurasi MQTT melalui port 443 saat Anda menginstalAWS IoT GreengrassPerangkat lunak inti. Gunakan--init-configargumen installer untuk mengonfigurasi MQTT melalui port 443. Anda dapat menentukan argumen ini ketika Anda menginstal denganpenyediaan manual,penyediaan armada, ataupenyediaan kustom.

Konfigurasikan HTTPS melalui port 443

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

Anda dapat mengkonfigurasi HTTPS melalui port 443 pada perangkat inti yang ada atau ketika Anda menginstalAWS IoT GreengrassPerangkat lunak inti pada perangkat inti baru.

Konfigurasikan HTTPS melalui port 443 pada perangkat inti yang ada

Anda dapat menggunakan deployment untuk mengonfigurasi HTTPS melalui 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 deployment yang menentukan pembaruan konfigurasi berikut untuk komponen aws.greengrass.Nucleus.

{ "greengrassDataPlanePort": 443 }

Contoh berikut menentukan deployment yang mengonfigurasi HTTPS melalui port 443. Pembaruan konfigurasi merge memerlukan objek JSON berserial.

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

Konfigurasikan HTTPS melalui port 443 selama instalasi

Anda dapat mengonfigurasi HTTPS melalui port 443 saat Anda menginstalAWS IoT GreengrassPerangkat lunak inti. Gunakan--init-configargumen installer untuk mengonfigurasi HTTPS melalui port 443. Anda dapat menentukan argumen ini ketika Anda menginstal denganpenyediaan manual,penyediaan armada, ataupenyediaan kustom.

Konfigurasikan proksi jaringan

Ikuti prosedur di bagian ini untuk mengonfigurasi perangkat inti Greengrass untuk terhubung ke internet melalui proksi jaringan HTTP atau 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 versiInti Greengrasslebih awal dari v2.4.0, peran perangkat Anda harus mengizinkan izin berikut untuk menggunakan proksi jaringan:

  • iot:Connect

  • iot:Publish

  • iot:Receive

  • iot:Subscribe

Hal ini diperlukan karena perangkat menggunakan kredensial AWS dari layanan pertukaran token untuk mengautentikasi koneksi MQTT ke AWS IoT. Perangkat tersebut menggunakan MQTT untuk menerima dan menginstal deployment dari AWS Cloud, sehingga perangkat Anda tidak akan berfungsi kecuali Anda menentukan izin ini pada perannya. Perangkat biasanya menggunakan sertifikat X.509 untuk mengautentikasi koneksi MQTT, tetapi perangkat tidak dapat melakukan hal ini untuk mengautentikasi saat menggunakan proksi.

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

Konfigurasikan proksi 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 objek networkProxy.

{ "networkProxy": { "noProxyAddresses": "http://192.168.0.1,www.example.com", "proxy": { "url": "https://my-proxy-server:1100", "username": "Mary_Major", "password": "pass@word1357" } } }

Contoh berikut menentukan deployment yang mengonfigurasi proksi jaringan. Pembaruan konfigurasi merge memerlukan objek JSON berserial.

{ "components": { "aws.greengrass.Nucleus": { "version": "2.7.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 proksi jaringan selama instalasi

Anda dapat mengkonfigurasi proxy jaringan saat Anda menginstalAWS IoT GreengrassPerangkat lunak inti. Gunakan--init-configargumen installer untuk mengkonfigurasi proxy jaringan. Anda dapat menentukan argumen ini ketika Anda menginstal denganpenyediaan manual,penyediaan armada, ataupenyediaan kustom.

Aktifkan perangkat inti untuk mempercayai proxy HTTPS

Ketika Anda mengkonfigurasi perangkat inti untuk menggunakan proxy HTTPS, Anda harus menambahkan rantai sertifikat server proxy ke perangkat inti untuk mengaktifkannya mempercayai proxy HTTPS. Jika tidak, perangkat inti mungkin mengalami kesalahan saat mencoba merutekan lalu lintas melalui proxy. Tambahkan sertifikat CA server proksi ke file root CA certificate.

Untuk mengaktifkan perangkat inti mempercayai proxy HTTPS

  1. Temukan file sertifikat CA root Amazon pada perangkat inti.

    • Jika Anda menginstalAWS IoT GreengrassPerangkat lunak intipenyediaan otomatis, berkas sertifikat CA root Amazon ada di/greengrass/v2/rootCA.pem.

    • Jika Anda menginstalAWS IoT GreengrassPerangkat lunak intimanualataupenyediaan armada, berkas sertifikat CA root Amazon mungkin ada di/greengrass/v2/AmazonRootCA1.pem.

    Jika sertifikat CA root Amazon tidak ada di lokasi ini, periksasystem.rootCaPathproperty di/greengrass/v2/config/effectiveConfig.yamluntuk menemukan lokasinya.

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

    Contoh berikut menunjukkan sertifikat CA server proksi ditambahkan ke file root CA certificate.

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

Objek networkProxy

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

URL server proksi dalam format scheme://userinfo@host:port.

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

    penting

    Perangkat lunak inti GreengrassInti Greengrassv2.5.0 atau versi yang lebih baru untuk menggunakan proksi HTTPS.

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

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

  • 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 proksi.

password

(Opsional) Kata sandi yang mengautentikasi server proksi.

Menggunakan sertifikat perangkat yang ditandatangani oleh CA privat

Jika Anda menggunakan otoritas sertifikat pribadi kustom (CA), Anda harus menetapkan inti Greengrass 'greengrassDataPlaneEndpointkepadaiotdata. Anda dapat mengatur opsi ini selama penyebaran atau instalasi menggunakan--init-config argumen penginstal.

Anda dapat menyesuaikan titik akhir bidang data Greengrass tempat perangkat terhubung. Anda dapat mengatur opsi konfigurasi iniiotdatauntuk mengatur titik akhir bidang data Greengrass ke titik akhir yang sama dengan titik akhir data IoT, yang dapat Anda tentukan denganiotDataEndpoint.

Konfigurasikan pengaturan batas waktu dan cache MQTT

Di lingkungan AWS IoT Greengrass, komponen dapat menggunakan MQTT untuk berkomunikasi dengan AWS IoT Core. Perangkat lunak inti AWS IoT Greengrass mengelola pesan MQTT untuk komponen. Ketika perangkat inti kehilangan koneksi ke AWS Cloud, perangkat lunak akan menangkap pesan MQTT untuk mencoba lagi nanti ketika sambungan pulih kembali. 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 pesan MQTT-nya. Kuota ini mungkin berlaku untuk pesan yang Anda kirim antara perangkat inti dan AWS IoT Core. Untuk informasi lebih lanjut, lihat kuota layanan broker pesan AWS IoT Core di Referensi Umum AWS.