Erste Schritte-Tutorial - AWS IoT Core

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.

Erste Schritte-Tutorial

In diesem Tutorial wird gezeigt, wie Sie mithilfe der Flottenindizierung Ihre Standortdaten indexieren können. Der Einfachheit halber erstellen Sie ein Objekt, das Ihr Gerät darstellt, und speichern die Standortdaten in einem benannten Schatten, aktualisieren die Konfiguration der Objektindizierung für die Standortindizierung und führen Beispiel-Geoabfragen aus, um nach Geräten innerhalb einer radialen Grenze zu suchen.

Für dieses Tutorial brauchen Sie ungefähr 20 Minuten.

Voraussetzungen

Objekte und Schatten erstellen

Sie erstellen ein Objekt, das Ihr Gerät repräsentiert, und einen benannten Schatten, um dessen Standortdaten zu speichern (Koordinaten 47.61564, -122.33584).

  1. Führen Sie den folgenden Befehl aus, um Ihr Ding zu erstellen, das Ihr Fahrrad mit dem Namen Bike-1 repräsentiert. Weitere Informationen zum Erstellen eines Dings mit AWS CLI finden Sie unter Create-thing from Reference. AWS CLI

    aws iot create-thing --thing-name "Bike-1" \ --attribute-payload '{"attributes": {"model":"OEM-2302-12", "battery":"35", "acqDate":"06/09/23"}}'

    Die Ausgabe dieses Befehls kann folgendermaßen aussehen:

    { "thingName": "Bike-1", "thingArn": "arn:aws:iot:us-east-1:123456789012:thing/Bike-1", "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df" }
  2. Führen Sie den folgenden Befehl aus, um einen benannten Schatten zum Speichern der Standortdaten von Bike-1 (Koordinaten 47.61564, -122.33584) zu erstellen. Weitere Informationen zum Erstellen eines benannten Schattens mithilfe update-thing-shadowvon AWS CLIfinden Sie in AWS CLI Reference.

    aws iot-data update-thing-shadow \ --thing-name Bike-1 \ --shadow-name Bike1-shadow \ --cli-binary-format raw-in-base64-out \ --payload '{"state":{"reported":{"coordinates":{"lat": 47.6153, "lon": -122.3333}}}}' \ "output.txt" \

    Dieser Befehl liefert keine Ausgabe. Um den benannten Schatten anzuzeigen, den Sie erstellt haben, können Sie den list-named-shadows-forCLI-Befehl -thing ausführen.

    aws iot-data list-named-shadows-for-thing --thing-name Bike-1

    Die Ausgabe dieses Befehls sieht wie folgt aus:

    { "results": [ "Bike1-shadow" ], "timestamp": 1699574309 }

Konfiguration der Objektindizierung.

Um Ihre Standortdaten zu indizieren, müssen Sie Ihre Objekt-Indizierungskonfiguration so aktualisieren, dass sie die Standortdaten einbezieht. Da Ihre Standortdaten in diesem Tutorial in einem benannten Schatten gespeichert werden, setzen Sie thingIndexingMode auf REGISTRY (bei einer Mindestanforderung), setzen Sie namedShadowIndexingMode auf ON und fügen Sie Ihre Standortdaten zur Konfiguration hinzu. In diesem Beispiel müssen Sie den Namen Ihres benannten Schattens und den Pfad für die Standortdaten des Schattens zu filter hinzufügen.

  1. Führen Sie den Befehl aus, um Ihre Indizierungskonfiguration für die Standortindizierung zu aktualisieren.

    aws iot update-indexing-configuration --cli-input-json '{ "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY", "thingConnectivityIndexingMode": "OFF", "deviceDefenderIndexingMode": "OFF", "namedShadowIndexingMode": "ON", "filter": { "namedShadowNames": ["Bike1-shadow"], "geoLocations":[{ "name":"shadow.name.Bike1-shadow.reported.coordinates" }] }, "customFields": [ { "name":"attributes.battery", "type":"Number"}] } }'

    Der Befehl erzeugt keine Ausgabe. Möglicherweise müssen Sie einen Moment warten, bis das Update abgeschlossen ist. Führen Sie den CLI-Befehl describe-index aus, um den Status zu überprüfen. Wenn indexStatus Folgendes anzeigt:ACTIVE, ist das Indizierungsupdate Ihres Objekts abgeschlossen.

  2. Führen Sie den Befehl aus, um Ihre Konfiguration zu überprüfen. Dieser Schritt ist optional.

    aws iot get-indexing-configuration

    Die Ausgabe sieht wie folgt aus:

    { "thingIndexingConfiguration": { "thingIndexingMode": "REGISTRY", "thingConnectivityIndexingMode": "OFF", "deviceDefenderIndexingMode": "OFF", "namedShadowIndexingMode": "ON", "managedFields": [ { "name": "shadow.name.*.hasDelta", "type": "Boolean" }, { "name": "registry.version", "type": "Number" }, { "name": "registry.thingTypeName", "type": "String" }, { "name": "registry.thingGroupNames", "type": "String" }, { "name": "shadow.name.*.version", "type": "Number" }, { "name": "thingName", "type": "String" }, { "name": "thingId", "type": "String" } ], "customFields": [ { "name": "attributes.battery", "type": "Number" } ], "filter": { "namedShadowNames": [ "Bike1-shadow" ], "geoLocations": [ { "name": "shadow.name.Bike1-shadow.reported.coordinates", "order": "LatLon" } ] } }, "thingGroupIndexingConfiguration": { "thingGroupIndexingMode": "OFF" } }

Ausführen von Geoquery

Jetzt haben Sie Ihre Objekt-Indizierungskonfiguration aktualisiert, sodass sie die Standortdaten enthält. Versuchen Sie, einige Geoqueries zu erstellen und sie auszuführen, um zu sehen, ob Sie die gewünschten Suchergebnisse erhalten können. Eine Geoabfrage muss der Abfragesyntax folgen. Einige nützliche Beispiel-Geoabfragen finden Sie unter Beispiele für Geoqueries.

Im folgenden Beispielbefehl verwenden Sie die Geoabfrage, shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km um mit Koordinaten (47.6204, -122.3491) nach Geräten zu suchen, die sich innerhalb einer radialen Entfernung von 15,5 km vom Mittelpunkt befinden.

aws iot search-index --query-string "shadow.name.Bike1-shadow.reported.coordinates:geo_distance,47.6204,-122.3491,15.5km"

Da Sie ein Gerät an den Koordinaten „lat“: 47.6153, „lon“: -122.3333 haben, das innerhalb einer Entfernung von 15,5 km vom Mittelpunkt liegt, sollten Sie dieses Gerät (Bike-1) in der Ausgabe sehen können. Die Ausgabe sieht wie folgt aus:

{ "things": [ { "thingName": "Bike-1", "thingId": "df9cf01d-b0c8-48fe-a2e2-e16cff6b23df", "attributes": { "acqDate": "06/09/23", "battery": "35", "model": "OEM-2302-12" }, "shadow": "{\"reported\":{\"coordinates\":{\"lat\":47.6153,\"lon\":-122.3333}},\"metadata\":{\"reported\":{\"coordinates\":{\"lat\":{\"timestamp\":1699572906},\"lon\":{\"timestamp\":1699572906}}}},\"hasDelta\":false,\"version\":1}" } ] }

Weitere Informationen finden Sie unter Indexierung von Standortdaten.