amazon web服务使用Java查找AWS ElastiCache端点
我正在尝试使用最新的Java AWS SDK,通过编程从我的Java应用程序中获取ElastiCache端点列表。事情似乎不正常——我可以找到一个有效的CacheCluster,但当我列出它的节点时,它是空的。这是我的代码:
CacheCluster cc = it.next();
System.out.println("Cache node type: " + cc.getCacheNodeType());
System.out.println("Number cache nodes: " + cc.getNumCacheNodes());
List<CacheNode> listCache = cc.getCacheNodes();
System.out.println("List size: " + listCache.size());
当我运行它时,我得到以下输出:
Cache node type: cache.m1.small
Number cache nodes: 1
List size: 0
这看起来很简单,但似乎不起作用。我已经用一个节点启动了一个ElastiCache集群,但是当我调用getCacheNodes()时,列表变成空的。我尝试在本地和EC2实例上运行这段代码,两次都得到了相同的结果
你知道我可能做错了什么吗
# 1 楼答案
根据AWS团队对Not able to get cache nodes from ElastiCache cluster的响应,您需要使用可选的ShowDetails标志,通过方法describeCacheClusters()的Class DescribeCacheClustersRequest参数获取缓存节点信息。仔细看,虽然有针对该类的文档记录,但没有显示详细信息:
据推测,这实际上以setShowCacheNodeInfo()为目标,这是一个可选标志,可以包含在DescribeCacheCluster请求中,以检索缓存节点信息
因此,AWS团队的回复似乎不准确,实际上并没有解决这个问题,为什么来自Class CacheCluster的方法getCacheNodes()没有返回该信息,这两种情况对于此类帖子来说都非常罕见
无论如何,您可能只想尝试方法getCacheClusters()从Class DescribeCacheClustersResult返回的方法getCacheNodes()从Class CacheCluster返回,希望它能像广告一样工作(也就是说,我自己没有尝试过)
祝你好运
更新
以下是桑德成功实现目标的代码,证实了上述方法:
缺失的部分应与初始解决方案类似,例如: