Verwendung von UpdateThingShadow mit einem AWS-SDK oder CLI - AWS-SDK-Codebeispiele

Weitere AWS-SDK-Beispiele sind im GitHub-Repository Beispiele für AWS Doc SDKs verfügbar.

Verwendung von UpdateThingShadow mit einem AWS-SDK oder CLI

Die folgenden Code-Beispiele zeigen, wie UpdateThingShadow verwendet wird.

C++
SDK für C++
Anmerkung

Auf GitHub finden Sie noch mehr. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS-Code-Beispiel- einrichten und ausführen.

//! Update the shadow of an AWS IoT thing. /*! \param thingName: The name for the thing. \param document: The state information, in JSON format. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::IoT::updateThingShadow(const Aws::String &thingName, const Aws::String &document, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::IoTDataPlane::IoTDataPlaneClient iotDataPlaneClient(clientConfiguration); Aws::IoTDataPlane::Model::UpdateThingShadowRequest updateThingShadowRequest; updateThingShadowRequest.SetThingName(thingName); std::shared_ptr<std::stringstream> streamBuf = std::make_shared<std::stringstream>( document); updateThingShadowRequest.SetBody(streamBuf); Aws::IoTDataPlane::Model::UpdateThingShadowOutcome outcome = iotDataPlaneClient.UpdateThingShadow( updateThingShadowRequest); if (outcome.IsSuccess()) { std::cout << "Successfully updated thing shadow." << std::endl; } else { std::cerr << "Error while updating thing shadow." << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); }
  • Weitere API-Informationen finden Sie unter UpdateThingShadow in der AWS SDK für C++-API-Referenz.

CLI
AWS CLI

So aktualisieren Sie einen Objektschatten

Im folgenden update-thing-shadow-Beispiel wird der aktuelle Zustand des Geräteschattens für das angegebene Objekt geändert und in der Datei output.txt gespeichert.

aws iot-data update-thing-shadow \ --thing-name MyRPi \ --payload "{"state":{"reported":{"moisture":"okay"}}}" \ "output.txt"

Der Befehl erzeugt keine Ausgabe auf dem Display, aber im Folgenden wird der Inhalt von output.txt angezeigt:

{ "state": { "reported": { "moisture": "okay" } }, "metadata": { "reported": { "moisture": { "timestamp": 1560270036 } } }, "version": 2, "timestamp": 1560270036 }

Weitere Informationen finden Sie unter Datenfluss des Geräteschatten-Service im Entwicklerhandbuch für AWS IoT.

  • Weitere API-Informationen finden Sie unter UpdateThingShadow in der AWS CLI-Befehlsreferenz.

Java
SDK für Java 2.x
Anmerkung

Auf GitHub finden Sie noch mehr. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS-Code-Beispiel- einrichten und ausführen.

/** * Updates the shadow of an IoT Thing asynchronously. * * @param thingName The name of the IoT Thing. * * This method initiates an asynchronous request to update the shadow of an IoT Thing. * If the request is successful, it prints a confirmation message. * If an exception occurs, it prints the error message. */ public void updateShadowThing(String thingName) { // Create Thing Shadow State Document. String stateDocument = "{\"state\":{\"reported\":{\"temperature\":25, \"humidity\":50}}}"; SdkBytes data = SdkBytes.fromString(stateDocument, StandardCharsets.UTF_8); UpdateThingShadowRequest updateThingShadowRequest = UpdateThingShadowRequest.builder() .thingName(thingName) .payload(data) .build(); CompletableFuture<UpdateThingShadowResponse> future = getAsyncDataPlaneClient().updateThingShadow(updateThingShadowRequest); future.whenComplete((updateResponse, ex) -> { if (updateResponse != null) { System.out.println("Thing Shadow updated successfully."); } else { Throwable cause = ex != null ? ex.getCause() : null; if (cause instanceof IotException) { System.err.println(((IotException) cause).awsErrorDetails().errorMessage()); } else if (cause != null) { System.err.println("Unexpected error: " + cause.getMessage()); } else { System.err.println("Failed to update Thing Shadow."); } } }); future.join(); }
  • Weitere API-Informationen finden Sie unter UpdateThingShadow in der AWS SDK for Java 2.x-API-Referenz.

Kotlin
SDK für Kotlin
Anmerkung

Auf GitHub finden Sie noch mehr. Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das AWS-Code-Beispiel- einrichten und ausführen.

suspend fun updateShawdowThing(thingNameVal: String?) { // Create the thing shadow state document. val stateDocument = "{\"state\":{\"reported\":{\"temperature\":25, \"humidity\":50}}}" val byteStream: ByteStream = ByteStream.fromString(stateDocument) val byteArray: ByteArray = byteStream.toByteArray() val updateThingShadowRequest = UpdateThingShadowRequest { thingName = thingNameVal payload = byteArray } IotDataPlaneClient.fromEnvironment { region = "us-east-1" }.use { iotPlaneClient -> iotPlaneClient.updateThingShadow(updateThingShadowRequest) println("The thing shadow was updated successfully.") } }
  • Weitere API-Informationen finden Sie unter UpdateThingShadow in der API-Referenz zum AWS SDK für Kotlin.