веб-сервисы Amazon — AWS SDK для балансировщиков нагрузки не отображаются

Я использую AWS SDK для PHP, чтобы запросить балансировщик нагрузки для всех его исправных экземпляров. Я пытался использовать describeInstanceHealth метод, чтобы получить все исправные экземпляры от моего ELB, только чтобы обнаружить, что в нем нет активного балансировщика нагрузки с указанным мною именем.

Затем я решил использовать describeLoadBalancers чтобы увидеть, какое имя он использовал внутри, только чтобы узнать, что функция вообще не возвращает балансировщиков нагрузки. У меня есть 3 активных балансировщика нагрузки, которые используются, когда я набираю это.

Вот соответствующая часть моего кода:

<?php
require 'aws/aws-autoloader.php';

use Aws\ElasticLoadBalancing\ElasticLoadBalancingClient;
...
$client = ElasticLoadBalancingClient::factory([
'key'    => env('ACCESS_KEY'),
'secret' => env('SECRET'),
'region' => env('REGION')
]);

$result = $client->describeLoadBalancers();
var_dump($result);

Вывод, который я получаю, следующий:

object(Guzzle\Service\Resource\Model)#106 (2) {
["structure":protected]=> NULL ["data":protected]=> array(2) {
["LoadBalancerDescriptions"]=> array(0) { }
["ResponseMetadata"]=> array(1) {
["RequestId"]=> string(36) "e6e7b0a4-7880-11e7-bb72-995ab0ed2a69"}
}
}

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

Я предполагаю, что что-то не настроено правильно с ролями IAM, и мой пользователь не может видеть балансировщики нагрузки, но я не знаю способа прикрепить ключ пользователя / доступа, который я использую, к балансировщикам нагрузки.

Как я могу сделать балансировщики нагрузки видимыми для вызовов API, которые я делаю?

Я использую PHP 5.6.31.

0

Решение

Оказывается, ELB поддерживает два типа балансировщиков нагрузки: классический и прикладной. AWS SDK V1 не поддерживает балансировщики нагрузки приложений. Мне пришлось обновить SDK и использовать describeTargetHealth чтобы получить идентификаторы экземпляров для каждого экземпляра в балансировщике нагрузки.

0

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

Выяснили это с помощью ELBv2 API и describeTargetHealth метод.

0

По вопросам рекламы [email protected]