Я использую aws-java-sdk-elasticloadbalancing
версию 1.11.22 для описания elasti c loadbalancer, имя которого я знаю из моей службы k8s nginx -ingress. Запрос выполняется из модуля в кластере k8s, который находится в той же зоне доступности.
Я создаю AmazonElasticLoadBalancingClient
со своими учетными данными и отправляю запрос типа DescribeLoadBalancersRequest
с именем интересующего балансировщика нагрузки.
Хотя это работает для меня, когда и кластер, и ELB развернуты в восточной зоне США, когда один и тот же код выполняется на кластере, развернутом на юге с именем ELB, развернутом на юге юга, я получаю com.amazonaws.services.elasticloadbalancing.model.LoadBalancerNotFoundException: There is no ACTIVE Load Balancer named ...
исключение. Если я возьму имя ELB и консоль go на AWS в южном регионе, я смогу найти этот ELB по его имени.
Это привело меня к мысли, что, возможно, мне следует как-то указать зона, в которой я ищу ELB и код по умолчанию - us-east, но я не мог понять, как указать это в API. Я прав в своем предположении?
Я также попытался запросить все ELB без указания имени в запросе, все возвращенные ELB были из восточной зоны США, что усилило моё предположение.