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.
In diesem Thema:
Voraussetzungen
-
Installieren der neuesten Version von AWS CLI
-
Machen Sie sich mit der Standortindizierung und Geoabfragen, der Verwaltung der Objektindizierung und der Abfragesyntax vertraut.
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).
-
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" }
-
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.
-
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. -
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.