веб-сервисы Amazon — Php зависает в AWS SDK IoT getThingShadow запрос

Я написал некоторый код на PHP, который получает состояние ThingShadow устройства IoT, подключенного к сервису IoT AWS.

public function getState($name){
require_once HOME . DS . 'includes' . DS . 'aws' . DS . 'aws-autoloader.php';
$IoT = new Aws\IotDataPlane\IotDataPlaneClient([
'version' => 'latest',
'region'  => 'us-west-2'
]);

$result = $IoT->getThingShadow([
'thingName' => $name, // REQUIRED
]);

echo $result["payload"]->getContents();
}

Когда я запускаю его на моем локальном сервере, он работает отлично, но когда я запускаю его на своем экземпляре EC2, он не работает. Я вызываю этот метод, и он застревает на том, что кажется циклом.

Я проверил учетные данные, и все в порядке.

Для тестов я поставил неправильно thingName и я получаю следующую ошибку:

Fatal error: Uncaught exception 'Aws\IotDataPlane\Exception\IotDataPlaneException' with message 'Error executing "GetThingShadow" on "https://data.iot.us-west-2.amazonaws.com/things/WRONG_NAME/shadow"; AWS HTTP error: Client error: 404 ResourceNotFoundException (client): No shadow exists with name: 'WRONG_NAME' - {"message":"No shadow exists with name: 'WRONG_NAME'","traceId":"f3c5f1ba-e24a-448d-b4e2-d6265751df87"}' exception 'GuzzleHttp\Exception\ClientException' with message 'Client error: 404' in /var/www/html/includes/aws/GuzzleHttp/Middleware.php:69 Stack trace: #0 /var/www/html/includes/aws/GuzzleHttp/Promise/Promise.php(199): GuzzleHttp\Middleware::GuzzleHttp\{closure}(Object(GuzzleHttp\Psr7\Response)) #1 /var/www/html/includes/aws/GuzzleHttp/Promise/Promise.php(152): GuzzleHttp\Promise\Promise::callHandler(1, Object(GuzzleHttp\Psr7\Response), Array) #2 /var/www/html/includes/aws/GuzzleHttp/Promise/TaskQueue.php(60): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}() #3 /var/www/html/includes/aws/GuzzleHtt in /var/www/html/includes/aws/Aws/WrappedHttpHandler.php on line 152

Когда я запускаю код с реальным именем существующей вещи, он не отвечает. Похоже, код где-то зацикливается.

Я использую AWS PHP SDK v3.

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …