Проблема состоит в том, что --- мне нужно написать API, чтобы получить обновление и удалить теневое состояние объекта, и мне нужно опубликовать те же данные JSON или состояние на другой URL.
Мне нужнознаете, чтобы пройти аутентификацию перед подключением к этой конечной точке AWS IOT? или я могу просто получить доступ к теневым данным JSON без аутентификации.
Для каждой вещи мы установили GET UPDATE и DELETE shadow thread в консоли IOT. Как я могу использовать их в своем API.
Прошел всю документацию по API AWS для создания API https://docs.aws.amazon.com/iot/latest/developerguide/API_GetThingShadow.html
Даже я пробовал пример кода Git для запуска на моей машине, Даже я могуаутентифицировать используя сертификат Thing. Но мы не понимаем, как писать API обновления, используя методы по этой ссылке https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/iotdata/AWSIotData.html#getThingShadow-com.amazonaws.services.iotdata.model.GetThingShadowRequest-
public static void main(String args[]) throws IOException, AWSIotException, AWSIotTimeoutException,
InterruptedException {
CommandArguments arguments = CommandArguments.parse(args);
initClient(arguments);
awsIotClient.setWillMessage(new AWSIotMessage("client/disconnect", AWSIotQos.QOS0, awsIotClient.getClientId()));
System.out.println(awsIotClient.getConnectionStatus());
String thingName = arguments.getNotNull("thingName", SampleUtil.getConfig("thingName"));
System.out.println(thingName);
AWSIotDevice device = new AWSIotDevice(thingName);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Thing thing = new Thing();
while (true) {
long desired = thing.state.desired.counter;
thing.state.reported.counter = desired;
thing.state.desired.counter = desired + 1;
System.out.println(desired);
String jsonState = objectMapper.writeValueAsString(thing);
// String jsonState = "{light: light,temperature: temperature,state: {color: color}};";
System.out.println(jsonState);
// Get document from the shadow
try {
String shadowState = device.get();
System.out.println("Get Record form JSon --- > " +System.currentTimeMillis() + ": <<< " + shadowState);
thing = objectMapper.readValue(shadowState, Thing.class);
} catch (AWSIotException e) {
System.out.println(System.currentTimeMillis() + ": get failed for " + jsonState);
continue;
}
try {
// Send updated document to the shadow
device.update(jsonState);
System.out.println(System.currentTimeMillis() + ": >>> " + jsonState);
} catch (AWSIotException e) {
System.out.println(System.currentTimeMillis() + ": update failed for " + jsonState);
continue;
}
}
Нужно писать API, используя такие методы, как getThingShadow. updateThingShadow для связи с моим AWS IOT THING.