Konfigurasikan pengaturan IDT untuk menjalankan rangkaian kualifikasi AWS IoT Greengrass - AWS IoT Greengrass

AWS IoT Greengrass Version 1 memasuki fase umur panjang pada 30 Juni 2023. Untuk informasi selengkapnya, lihat kebijakan AWS IoT Greengrass V1 pemeliharaan. Setelah tanggal ini, tidak AWS IoT Greengrass V1 akan merilis pembaruan yang menyediakan fitur, penyempurnaan, perbaikan bug, atau patch keamanan. Perangkat yang berjalan AWS IoT Greengrass V1 tidak akan terganggu dan akan terus beroperasi dan terhubung ke cloud. Kami sangat menyarankan Anda bermigrasi ke AWS IoT Greengrass Version 2, yang menambahkan fitur baru yang signifikan dan dukungan untuk platform tambahan.

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

Konfigurasikan pengaturan IDT untuk menjalankan rangkaian kualifikasi AWS IoT Greengrass

Sebelum menjalankan tes, Anda harus mengkonfigurasi pengaturan untuk AWS kredensial dan perangkat di komputer host Anda.

Konfigurasikan kredensial AWS Anda

Anda harus mengonfigurasi kredensial pengguna IAM Anda di file <device-tester-extract-location> /configs/config.json ini. Gunakan kredensial untuk IDT untuk AWS IoT Greengrass pengguna yang dibuat di Buat dan konfigurasikan Akun AWS. Anda dapat menentukan kredensial Anda dengan salah satu dari dua cara berikut:

  • File kredensial

  • Variabel lingkungan

IDT menggunakan file kredensials yang sama sebagai AWS CLI. Untuk informasi selengkapnya, lihat File konfigurasi dan kredensial.

Lokasi file kredensial itu bervariasi, tergantung pada sistem operasi yang Anda gunakan:

  • macOS, Linux: ~/.aws/credentials

  • Windows: C:\Users\UserName\.aws\credentials

Tambahkan kredensial AWS Anda ke file credentials dalam format berikut:

[default] aws_access_key_id = <your_access_key_id> aws_secret_access_key = <your_secret_access_key>

Untuk mengonfigurasi IDT untuk AWS IoT Greengrass untuk menggunakan AWS kredensial dari file credentials Anda, edit file config.json Anda sebagai berikut:

{ "awsRegion": "us-west-2", "auth": { "method": "file", "credentials": { "profile": "default" } } }
catatan

Jika Anda tidak menggunakan default AWS profile, pastikan untuk mengubah nama profil di file config.json Anda. Untuk informasi selengkapnya, lihat Profil Bernama.

Variabel lingkungan adalah variabel yang dikelola oleh sistem operasi dan digunakan oleh perintah sistem. Mereka tidak disimpan jika Anda menutup sesi SSH. IDT untuk AWS IoT Greengrass dapat menggunakan AWS_ACCESS_KEY_ID dan AWS_SECRET_ACCESS_KEY variabel lingkungan untuk menyimpan AWS kredensial.

Untuk mengatur variabel ini di Linux, macOS, atau Unix, gunakan export:

export AWS_ACCESS_KEY_ID=<your_access_key_id> export AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

Untuk menetapkan variabel ini di Windows, gunakan set:

set AWS_ACCESS_KEY_ID=<your_access_key_id> set AWS_SECRET_ACCESS_KEY=<your_secret_access_key>

Untuk mengonfigurasi IDT untuk menggunakan variabel lingkungan, edit bagian auth di file config.json Anda. Berikut ini contohnya:

{ "awsRegion": "us-west-2", "auth": { "method": "environment" } }

Konfigurasikan device.json

Selain AWS kredensial, IDT untuk AWS IoT Greengrass membutuhkan informasi tentang perangkat yang tes dijalankan pada (misalnya, alamat IP, informasi login, sistem operasi, dan arsitektur CPU).

Anda harus memberikan informasi ini menggunakan templat device.json yang terletak di <device_tester_extract_location>/configs/device.json:

