

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.

# IoT
<a name="iot-pattern-list"></a>

**Topics**
+ [Extrahieren und Abfragen von AWS IoT SiteWise Metadatenattributen in einem Data Lake](extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake.md)
+ [Einrichtung und Fehlerbehebung von AWS IoT Greengrass mit Client-Geräten](set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.md)
+ [Mehr Muster](iot-more-patterns-pattern-list.md)

# Extrahieren und Abfragen von AWS IoT SiteWise Metadatenattributen in einem Data Lake
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake"></a>

*Ambarish Dongaonkar, Amazon Web Services*

## Zusammenfassung
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-summary"></a>

AWS IoT SiteWise verwendet Anlagenmodelle und Hierarchien, um Ihre Industrieanlagen, Prozesse und Anlagen darzustellen. Jedes Modell oder Asset kann mehrere Attribute haben, die für Ihre Umgebung spezifisch sind. Zu den Metadatenattributen gehören beispielsweise der Standort oder der physische Standort der Anlage, Anlagendetails und Gerätekennungen. Diese Attributwerte ergänzen die Messdaten der Anlagen, um den Geschäftswert zu maximieren. Maschinelles Lernen (ML) kann zusätzliche Einblicke in diese Metadaten liefern und technische Aufgaben rationalisieren.

