

Avviso di fine del supporto: il 7 ottobre 2026, AWS il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita [Migrate](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html) from. AWS IoT Greengrass Version 1

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Connettore ML Feedback
<a name="ml-feedback-connector"></a>

**avvertimento**  <a name="connectors-extended-life-phase-warning"></a>
Questo connettore è entrato nella *fase di vita prolungata* e AWS IoT Greengrass non rilascerà aggiornamenti che forniscano funzionalità, miglioramenti alle funzionalità esistenti, patch di sicurezza o correzioni di bug. Per ulteriori informazioni, consulta [AWS IoT Greengrass Version 1 politica di manutenzione](maintenance-policy.md).

Il connettore ML Feedback semplifica l'accesso ai dati del modello di machine learning (ML) per la riqualificazione e l'analisi dei modelli. Il connettore:
+ Carica i dati di input (esempi) utilizzati dal tuo modello ML su Amazon S3. L'input del modello può essere in qualsiasi formato, ad esempio immagini, JSON o audio. Dopo che gli esempi sono stati caricati nel cloud, puoi utilizzarli per eseguire un nuovo training del modello per migliorare l'accuratezza e la precisione delle sue previsioni. Ad esempio, puoi utilizzare [SageMaker AI Ground Truth](https://docs.aws.amazon.com/sagemaker/latest/dg/sms.html) per etichettare i tuoi campioni e l'[SageMaker intelligenza artificiale](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html) per riqualificare il modello.
+ Pubblica i risultati delle previsioni ricevuti dal modello come messaggi MQTT. In questo modo puoi monitorare e analizzare la qualità dell'inferenza del modello in tempo reale. Puoi anche archiviare i risultati delle previsioni e utilizzarli per analizzare le tendenze nel corso del tempo.
+ Pubblica metriche sui caricamenti e sui dati di esempio su Amazon. CloudWatch

Per configurare questo connettore, descrivi le *configurazioni di feedback* supportate in formato JSON. [Una configurazione di feedback definisce proprietà come il bucket Amazon S3 di destinazione, il tipo di contenuto e la strategia di campionamento.](#ml-feedback-connector-sampling-strategies) (Una strategia di campionamento viene utilizzata per determinare quali esempi caricare.)

Puoi utilizzare il connettore ML Feedback nei seguenti scenari:
+ Con funzioni Lambda definite dall'utente. Le funzioni Lambda di inferenza locale utilizzano il Machine AWS IoT Greengrass Learning SDK per richiamare questo connettore e trasmettere la configurazione del feedback di destinazione, l'input e l'output del modello (risultati di previsione). Per vedere un esempio, consulta [Esempio di utilizzo](#ml-feedback-connector-usage).
+ Con il connettore [ML Image Classification](image-classification-connector.md) (v2). Per utilizzare questo connettore con il connettore ML Image Classification, configura il `MLFeedbackConnectorConfigId` parametro per il connettore ML Image Classification.
+ Con il [connettore ML Object Detection](obj-detection-connector.md). Per utilizzare questo connettore con il connettore ML Object Detection, configura il `MLFeedbackConnectorConfigId` parametro per il connettore ML Object Detection.

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

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

Questo connettore presenta i seguenti requisiti:
+ AWS IoT Greengrass Core Software v1.9.3 o versione successiva.
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python](https://www.python.org/) versione 3.7 o 3.8 installata sul dispositivo principale e aggiunta alla variabile di ambiente PATH.
**Nota**  <a name="use-runtime-py3.8"></a>
Per usare Python 3.8, esegui il seguente comando per creare un collegamento simbolico dalla cartella di installazione predefinita di Python 3.7 ai binari Python 3.8 installati.  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
Questo configura il dispositivo in modo che soddisfi il requisito Python per AWS IoT Greengrass.
+ Uno o più bucket Amazon S3. Il numero di bucket utilizzati dipende dalla strategia di campionamento.
+ Il [ruolo del gruppo Greengrass](group-role.md) è configurato per consentire l'`s3:PutObject`azione sugli oggetti nel bucket Amazon S3 di destinazione, come illustrato nel seguente esempio di policy IAM.

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

****  

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

------

  La policy deve includere tutti i bucket di destinazione come risorse. Puoi concedere alle risorse un accesso granulare o condizionale (ad esempio, utilizzando uno schema di denominazione con il carattere jolly \$1).

  <a name="set-up-group-role"></a>Per il requisito del ruolo di gruppo, è necessario configurare il ruolo in modo da concedere le autorizzazioni necessarie e assicurarsi che il ruolo sia stato aggiunto al gruppo. Per ulteriori informazioni, consulta [Gestione del ruolo del gruppo Greengrass (console)](group-role.md#manage-group-role-console) o [Gestione del ruolo del gruppo Greengrass (CLI)](group-role.md#manage-group-role-cli).
+ Il [connettore CloudWatch Metrics](cloudwatch-metrics-connector.md) è stato aggiunto al gruppo Greengrass e configurato. Questo è obbligatorio solo se desideri utilizzare la funzionalità di creazione di report dei parametri.
+ AWS IoT Greengrass Per interagire con questo connettore è necessario [Machine Learning SDK](lambda-functions.md#lambda-sdks-ml) v1.1.0.

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

`FeedbackConfigurationMap`  
Un set di una o più configurazioni di feedback che il connettore può utilizzare per caricare campioni su Amazon S3. Una configurazione di feedback definisce proprietà quali il bucket di destinazione, il tipo di contenuti e la [strategia di campionamento](#ml-feedback-connector-sampling-strategies). Quando questo connettore viene richiamato, la funzione o il connettore Lambda chiamante specifica una configurazione di feedback di destinazione.  
**Nome visualizzato nella AWS IoT console: mappa di configurazione del feedback**  
Obbligatorio: `true`  
Tipo: una stringa JSON ben formata che definisce l'insieme di configurazioni di feedback supportate. Per vedere un esempio, consulta [FeedbackConfigurationMap esempio](#ml-feedback-connector-feedbackconfigmap).    
  
L'ID di un oggetto di configurazione di feedback dispone dei seguenti requisiti.    
  
L'ID:  
+ Deve essere univoco tra gli oggetti di configurazione.
+ Deve iniziare con una lettera o un numero. Può contenere lettere minuscole e maiuscole, numeri e trattini.
+ Deve avere una lunghezza compresa tra 2 e 63 caratteri.
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `^[a-zA-Z0-9][a-zA-Z0-9-]{1,62}$`  
Esempi: `MyConfig0`, `config-a`, `12id`
Il corpo di un oggetto di configurazione di feedback contiene le seguenti proprietà.    
`s3-bucket-name`  
Il nome del bucket Amazon S3 di destinazione.  
Il ruolo del gruppo deve consentire l'operazione `s3:PutObject` su tutti i bucket di destinazione. Per ulteriori informazioni, consulta [Requisiti](#ml-feedback-connector-req).
Obbligatorio: `true`  
Tipo: `string`  
Modello valido: `^[a-z0-9\.\-]{3,63}$`  
`content-type`  
Il tipo di contenuto dei campioni da caricare. Tutti i contenuti di una singola configurazione di feedback devono essere dello stesso tipo.  
Obbligatorio: `true`  
Tipo: `string`  
Esempi: `image/jpeg`, `application/json`, `audio/ogg`  
`s3-prefix`  
Il prefisso della chiave da utilizzare per i campioni caricati. Un prefisso è simile al nome di una directory. Consente di archiviare dati simili nella stessa directory in un bucket. Per ulteriori informazioni, consulta la [chiave dell'oggetto e i metadati](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html) nella *Guida per l'utente di Amazon Simple Storage Service*.  
Obbligatorio: `false`  
Tipo: `string`  
`file-ext`  
L'estensione da utilizzare per i campioni caricati. Deve essere un'estensione file valida per il tipo di contenuti.  
Obbligatorio: `false`  
Tipo: `string`  
Esempi: `jpg`, `json`, `ogg`  
`sampling-strategy`  
La [strategia di campionamento](#ml-feedback-connector-sampling-strategies) da utilizzare per filtrare i campioni da caricare. Se omessa, il connettore tenta di caricare tutti i campioni che riceve.  
Obbligatorio: `false`  
Tipo: una stringa JSON ben formata che contiene le seguenti proprietà.    
`strategy-name`  
Il nome della strategia di campionamento.  
Obbligatorio: `true`  
Tipo: `string`  
Valori validi: `RANDOM_SAMPLING`, `LEAST_CONFIDENCE`, `MARGIN` o `ENTROPY`  
`rate`  
La velocità della strategia di campionamento [causale](#ml-feedback-connector-sampling-strategies-random).  
Obbligatorio: `true` se lo è`strategy-name`. `RANDOM_SAMPLING`  
Tipo: `number`  
Valori validi: `0.0 - 1.0`  
`threshold`  
La soglia per la strategia di campionamento [Fiducia minima](#ml-feedback-connector-sampling-strategies-least-confidence), [Margine](#ml-feedback-connector-sampling-strategies-margin) o [Entropia](#ml-feedback-connector-sampling-strategies-entropy).  
Obbligatorio: `true` se `strategy-name` è `LEAST_CONFIDENCE``MARGIN`, o`ENTROPY`.  
Tipo: `number`  
Valori validi:  
+ `0.0 - 1.0` per la strategia `LEAST_CONFIDENCE` o `MARGIN`.
+ `0.0 - no limit` per la strategia `ENTROPY`.

`RequestLimit`  
Il numero massimo di richieste che il connettore può elaborare alla volta.  
Puoi utilizzare questo parametro per limitare il consumo di memoria limitando il numero di richieste che il connettore elabora nello stesso momento. Le richieste che superano questo limite vengono ignorate.  
Nome visualizzato nella AWS IoT console: **Request limit**  
Obbligatorio: `false`  
Tipo: `string`  
Valori validi: `0 - 999`  
Schema valido: `^$|^[0-9]{1,3}$`

### Esempio di creazione di un connettore (AWS CLI)
<a name="ml-feedback-connector-create"></a>

Il seguente comando CLI crea un file `ConnectorDefinition` con una versione iniziale che contiene il connettore ML Feedback.

```
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 esempio
<a name="ml-feedback-connector-feedbackconfigmap"></a>

Di seguito è riportato un valore di esempio espanso per il parametro `FeedbackConfigurationMap`. Questo esempio include diverse configurazioni di feedback che utilizzano varie strategie di campionamento.

```
{
    "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"
    }
}
```

### Strategie di campionamento
<a name="ml-feedback-connector-sampling-strategies"></a>

Il connettore supporta quattro strategie di campionamento che determinano se caricare i campioni che vengono passati al connettore. Gli esempi sono istanze discrete di dati utilizzati da un modello per una previsione. Puoi utilizzare strategie di campionamento per filtrare i campioni che è più probabile migliorino l'accuratezza del modello.

`RANDOM_SAMPLING`  <a name="ml-feedback-connector-sampling-strategies-random"></a>
Carica in modo casuale campioni in base alla velocità fornita. Carica un campione se un valore generato casualmente è inferiore alla velocità. Più alta è la velocità, maggiore è il numero di campioni caricati.  
Questa strategia ignora qualsiasi previsione del modello fornita.

`LEAST_CONFIDENCE`  <a name="ml-feedback-connector-sampling-strategies-least-confidence"></a>
Carica esempi la cui probabilità di affidabilità massima scende al di sotto della soglia fornita.    
Scenario di esempio:  
Soglia: `.6`  
Previsione del modello: `[.2, .2, .4, .2]`  
Probabilità di affidabilità massima: `.4`  
Risultato:  
Utilizza il campione perché la probabilità di affidabilità massima (`.4`) <= soglia (`.6`).

`MARGIN`  <a name="ml-feedback-connector-sampling-strategies-margin"></a>
Carica esempi se il margine tra le prime due probabilità di affidabilità principali rientra nella soglia fornita. Il margine è la differenza tra le prime due probabilità principali.    
Scenario di esempio:  
Soglia: `.02`  
Previsione del modello: `[.3, .35, .34, .01]`  
Le due probabilità di affidabilità principali: `[.35, .34]`  
Margine: `.01` (`.35 - .34`)  
Risultato:  
Utilizza il campione perché margine (`.01`) <= soglia (`.02`).

`ENTROPY`  <a name="ml-feedback-connector-sampling-strategies-entropy"></a>
Carica campioni la cui entropia è maggiore della soglia specificata. Utilizza l'entropia normalizzata della previsione del modello.    
Scenario di esempio:  
Soglia: `0.75`  
Previsione del modello: `[.5, .25, .25]`  
Entropia per la previsione: `1.03972`  
Risultato:  
Utilizza campione perché entropia (`1.03972`) > soglia (`0.75`).

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

Le funzioni Lambda definite dall'utente utilizzano `publish` la funzione del client `feedback` nel Machine AWS IoT Greengrass Learning SDK per richiamare il connettore. Per vedere un esempio, consulta [Esempio di utilizzo](#ml-feedback-connector-usage).

**Nota**  
Questo connettore non accetta messaggi MQTT come dati di input.

La funzione `publish` accetta i seguenti argomenti:

ConfigId  
L'ID della configurazione di feedback di destinazione. Questo deve corrispondere all'ID di una configurazione di feedback definita nel [FeedbackConfigurationMap](#ml-feedback-connector-param)parametro per il connettore ML Feedback.  
Obbligatorio: true  
Tipo: stringa

ModelInput  
I dati di input che sono stati passati a un modello per l'inferenza. Questi dati di input vengono caricati utilizzando la configurazione di destinazione, a meno che non vengano filtrati in base alla strategia di campionamento.  
Obbligatorio: true  
Tipo: byte

ModelPrediction  
I risultati delle previsioni dal modello. Il tipo di risultato può essere un dizionario o un elenco. Ad esempio, i risultati della previsione del connettore ML Image Classification sono un elenco di probabilità (ad esempio). `[0.25, 0.60, 0.15]` Questi dati vengono pubblicati nell'argomento `/feedback/message/prediction`.  
Obbligatorio: true  
Tipo: dizionario o elenco di `float` valori

Metadati  
Metadati specifici dell'applicazione definiti dal cliente collegati al campione caricato e pubblicati nell'argomento `/feedback/message/prediction`. Il connettore inserisce inoltre una chiave `publish-ts` con un valore di timestamp nei metadati.  
Obbligatorio: false  
Tipo: dizionario  
Ad esempio: `{"some-key": "some value"}`

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

Questo connettore pubblica i dati in tre argomenti MQTT:
+ Le informazioni sullo stato del connettore nell'argomento `feedback/message/status`.
+ Risultati delle previsioni nell'argomento `feedback/message/prediction`.
+ Metriche destinate all' CloudWatch `cloudwatch/metric/put`argomento.

<a name="connectors-input-output-subscriptions"></a>È necessario configurare le sottoscrizioni per consentire al connettore di comunicare su argomenti MQTT. Per ulteriori informazioni, consulta [Input e output](connectors.md#connectors-inputs-outputs).

**Filtro di argomenti:** `feedback/message/status`  
Utilizza questo argomento per monitorare lo stato dei caricamenti di campioni e dei campioni rimossi. Il connettore pubblica in questo argomento ogni volta che riceve una richiesta.     
**Output di esempio: caricamento campione riuscito**  

```
{
  "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"
}
```
Il connettore aggiunge i `key` campi `bucket` e alla risposta di Amazon S3. Per ulteriori informazioni sulla risposta di Amazon S3, consulta l'[oggetto PUT](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html#RESTObjectPUT-responses) nel riferimento all'*API di Amazon Simple Storage Service*.  
**Output di esempio: campione rimosso a causa della strategia di campionamento**  

```
{
  "response": {
    "status": "sample_dropped_by_strategy"
  },
  "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3"
}
```  
**Output di esempio: caricamento campione non riuscito**  
Uno stato di errore include il messaggio di errore come il valore `error_message` e la classe di eccezione come il valore `error`.  

```
{
  "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"
}
```  
**Output di esempio: richiesta con throttling a causa del limite di richieste**  

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

**Filtro di argomenti:** `feedback/message/prediction`  
Utilizza questo argomento per ascoltare le previsioni in base ai dati campione caricati. Questo consente di analizzare le prestazioni del modello in tempo reale. Le previsioni dei modelli vengono pubblicate su questo argomento solo se i dati vengono caricati correttamente su Amazon S3. I messaggi pubblicati in questo argomento sono in formato JSON. Contengono il collegamento all'oggetto dati caricato, la previsione del modello e i metadati inclusi nella richiesta.  
Puoi anche archiviare i risultati delle previsioni e utilizzarli per segnalare e analizzare le tendenze nel tempo. Le tendenze possono fornire informazioni preziose. Ad esempio, una tendenza *precisione decrescente nel tempo* consente di decidere se occorre eseguire un nuovo training del modello.    
**Output di esempio**  

```
{
  "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"
  }
}
```
Puoi configurare il [connettore IoT Analytics](iot-analytics-connector.md) per iscriverti a questo argomento e inviare le informazioni a AWS IoT Analytics per ulteriori analisi o analisi cronologiche.

**Filtro di argomenti:** `cloudwatch/metric/put`  
Questo è l'argomento di output utilizzato per pubblicare i parametri in CloudWatch. Questa funzionalità richiede l'installazione e la configurazione del [connettore CloudWatch Metrics](cloudwatch-metrics-connector.md).  
I parametri includono:  
+ Il numero di campioni caricati.
+ Le dimensioni dei campioni caricati.
+ Il numero di errori causati dai caricamenti su Amazon S3.
+ Il numero di campioni rimossi in base alla strategia di campionamento.
+ Il numero di richieste sottoposte a throttling.  
**Output di esempio: dimensioni del campione di dati (pubblicato prima del caricamento effettivo)**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 47592,
      "unit": "Bytes",
      "metricName": "SampleSize"
    }
  }
}
```  
**Output di esempio: caricamento campione riuscito**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleUploadSuccess"
    }
  }
}
```  
**Output di esempio: caricamento campione riuscito e risultato delle previsioni pubblicato**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleAndPredictionPublished"
    }
  }
}
```  
**Output di esempio: caricamento campione non riuscito**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleUploadFailure"
    }
  }
}
```  
**Output di esempio: campione rimosso a causa della strategia di campionamento**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleNotUsed"
    }
  }
}
```  
**Output di esempio: richiesta con throttling a causa del limite di richieste**  

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

## Esempio di utilizzo
<a name="ml-feedback-connector-usage"></a>

L'esempio seguente è una funzione Lambda definita dall'utente che utilizza [Machine AWS IoT Greengrass Learning](lambda-functions.md#lambda-sdks-ml) SDK per inviare dati al connettore ML Feedback.

**Nota**  
Puoi scaricare il AWS IoT Greengrass Machine Learning SDK dalla [pagina dei AWS IoT Greengrass download](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
```

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



Il connettore ML Feedback include i seguenti software/licenze di terze parti:<a name="boto-3-licenses"></a>
+ [AWS SDK per Python (Boto3)](https://pypi.org/project/boto3/)/Apache License 2.0
+ [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, GNU General Public License (GPL), Python Software Foundation License, Public Domain
+ [jmespath](https://pypi.org/project/jmespath/)/MIT License
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache License 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT License
+ <a name="six-license"></a>[six](https://github.com/benjaminp/six)/MIT

Questo connettore è rilasciato ai sensi del contratto di [licenza del software Greengrass Core](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf).

## Consulta anche
<a name="ml-feedback-connector-see-also"></a>
+ [Integrazione con servizi e protocolli tramite i connettori Greengrass](connectors.md)
+ [Nozioni di base sui connettori Greengrass (console)](connectors-console.md)
+ [Nozioni di base sui connettori Greengrass (CLI)](connectors-cli.md)