Physical device
[ { "id": "<pool-id>", "sku": "<sku>", "features": [ { "name": "os", "value": "linux | ubuntu | openwrt" }, { "name": "arch", "value": "x86_64 | armv6l | armv7l | aarch64" }, { "name": "container", "value": "yes | no" }, { "name": "docker", "value": "yes | no" }, { "name": "streamManagement", "value": "yes | no" }, { "name": "hsi", "value": "yes | no" }, { "name": "ml", "value": "mxnet | tensorflow | dlr | mxnet,dlr,tensorflow | no" }, *********** Remove the section below if the device is not qualifying for ML **************, { "name": "mlLambdaContainerizationMode", "value": "container | process | both" }, { "name": "processor", "value": "cpu | gpu" }, ****************************************************************************************** ], *********** Remove the section below if the device is not qualifying for HSI *************** "hsm": { "p11Provider": "/path/to/pkcs11ProviderLibrary", "slotLabel": "<slot_label>", "slotUserPin": "<slot_pin>", "privateKeyLabel": "<key_label>", "openSSLEngine": "/path/to/openssl/engine" }, ******************************************************************************************** *********** Remove the section below if the device is not qualifying for ML **************** "machineLearning": { "dlrModelPath": "/path/to/compiled/dlr/model", "environmentVariables": [ { "key": "<environment-variable-name>", "value": "<Path:$PATH>" } ], "deviceResources": [ { "name": "<resource-name>", "path": "<resource-path>", "type": "device | volume" } ] }, ****************************************************************************************** "kernelConfigLocation": "", "greengrassLocation": "", "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "ssh", "ip": "<ip-address>", "port": 22, "auth": { "method": "pki | password", "credentials": { "user": "<user-name>", "privKeyPath": "/path/to/private/key", "password": "<password>" } } } } ] } ]
catatan

Tentukan privKeyPath hanya jika method diatur ke pki.

Tentukan password hanya jika method diatur ke password.

Docker container
[ { "id": "<pool-id>", "sku": "<sku>", "features": [ { "name": "os", "value": "linux | ubuntu | openwrt" }, { "name": "arch", "value": "x86_64" }, { "name": "container", "value": "no" }, { "name": "docker", "value": "no" }, { "name": "streamManagement", "value": "yes | no" }, { "name": "hsi", "value": "no" }, { "name": "ml", "value": "mxnet | tensorflow | dlr | mxnet,dlr,tensorflow | no" }, *********** Remove the section below if the device is not qualifying for ML **************, { "name": "mlLambdaContainerizationMode", "value": "process" }, { "name": "processor", "value": "cpu | gpu" }, ****************************************************************************************** ], *********** Remove the section below if the device is not qualifying for ML **************** "machineLearning": { "dlrModelPath": "/path/to/compiled/dlr/model", "environmentVariables": [ { "key": "<environment-variable-name>", "value": "<Path:$PATH>" } ], "deviceResources": [ { "name": "<resource-name>", "path": "<resource-path>", "type": "device | volume" } ] }, ****************************************************************************************** "kernelConfigLocation": "", "greengrassLocation": "", "devices": [ { "id": "<device-id>", "connectivity": { "protocol": "docker", "containerId": "<container-name | container-id>", "containerUser": "<user>" } } ] } ]

Semua bidang yang berisi nilai-nilai yang diperlukan seperti yang dijelaskan di sini:

id

ID alfanumerik yang ditetapkan pengguna secara unik mengidentifikasi kumpulan perangkat yang disebut kolam perangkat. Perangkat yang termasuk dalam suatu kolam harus memiliki perangkat keras yang identik. Ketika Anda menjalankan serangkaian tes, perangkat di kolam tersebut digunakan untuk memparalelkan beban kerja. Beberapa perangkat digunakan untuk menjalankan tes yang berbeda.

sku

Nilai alfanumerik yang secara unik mengidentifikasi perangkat yang diuji. SKU digunakan untuk melacak forum berkualitas.

catatan

Jika Anda ingin mencantumkan forum Anda di AWS Partner Katalog Perangkat, SKU yang Anda tentukan di sini harus sesuai dengan SKU yang Anda gunakan dalam proses daftar.

features

Array yang berisi fitur perangkat yang didukung. Semua fitur diperlukan.

os dan arch

Kombinasi sistem operasi (OS) dan arsitektur yang didukung:

  • linux, x86_64

  • linux, armv6l

  • linux, armv7l

  • linux, aarch64

  • ubuntu, x86_64

  • openwrt, armv7l

  • openwrt, aarch64

catatan

Jika anda menggunakan IDT untuk mengetes AWS IoT Greengrass berjalan dalam kontainer Docker, hanya arsitektur x86_64 Docker yang didukung.

container

Memvalidasi bahwa perangkat memenuhi semua persyaratan perangkat lunak dan perangkat keras untuk menjalankan fungsi Lambda dalam mode kontainer pada core Greengrass.

Nilai yang valid adalah yes atau no.

docker

Memvalidasi bahwa perangkat memenuhi semua dependensi teknis yang diperlukan untuk menggunakan konektor deployment aplikasi Greengrass Docker untuk menjalankan kontainer

Nilai yang valid adalah yes atau no.

streamManagement

Memvalidasi bahwa perangkat memenuhi semua dependensi teknis yang diperlukan untuk menjalankan AWS IoT Greengrass pengelola aliran.

Nilai yang valid adalah yes atau no.

hsi

Memverifikasi bahwa perpustakaan bersama HSI yang disediakan dapat antarmuka dengan modul keamanan perangkat keras (HSM) dan mengimplementasikan PKCS #11 API yang diperlukan dengan benar. HSM dan perpustakaan bersama harus dapat menandatangani CSR, melakukan operasi TLS, dan memberikan panjang kunci yang benar dan algoritma kunci publik.

Nilai yang valid adalah yes atau no.

ml

Memvalidasi bahwa perangkat memenuhi semua dependensi teknis yang diperlukan untuk melakukan inferensi ML secara lokal.

Nilai yang valid dapat berupa kombinasi mxnet, tensorflow, dlr, dan no (misalnya, mxnet, mxnet,tensorflow, mxnet,tensorflow,dlr, atau no).

mlLambdaContainerizationMode

Memvalidasi bahwa perangkat memenuhi semua dependensi teknis yang diperlukan untuk melakukan inferensi ML dalam mode kontainer pada perangkat Greengrass.

Nilai yang valid adalah container, process, atau both.

processor

Memvalidasi bahwa perangkat memenuhi semua persyaratan perangkat keras untuk jenis prosesor tertentu.

Nilai yang valid adalah cpu atau gpu.

catatan

Jika Anda tidak ingin menggunakan container, docker, streamManager, hsi, atau ml fitur, Anda dapat mengatur sesuai value ke no.

Docker hanya mendukung kualifikasi fitur untuk streamManagement dan ml.

machineLearning

Tidak wajib. Informasi konfigurasi untuk tes kualifikasi ML. Untuk informasi selengkapnya, lihat Konfigurasikan device.json untuk kualifikasi ML.

hsm

Tidak wajib. Informasi konfigurasi untuk pengetesan dengan AWS IoT Greengrass Hardware Security Module (HSM). Jika tidak, hsm properti harus dihilangkan. Untuk informasi selengkapnya, lihat Integrasi keamanan perangkat keras.

Properti ini hanya berlaku jika connectivity.protocol diatur ke ssh.

hsm.p11Provider

Jalur absolut ke perpustakaan libdl-loadable implementasi PKCS #11.

hsm.slotLabel

Melabelkan slot yang digunakan untuk mengidentifikasi modul perangkat keras.

hsm.slotUserPin

PIN pengguna yang digunakan untuk mengotentikasi AWS IoT Greengrass core untuk modul.

hsm.privateKeyLabel

Label yang digunakan untuk mengidentifikasi kunci dalam modul perangkat keras.

hsm.openSSLEngine

Jalur absolut untuk OpenSSL file mesin .so yang memungkinkan dukungan PKCS #11 di OpenSSL. Digunakan oleh AWS IoT Greengrass agen update OTA.

devices.id

Pengenal unik yang ditetapkan pengguna untuk perangkat yang sedang dites.

connectivity.protocol

Protokol komunikasi yang digunakan untuk berkomunikasi dengan perangkat ini. Saat ini, satu-satunya nilai yang didukung adalah ssh untuk perangkat fisik dan docker untuk kontainer Docker.

connectivity.ip

Alamat IP perangkat yang sedang dites.

Properti ini hanya berlaku jika connectivity.protocol diatur ke ssh.

connectivity.containerId

ID kontainer atau nama kontainer Docker yang sedang diuji.

Properti ini hanya berlaku jika connectivity.protocol diatur ke docker.

connectivity.auth

Informasi autentikasi untuk koneksi tersebut.

Properti ini hanya berlaku jika connectivity.protocol diatur ke ssh.

connectivity.auth.method

Metode autentikasi yang digunakan untuk mengakses perangkat melalui protokol konektivitas yang diberikan.

Nilai yang didukung adalah:

  • pki

  • password

connectivity.auth.credentials

Kredensial yang digunakan untuk autentikasi.

connectivity.auth.credentials.password

Kata sandi yang digunakan untuk masuk ke perangkat yang sedang diuji.

Nilai ini hanya berlaku jika connectivity.auth.method diatur ke password.

connectivity.auth.credentials.privKeyPath

Jalur lengkap ke kunci privat yang digunakan untuk masuk ke perangkat yang sedang diuji.

Nilai ini hanya berlaku jika connectivity.auth.method diatur ke pki.

connectivity.auth.credentials.user

Nama pengguna untuk masuk ke perangkat yang sedang di.tes.

connectivity.auth.credentials.privKeyPath

Jalur lengkap ke kunci privat yang digunakan untuk masuk ke perangkat yang sedang dites.

connectivity.port

Tidak wajib. Jumlah port yang akan digunakan untuk koneksi SSH.

Nilai default adalah 22.

Properti ini berlaku hanya jika connectivity.protocol diatur ke ssh.

greengrassLocation

Lokasi AWS IoT Greengrass perangkat lunak Core pada perangkat Anda.

Untuk perangkat fisik, nilai ini hanya digunakan ketika Anda menggunakan instalasi yang ada AWS IoT Greengrass. Gunakan atribut ini untuk memberitahu IDT untuk menggunakan versi AWS IoT Greengrass perangkat lunak inti yang diinstal pada perangkat Anda.

Ketika menjalankan tes kontainer wadah Docker dari gambar Docker atau Dockerfile disediakan oleh AWS IoT Greengrass, tetapkan nilai ini ke /greengrass.

kernelConfigLocation

Tidak wajib. Jalur menuju file konfigurasi kernel. AWS IoT Tester Perangkat menggunakan file ini untuk memeriksa apakah perangkat memiliki fitur kernel yang diperlukan yang diaktifkan. Jika tidak ditentukan, IDT menggunakan jalur berikut untuk mencari file konfigurasi kernel: /proc/config.gz dan /boot/config-<kernel-version>. AWS IoT Tester Perangkat menggunakan jalur pertama menemukan.

Konfigurasikan device.json untuk kualifikasi ML

Bagian ini menjelaskan properti opsional dalam file konfigurasi perangkat yang berlaku untuk kualifikasi ML. Jika Anda berencana untuk menjalankan tes untuk kualifikasi ML, Anda harus menentukan properti yang berlaku untuk kasus penggunaan Anda.

Anda dapat menggunakan device-ml.json templat untuk menentukan pengaturan konfigurasi untuk perangkat Anda. Templat ini berisi properti opsional ML. Anda juga dapat menggunakan device.json dan menambahkan properti kualifikasi ML. File ini terletak di <device-tester-extract-location>/configs dan termasuk properti kualifikasi ML. Jika Anda menggunakan device-ml.json, Anda harus mengubah nama file ke device.json sebelum Anda menjalankan tes IDT.

Untuk informasi tentang properti konfigurasi perangkat yang tidak berlaku untuk kualifikasi ML, lihat Konfigurasikan device.json.

 

ml dalam features array

Kerangka kerja ML bahwa papan forum mendukung. Properti ini membutuhkan IDT v3.1.0 atau yang lebih baru.

  • Jika forum Anda hanya mendukung satu kerangka kerja, tentukan kerangka kerjanya. Misalnya:

    { "name": "ml", "value": "mxnet" }
  • Jika forum Anda mendukung beberapa kerangka kerja, tentukan kerangka kerja sebagai daftar yang dipisahkan koma. Misalnya:

    { "name": "ml", "value": "mxnet,tensorflow" }
mlLambdaContainerizationMode di features array

Pada Mode kontainerisasi yang ingin Anda tes. Properti ini membutuhkan IDT v3.1.0 atau yang lebih baru.

  • Memilih process untuk menjalankan kode inferensi ML dengan fungsi Lambda non-containerized. Opsi ini memerlukan AWS IoT Greengrass v1.10.x atau yang lebih baru.

  • Memilih container untuk menjalankan kode inferensi ML dengan fungsi Lambda kontainer.

  • Memilih both untuk menjalankan kode inferensi ML dengan kedua mode. Opsi ini memerlukan AWS IoT Greengrass v1.10.x atau yang lebih baru.

processor di features array

Mengindikasikan akselerator perangkat keras yang didukung forum Anda. Properti ini membutuhkan IDT v3.1.0 atau yang lebih baru.

  • Memilih cpu jika forum Anda menggunakan CPU sebagai prosesor.

  • Memilih gpu jika forum Anda menggunakan GPU sebagai prosesor.

machineLearning

Tidak wajib. Informasi konfigurasi untuk tes kualifikasi ML. Properti ini membutuhkan IDT v3.1.0 atau yang lebih baru.

dlrModelPath

Diperlukan untuk menggunakan dlr kerangka kerja. Jalur absolut ke direktori model terkompilasi DLR Anda, yang harus diberi nama resnet18. Untuk informasi selengkapnya, lihat Kompilasi model DLR.

catatan

Berikut ini adalah contoh jalur di macOS: /Users/<user>/Downloads/resnet18.

environmentVariables

Array pasangan kunci-nilai yang dinamis dapat lulus pengaturan untuk tes inferensi ML. Opsional untuk perangkat CPU. Anda dapat menggunakan bagian ini untuk menambahkan variabel lingkungan khusus kerangka kerja yang diperlukan oleh jenis perangkat Anda. Untuk informasi tentang persyaratan ini, lihat situs resmi kerangka kerja atau perangkat. Sebagai contoh, untuk menjalankan tes inferensi MXNet pada beberapa perangkat, variabel lingkungan berikut mungkin diperlukan.

"environmentVariables": [ ... { "key": "PYTHONPATH", "value": "$MXNET_HOME/python:$PYTHONPATH" }, { "key": "MXNET_HOME", "value": "$HOME/mxnet/" }, ... ]
catatan

Bidang value mungkin bervariasi berdasarkan instalasi MXNet Anda.

Jika anda sedang mengetes fungsi Lambda yang berjalan dengan kontainerisasi pada perangkat GPU, tambahkan variabel lingkungan untuk perpustakaan GPU. Hal ini memungkinkan GPU untuk melakukan komputasi. Untuk menggunakan perpustakaan GPU yang berbeda, lihat dokumentasi resmi untuk perpustakaan atau perangkat.

catatan

Konfigurasikan kunci berikut jika mlLambdaContainerizationMode fitur diatur ke container atau both.

"environmentVariables": [ { "key": "PATH", "value": "<path/to/software/bin>:$PATH" }, { "key": "LD_LIBRARY_PATH", "value": "<path/to/ld/lib>" }, ... ]
deviceResources

Diperlukan oleh perangkat GPU. Berisi sumber daya lokal yang dapat diakses oleh fungsi Lambda. Gunakan bagian ini untuk menambahkan perangkat lokal dan volume sumber daya.

  • Untuk sumber daya perangkat, tentukan "type": "device". Untuk perangkat GPU, sumber daya perangkat harus berupa file perangkat terkait GPU di bawah /dev.

    catatan

    Direktori /dev/shm adalah pengecualian. Hal ini dapat dikonfigurasi sebagai sumber daya volume saja.

  • Untuk sumber daya volume, tentukan "type": "volume".