Metadatenattribute können jedoch nicht direkt vom Service abgefragt werden. AWS IoT SiteWise Um die Attribute abfragbar zu machen, müssen Sie sie extrahieren und in einen Data Lake aufnehmen. Dieses Muster verwendet ein Python-Skript, um die Attribute für alle AWS IoT SiteWise Assets zu extrahieren und sie in einen Data Lake in einem Amazon Simple Storage Service (Amazon S3) -Bucket aufzunehmen. Wenn Sie diesen Vorgang abgeschlossen haben, können Sie SQL-Abfragen in Amazon Athena verwenden, um auf die AWS IoT SiteWise Metadatenattribute und andere Datensätze, z. B. Messdatensätze, zuzugreifen. Die Informationen zu den Metadatenattributen sind auch nützlich, wenn Sie mit AWS IoT SiteWise Monitoren oder Dashboards arbeiten. Sie können auch ein [Amazon Quick Sight-Dashboard](https://docs.aws.amazon.com/quicksuite/latest/userguide/quick-bi.html) erstellen, indem Sie die extrahierten Attribute im Amazon S3 S3-Bucket verwenden.

Das Muster hat einen Referenzcode, und Sie können den Code implementieren, indem Sie die für Ihren Anwendungsfall am besten geeigneten Rechendienste verwenden, z. B. AWS Lambda oder AWS Glue.

## Voraussetzungen und Einschränkungen
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-prereqs"></a>

**Voraussetzungen**
+ Ein aktiver AWS-Konto.
+ Berechtigungen zum Einrichten von AWS Lambda Funktionen oder AWS Glue Jobs.
+ Ein Amazon-S3-Bucket
+ Die Asset-Modelle und Hierarchien sind in AWS IoT SiteWise eingerichtet. Weitere Informationen finden Sie in der AWS IoT SiteWise Dokumentation unter [Asset-Modelle erstellen](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/create-asset-models.html).

## Architektur
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-architecture"></a>

Sie können eine Lambda-Funktion oder einen AWS Glue Job verwenden, um diesen Vorgang abzuschließen. Wir empfehlen die Verwendung von Lambda, wenn Sie weniger als 100 Modelle haben und jedes Modell durchschnittlich 15 oder weniger Attribute hat. Für alle anderen Anwendungsfälle empfehlen wir die Verwendung von AWS Glue.

Die Lösungsarchitektur und der Arbeitsablauf sind in der folgenden Abbildung dargestellt.

![\[Architekturdiagramm, das den beschriebenen Extraktions- und Abfrageprozess zeigt.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/22b59ff7-3df3-4a5b-9973-d43967bd58fd/images/fa3d80bf-df9a-49fe-971c-a055339b2cd2.png)


1. Der geplante AWS Glue Job oder die Lambda-Funktion wird ausgeführt. Es extrahiert die Asset-Metadatenattribute aus einem Amazon S3-Bucket AWS IoT SiteWise und nimmt sie in einen Amazon S3 S3-Bucket auf.

1. Ein AWS Glue Crawler crawlt die extrahierten Daten im Amazon S3 S3-Bucket und erstellt Tabellen in einem. AWS Glue Data Catalog

1. Mithilfe von Standard-SQL fragt Amazon Athena die Tabellen in der AWS Glue Data Catalog ab.

**Automatisierung und Skalierung**

Sie können die Lambda-Funktion oder den AWS Glue Lambda-Job so planen, dass sie täglich oder wöchentlich ausgeführt wird, je nach Aktualisierungshäufigkeit Ihrer AWS IoT SiteWise Asset-Konfigurationen.

Die Anzahl der AWS IoT SiteWise Assets, die der Beispielcode verarbeiten kann, ist unbegrenzt, aber eine große Anzahl von Assets kann den Zeitaufwand für den Abschluss des Prozesses erhöhen.

## Tools
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-tools"></a>
+ [Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/what-is.html) ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standard-SQL direkt in Amazon S3 analysieren können.
+ [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)ist ein vollständig verwalteter ETL-Service (Extrahieren, Transformieren und Laden). Er hilft Ihnen dabei, Daten zuverlässig zu kategorisieren, zu bereinigen, anzureichern und zwischen Datenspeichern und Datenströmen zu verschieben.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.
+ [AWS IoT SiteWise](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)hilft Ihnen dabei, Daten von Industrieanlagen in großem Maßstab zu sammeln, zu modellieren, zu analysieren und zu visualisieren.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.
+ [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.
+ [AWS SDK für Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html)ist ein Softwareentwicklungskit, mit dem Sie Ihre Python-Anwendung, -Bibliothek oder Ihr Skript integrieren können AWS-Services.

## Epen
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-epics"></a>

### Richten Sie den Job oder die Funktion ein
<a name="set-up-the-job-or-function"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Konfigurieren Sie Berechtigungen in IAM. | Erteilen Sie in der IAM-Konsole der IAM-Rolle, die von der Lambda-Funktion oder dem AWS Glue Lambda-Job angenommen wurde, die folgenden Berechtigungen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake.html)Weitere Informationen finden Sie in der IAM-Dokumentation unter [Eine AWS-Service Rolle für eine erstellen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html#roles-creatingrole-service-console). | Allgemeines AWS | 
| Erstellen Sie die Lambda-Funktion oder den AWS Glue Lambda-Job. | Wenn Sie Lambda verwenden, erstellen Sie eine neue Lambda-Funktion. Wählen Sie für **Runtime** **Python**. Weitere Informationen finden Sie unter [Erstellen von Lambda-Funktionen mit Python](https://docs.aws.amazon.com/lambda/latest/dg/lambda-python.html) in der Lambda-Dokumentation.Wenn Sie verwenden AWS Glue, erstellen Sie einen neuen Python-Shell-Job in der AWS Glue Konsole. Weitere Informationen finden Sie in der AWS Glue Dokumentation unter [Hinzufügen von Python-Shell-Jobs](https://docs.aws.amazon.com/glue/latest/dg/add-job-python.html#create-job-python-properties).  | Allgemeines AWS | 
| Aktualisieren Sie die Lambda-Funktion oder den AWS Glue Lambda-Job. | Ändern Sie die neue Lambda-Funktion oder den neuen AWS Glue Lambda-Job und geben Sie das Codebeispiel in den Abschnitt [Zusätzliche Informationen](#extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-additional) ein. Ändern Sie den Code nach Bedarf für Ihren Anwendungsfall. Weitere Informationen finden Sie in der Lambda-Dokumentation [unter Code mit dem Konsolen-Editor bearbeiten](https://docs.aws.amazon.com/lambda/latest/dg/foundation-console.html#code-editor) und in der Dokumentation unter [Arbeiten mit Skripts](https://docs.aws.amazon.com/glue/latest/dg/console-edit-script.html).AWS Glue  | Allgemeines AWS | 

### Führen Sie den Job oder die Funktion aus
<a name="run-the-job-or-function"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Führen Sie die Lambda-Funktion oder den AWS Glue Lambda-Job aus. | Führen Sie die Lambda-Funktion oder den AWS Glue Lambda-Job aus. Weitere Informationen finden Sie in der Lambda-Dokumentation unter [Aufrufen der Lambda-Funktion](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html#get-started-invoke-manually) oder in der Dokumentation unter [Jobs mithilfe von Triggern starten](https://docs.aws.amazon.com/glue/latest/dg/trigger-job.html). AWS Glue Dadurch werden die Metadatenattribute für die Assets und Modelle in der AWS IoT SiteWise Hierarchie extrahiert und im angegebenen Amazon S3 S3-Bucket gespeichert. | Allgemeines AWS | 
| Richten Sie einen AWS Glue Crawler ein. | Richten Sie einen AWS Glue Crawler mit dem erforderlichen Formatklassifizierer für eine CSV-formatierte Datei ein. Verwenden Sie den Amazon S3 S3-Bucket und die Präfixdetails, die in der Lambda-Funktion oder dem AWS Glue Lambda-Job verwendet werden. Weitere Informationen finden Sie in der Dokumentation unter [Definieren von Crawlern](https://docs.aws.amazon.com/glue/latest/dg/add-crawler.html). AWS Glue  | Allgemeines AWS | 
| Starte den AWS Glue Crawler. | Führen Sie den Crawler aus, um die von der Lambda-Funktion oder AWS Glue dem Lambda-Job erstellte Datendatei zu verarbeiten. Der Crawler erstellt eine Tabelle in der angegebenen Datei. AWS Glue Data Catalog Weitere Informationen finden Sie unter oder [Crawler mithilfe von Triggern starten](https://docs.aws.amazon.com/glue/latest/dg/trigger-job.html) in der AWS Glue Dokumentation. | Allgemeines AWS | 
| Fragen Sie die Metadatenattribute ab. | Verwenden Sie Amazon Athena, um Standard-SQL abzufragen, AWS Glue Data Catalog wie es für Ihren Anwendungsfall erforderlich ist. Sie können die Metadaten-Attributtabelle mit anderen Datenbanken und Tabellen verknüpfen. Weitere Informationen finden Sie unter [Erste Schritte](https://docs.aws.amazon.com/athena/latest/ug/getting-started.html) in der Amazon Athena Athena-Dokumentation. | Allgemeines AWS | 

## Zugehörige Ressourcen
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-resources"></a>
+ [Amazon Athena Athena-Dokumentation](https://docs.aws.amazon.com/athena/latest/ug/what-is.html)
+ [AWS Glue Dokumentation](https://docs.aws.amazon.com/glue/latest/dg/what-is-glue.html)
+ [AWS IoT SiteWise API-Referenz](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotsitewise/index.html)
+ [AWS IoT SiteWise benutzerhandbuch](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/what-is-sitewise.html)
  + [Erste Schritte](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/getting-started.html)
  + [Modellierung von Industrieanlagen](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/industrial-asset-models.html)
  + [Definition von Beziehungen zwischen Anlagenmodellen (Hierarchien)](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/asset-hierarchies.html)
  + [Vermögenswerte zuordnen und deren Zuordnung aufheben](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/add-associated-assets.html)
  + [Die Demo wird erstellt AWS IoT SiteWise](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/getting-started-demo.html#create-getting-started-demo)
+ [IOTSiteWise](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iotsitewise.html) (SDK für Python-Dokumentation)
+ [Lambda-Dokumentation](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html)

## Zusätzliche Informationen
<a name="extract-and-query-aws-iot-sitewise-metadata-attributes-in-a-data-lake-additional"></a>

**Code**

Der bereitgestellte Beispielcode dient als Referenz, und Sie können diesen Code nach Bedarf für Ihren Anwendungsfall anpassen.

```
# Following code can be used in an AWS Lambda function or in an AWS Glue Python shell job. 
# IAM roles used for this job need read access to the AWS IoT SiteWise service and write access to the S3 bucket.
sw_client = boto3.client('iotsitewise')
s3_client = boto3.client('s3')
output = io.StringIO()
 
attribute_list=[]
bucket = '{3_bucket name}'
prefix = '{s3_bucket prefix}'
output.write("model_id,model_name,asset_id,asset_name,attribuet_id,attribute_name,attribute_value\n")
     
m_resp = sw_client.list_asset_models()
for m_rec in m_resp['assetModelSummaries']:
     model_id = m_rec['id']
     model_name = m_rec['name']
 
     attribute_list.clear()
     dam_response = sw_client.describe_asset_model(assetModelId=model_id)
     for rec in dam_response['assetModelProperties']:
         if 'attribute' in rec['type']:
            attribute_list.append(rec['name'])
     
     response = sw_client.list_assets(assetModelId=model_id, filter='ALL')
     for asset in response['assetSummaries']:
         asset_id = asset['id']
         asset_name = asset['name']
         resp = sw_client.describe_asset(assetId=asset_id)
         for rec in resp['assetProperties']:
            if rec['name'] in attribute_list:
                p_resp = sw_client.get_asset_property_value(assetId=asset_id, propertyId=rec['id'])
                if 'propertyValue' in p_resp:
                    if p_resp['propertyValue']['value']:
                        if 'stringValue' in p_resp['propertyValue']['value']:
                             output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['stringValue']) + "\n")                             
                        if 'doubleValue' in p_resp['propertyValue']['value']:
                             output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['doubleValue']) + "\n")
                        if 'integerValue' in p_resp['propertyValue']['value']:
                             output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['integerValue']) + "\n")
                         if 'booleanValue' in p_resp['propertyValue']['value']:
                             output.write(model_id + "," + model_name + "," + asset_id + "," + asset_name + "," + rec['id'] + "," + rec['name'] + "," + str(p_resp['propertyValue']['value']['booleanValue']) + "\n")
 
output.seek(0)
s3_client.put_object(Bucket=bucket, Key= prefix + '/data.csv', Body=output.getvalue())
output.close()
```

# Einrichtung und Fehlerbehebung von AWS IoT Greengrass mit Client-Geräten
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices"></a>

*Marouane Sefiani und Akalanka De Silva, Amazon Web Services*

## Zusammenfassung
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-summary"></a>

AWS IoT Greengrass ist ein Open-Source-Edge-Laufzeit- und Cloud-Service für die Erstellung, Bereitstellung und Verwaltung von Internet of Things (IoT) -Software auf Edge-Geräten. Zu den Anwendungsfällen für AWS IoT Greengrass gehören:
+ Intelligente Häuser, in denen ein AWS IoT Greengrass-Gateway als Hub für die Hausautomation verwendet wird
+ Intelligente Fabriken, in denen AWS IoT Greengrass die Erfassung und lokale Verarbeitung von Daten aus der Fertigung erleichtern kann

AWS IoT Greengrass kann als sicherer, authentifizierter MQTT-Verbindungsendpunkt für andere Edge-Geräte (auch als *Client-Geräte* bezeichnet) fungieren, die andernfalls normalerweise eine direkte Verbindung zu AWS IoT Core herstellen würden. Diese Funktion ist nützlich, wenn Client-Geräte keinen direkten Netzwerkzugriff auf den AWS IoT Core Core-Endpunkt haben.

Sie können AWS IoT Greengrass für die Verwendung mit Client-Geräten für die folgenden Anwendungsfälle einrichten:
+ Für Client-Geräte, um Daten an AWS IoT Greengrass zu senden
+ Für AWS IoT Greengrass zur Weiterleitung von Daten an AWS IoT Core
+ Um die Vorteile der erweiterten Funktionen der AWS IoT Core Rules Engine zu nutzen

Diese Funktionen erfordern die Installation und Konfiguration der folgenden Komponenten auf dem AWS IoT Greengrass-Gerät:
+ MQTT-Broker
+ MQTT-Brücke
+ Authentifizierung von Client-Geräten
+ IP-Detektor

Darüber hinaus müssen veröffentlichte Nachrichten von Client-Geräten im JSON-Format oder im [Protocol Buffer-Format (Protobuf](https://protobuf.dev/)) vorliegen.

Dieses Muster beschreibt, wie diese erforderlichen Komponenten installiert und konfiguriert werden, und bietet Tipps und bewährte Methoden zur Fehlerbehebung.

## Voraussetzungen und Einschränkungen
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-prereqs"></a>

**Voraussetzungen**
+ Ein aktives AWS-Konto
+ [AWS-Befehlszeilenschnittstelle (AWS CLI) Version 2](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)
+ Zwei Client-Geräte, auf denen Python 3.7 oder höher ausgeführt wird
+ [Ein Core-Gerät mit Java Runtime Environment (JRE) Version 8 oder höher und [Amazon Corretto 11 oder OpenJDK 11](https://aws.amazon.com/corretto/)](https://openjdk.java.net/)

**Einschränkungen**
+ Sie müssen eine AWS-Region wählen, in der AWS IoT Core verfügbar ist. Die aktuelle Liste der Regionen für AWS IoT Core finden Sie unter [AWS-Services nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/).
+ Das Kerngerät muss über mindestens 172 MB RAM und 512 MB Festplattenspeicher verfügen.

## Architektur
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-architecture"></a>

Das folgende Diagramm zeigt die Lösungsarchitektur für dieses Muster.

![\[Lösungsarchitektur für die Einrichtung von AWS IoT Greengrass mit Client-Geräten\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/a340e6ea-dcfa-42a4-a370-c16ee08a6842/images/0656c5ae-d979-4cf7-be92-a46fa81cab0d.png)


Die Architektur umfasst:
+ Zwei Client-Geräte. Jedes Gerät enthält einen privaten Schlüssel, ein Gerätezertifikat und ein Zertifikat der Stammzertifizierungsstelle (CA). Das AWS IoT Device SDK, das einen MQTT-Client enthält, ist ebenfalls auf jedem Client-Gerät installiert.
+ Ein Kerngerät, auf dem AWS IoT Greengrass mit den folgenden Komponenten bereitgestellt wird:
  + MQTT-Broker
  + MQTT-Brücke
  + Authentifizierung von Client-Geräten
  + IP-Detektor

Diese Architektur unterstützt die folgenden Szenarien:
+ Client-Geräte können ihren MQTT-Client verwenden, um über den MQTT-Broker des Kerngeräts miteinander zu kommunizieren.
+ Client-Geräte können auch mit AWS IoT Core in der Cloud über den MQTT-Broker des Kerngeräts und die MQTT-Bridge kommunizieren.
+ AWS IoT Core in der Cloud kann über den MQTT-Testclient und die MQTT-Bridge und den MQTT-Broker des Kerngeräts Nachrichten an Client-Geräte senden.

Weitere Informationen zur Kommunikation zwischen Client-Geräten und dem Core-Gerät finden Sie im Abschnitt [Zusätzliche](#set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-additional) Informationen.

## Tools
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-tools"></a>

**AWS-Services**
+ [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html) ist ein Open-Source-Edge-Runtime- und Cloud-Service für das Internet der Dinge (IoT), mit dem Sie IoT-Anwendungen auf Ihren Geräten erstellen, bereitstellen und verwalten können.
+ [AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html) bietet sichere, bidirektionale Kommunikation für mit dem Internet verbundene Geräte, um eine Verbindung zur AWS-Cloud herzustellen.
+ Das [AWS IoT Device SDK](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) ist ein Software-Entwicklungskit, das Open-Source-Bibliotheken, Entwicklerhandbücher mit Beispielen und Portierungsleitfäden enthält, sodass Sie innovative IoT-Produkte oder -Lösungen auf den Hardwareplattformen Ihrer Wahl entwickeln können.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

## Best Practices
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-best-practices"></a>
+ Die Nutzdaten der Nachrichten von Client-Geräten sollten entweder im JSON- oder Protobuf-Format vorliegen, um die erweiterten Funktionen der AWS IoT Core Rules Engine, wie Transformation und bedingte Aktionen, nutzen zu können.
+ Konfigurieren Sie die MQTT-Bridge so, dass sie eine bidirektionale Kommunikation ermöglicht.
+ Konfigurieren und implementieren Sie die IP-Detektorkomponente in AWS IoT Greengrass, um sicherzustellen, dass die IP-Adressen des Kerngeräts im Feld Subject Alternative Name (SAN) des MQTT-Brokerzertifikats enthalten sind.

## Epen
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-epics"></a>

### Richten Sie das Kerngerät ein
<a name="set-up-the-core-device"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Richten Sie AWS IoT Greengrass auf Ihrem Kerngerät ein. | Installieren Sie die AWS IoT Greengrass Core-Software, indem Sie den Anweisungen im [Entwicklerhandbuch](https://docs.aws.amazon.com/greengrass/v2/developerguide/install-greengrass-core-v2.html) folgen. | AWS IoT Greengrass | 
| Überprüfen Sie den Status Ihrer Installation. | Verwenden Sie den folgenden Befehl, um den Status des AWS IoT Greengrass-Service auf Ihrem Kerngerät zu überprüfen:<pre>sudo systemctl status greengrass.service</pre>Die erwartete Ausgabe des Befehls lautet:<pre>Launched Nucleus successfully</pre> | Allgemeines AWS | 
| Richten Sie eine IAM-Richtlinie ein und fügen Sie sie der Greengrass-Servicerolle hinzu. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html) | Allgemeines AWS | 
| Konfigurieren und implementieren Sie die erforderlichen Komponenten auf dem AWS IoT Greengrass-Kerngerät. | Konfigurieren und implementieren Sie die folgenden Komponenten:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html) | AWS IoT Greengrass | 
| Vergewissern Sie sich, dass die MQTT-Bridge eine bidirektionale Kommunikation ermöglicht. | Um MQTT-Nachrichten zwischen Client-Geräten und AWS IoT Core weiterzuleiten, konfigurieren und implementieren Sie die MQTT-Bridge-Komponente und geben Sie die Themen an, die weitergeleitet werden sollen. Ein Beispiel:<pre>{<br />  "mqttTopicMapping": {<br />    "ClientDevicesToCloud": {<br />      "topic": "dt/#",<br />      "source": "LocalMqtt",<br />      "target": "IotCore"<br />    },<br />    "CloudToClientDevices": {<br />      "topic": "cmd/#",<br />      "source": "IotCore",<br />      "target": "LocalMqtt"<br />    }<br />  }<br />}</pre> | AWS IoT Greengrass | 
| Vergewissern Sie sich, dass die Authentifizierungskomponente es Client-Geräten ermöglicht, sich zu verbinden und Themen zu veröffentlichen oder zu abonnieren.  | Die folgende `aws.greengrass.clientdevices.Auth` Konfiguration ermöglicht es allen Client-Geräten, eine Verbindung herzustellen, Nachrichten zu veröffentlichen und alle Themen zu abonnieren.<pre>{<br />  "deviceGroups": {<br />    "formatVersion": "2021-03-05",<br />    "definitions": {<br />      "MyPermissiveDeviceGroup": {<br />        "selectionRule": "thingName: *",<br />        "policyName": "MyPermissivePolicy"<br />      }<br />    },<br />    "policies": {<br />      "MyPermissivePolicy": {<br />        "AllowAll": {<br />          "statementDescription": "Allow client devices to perform all actions.",<br />          "operations": [<br />            "*"<br />          ],<br />          "resources": [<br />            "*"<br />          ]<br />        }<br />      }<br />    }<br />  }<br />}</pre> | AWS IoT Greengrass | 

### Richten Sie Client-Geräte ein
<a name="set-up-client-devices"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Installieren Sie das AWS IoT Device SDK. | Installieren Sie das AWS IoT Device SDK auf Client-Geräten. Eine vollständige Liste der unterstützten Sprachen und der zugehörigen SDKs Sprachen finden Sie in der [AWS IoT Core Core-Dokumentation](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html).Das AWS IoT Device SDK für Python SDK [befindet sich beispielsweise auf GitHub](https://github.com/aws/aws-iot-device-sdk-python-v2). Um dieses SDK zu installieren:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html)Alternativ können Sie das SDK aus dem Quell-Repository installieren:<pre># Create a workspace directory to hold all the SDK files<br />mkdir sdk-workspace<br />cd sdk-workspace<br /># Clone the repository<br />git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git<br /># Install using Pip (use 'python' instead of 'python3' on Windows)<br />python3 -m pip install ./aws-iot-device-sdk-python-v2</pre> | Allgemeines AWS IoT | 
| Erschaffe ein Ding. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html) | AWS IoT Core | 
| Laden Sie das CA-Zertifikat vom Greengrass-Core-Gerät herunter. | Wenn Sie erwarten, dass das Greengrass-Core-Gerät in Offline-Umgebungen funktioniert, müssen Sie das Greengrass-Core-CA-Zertifikat für das Client-Gerät verfügbar machen, damit es das Zertifikat des MQTT-Brokers (das von der Greengrass Core CA ausgestellt wurde) verifizieren kann. Daher ist es wichtig, eine Kopie dieses Zertifikats zu erhalten. Verwenden Sie eine der folgenden Methoden, um das CA-Zertifikat herunterzuladen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html) | Allgemeines AWS | 
| Kopieren Sie die Anmeldeinformationen auf den Client-Geräten. | Kopieren Sie das Greengrass Core CA-Zertifikat, das Gerätezertifikat und den privaten Schlüssel auf die Client-Geräte. | Allgemeines AWS | 
| Ordnen Sie Client-Geräte dem Kerngerät zu. | Ordnen Sie Client-Geräte einem Core-Gerät zu, sodass sie das Core-Gerät erkennen können. Die Client-Geräte können dann die [Greengrass Discovery API](https://docs.aws.amazon.com/greengrass/v2/developerguide/greengrass-discover-api.html) verwenden, um Verbindungsinformationen und Zertifikate für ihre zugehörigen Kerngeräte abzurufen. Weitere Informationen finden Sie unter [Client-Geräte zuordnen](https://docs.aws.amazon.com/greengrass/v2/developerguide/associate-client-devices.html) in der AWS IoT Greengrass-Dokumentation.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html)Die Client-Geräte, die Sie verknüpft haben, können jetzt die Greengrass Discovery API verwenden, um dieses Kerngerät zu erkennen. | AWS IoT Greengrass | 

### Daten senden und empfangen
<a name="send-and-receive-data"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Senden Sie Daten von einem Client-Gerät an ein anderes Client-Gerät. | Verwenden Sie den MQTT-Client auf Ihrem Gerät, um eine Nachricht zu `dt/client1/sensor` diesem Thema zu veröffentlichen. | Allgemeines AWS | 
| Senden Sie Daten vom Client-Gerät an AWS IoT Core. | Verwenden Sie den MQTT-Client auf Ihrem Gerät, um eine Nachricht zu `dt/client1/sensor` diesem Thema zu veröffentlichen.Abonnieren Sie im MQTT-Testclient das Thema, zu dem das Gerät Nachrichten sendet, oder abonnieren Sie **\$1** für alle Themen (siehe [Details](https://docs.aws.amazon.com/iot/latest/developerguide/view-mqtt-messages.html)). | Allgemeines AWS | 
| Senden Sie Nachrichten von AWS IoT Core an Client-Geräte. | Geben Sie auf der MQTT-Testclient-Seite **auf der Registerkarte In einem Thema veröffentlichen** **im Feld Themenname** den Themennamen Ihrer Nachricht ein. Verwenden Sie in diesem Beispiel `cmd/client1` für das Thema. | Allgemeines AWS | 

## Fehlerbehebung
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| **Fehler beim Serverzertifikat konnte nicht verifiziert werden** | Dieser Fehler tritt auf, wenn der MQTT-Client das vom MQTT-Broker während des TLS-Handshakes vorgelegte Zertifikat nicht verifizieren kann. Der häufigste Grund ist, dass der MQTT-Client nicht über das CA-Zertifikat verfügt. Gehen Sie wie folgt vor, um sicherzustellen, dass das CA-Zertifikat dem MQTT-Client zur Verfügung gestellt wird.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices.html) | 
| **Fehler beim Überprüfen des Servernamens nicht möglich** | Dieser Fehler tritt auf, wenn der MQTT-Client nicht überprüfen kann, ob er sich mit dem richtigen Server verbindet. Der häufigste Grund ist, dass die IP-Adresse des Greengrass-Geräts nicht im SAN-Feld des Zertifikats aufgeführt ist.Folgen Sie den Anweisungen in der vorherigen Lösung, um das MQTT-Broker-Zertifikat zu erhalten, und stellen Sie sicher, dass das SAN-Feld die IP-Adresse des AWS IoT Greengrass-Geräts enthält, wie im Abschnitt [Zusätzliche Informationen](#set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-additional) erklärt. Falls nicht, stellen Sie sicher, dass die IP-Detektorkomponente korrekt installiert ist, und starten Sie das Kerngerät neu. | 
| **Der Servername konnte nicht nur überprüft werden, wenn die Verbindung von einem eingebetteten Client-Gerät aus hergestellt wurde** | Mbed TLS, eine beliebte TLS-Bibliothek, die in eingebetteten Geräten verwendet wird, unterstützt derzeit nur die DNS-Namensüberprüfung im SAN-Feld des Zertifikats, wie im Mbed TLS-Bibliothekscode gezeigt. Da das Kerngerät keinen eigenen Domainnamen hat und von der IP-Adresse abhängt, schlagen TLS-Clients, die Mbed TLS verwenden, die Überprüfung des Servernamens während des TLS-Handshakes fehl, was zu einem Verbindungsfehler führt. [Wir empfehlen, dass Sie die SAN-IP-Adressverifizierung über die Funktion x509\$1crt\$1check\$1san zu Ihrer Mbed-TLS-Bibliothek hinzufügen.](https://github.com/Mbed-TLS/mbedtls/blob/6a327a5fdc2786cb50b4dbe5e3a75884a1f8435a/library/x509_crt.c#L2548) | 

## Zugehörige Ressourcen
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-resources"></a>
+ [Dokumentation zu AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/what-is-iot-greengrass.html)
+ [Dokumentation zu AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-iot.html)
+ [MQTT-Broker-Komponente](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-broker-moquette-component.html)
+ [MQTT-Bridge-Komponente](https://docs.aws.amazon.com/greengrass/v2/developerguide/mqtt-bridge-component.html)
+ [Authentifizierungskomponente für Client-Geräte](https://docs.aws.amazon.com/greengrass/v2/developerguide/client-device-auth-component.html)
+ [Komponente des IP-Detektors](https://docs.aws.amazon.com/greengrass/v2/developerguide/ip-detector-component.html)
+ [AWS IoT IoT-Geräte-SDK](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html) s
+ [Implementierung lokaler Client-Geräte mit AWS IoT Greengrass](https://aws.amazon.com/blogs/iot/implementing-local-client-devices-with-aws-iot-greengrass/) (AWS-Blogbeitrag)
+ [RFC 5280 — Internet X.509-Infrastrukturzertifikat und CRL-Profil (Certificate Revocation List)](https://www.rfc-editor.org/rfc/rfc5280)

## Zusätzliche Informationen
<a name="set-up-and-troubleshoot-aws-iot-greengrass-with-client-devices-additional"></a>

Dieser Abschnitt enthält zusätzliche Informationen zur Kommunikation zwischen den Client-Geräten und dem Core-Gerät.

Der MQTT-Broker wartet auf Port 8883 im Kerngerät auf einen Verbindungsversuch mit dem TLS-Client. Die folgende Abbildung zeigt ein Beispiel für ein Serverzertifikat des MQTT-Brokers.

![\[Beispiel für ein MQTT-Broker-Serverzertifikat\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/a340e6ea-dcfa-42a4-a370-c16ee08a6842/images/b2c324a1-60cd-4194-80e7-e5184662146a.png)


Das Beispielzertifikat zeigt die folgenden Details an:
+ Das Zertifikat wird von der AWS IoT Greengrass Core CA ausgestellt, die lokal und spezifisch für das Kerngerät ist. Das heißt, sie fungiert als lokale CA.
+ Dieses Zertifikat wird automatisch jede Woche von der Client-Authentifizierungskomponente rotiert, wie in der folgenden Abbildung dargestellt. Sie können dieses Intervall in der Konfiguration der Client-Authentifizierungskomponente festlegen.

![\[Rotation des Serverzertifikats des MQTT-Brokers\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/a340e6ea-dcfa-42a4-a370-c16ee08a6842/images/65bcdc5c-a71c-4f52-adcd-21910fabfc2a.png)

+ Der alternative Subject Name (SAN) spielt eine entscheidende Rolle bei der Überprüfung des Servernamens auf der Seite des TLS-Clients. Damit kann der TLS-Client sicherstellen, dass er sich mit dem richtigen Server verbindet, und verhindert man-in-the-middle Angriffe bei der Einrichtung der TLS-Sitzung. Im Beispielzertifikat gibt das SAN-Feld an, dass dieser Server auf localhost (dem lokalen Unix-Domain-Socket) lauscht und die Netzwerkschnittstelle die IP-Adresse 192.168.1.12 hat.

Der TLS-Client verwendet das SAN-Feld im Zertifikat, um bei der Serververifizierung zu überprüfen, ob er eine Verbindung zu einem legitimen Server herstellt. Im Gegensatz dazu wird bei einem typischen TLS-Handshake zwischen einem HTTP-Server und einem Browser der Domainname im Feld Common Name (CN) oder SAN verwendet, um die Domain zu überprüfen, zu der der Browser während der Serververifizierung tatsächlich eine Verbindung herstellt. Wenn das Kerngerät keinen Domainnamen hat, dient die im SAN-Feld angegebene IP-Adresse demselben Zweck. Weitere Informationen finden Sie im [Abschnitt „Alternativer Betreffname“ des Profils](https://www.rfc-editor.org/rfc/rfc5280#section-4.2.1.6) *RFC 5280 — Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL)*.

Die IP-Detektorkomponente in AWS IoT Greengrass stellt sicher, dass die richtigen IP-Adressen im SAN-Feld des Zertifikats enthalten sind.

Das Zertifikat im Beispiel ist vom AWS IoT Greengrass-Gerät signiert, das als lokale Zertifizierungsstelle fungiert. Der TLS-Client (MQTT-Client) kennt diese CA nicht, daher müssen wir ein CA-Zertifikat bereitstellen, das wie folgt aussieht.

![\[Beispiel für ein CA-Zertifikat\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/a340e6ea-dcfa-42a4-a370-c16ee08a6842/images/b08b3bcb-9e12-4f5a-9204-cf65ea32902f.png)


# Mehr Muster
<a name="iot-more-patterns-pattern-list"></a>

**Topics**
+ [Mit AWS IoT Greengrass IoT-Daten kostengünstig direkt in Amazon S3 aufnehmen](cost-effectively-ingest-iot-data-directly-into-amazon-s3-using-aws-iot-greengrass.md)
+ [Stellen Sie mithilfe von Terraform Agentensysteme auf Amazon Bedrock mit dem CrewAI-Framework bereit](deploy-agentic-systems-on-amazon-bedrock-with-the-crewai-framework.md)
+ [Stellen Sie containerisierte Anwendungen bereit, wenn AWS IoT Greengrass V2 sie als Docker-Container ausgeführt werden](deploy-containerized-applications-on-aws-iot-greengrass-version-2-running-as-a-docker-container.md)