

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.

# Konektor Umpan balik ML
<a name="ml-feedback-connector"></a>

**Awas**  <a name="connectors-extended-life-phase-warning"></a>
Konektor ini telah pindah ke *fase umur yang diperpanjang*, dan AWS IoT Greengrass tidak akan merilis pembaruan yang menyediakan fitur, penyempurnaan pada fitur yang ada, patch keamanan, atau perbaikan bug. Untuk informasi selengkapnya, lihat [AWS IoT Greengrass Version 1 kebijakan pemeliharaan](maintenance-policy.md).

Konektor Umpan balik ML memudahkan Anda mengakses data model machine learning (ML) untuk pelatihan ulang dan analisis model. Konektor:
+ Unggah data input (sampel) yang digunakan oleh model ML Anda ke Amazon S3. Model input dapat dalam format apa pun, seperti gambar, JSON, atau audio. Setelah sampel diunggah ke cloud, Anda dapat menggunakannya untuk melatih model untuk meningkatkan akurasi dan ketepatan prediksi. Misalnya, Anda dapat menggunakan [SageMaker AI Ground Truth](https://docs.aws.amazon.com/sagemaker/latest/dg/sms.html) untuk memberi label pada sampel dan [SageMaker AI](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html) Anda untuk melatih kembali model.
+ Menerbitkan hasil prediksi dari model sebagai pesan MQTT. Hal ini memungkinkan Anda memantau dan menganalisis kualitas inferensi model Anda secara real time. Anda juga dapat menyimpan hasil prediksi dan menggunakannya untuk menganalisis tren dari waktu ke waktu.
+ Menerbitkan metrik tentang unggahan sampel dan data sampel ke Amazon. CloudWatch

Untuk mengonfigurasi konektor ini, Anda menjelaskan dukungan Anda *konfigurasi umpan balik* dalam format JSON. Sebuah konfigurasi umpan balik mendefinisikan properti seperti tujuan bucket Amazon S3, jenis konten, dan [strategi sampling](#ml-feedback-connector-sampling-strategies). (Strategi pengambilan sampel digunakan untuk menentukan sampel mana yang akan diunggah.)

Anda dapat menggunakan konektor Umpan balik ML dalam skenario berikut:
+ Dengan fungsi Lambda yang ditetapkan pengguna. Fungsi Lambda inferensi lokal Anda menggunakan Machine AWS IoT Greengrass Learning SDK untuk memanggil konektor ini dan meneruskan konfigurasi umpan balik target, input model, dan keluaran model (hasil prediksi). Sebagai contoh, lihat [Contoh Penggunaan](#ml-feedback-connector-usage).
+ Dengan [konektor Klasifikasi Citra ML](image-classification-connector.md) (v2). Untuk menggunakan konektor ini dengan konektor Klasifikasi Citra ML, konfigurasikan parameter `MLFeedbackConnectorConfigId` untuk konektor Klasifikasi Citra ML.
+ Dengan [konektor Deteksi Objek ML](obj-detection-connector.md). Untuk menggunakan konektor ini dengan konektor Deteksi Objek ML, konfigurasikan parameter `MLFeedbackConnectorConfigId` untuk konektor Deteksi Objek ML.

**ARN:** `arn:aws:greengrass:region::/connectors/MLFeedback/versions/1`

## Persyaratan
<a name="ml-feedback-connector-req"></a>

Konektor ini memiliki persyaratan sebagai berikut:
+ AWS IoT Greengrass Perangkat Lunak Inti v1.9.3 atau yang lebih baru.
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python](https://www.python.org/) versi 3.7 atau 3.8 diinstal pada perangkat core dan ditambahkan ke variabel lingkungan PATH.
**catatan**  <a name="use-runtime-py3.8"></a>
Untuk menggunakan Python 3.8, jalankan perintah berikut untuk membuat link simbolik dari folder instalasi default Python 3.7 ke binari Python 3.8 yang diinstal.  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
Ini mengonfigurasi perangkat Anda untuk memenuhi persyaratan Python untuk AWS IoT Greengrass.
+ Satu atau lebih bucket Amazon S3. Jumlah bucket yang Anda gunakan tergantung pada strategi pengambilan sampel Anda.
+ [Peran grup Greengrass](group-role.md) dikonfigurasi untuk mengizinkan `s3:PutObject` tindakan pada objek dalam tujuan bucket Amazon S3, seperti yang ditunjukkan dalam contoh kebijakan IAM berikut.

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": "s3:PutObject",
              "Resource": [
                  "arn:aws:s3:::bucket-name/*"
              ]
          }
      ]
  }
  ```

------

  Kebijakan harus mencakup semua bucket tujuan sebagai sumber. Anda dapat memberikan akses terperinci atau bersyarat ke sumber daya (sebagai contoh, dengan menggunakan skema penamaan wildcard \$1).

  <a name="set-up-group-role"></a>Untuk persyaratan peran grup, Anda harus mengonfigurasi peran untuk memberikan izin yang diperlukan dan memastikan peran telah ditambahkan ke grup. Untuk informasi lebih lanjut, lihat [Mengelola peran grup Greengrass (konsol)](group-role.md#manage-group-role-console) atau [Mengelola peran grup Greengrass (CLI)](group-role.md#manage-group-role-cli).
+ [Konektor CloudWatch Metrik](cloudwatch-metrics-connector.md) ditambahkan ke grup Greengrass dan dikonfigurasi. Hal ini diperlukan hanya jika Anda ingin menggunakan fitur pelaporan metrik.
+ [AWS IoT Greengrass Machine Learning SDK](lambda-functions.md#lambda-sdks-ml) v1.1.0 diperlukan untuk berinteraksi dengan konektor ini.

## Parameter
<a name="ml-feedback-connector-param"></a>

`FeedbackConfigurationMap`  
Satu set dari satu atau lebih konfigurasi umpan balik yang konektor dapat gunakan untuk mengunggah sampel ke Amazon S3. Konfigurasi umpan balik mendefinisikan parameter seperti bucket tujuan, jenis konten, dan [strategi pengambilan sampel](#ml-feedback-connector-sampling-strategies). Ketika konektor ini dipanggil, memanggil fungsi Lambda atau konektor menentukan konfigurasi umpan balik target.  
Nama tampilan di AWS IoT konsol: **Peta konfigurasi umpan balik**  
Wajib: `true`  
Jenis: Sebuah string JSON terbentuk yang mendefinisikan himpunan konfigurasi umpan balik yang didukung. Sebagai contoh, lihat [FeedbackConfigurationMap contoh](#ml-feedback-connector-feedbackconfigmap).    
  
ID objek konfigurasi umpan balik memiliki persyaratan sebagai berikut.    
  
ID:  
+ Harus unik dalam seluruh objek konfigurasi.
+ Harus mulai dengan angka atau huruf kecil. Dapat berisi huruf kecil dan huruf besar, angka, dan tanda hubung.
+ Panjangnya harus 2 - 63 karakter.
Wajib: `true`  
Jenis: `string`  
Pola yang valid: `^[a-zA-Z0-9][a-zA-Z0-9-]{1,62}$`  
Contoh:`MyConfig0`,`config-a`, `12id`
Tubuh objek konfigurasi umpan balik berisi properti berikut.    
`s3-bucket-name`  
Nama bucket Amazon S3 tujuan.  
Peran grup harus mengizinkan tindakan `s3:PutObject` pada semua bucket tujuan. Untuk informasi selengkapnya, lihat [Persyaratan](#ml-feedback-connector-req).
Wajib: `true`  
Jenis: `string`  
Pola yang valid: `^[a-z0-9\.\-]{3,63}$`  
`content-type`  
Jenis konten sampel untuk diunggah. Semua konten untuk konfigurasi umpan balik individu harus dari jenis yang sama.  
Wajib: `true`  
Jenis: `string`  
Contoh:`image/jpeg`,`application/json`, `audio/ogg`  
`s3-prefix`  
Prefiks kunci yang digunakan untuk sampel yang diunggah. Prefix serupa dengan nama direktori. Itu mengizinkan menyimpan data serupa di bawah direktori yang sama di bucket. Untuk informasi selengkapnya, lihat [Kunci objek dan metadata](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html) di *Panduan Pengguna Layanan Penyimpanan Sederhana Amazon*.  
Wajib: `false`  
Jenis: `string`  
`file-ext`  
Ekstensi file yang digunakan untuk sampel yang diunggah. Harus ekstensi file yang valid untuk jenis konten.  
Wajib: `false`  
Jenis: `string`  
Contoh:`jpg`,`json`, `ogg`  
`sampling-strategy`  
Untuk [Strategi sampling](#ml-feedback-connector-sampling-strategies) yang digunakan untuk memfilter sampel yang diunggah. Jika dihilangkan, konektor mencoba untuk mengunggah semua sampel yang diterimanya.  
Wajib: `false`  
Jenis: Sebuah string JSON terbentuk dengan baik yang berisi properti berikut.    
`strategy-name`  
Nama strategi sampling.  
Wajib: `true`  
Jenis: `string`  
Nilai yang valid: `RANDOM_SAMPLING`, `LEAST_CONFIDENCE`, `MARGIN`, atau `ENTROPY`  
`rate`  
Tingkat untuk [strategi sampling](#ml-feedback-connector-sampling-strategies-random) acak.  
Wajib: `true` jika `strategy-name` adalah `RANDOM_SAMPLING`.  
Tipe: `number`  
Nilai yang valid: `0.0 - 1.0`  
`threshold`  
Ambang batas untuk [KepercayaanTerkecil](#ml-feedback-connector-sampling-strategies-least-confidence), [Margin](#ml-feedback-connector-sampling-strategies-margin), atau [Entropi](#ml-feedback-connector-sampling-strategies-entropy) strategi sampling.  
Wajib: `true` jika `strategy-name` adalah `LEAST_CONFIDENCE`, `MARGIN`, atau `ENTROPY`.  
Tipe: `number`  
Nilai yang valid:  
+ `0.0 - 1.0` untuk `LEAST_CONFIDENCE` atau `MARGIN` strategi.
+ `0.0 - no limit` untuk `ENTROPY` strategi.

`RequestLimit`  
Jumlah maksimum permintaan yang dapat diproses konektor pada satu waktu.  
Anda dapat menggunakan parameter ini untuk membatasi konsumsi memori dengan membatasi jumlah permintaan yang konektor proses pada ketika yang sama. Permintaan yang melebihi batas ini diabaikan.  
Nama tampilan di AWS IoT konsol: **Batas permintaan**  
Wajib: `false`  
Jenis: `string`  
Nilai yang valid: `0 - 999`  
Pola yang valid: `^$|^[0-9]{1,3}$`

### Buat Contoh Konektor (AWS CLI)
<a name="ml-feedback-connector-create"></a>

Perintah CLI berikut membuat `ConnectorDefinition` dengan versi awal yang berisi konektor Umpan balik ML.

```
aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
    "Connectors": [
        {
            "Id": "MyMLFeedbackConnector",
            "ConnectorArn": "arn:aws:greengrass:region::/connectors/MLFeedback/versions/1",
            "Parameters": {
                "FeedbackConfigurationMap": "{  \"RandomSamplingConfiguration\": {  \"s3-bucket-name\": \"my-aws-bucket-random-sampling\",  \"content-type\": \"image/png\",  \"file-ext\": \"png\",  \"sampling-strategy\": {  \"strategy-name\": \"RANDOM_SAMPLING\",  \"rate\": 0.5  } },  \"LeastConfidenceConfiguration\": {  \"s3-bucket-name\": \"my-aws-bucket-least-confidence-sampling\",  \"content-type\": \"image/png\",  \"file-ext\": \"png\",  \"sampling-strategy\": {  \"strategy-name\": \"LEAST_CONFIDENCE\",  \"threshold\": 0.4  } } }", 
                "RequestLimit": "10"
            }
        }
    ]
}'
```

### FeedbackConfigurationMap contoh
<a name="ml-feedback-connector-feedbackconfigmap"></a>

Berikut ini adalah nilai contoh diperluas untuk parameter `FeedbackConfigurationMap` ini. Contoh ini mencakup beberapa konfigurasi umpan balik yang menggunakan strategi sampling yang berbeda.

```
{
    "ConfigID1": {
        "s3-bucket-name": "my-aws-bucket-random-sampling",
        "content-type": "image/png",
        "file-ext": "png",
        "sampling-strategy": {
            "strategy-name": "RANDOM_SAMPLING",
            "rate": 0.5
        }
    },
    "ConfigID2": {
        "s3-bucket-name": "my-aws-bucket-margin-sampling",
        "content-type": "image/png",
        "file-ext": "png",
        "sampling-strategy": {
            "strategy-name": "MARGIN",
            "threshold": 0.4
        }
    },
    "ConfigID3": {
        "s3-bucket-name": "my-aws-bucket-least-confidence-sampling",
        "content-type": "image/png",
        "file-ext": "png",
        "sampling-strategy": {
            "strategy-name": "LEAST_CONFIDENCE",
            "threshold": 0.4
        }
    },
    "ConfigID4": {
        "s3-bucket-name": "my-aws-bucket-entropy-sampling",
        "content-type": "image/png",
        "file-ext": "png",
        "sampling-strategy": {
            "strategy-name": "ENTROPY",
            "threshold": 2
        }
    },
    "ConfigID5": {
        "s3-bucket-name": "my-aws-bucket-no-sampling",
        "s3-prefix": "DeviceA",
        "content-type": "application/json"
    }
}
```

### Strategi sampling
<a name="ml-feedback-connector-sampling-strategies"></a>

Konektor mendukung empat strategi sampling yang menentukan apakah akan mengunggah sampel yang dilewatkan ke konektor. Sampel adalah contoh diskrit data yang menggunakan model untuk prediksi. Anda dapat menggunakan strategi sampling untuk memfilter sampel yang paling mungkin untuk meningkatkan akurasi model.

`RANDOM_SAMPLING`  <a name="ml-feedback-connector-sampling-strategies-random"></a>
Mengunggah sampel secara acak berdasarkan tingkat yang disediakan. Mengunggah sampel jika nilai yang dihasilkan secara acak kurang dari tingkat. Semakin tinggi tingkat, semakin banyak sampel yang diunggah.  
Strategi ini mengabaikan prediksi model yang disediakan.

`LEAST_CONFIDENCE`  <a name="ml-feedback-connector-sampling-strategies-least-confidence"></a>
Mengunggah sampel yang probabilitas kepercayaan maksimum jatuh di bawah ambang batas yang disediakan.    
Contoh skenario:  
Ambang batas: `.6`  
Prediksi model: `[.2, .2, .4, .2]`  
Keyakinan maksimum probabilitas: `.4`  
Hasil:  
Gunakan sampel karena probabilitas kepercayaan maksimum (`.4`) <= ambang batas (`.6`).

`MARGIN`  <a name="ml-feedback-connector-sampling-strategies-margin"></a>
Unggah sampel jika margin antara dua probabilitas kepercayaan jatuh dalam ambang batas yang disediakan. Margin adalah perbedaan antara dua probabilitas teratas.    
Contoh skenario:  
Ambang batas: `.02`  
Prediksi model: `[.3, .35, .34, .01]`  
Top dua probabilitas kepercayaan: `[.35, .34]`  
Margin: `.01` (`.35 - .34`)  
Hasil:  
Gunakan sampel karena margin (`.01`) <= ambang batas (`.02`).

`ENTROPY`  <a name="ml-feedback-connector-sampling-strategies-entropy"></a>
Unggah sampel yang entropi lebih besar dari ambang batas yang disediakan. Gunakan model prediksi entropi dinormalisasi.    
Contoh skenario:  
Ambang batas: `0.75`  
Prediksi model: `[.5, .25, .25]`  
Entropi untuk prediksi: `1.03972`  
Hasil:  
Gunakan sampel karena entropi (`1.03972`) > ambang batas (`0.75`).

## Masukan data
<a name="ml-feedback-connector-data-input"></a>

Fungsi Lambda yang ditentukan pengguna menggunakan `publish` fungsi `feedback` klien di Machine Learning AWS IoT Greengrass SDK untuk memanggil konektor. Sebagai contoh, lihat [Contoh Penggunaan](#ml-feedback-connector-usage).

**catatan**  
Konektor ini tidak menerima pesan MQTT sebagai data input.

Fungsi `publish` mengambil argumen berikut:

ConfigId  
ID dari konfigurasi umpan balik target. Ini harus sesuai dengan ID konfigurasi umpan balik yang ditentukan dalam [FeedbackConfigurationMap](#ml-feedback-connector-param)parameter untuk konektor Umpan Balik ML.  
Wajib: BETUL  
Jenis: string

ModelInput  
Data input yang dilewatkan ke model untuk inferensi. Data input ini diunggah menggunakan konfigurasi target kecuali disaring berdasarkan strategi sampling.  
Wajib: BETUL  
Jenis: byte

ModelPrediction  
Hasil prediksi dari model. Jenis hasil dapat berupa kamus atau daftar. Sebagai contoh, hasil prediksi dari konektor Klasifikasi Citra ML adalah daftar probabilitas (seperti `[0.25, 0.60, 0.15]`). Data ini diterbitkan ke topik `/feedback/message/prediction` ini.  
Wajib: BETUL  
Jenis: kamus atau daftar `float` nilai

Metadata  
Pelanggan didefinisikan, aplikasi-spesifik metadata yang terlampir pada sampel yang diunggah dan diterbitkan ke `/feedback/message/prediction` Topik. Konektor juga menyisipkan sebuah `publish-ts` kunci dengan nilai timestamp ke metadata.  
Wajib: SALAH  
Jenis: kamus  
Contoh: `{"some-key": "some value"}`

## Data output
<a name="ml-feedback-connector-data-output"></a>

Konektor ini menerbitkan data ke tiga topik MQTT:
+ Informasi status dari konektor pada `feedback/message/status` topik.
+ Hasil prediksi pada `feedback/message/prediction` topik.
+ Metrik yang ditujukan untuk CloudWatch topik tersebut. `cloudwatch/metric/put`

<a name="connectors-input-output-subscriptions"></a>Anda harus mengonfigurasi langganan untuk mengizinkan konektor berkomunikasi pada topik MQTT. Untuk informasi selengkapnya, lihat [Input dan output](connectors.md#connectors-inputs-outputs).

**Filter topik**: `feedback/message/status`  
Gunakan topik ini untuk memantau status unggah sampel dan batalkan sampel. Konektor menerbitkan topik ini setiap kali menerima permintaan.     
**Contoh keluaran: Unggahan sampel berhasil**  

```
{
  "response": {
    "status": "success",
    "s3_response": {
      "ResponseMetadata": {
        "HostId": "IOWQ4fDEXAMPLEQM+ey7N9WgVhSnQ6JEXAMPLEZb7hSQDASK+Jd1vEXAMPLEa3Km",
        "RetryAttempts": 1,
        "HTTPStatusCode": 200,
        "RequestId": "79104EXAMPLEB723",
        "HTTPHeaders": {
          "content-length": "0",
          "x-amz-id-2": "lbbqaDVFOhMlyU3gRvAX1ZIdg8P0WkGkCSSFsYFvSwLZk3j7QZhG5EXAMPLEdd4/pEXAMPLEUqU=",
          "server": "AmazonS3",
          "x-amz-expiration": "expiry-date=\"Wed, 17 Jul 2019 00:00:00 GMT\", rule-id=\"OGZjYWY3OTgtYWI2Zi00ZDllLWE4YmQtNzMyYzEXAMPLEoUw\"",
          "x-amz-request-id": "79104EXAMPLEB723",
          "etag": "\"b9c4f172e64458a5fd674EXAMPLE5628\"",
          "date": "Thu, 11 Jul 2019 00:12:50 GMT",
          "x-amz-server-side-encryption": "AES256"
        }
      },
      "bucket": "greengrass-feedback-connector-data-us-west-2",
      "ETag": "\"b9c4f172e64458a5fd674EXAMPLE5628\"",
      "Expiration": "expiry-date=\"Wed, 17 Jul 2019 00:00:00 GMT\", rule-id=\"OGZjYWY3OTgtYWI2Zi00ZDllLWE4YmQtNzMyYzEXAMPLEoUw\"",
      "key": "s3-key-prefix/UUID.file_ext",
      "ServerSideEncryption": "AES256"
    }
  },
  "id": "5aaa913f-97a3-48ac-5907-18cd96b89eeb"
}
```
Konektor menambahkan `bucket` dan `key` bidang untuk respon dari Amazon S3. Untuk informasi lebih lanjut tentang respons Amazon s3, lihat [objek PUT](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html#RESTObjectPUT-responses) dalam *Referensi Amazon Simple Storage Service API*.  
**Contoh keluaran: Sampel turun karena strategi pengambilan sampel**  

```
{
  "response": {
    "status": "sample_dropped_by_strategy"
  },
  "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3"
}
```  
**Contoh keluaran: Unggahan sampel gagal**  
Status kegagalan mencakup pesan gagal sebagai `error_message` nilai dan kelas pengecualian sebagai `error` nilai.  

```
{
  "response": {
    "status": "fail",
    "error_message": "[RequestId: 4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3] Failed to upload model input data due to exception. Model prediction will not be published. Exception type: NoSuchBucket, error: An error occurred (NoSuchBucket) when calling the PutObject operation: The specified bucket does not exist",
    "error": "NoSuchBucket"
  },
  "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3"
}
```  
**Contoh keluaran: Permintaan dibatasi karena batas permintaan**  

```
{
  "response": {
    "status": "fail",
    "error_message": "Request limit has been reached (max request: 10 ). Dropping request.",
    "error": "Queue.Full"
  },
  "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3"
}
```

**Filter topik**: `feedback/message/prediction`  
Gunakan topik ini untuk mendengarkan prediksi berdasarkan data sampel yang diunggah. Hal ini memungkinkan Anda menganalisis kinerja model Anda secara real time. Prediksi model diterbitkan ke topik ini hanya jika data berhasil diunggah ke Amazon S3. Pesan yang diterbitkan pada topik ini dalam format JSON. Mereka berisi link ke objek data yang diunggah, prediksi model, dan metadata termasuk dalam permintaan.  
Anda juga dapat menyimpan hasil prediksi dan menggunakannya untuk melaporkan dan menganalisis tren dari waktu ke waktu. Tren dapat memberikan pandangan yang berharga. Sebagai contoh, sebuah *tren penurunan akurasi dari waktu ke waktu* dapat membantu Anda untuk memutuskan apakah model perlu dilatih ulang.    
**Contoh keluaran**  

```
{
  "source-ref": "s3://greengrass-feedback-connector-data-us-west-2/s3-key-prefix/UUID.file_ext",
  "model-prediction": [
    0.5,
    0.2,
    0.2,
    0.1
  ],
  "config-id": "ConfigID2",
  "metadata": {
    "publish-ts": "2019-07-11 00:12:48.816752"
  }
}
```
Anda dapat mengonfigurasi konektor [IoT Analytics](iot-analytics-connector.md) untuk berlangganan topik ini dan mengirimkan informasinya AWS IoT Analytics untuk analisis lebih lanjut atau historis.

**Filter topik:** `cloudwatch/metric/put`  
Ini adalah topik keluaran yang digunakan untuk mempublikasikan metrik. CloudWatch Fitur ini mengharuskan Anda menginstal dan mengkonfigurasi [konektor CloudWatch Metrik](cloudwatch-metrics-connector.md).  
Termasuk metrik:  
+ Jumlah sampel yang diunggah.
+ Ukuran sampel yang diunggah.
+ Jumlah kesalahan dari unggahan ke Amazon S3.
+ Jumlah sampel batal berdasarkan strategi sampling.
+ Jumlah permintaan yang ditahan.  
**Contoh keluaran: Ukuran sampel data (dipublikasikan sebelum unggahan aktual)**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 47592,
      "unit": "Bytes",
      "metricName": "SampleSize"
    }
  }
}
```  
**Contoh keluaran: Unggahan sampel berhasil**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleUploadSuccess"
    }
  }
}
```  
**Contoh keluaran: Unggahan sampel berhasil dan hasil prediksi dipublikasikan**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleAndPredictionPublished"
    }
  }
}
```  
**Contoh keluaran: Unggahan sampel gagal**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleUploadFailure"
    }
  }
}
```  
**Contoh keluaran: Sampel turun karena strategi pengambilan sampel**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleNotUsed"
    }
  }
}
```  
**Contoh keluaran: Permintaan dibatasi karena batas permintaan**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "ErrorRequestThrottled"
    }
  }
}
```

## Contoh Penggunaan
<a name="ml-feedback-connector-usage"></a>

Contoh berikut adalah fungsi Lambda yang ditetapkan pengguna yang menggunakan [AWS IoT Greengrass Machine Learning SDK](lambda-functions.md#lambda-sdks-ml) untuk mengirim data ke konektor Umpan balik ML.

**catatan**  
Anda dapat mengunduh AWS IoT Greengrass Machine Learning SDK dari [halaman AWS IoT Greengrass unduhan](what-is-gg.md#gg-ml-sdk-download).

```
import json
import logging
import os
import sys
import greengrass_machine_learning_sdk as ml

