Ошибка при описании экземпляра эластичной боли после установки конечной точки в AWS Java SDK

Я пытаюсь описать свои узлы кластера кеша в AWS Elasticache. Я использую пример из поиска конечных точек AWS ElastiCache с Java (код решения).

Я использую код:

 DescribeCacheClustersRequest dccRequest = new DescribeCacheClustersRequest();    
    dccRequest.setShowCacheNodeInfo(true);

    elasticache.setEndpoint("ec2.us-west-1.amazonaws.com");
    DescribeCacheClustersResult clusterResult = elasticache.describeCacheClusters(dccRequest);
    System.out.println("cache cluster node fleet size: " + clusterResult.getCacheClusters().size());
    for (CacheCluster cacheCluster : clusterResult.getCacheClusters()) {
        List<CacheNode> cacheNodes = cacheCluster.getCacheNodes();

        System.out.println("cache cluster size: " + cacheNodes.size());
    }

Когда я запускаю этот код, я получаю сообщение об ошибке:

Исключение в потоке "основной" Код состояния: 400, Сервис AWS: AmazonElastiCache, Идентификатор запроса AWS: ноль, Код ошибки AWS: ноль, Сообщение об ошибке AWS: ноль

Если я удалю код setEndpoint, код не выдаст ошибку, но никакие узлы не будут возвращены и напечатаны. Я предполагаю, что причина в том, что регион США-ВОСТОК запрашивается по умолчанию.

Кто-нибудь знает, как я могу обойти эту ошибку?

1 ответ

Решение

Ваша проблема заключается в том, что вы устанавливаете конечную точку на конечную точку EC2, а не конечную точку Amazon ElastiCache. Исправленный фрагмент кода:

elasticache.setEndpoint("elasticache.us-west-1.amazonaws.com");

Вы можете найти полный список конечных точек в этом документе

Другие вопросы по тегам