

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 pengaturan IDT untuk menjalankan rangkaian AWS IoT Greengrass kualifikasi
<a name="set-config"></a>

Sebelum menjalankan pengujian, Anda harus mengonfigurasi pengaturan untuk AWS kredensyal dan perangkat di komputer host Anda.

## Konfigurasikan AWS kredensyal Anda
<a name="cfg-aws-gg"></a>

Anda harus mengonfigurasikan kredensial pengguna IAM Anda di file `<device-tester-extract-location> /configs/config.json`. Gunakan kredensyal untuk IDT untuk AWS IoT Greengrass pengguna yang dibuat di. [Buat dan konfigurasikan Akun AWS](dev-tst-prereqs.md#config-aws-account-for-idt) Anda dapat menentukan kredensial Anda dengan salah satu dari dua cara berikut:
+ File kredensial
+ Variabel-variabel lingkungan

### Konfigurasikan AWS kredensyal dengan file kredensyal
<a name="config-cred-file"></a>

IDT menggunakan file kredensials yang sama sebagai AWS CLI. Untuk informasi selengkapnya, lihat [File konfigurasi dan kredensial](https://docs.aws.amazon.com/cli/latest/userguide/cli-config-files.html).

Lokasi file kredensial itu bervariasi, tergantung pada sistem operasi yang Anda gunakan:
+ macOS, Linux: `~/.aws/credentials`
+ Windows: `C:\Users\UserName\.aws\credentials`

Tambahkan AWS kredensi Anda ke `credentials` file dalam format berikut:

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

Untuk mengonfigurasi IDT AWS IoT Greengrass agar dapat menggunakan AWS kredensyal dari `credentials` file Anda, edit `config.json` file Anda sebagai berikut:

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

**catatan**  
Jika Anda tidak menggunakan `default` AWS profil, pastikan untuk mengubah nama profil di `config.json` file Anda. Untuk informasi selengkapnya, lihat [Profil Bernama](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html).

### Konfigurasikan AWS kredensyal dengan variabel lingkungan
<a name="config-env-vars"></a>

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

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
<a name="device-config"></a>

Selain AWS kredensyal, IDT untuk informasi AWS IoT Greengrass kebutuhan tentang perangkat yang menjalankan pengujian (misalnya, alamat IP, informasi login, sistem operasi, dan arsitektur CPU).

Anda harus memberikan informasi ini dengan 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 yang berkualitas.  
Jika Anda ingin mencantumkan papan Anda di Katalog AWS Partner Perangkat, SKU yang Anda tentukan di sini harus cocok dengan SKU yang Anda gunakan dalam proses daftar.

`features`  
Rangkaian 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`
Jika Anda menggunakan IDT untuk menguji AWS IoT Greengrass berjalan di wadah Docker, hanya arsitektur Docker x86\$164 yang didukung.  
`container`  
<a name="description-container"></a>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`  
<a name="description-docker"></a>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`  
<a name="description-sm"></a>Memvalidasi bahwa perangkat memenuhi semua dependensi teknis yang diperlukan untuk menjalankan AWS IoT Greengrass pengelola aliran.  
Nilai yang valid adalah `yes` atau `no`.  
`hsi`  
<a name="description-hsi"></a>Memverifikasi bahwa pustaka bersama HSI yang disediakan dapat berinteraksi dengan modul keamanan perangkat keras (HSM) dan mengimplementasikan PKCS \$111 yang diperlukan dengan benar. APIs 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`  
<a name="description-ml"></a>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`.
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](#device-json-ml-qualification).

`hsm`  
Tidak wajib. Informasi konfigurasi untuk pengujian dengan Modul Keamanan AWS IoT Greengrass Perangkat Keras (HSM). Jika tidak, `hsm` properti harus dihilangkan. Untuk informasi selengkapnya, lihat [Integrasi keamanan perangkat keras](hardware-security.md).  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.    
`hsm.p11Provider`  
Jalur absolut ke perpustakaan libdl-loadable implementasi PKCS \$111.  
`hsm.slotLabel`  
Melabelkan slot yang digunakan untuk mengidentifikasi modul perangkat keras.  
`hsm.slotUserPin`  
PIN pengguna digunakan untuk mengotentikasi AWS IoT Greengrass inti ke 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 \$111 di OpenSSL. Digunakan oleh agen pembaruan AWS IoT Greengrass OTA.

`devices.id`  
Pengenal unik yang ditetapkan pengguna untuk perangkat yang sedang diuji.

`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.  
<a name="connectivity-protocol-ssh-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `ssh`.

`connectivity.containerId`  
ID kontainer atau nama kontainer Docker yang sedang diuji.  
<a name="connectivity-protocol-docker-only"></a>Properti ini hanya berlaku jika `connectivity.protocol` diatur ke `docker`.

`connectivity.auth`  
Informasi autentikasi untuk koneksi tersebut.  
<a name="connectivity-protocol-ssh-only"></a>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 perangkat lunak AWS IoT Greengrass Core di 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.  
Saat menjalankan pengujian dalam wadah Docker dari image Docker atau Dockerfile yang disediakan oleh AWS IoT Greengrass, setel nilai ini ke. `/greengrass`

`kernelConfigLocation`  
Tidak wajib. Jalur ke file konfigurasi kernel. AWS IoT Device Tester menggunakan file ini untuk memeriksa apakah perangkat memiliki fitur kernel yang diperlukan 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
<a name="device-json-ml-qualification"></a>

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](#device-config).

 

`ml` dalam `features` array  
Kerangka kerja ML bahwa papan forum mendukung. <a name="idt-version-ml-qualification"></a>Properti ini memerlukan IDT v3.1.0 atau yang lebih baru.  
+ Jika forum Anda hanya mendukung satu kerangka kerja, tentukan kerangka kerjanya. Contoh:

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

  ```
  {
      "name": "ml",
      "value": "mxnet,tensorflow"
  }
  ```

`mlLambdaContainerizationMode` di `features` array  
Pada [Mode kontainerisasi](lambda-group-config.md#lambda-containerization-considerations) yang ingin Anda tes. <a name="idt-version-ml-qualification"></a>Properti ini memerlukan IDT v3.1.0 atau yang lebih baru.  
+ Memilih `process` untuk menjalankan kode inferensi ML dengan fungsi Lambda non-containerized. Opsi ini membutuhkan 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 membutuhkan AWS IoT Greengrass v1.10.x atau yang lebih baru.

`processor` di `features` array  
Mengindikasikan akselerator perangkat keras yang didukung forum Anda. <a name="idt-version-ml-qualification"></a>Properti ini memerlukan 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. <a name="idt-version-ml-qualification"></a>Properti ini memerlukan 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](idt-ml-qualification.md#ml-qualification-dlr-compile-model).  
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. Misalnya, untuk menjalankan tes MXNet inferensi pada beberapa perangkat, variabel lingkungan berikut mungkin diperlukan.  

```
"environmentVariables": [
    ...
    {
        "key": "PYTHONPATH",      
        "value": "$MXNET_HOME/python:$PYTHONPATH"    
    },
    {
        "key": "MXNET_HOME",
        "value": "$HOME/mxnet/"
    },
    ...
]
```
`value`Bidang mungkin bervariasi berdasarkan MXNet instalasi Anda.
Jika anda sedang mengetes fungsi Lambda yang berjalan dengan [kontainerisasi](lambda-group-config.md#lambda-containerization-considerations) 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.  
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](access-local-resources.md#lra-resource-types) 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"`.