Ошибка при описании экземпляра эластичной боли после установки конечной точки в 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");
Вы можете найти полный список конечных точек в этом документе