

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.

# aws-apigateway-iot
<a name="aws-apigateway-iot"></a>

![](http://docs.aws.amazon.com/de_de/solutions/latest/constructs/images/experimental.png)


 Alle Klassen befinden sich in aktiver Entwicklung und unterliegen nicht abwärtskompatiblen Änderungen oder Entfernen in jeder zukünftigen Version. Diese unterliegen nicht der[Semantische Versionierung](https://semver.org/)Modell. Dies bedeutet, dass Sie möglicherweise Ihren Quellcode aktualisieren müssen, wenn Sie auf eine neuere Version dieses Pakets aktualisieren. 

**Hinweis:** Um eine ordnungsgemäße Funktionalität sicherzustellen, müssen die AWS Solutions Constructs Pakete und AWS CDK-Pakete in Ihrem Projekt dieselbe Version aufweisen. 


|  **Sprache**  |  **Paket**  | 
| --- | --- | 
|  ![](http://docs.aws.amazon.com/de_de/solutions/latest/constructs/images/python.png) Python  |  aws\_solutions\_constructs.aws\_apigateway\_iot  | 
|  ![](http://docs.aws.amazon.com/de_de/solutions/latest/constructs/images/typescript.png) TypeScript  |  @aws-solutions-constructs/aws-apigateway-iot  | 
|  ![](http://docs.aws.amazon.com/de_de/solutions/latest/constructs/images/java.png) Java  |  software.amazon.awsconstructs.services.apigatewayiot  | 

## Overview
<a name="overview-32"></a>

 Dieses AWS Solutions Construct implementiert eine Amazon API Gateway REST-API, die mit dem AWS IoT Muster verbunden ist. 

 Dieses Konstrukt erstellt einen skalierbaren HTTPS-Proxy zwischen API Gateway und AWS IoT. Dies ist praktisch, wenn Legacy-Geräte, die das MQTT- oder MQTT/WebSocket-Protokoll nicht unterstützen, mit der AWS IoT Plattform interagieren möchten. 

 Diese Implementierung ermöglicht die Veröffentlichung von schreibgeschützten Nachrichten zu bestimmten MQTT-Themen und unterstützt außerdem Schattenaktualisierungen von HTTPS-Geräten für zulässige Elemente in der Geräteregistrierung. Es umfasst keine Lambda Funktionen zum Proxygen von Nachrichten und stützt sich stattdessen auf die direkte Integration von API Gateway zu AWS IoT, die sowohl JSON-Nachrichten als auch binäre Nachrichten unterstützt. 

 Hier ist eine minimale bereitstellbare Musterdefinition in TypeScript:

```
import { ApiGatewayToIot } from '@aws-solutions-constructs/aws-apigateway-iot';

new ApiGatewayToIot(this, 'ApiGatewayToIotPattern', {
    iotEndpoint: 'a1234567890123-ats'
});
```

## Initializer
<a name="initializer-32"></a>

```
new ApiGatewayToIot(scope: Construct, id: string, props: ApiGatewayToIotProps);
```

 *Parameter* 
+  Bereich[https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_core.Construct.html) 
+  id`string` 
+  props[`ApiGatewayToIotProps`](#pattern-construct-props-32) 

## Muster-Requisiten
<a name="pattern-construct-props-32"></a>


|  **Name**  |  **Typ**  |  **Beschreibung**  | 
| --- | --- | --- | 
|  IOtendPoint  |  string  |  Die AWS IoT Endpunkt-Subdomain, in die das API Gateway integriert werden soll (z. B. a1234567890123-ats).  | 
|  ApigatewayCreateApikey?  |  boolean  |  Wenn auf gesetzttruewird ein API-Schlüssel erstellt und einem UsagePlan zugeordnet. Der Benutzer sollte den Header `x-api-key` angeben, während er auf RestApi zugreift. Standardwert auffalse.  | 
|  ApigatewayExecutionRole?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  Die IAM-Rolle, die von API Gateway für den Zugriff auf AWS IoT verwendet wird. Wenn nicht angegeben, wird eine Standardrolle mit Platzhalterzeichen ('\*') auf alle Themen und Dinge erstellt.  | 
|  ApigatewayProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApiProps.html)  |  Optionale, vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standard-Requisiten für die API Gateway REST API. | 
|  LogGroupProps?  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroupProps.html)  |  Optionale, vom Benutzer bereitgestellte Requisiten zum Überschreiben der Standardprops für die CloudWatch Logs s-Protokollgruppe  | 

## Muster-Eigenschaften
<a name="pattern-properties-32"></a>


|  **Name**  |  **Typ**  |  **Beschreibung**  | 
| --- | --- | --- | 
|  ApiGateways  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-apigateway.RestApi.html)  |  Gibt eine Instanz der API Gateway REST-API zurück, die durch das Muster erstellt wurde.  | 
|  ApigatewayCloudWatchRole  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  Gibt eine Instanz der IAM-Rolle zurück, die durch das Muster erstellt wurde, das die Zugriffsprotokollierung von der API Gateway REST-API zu CloudWatch ermöglicht.  | 
|  ApigatewayLogGroup  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)  |  Gibt eine Instanz der Protokollgruppe zurück, die durch das Muster erstellt wurde, an das API Gateway REST-API-Zugriffsprotokolle gesendet werden.  | 
|  ApigatewayRolle  |  [https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)  |  Gibt eine Instanz der IAM-Rolle zurück, die durch das Muster für die API Gateway REST-API erstellt wurde.  | 

## Standardeinstellungen
<a name="default-settings-32"></a>

 Die vorgefertigte Implementierung dieses Musters ohne Überschreibungen setzt die folgenden Standardwerte:

### Amazon API Gateway
<a name="amazon-api-gateway-32"></a>
+  Bereitstellen eines Edge-optimierten API-Endpunkts 
+  Erstellt API-Ressourcen mit`POST`Veröffentlichen von Nachrichten in IoT -Themen 
+  Erstellt API-Ressourcen mit`POST`Methode zum Veröffentlichen von Nachrichten`ThingShadow`und`NamedShadows` 
+  Aktivieren von CloudWatch Protokollierung für API Gateway 
+  Konfigurieren der IAM-Rolle für API Gateway mit Zugriff auf alle Themen und Dinge 
+  Legen Sie den standardmäßigen AuthorizationType für alle API-Methoden auf IAM fest. 
+  X-Ray Nachverfolgung aktivieren 
+  Erstellt einen UsagePlan und ordnet`prod`stage 

 Im Folgenden finden Sie eine Beschreibung der verschiedenen Ressourcen und Methoden, die das API Gateway nach der Bereitstellung des Construct zur Verfügung stellt. Siehe die[Beispiele](#examples-32)finden Sie weitere Informationen zum einfachen Testen dieser Endpunkte mithilfe von`curl`. 


|  **Art**  |  **Ressource**  |  **Abfrageparameter (e)**  |  **Rückgabecode (e)**  |  **Beschreibung**  | 
| --- | --- | --- | --- | --- | 
|  POST  |  /message/<topics>  |  qos  |  200/403/500  |  Wenn Sie diesen Endpunkt aufrufen, müssen Sie die Themen weiterleiten, die Sie veröffentlichen möchten (z.B. `/message/device/foo`).  | 
|  POST  |  /shadow/<thingName>  |  Keine  |  200/403/500  |  Diese Route ermöglicht es, das Schattendokument einer Sache zu aktualisieren, da seinethingNameUnbenannter (klassischer) Schatten verwenden. Die Karosserie muss der Standardschattenstuktur entsprechen, die einestateKnoten und zugeordnetendesiredundreported-Knoten. Siehe die[Aktualisieren von Geräteschatten](#updating-device-shadows-32)-Abschnitt für ein Beispiel.  | 
|  POST  |  /shadow/<thingName>/<shadowName>  |  Keine  |  200/403/500  |  Diese Route ermöglicht es, das benannte Schattendokument einer Sache zu aktualisieren, da seinethingNameund dieshadowNamemit dem Typ „Benannter Schatten“. Die Karosserie muss der Standardschattenstuktur entsprechen, die einestateKnoten und zugeordnetendesiredundreported-Knoten. Siehe die[Aktualisieren von benannten Schatten](#updating-named-shadows-32)-Abschnitt für ein Beispiel.  | 

## Architecture
<a name="w23aab9c23c21"></a>

![](http://docs.aws.amazon.com/de_de/solutions/latest/constructs/images/aws-apigateway-iot.png)


## Examples
<a name="examples-32"></a>

Die folgenden Beispiele funktionieren nur bei`API_KEY`, da die IAM-Autorisierung erfordert, dass auch ein SigV4-Token angegeben werden muss, stellen Sie sicher, dass die`apiGatewayCreateApiKey`-Eigenschaft Ihrer Construct Requisiten auf`true`während der Bereitstellung des Stacks, sonst funktionieren die folgenden Beispiele nicht.

### Veröffentlichen einer Nachricht
<a name="publishing-a-message-32"></a>

Sie können mithilfe von`curl`, um eine Nachricht zu verschiedenen MQTT-Themen mithilfe der HTTPS-API zu veröffentlichen. Das folgende Beispiel wird eine Nachricht auf der`device/foo`-Thema.

```
curl -XPOST https://<stage-id>.execute-api.<region>.amazonaws.com/prod/message/device/foo -H "x-api-key: <api-key>" -H "Content-Type: application/json" -d '{"Hello": "World"}'
```

Hinweis: Ersetzen Sie die`stage-id`,`region`, und`api-key`-Parameter mit Ihren Bereitstellungswerten.

Sie können Themennamen in der URL verketten und die API akzeptiert bis zu 7 Unterthemen, auf denen Sie veröffentlichen können. Im folgenden Beispiel veröffentlicht eine Nachricht zum Thema`device/foo/bar/abc/xyz`.

```
curl -XPOST https://<stage-id>.execute-api.<region>.amazonaws.com/prod/message/device/foo/bar/abc/xyz -H "x-api-key: <api-key>" -H "Content-Type: application/json" -d '{"Hello": "World"}'
```

### Aktualisieren von Geräteschatten
<a name="updating-device-shadows-32"></a>

Um das Schattendokument zu aktualisieren, das einer bestimmten Sache zugeordnet ist, können Sie eine Schattenstatusanforderung mit einem Sachnamen ausstellen. Siehe das folgende Beispiel zum Aktualisieren eines Thing-Shadow.

```
curl -XPOST https://<stage-id>.execute-api.<region>.amazonaws.com/prod/shadow/device1 -H "x-api-key: <api-key>" -H "Content-Type: application/json" -d '{"state": {"desired": { "Hello": "World" }}}'
```

### Aktualisieren von benannten Schatten
<a name="updating-named-shadows-32"></a>

Um das Schattendokument zu aktualisieren, das mit dem Namen „Schatten“ eines bestimmten Dings verknüpft ist, können Sie eine Schattenstatusanforderung mit einem Ding- und Schattennamen ausgeben. Im folgenden Beispiel erfahren Sie, wie Sie einen benannten Schatten aktualisieren.

```
curl -XPOST https://<stage-id>.execute-api.<region>.amazonaws.com/prod/shadow/device1/shadow1 -H "x-api-key: <api-key>" -H "Content-Type: application/json" -d '{"state": {"desired": { "Hello": "World" }}}'
```

### Senden binärer Nutzlasten
<a name="sending-binary-payloads-32"></a>

Es ist möglich, eine binäre Nutzlast an die Proxy-API bis zum AWS IoT -Service zu senden. Im folgenden Beispiel senden wir den Inhalt des`README.md`Datei, die diesem Modul zugeordnet ist (als binäre Daten behandelt), um`device/foo`-Thema mithilfe der`application/octet-stream`Content-Typ.

```
curl -XPOST https://<stage-id>.execute-api.<region>.amazonaws.com/prod/message/device/foo/bar/baz/qux -H "x-api-key: <api-key>" -H "Content-Type: application/octet-stream" --data-binary @README.md
```

 Hinweis: Führen Sie diesen Befehl aus, während Sie sich im Verzeichnis dieses Projekts befinden. Sie können dann testen, andere Arten von Binärdateien aus Ihrem Dateisystem zu senden. 

## GitHub
<a name="github-32"></a>


<table>
<thead>
  <tr><th colspan="2"> Um den Code für dieses Muster anzuzeigen, erstellen/anzeigen Probleme und Pull-Anforderungen usw.: </th></tr>
</thead>
<tbody>
  <tr><td> ![](http://docs.aws.amazon.com/de_de/solutions/latest/constructs/images/GitHub-Mark-32px.png) </td><td> [@aws -solutions-konstrukte/aws-apigateway-iot](https://github.com/awslabs/aws-solutions-constructs/tree/master/source/patterns/%40aws-solutions-constructs/aws-apigateway-iot) </td></tr>
</tbody>
</table>