client = ml.client('feedback')

try:
    feedback_config_id = os.environ["FEEDBACK_CONFIG_ID"]
    model_input_data_dir = os.environ["MODEL_INPUT_DIR"]
    model_prediction_str = os.environ["MODEL_PREDICTIONS"]
    model_prediction = json.loads(model_prediction_str)
except Exception as e:
    logging.info("Failed to open environment variables. Failed with exception:{}".format(e))
    sys.exit(1)

try:
    with open(os.path.join(model_input_data_dir, os.listdir(model_input_data_dir)[0]), 'rb') as f:
        content = f.read()
except Exception as e:
    logging.info("Failed to open model input directory. Failed with exception:{}".format(e))
    sys.exit(1)    

def invoke_feedback_connector():
    logging.info("Invoking feedback connector.")
    try:
        client.publish(
            ConfigId=feedback_config_id,
            ModelInput=content,
            ModelPrediction=model_prediction
        )
    except Exception as e:
        logging.info("Exception raised when invoking feedback connector:{}".format(e))
        sys.exit(1)    

invoke_feedback_connector()

def function_handler(event, context):
    return
```

## Lisensi
<a name="ml-feedback-connector-license"></a>



Konektor Umpan balik ML mencakup perangkat lunak/lisensi pihak ketiga berikut:<a name="boto-3-licenses"></a>
+ [AWS SDK untuk Python (Boto3)](https://pypi.org/project/boto3/)/Lisensi 2.0 Apache
+ [botocore](https://pypi.org/project/botocore/)/Apache License 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF License
+ [docutils](https://pypi.org/project/docutils/)/BSD License, Lisensi Publik Umum (GPL) GNU, Lisensi Dasar Perangkat Lunak Python, Domain Publik
+ [jmespath](https://pypi.org/project/jmespath/)/MIT License
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache License 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/Lisensi MIT
+ <a name="six-license"></a>[six](https://github.com/benjaminp/six)/MIT

Konektor ini dirilis di bawah [Perjanjian Lisensi Perangkat lunak core Greengrass](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

## Lihat juga
<a name="ml-feedback-connector-see-also"></a>
+ [Integrasikan dengan layanan dan protokol menggunakan konektor Greengrass](connectors.md)
+ [Memulai dengan konektor Greengrass (konsol)](connectors-console.md)
+ [Memulai dengan konektor Greengrass (CLI)](connectors-cli.md)