

Hinweis zum Ende des Supports: Am 7. Oktober 2026 AWS wird der Support für eingestellt. AWS IoT Greengrass Version 1 Nach dem 7. Oktober 2026 können Sie nicht mehr auf die Ressourcen zugreifen. AWS IoT Greengrass V1 Weitere Informationen finden Sie unter [Migrieren von AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

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

**Warnung**  <a name="connectors-extended-life-phase-warning"></a>
Dieser Konnektor befindet sich in der *Phase der verlängerten Lebensdauer* und veröffentlicht AWS IoT Greengrass keine Updates, die Funktionen, Verbesserungen vorhandener Funktionen, Sicherheitspatches oder Bugfixes bieten. Weitere Informationen finden Sie unter [AWS IoT Greengrass Version 1 Wartungspolitik](maintenance-policy.md).

Der ML-Feedback-Konnektor erleichtert den Zugriff auf Ihre Modelldaten für maschinelles Lernen (ML) für das erneute Trainieren und Analysieren von Modellen. Der Konnektor:
+ Lädt Eingabedaten (Beispiele), die von Ihrem ML-Modell verwendet werden, auf Amazon S3 hoch. Die Modelleingabe kann in einem beliebigen Format vorliegen, z. B. in Form von Bildern, im JSON-Format oder als Audio. Nachdem Beispiele in die Cloud hochgeladen wurden, können Sie diese verwenden, um das Modell neu zu schulen und so die Genauigkeit und Präzision seiner Prognosen zu verbessern. Sie können beispielsweise [SageMaker KI Ground Truth](https://docs.aws.amazon.com/sagemaker/latest/dg/sms.html) verwenden, um Ihre Proben zu kennzeichnen, und [SageMaker KI](https://docs.aws.amazon.com/sagemaker/latest/dg/whatis.html), um das Modell neu zu trainieren.
+ Veröffentlicht die Prognoseergebnisse aus dem Modell als MQTT-Nachrichten. Auf diese Weise können Sie die Inferenzqualität Ihres Modells in Echtzeit überwachen und analysieren. Sie können die Prognoseergebnisse auch speichern und mit ihrer Hilfe Trends im Laufe der Zeit analysieren.
+ Veröffentlicht Metriken zu Beispiel-Uploads und Beispieldaten auf Amazon CloudWatch.

Um diesen Konnektor zu konfigurieren, beschreiben Sie Ihre unterstützten *Feedback-Konfigurationen* im JSON-Format. Eine Feedback-Konfiguration definiert Eigenschaften wie den Amazon S3-Ziel-Bucket, den Inhaltstyp und die [Sampling-Strategie](#ml-feedback-connector-sampling-strategies). (Mit einer Samplingstrategie wird ermittelt, welche Beispiele hochgeladen werden sollen.)

Sie können den ML-Feedback-Connector in den folgenden Szenarien verwenden:
+ Mit benutzerdefinierten Lambda-Funktionen. Ihre lokalen Inferenz-Lambda-Funktionen verwenden das AWS IoT Greengrass Machine Learning SDK, um diesen Konnektor aufzurufen und die Ziel-Feedback-Konfiguration, die Modelleingabe und die Modellausgabe (Vorhersageergebnisse) weiterzuleiten. Ein Beispiel finden Sie unter [Beispiel für die Verwendung](#ml-feedback-connector-usage).
+ Mit dem [ML Image Classification Connector (v2](image-classification-connector.md)). Um diesen Konnektor mit dem ML Image Classification-Konnektor zu verwenden, konfigurieren Sie den `MLFeedbackConnectorConfigId` Parameter für den ML Image Classification-Konnektor.
+ Mit dem [ML Object Detection-Konnektor](obj-detection-connector.md). Um diesen Konnektor mit dem ML-Objekterkennungs-Konnektor zu verwenden, konfigurieren Sie den `MLFeedbackConnectorConfigId` Parameter für den ML-Objekterkennungs-Konnektor.

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

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

Dieser Konnektor hat die folgenden Anforderungen:
+ AWS IoT Greengrass Kernsoftware v1.9.3 oder höher.
+ <a name="conn-req-py-3.7-and-3.8"></a>[Python-Version](https://www.python.org/) 3.7 oder 3.8 wurde auf dem Core-Gerät installiert und zur Umgebungsvariablen PATH hinzugefügt.
**Anmerkung**  <a name="use-runtime-py3.8"></a>
Um Python 3.8 zu verwenden, führen Sie den folgenden Befehl aus, um einen symbolischen Link vom standardmäßigen Python 3.7-Installationsordner zu den installierten Python 3.8-Binärdateien zu erstellen.  

  ```
  sudo ln -s path-to-python-3.8/python3.8 /usr/bin/python3.7
  ```
Dadurch wird Ihr Gerät so konfiguriert, dass es die Python-Anforderung für AWS IoT Greengrass erfüllt.
+ Ein oder mehrere Amazon S3 S3-Buckets. Wie viele Buckets Sie verwenden, hängt von Ihrer Samplingstrategie ab.
+ Die [Greengrass-Gruppenrolle](group-role.md) ist so konfiguriert, dass sie die `s3:PutObject` Aktion für Objekte im Amazon S3 S3-Ziel-Bucket zulässt, wie in der folgenden IAM-Beispielrichtlinie dargestellt.

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

****  

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

------

  Die Richtlinie sollte alle Ziel-Buckets als Ressourcen enthalten. Sie können granularen oder bedingten Zugriff auf Ressourcen gewähren (etwa mit einem Benennungsschema mit Platzhaltern \$1).

  <a name="set-up-group-role"></a>Für die Gruppenrollenanforderung müssen Sie die Rolle so konfigurieren, dass die erforderlichen Berechtigungen erteilt werden, und sicherstellen, dass die Rolle der Gruppe hinzugefügt wurde. Für weitere Informationen siehe [Verwalten der Greengrass-Gruppenrolle (Konsole)](group-role.md#manage-group-role-console) oder [Verwalten der Greengrass-Gruppenrolle (CLI)](group-role.md#manage-group-role-cli).
+ Der [CloudWatch Metrics-Konnektor](cloudwatch-metrics-connector.md) wurde der Greengrass-Gruppe hinzugefügt und konfiguriert. Nur erforderlich, wenn Sie die Berichterstellungsfunktion für Metriken verwenden möchten.
+ AWS IoT Greengrass Für die Interaktion mit diesem Connector ist das [Machine Learning SDK](lambda-functions.md#lambda-sdks-ml) v1.1.0 erforderlich.

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

`FeedbackConfigurationMap`  
Eine Reihe von einer oder mehreren Feedback-Konfigurationen, die der Connector verwenden kann, um Proben auf Amazon S3 hochzuladen. Eine Feedback-Konfiguration definiert Parameter wie z. B. den Ziel-Bucket, den Inhaltstyp und die [Samplingstrategie](#ml-feedback-connector-sampling-strategies). Wenn dieser Konnektor aufgerufen wird, spezifiziert die aufrufende Lambda-Funktion oder der aufrufende Connector eine Ziel-Feedback-Konfiguration.  
Anzeigename in der AWS IoT Konsole: **Feedback-Konfigurationsübersicht**  
Erforderlich: `true`  
Typ: Eine wohlgeformte JSON-Zeichenfolge, die den Satz der unterstützten Feedback-Konfigurationen definiert. Ein Beispiel finden Sie unter [FeedbackConfigurationMap Beispiel](#ml-feedback-connector-feedbackconfigmap).    
  
Für die ID eines Feedback-Konfigurationsobjekts gelten folgende Anforderungen.    
  
Die ID:  
+ Muss für alle Konfigurationsobjekte eindeutig sein.
+ Muss mit einem Buchstaben oder einer Zahl beginnen. Kann Kleinbuchstaben und Großbuchstaben, Zahlen und Bindestriche enthalten.
+ Muss zwischen 2 und 63 Zeichen lang sein.
Erforderlich: `true`  
Typ: `string`  
Gültiges Muster: `^[a-zA-Z0-9][a-zA-Z0-9-]{1,62}$`  
Beispiele: `MyConfig0`, `config-a`, `12id`.
Der Text eines Feedback-Konfigurationsobjekts enthält die folgenden Eigenschaften.    
`s3-bucket-name`  
Der Name des Amazon S3-Ziel-Buckets.  
Die Gruppenrolle muss die Aktion `s3:PutObject` auf allen Ziel-Buckets erlauben. Weitere Informationen finden Sie unter [Voraussetzungen](#ml-feedback-connector-req).
Erforderlich: `true`  
Typ: `string`  
Gültiges Muster: `^[a-z0-9\.\-]{3,63}$`  
`content-type`  
Der Inhaltstyp der hochzuladenden Beispiele. Alle Inhalte für eine einzelne Feedback-Konfiguration müssen denselben Typ aufweisen.  
Erforderlich: `true`  
Typ: `string`  
Beispiele: `image/jpeg`, `application/json`, `audio/ogg`.  
`s3-prefix`  
Das Schlüsselpräfix, das für hochgeladene Beispiele verwendet werden soll. Ein Präfix ist einem Verzeichnisnamen ähnlich. Es bietet Ihnen die Möglichkeit, ähnliche Daten unter demselben Verzeichnis in einem Bucket zu speichern. Weitere Informationen finden Sie unter [Objektschlüssel und Metadaten](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html) im *Amazon Simple Storage Service-Benutzerhandbuch*.  
Erforderlich: `false`  
Typ: `string`  
`file-ext`  
Die Dateierweiterung, die für hochgeladene Beispiele verwendet werden soll. Es muss sich um eine gültige Dateierweiterung für den Inhaltstyp handeln.  
Erforderlich: `false`  
Typ: `string`  
Beispiele: `jpg`, `json`, `ogg`.  
`sampling-strategy`  
Die [Samplingstrategie](#ml-feedback-connector-sampling-strategies) zum Filtern der hochzuladenden Beispiele. Wenn nicht angegeben, versucht der Konnektor, alle empfangenen Beispiele hochzuladen.  
Erforderlich: `false`  
Typ: Eine wohlgeformte JSON-Zeichenfolge, die die folgenden Eigenschaften enthält.    
`strategy-name`  
Der Name der Samplingstrategie.  
Erforderlich: `true`  
Typ: `string`  
Gültige Werte: `RANDOM_SAMPLING`, `LEAST_CONFIDENCE`, `MARGIN` oder `ENTROPY`  
`rate`  
Die Rate für die [Random](#ml-feedback-connector-sampling-strategies-random)-Samplingstrategie.  
Erforderlich: `true` wenn `strategy-name` ja`RANDOM_SAMPLING`.  
Typ: `number`  
Zulässige Werte: `0.0 - 1.0`  
`threshold`  
Der Schwellenwert für die Samplingstrategie [Least Confidence (Geringste Zuverlässigkeit)](#ml-feedback-connector-sampling-strategies-least-confidence), [Margin (Abstand)](#ml-feedback-connector-sampling-strategies-margin) oder [Entropy (Entropie)](#ml-feedback-connector-sampling-strategies-entropy).  
Erforderlich: `true` wenn `strategy-name` ist `LEAST_CONFIDENCE``MARGIN`, oder`ENTROPY`.  
Typ: `number`  
Zulässige Werte:  
+ `0.0 - 1.0` für die Strategie `LEAST_CONFIDENCE` oder `MARGIN`.
+ `0.0 - no limit` für die Strategie `ENTROPY`.

`RequestLimit`  
Die maximale Anzahl von Anforderungen, die der Konnektor gleichzeitig verarbeiten kann.  
Mithilfe dieses Parameters können Sie die Speicherbelegung einschränken, indem Sie die Anzahl der Anforderungen begrenzen, die der Konnektor gleichzeitig verarbeitet. Über dieses Limit hinausgehende Anforderungen werden ignoriert.  
Anzeigename in der AWS IoT Konsole: **Limit anfordern**  
Erforderlich: `false`  
Typ: `string`  
Zulässige Werte: `0 - 999`  
Gültiges Muster: `^$|^[0-9]{1,3}$`

### Beispiel für das Erstellen eines Konnektors (AWS CLI)
<a name="ml-feedback-connector-create"></a>

Der folgende CLI-Befehl erstellt eine `ConnectorDefinition` mit einer ersten Version, die den ML-Feedback-Konnektor enthält.

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

Im Folgenden sehen Sie einen erweiterten Beispielwert für den Parameter `FeedbackConfigurationMap`. Dieses Beispiel enthält mehrere Feedback-Konfigurationen, die verschiedene Samplingstrategien verwenden.

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

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

Der Konnektor unterstützt vier Samplingstrategien, die bestimmen, ob Beispiele hochgeladen werden sollen, die an den Konnektor übergeben werden. Beispiele sind einzelne Dateninstanzen, die von einem Modell für eine Prognose verwendet werden. Sie können Samplingstrategien verwenden, um nach den Beispielen zu filtern, die die Modellgenauigkeit am ehesten verbessern.

`RANDOM_SAMPLING`  <a name="ml-feedback-connector-sampling-strategies-random"></a>
Lädt nach dem Zufallsprinzip Beispiele basierend auf der angegebenen Rate hoch. Ein Beispiel wird hochgeladen, wenn ein zufällig generierter Wert kleiner als die Rate ist. Je höher die Rate, desto mehr Beispiele werden hochgeladen.  
Diese Strategie ignoriert alle bereitgestellten Modellprognosen.

`LEAST_CONFIDENCE`  <a name="ml-feedback-connector-sampling-strategies-least-confidence"></a>
Lädt Beispiele hoch, deren maximale Zuverlässigkeitswahrscheinlichkeit unter den angegebenen Schwellenwert fällt.    
Beispielszenario:  
Schwellenwert: `.6`  
Modellprognose: `[.2, .2, .4, .2]`  
Maximale Zuverlässigkeitswahrscheinlichkeit: `.4`  
Ergebnis:  
Verwenden Sie das Beispiel, da die maximale Zuverlässigkeitswahrscheinlichkeit (`.4`) <= Schwellenwert (`.6`) ist.

`MARGIN`  <a name="ml-feedback-connector-sampling-strategies-margin"></a>
Lädt Beispiele hoch, wenn der Abstand zwischen den beiden höchsten Zuverlässigkeitswahrscheinlichkeiten innerhalb des angegebenen Schwellenwerts liegt. Der Abstand ist die Differenz zwischen den beiden höchsten Zuverlässigkeitswahrscheinlichkeiten.    
Beispielszenario:  
Schwellenwert: `.02`  
Modellprognose: `[.3, .35, .34, .01]`  
Zwei höchste Zuverlässigkeitswahrscheinlichkeiten: `[.35, .34]`  
Abstand: `.01` (`.35 - .34`)  
Ergebnis:  
Verwenden Sie das Beispiel, da der Abstand (`.01`) <= Schwellenwert (`.02`) ist.

`ENTROPY`  <a name="ml-feedback-connector-sampling-strategies-entropy"></a>
Lädt Beispiele hoch, deren Entropie größer als der angegebene Schwellenwert ist. Verwendet die normalisierte Entropie der Modellprognose.    
Beispielszenario:  
Schwellenwert: `0.75`  
Modellprognose: `[.5, .25, .25]`  
Entropie für die Prognose: `1.03972`  
Ergebnis:  
Verwenden Sie das Beispiel, da die Entropie (`1.03972`) > Schwellenwert (`0.75`) ist.

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

Benutzerdefinierte Lambda-Funktionen verwenden die `publish` Funktion des `feedback` Clients im AWS IoT Greengrass Machine Learning SDK, um den Connector aufzurufen. Ein Beispiel finden Sie unter [Beispiel für die Verwendung](#ml-feedback-connector-usage).

**Anmerkung**  
Dieser Konnektor akzeptiert keine MQTT-Nachrichten als Eingabedaten.

Die `publish`-Funktion verwendet die folgenden Argumente:

ConfigId  
Die ID der Ziel-Feedback-Konfiguration. Dies muss mit der ID einer Feedback-Konfiguration übereinstimmen, die im [FeedbackConfigurationMap](#ml-feedback-connector-param)Parameter für den ML-Feedback-Konnektor definiert ist.  
Erforderlich: wahr  
Type: Zeichenkette

ModelInput  
Die Eingabedaten, die an ein Modell zur Inferenz übergeben wurden. Diese Eingabedaten werden unter Verwendung der Zielkonfiguration hochgeladen, es sei denn, sie werden basierend auf der Samplingstrategie herausgefiltert.  
Erforderlich: wahr  
Typ: Bytes

ModelPrediction  
Die Prognoseergebnisse aus dem Modell. Ergebnistyp kann ein Wörterbuch oder eine Liste sein. Beispielsweise handelt es sich bei den Prognoseergebnissen des ML Image Classification-Konnektors um eine Liste von Wahrscheinlichkeiten (z. B.`[0.25, 0.60, 0.15]`). Diese Daten werden im Thema `/feedback/message/prediction` veröffentlicht.  
Erforderlich: wahr  
Typ: Wörterbuch oder `float` Werteliste

Metadaten  
Kundendefinierte, anwendungsspezifische Metadaten, die an das hochgeladene Beispiel angefügt und im Thema `/feedback/message/prediction` veröffentlicht werden. Der Konnektor fügt auch einen `publish-ts`-Schlüssel mit einem Zeitstempelwert in die Metadaten ein.  
Erforderlich: falsch  
Typ: Wörterbuch  
Beispiel: `{"some-key": "some value"}`

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

Dieser Konnektor veröffentlicht Daten in drei MQTT-Themen:
+ Statusinformationen vom Konnektor im Thema `feedback/message/status`.
+ Prognoseergebnisse im Thema `feedback/message/prediction`.
+ Metriken, die für das CloudWatch `cloudwatch/metric/put` Thema bestimmt sind.

<a name="connectors-input-output-subscriptions"></a>Sie müssen Abonnements konfigurieren, damit der Konnektor über MQTT-Themen kommunizieren kann. Weitere Informationen finden Sie unter [Eingaben und Ausgaben](connectors.md#connectors-inputs-outputs).

**Themenfilter:** `feedback/message/status`  
Verwenden Sie dieses Thema, um den Status von Beispiel-Uploads und verworfenen Beispielen zu überwachen. Der Konnektor veröffentlicht jedes Mal, wenn er eine Anforderung erhält, in diesem Thema.     
**Beispielausgabe: Beispiel-Upload erfolgreich**  

```
{
  "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"
}
```
Der Connector fügt die `key` Felder `bucket` und zur Antwort von Amazon S3 hinzu. Weitere Informationen zur Amazon S3 S3-Antwort finden Sie unter [PUT-Objekt](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html#RESTObjectPUT-responses) in der *Amazon Simple Storage Service API-Referenz*.  
**Beispielausgabe: Beispiel aufgrund der Samplingstrategie verworfen**  

```
{
  "response": {
    "status": "sample_dropped_by_strategy"
  },
  "id": "4bf5aeb0-d1e4-4362-5bb4-87c05de78ba3"
}
```  
**Beispielausgabe: Beispiel-Upload fehlgeschlagen**  
Ein Fehlerstatus enthält die Fehlermeldung als Wert für `error_message` und die Ausnahmeklasse als Wert für `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"
}
```  
**Beispielausgabe: Anforderung aufgrund des Anforderungslimits gedrosselt**  

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

**Themenfilter:** `feedback/message/prediction`  
Verwenden Sie dieses Thema, um auf Prognosen basierend auf hochgeladenen Daten zu achten. Auf diese Weise können Sie die Modellleistung in Echtzeit analysieren. Modellvorhersagen werden zu diesem Thema nur veröffentlicht, wenn Daten erfolgreich auf Amazon S3 hochgeladen wurden. Nachrichten, die in diesem Thema veröffentlicht werden, haben das JSON-Format. Sie enthalten den Link zu dem hochgeladenen Datenobjekt, die Prognose des Modells und die Metadaten in der Anforderung.  
Sie können Prognoseergebnisse auch speichern und mithilfe dieser Daten Trends im Laufe der Zeit melden und analysieren. Trends können wertvolle Erkenntnisse liefern. Ein Trend zu *abnehmender Genauigkeit im Zeitverlauf* kann Ihnen beispielsweise helfen, zu entscheiden, ob das Modell neu geschult werden muss.    
**Beispielausgabe**  

```
{
  "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"
  }
}
```
Sie können den [IoT Analytics Analytics-Connector](iot-analytics-connector.md) so konfigurieren, dass er dieses Thema abonniert und die Informationen AWS IoT Analytics zur weiteren oder historischen Analyse an diesen sendet.

**Themenfilter:** `cloudwatch/metric/put`  
Dies ist das Ausgabethema, das zum Veröffentlichen von Metriken in CloudWatch verwendet wird. Für diese Funktion müssen Sie den [CloudWatch Metrics-Connector](cloudwatch-metrics-connector.md) installieren und konfigurieren.  
Zu den Metriken gehören:  
+ Die Anzahl der hochgeladenen Beispiele.
+ Die Größe der hochgeladenen Beispiele.
+ Die Anzahl der Fehler bei Uploads auf Amazon S3.
+ Die Anzahl der verworfenen Beispiele basierend auf der Samplingstrategie.
+ Die Anzahl der gedrosselten Anforderungen.  
**Beispielausgabe: Größe des Datenbeispiels (veröffentlicht vor dem tatsächlichen Upload)**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 47592,
      "unit": "Bytes",
      "metricName": "SampleSize"
    }
  }
}
```  
**Beispielausgabe: Beispiel-Upload erfolgreich**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleUploadSuccess"
    }
  }
}
```  
**Beispielausgabe: Beispiel-Upload erfolgreich und Prognoseergebnis veröffentlicht**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleAndPredictionPublished"
    }
  }
}
```  
**Beispielausgabe: Beispiel-Upload fehlgeschlagen**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleUploadFailure"
    }
  }
}
```  
**Beispielausgabe: Beispiel aufgrund der Samplingstrategie verworfen**  

```
{
  "request": {
    "namespace": "GreengrassFeedbackConnector",
    "metricData": {
      "value": 1,
      "unit": "Count",
      "metricName": "SampleNotUsed"
    }
  }
}
```  
**Beispielausgabe: Anforderung aufgrund des Anforderungslimits gedrosselt**  

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

## Beispiel für die Verwendung
<a name="ml-feedback-connector-usage"></a>

Das folgende Beispiel ist eine benutzerdefinierte Lambda-Funktion, die das [AWS IoT Greengrass Machine Learning SDK](lambda-functions.md#lambda-sdks-ml) verwendet, um Daten an den ML-Feedback-Connector zu senden.

**Anmerkung**  
Sie können das AWS IoT Greengrass Machine Learning SDK von der AWS IoT Greengrass [Download-Seite herunterladen](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
```

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



Der ML Feedback Connector umfasst die folgende Software/Lizenzierung von Drittanbietern:<a name="boto-3-licenses"></a>
+ [AWS SDK für Python (Boto3)](https://pypi.org/project/boto3/)/Apache-Lizenz 2.0
+ [botocore](https://pypi.org/project/botocore/)/Apache-Lizenz 2.0
+ [dateutil](https://pypi.org/project/python-dateutil/1.4/)/PSF-Lizenz
+ [docutils](https://pypi.org/project/docutils/)/BSD-Lizenz, GNU General Public License (GPL), Python Software Foundation License, Public Domain
+ [jmespath](https://pypi.org/project/jmespath/)/MIT-Lizenz
+ [s3transfer](https://pypi.org/project/s3transfer/)/Apache-Lizenz 2.0
+ [urllib3](https://pypi.org/project/urllib3/)/MIT-Lizenz
+ <a name="six-license"></a>[six](https://github.com/benjaminp/six)/MIT

Dieser Connector ist im Rahmen der [Greengrass Core Software-Lizenzvereinbarung](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf) veröffentlicht.

## Weitere Informationen finden Sie auch unter
<a name="ml-feedback-connector-see-also"></a>
+ [Integrieren von Services und Protokollen mit Greengrass-Konnektoren](connectors.md)
+ [Erste Schritte mit Greengrass-Konnektoren (Konsole)](connectors-console.md)
+ [Erste Schritte mit Greengrass-Konnektoren (CLI)](connectors-cli.md)