Uso de GetThingShadow con un SDK de AWS o la CLI - Ejemplos de código de AWS SDK

Hay más ejemplos de AWS SDK disponibles en el repositorio de GitHub de ejemplos de AWS SDK de documentos.

Uso de GetThingShadow con un SDK de AWS o la CLI

Los siguientes ejemplos de código muestran cómo utilizar GetThingShadow.

C++
SDK para C++
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

//! Get the shadow of an AWS IoT thing. /*! \param thingName: The name for the thing. \param documentResult: String to receive the state information, in JSON format. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::IoT::getThingShadow(const Aws::String &thingName, Aws::String &documentResult, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::IoTDataPlane::IoTDataPlaneClient iotClient(clientConfiguration); Aws::IoTDataPlane::Model::GetThingShadowRequest request; request.SetThingName(thingName); auto outcome = iotClient.GetThingShadow(request); if (outcome.IsSuccess()) { std::stringstream ss; ss << outcome.GetResult().GetPayload().rdbuf(); documentResult = ss.str(); } else { std::cerr << "Error getting thing shadow: " << outcome.GetError().GetMessage() << std::endl; } return outcome.IsSuccess(); }
  • Para obtener información sobre la API, consulte GetThingShadow en la Referencia de la API de AWS SDK para C++.

CLI
AWS CLI

Para obtener un documento de sombra de objeto

En el siguiente ejemplo de get-thing-shadow, se obtiene el documento de sombra del objeto de IoT especificado.

aws iot-data get-thing-shadow \ --thing-name MyRPi \ output.txt

El comando no muestra ningún resultado en la pantalla, pero a continuación aparece el contenido de output.txt:

{ "state":{ "reported":{ "moisture":"low" } }, "metadata":{ "reported":{ "moisture":{ "timestamp":1560269319 } } }, "version":1,"timestamp":1560269405 }

Para obtener más información, consulte Device Shadow Service Data Flow en la Guía para desarrolladores de AWS IoT.

  • Para obtener más información sobre la API, consulte GetThingShadow en la Referencia de comandos de la AWS CLI.

Java
SDK para Java 2.x
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

/** * Retrieves the payload of a Thing's shadow asynchronously. * * @param thingName The name of the IoT Thing. * * This method initiates an asynchronous request to get the payload of a Thing's shadow. * If the request is successful, it prints the shadow data. * If an exception occurs, it prints the error message. */ public void getPayload(String thingName) { GetThingShadowRequest getThingShadowRequest = GetThingShadowRequest.builder() .thingName(thingName) .build(); CompletableFuture<GetThingShadowResponse> future = getAsyncDataPlaneClient().getThingShadow(getThingShadowRequest); future.whenComplete((getThingShadowResponse, ex) -> { if (getThingShadowResponse != null) { // Extracting payload from response. SdkBytes payload = getThingShadowResponse.payload(); String payloadString = payload.asUtf8String(); System.out.println("Received Shadow Data: " + payloadString); } 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 get Thing Shadow payload."); } } }); future.join(); }
  • Para obtener información sobre la API, consulte GetThingShadow en la Referencia de la API de AWS SDK for Java 2.x.

Kotlin
SDK para Kotlin
nota

Hay más en GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS.

suspend fun getPayload(thingNameVal: String?) { val getThingShadowRequest = GetThingShadowRequest { thingName = thingNameVal } IotDataPlaneClient.fromEnvironment { region = "us-east-1" }.use { iotPlaneClient -> val getThingShadowResponse = iotPlaneClient.getThingShadow(getThingShadowRequest) val payload = getThingShadowResponse.payload val payloadString = payload?.let { java.lang.String(it, Charsets.UTF_8) } println("Received shadow data: $payloadString") } }
  • Para obtener información sobre la API, consulte GetThingShadow en la Referencia de la API de AWS SDK para Kotlin.