Storage Gateway からスナップショットのリストを取得して、それらを JTable に入れようとしています。しかし、AWS Java API を使用してスナップショットのリストを取得すると、Amazon が発行したパブリック スナップショットと思われるものしか取得できません。「self」を含めるように DescribeSnapshotsRequest.setOwnerIds() を設定すると、リストが空になります。
問題のあるコードは次のとおりです。
private void createTable() {
Object[][] data = null;
String[] columns = new String[]{"Snapshot ID", "Owner ID", "Snapshot Date"};
DescribeSnapshotsRequest req = new DescribeSnapshotsRequest();
req.setOwnerIds(Arrays.<String>asList("self"));
try {
snapshots = ec2Client.describeSnapshots(req).getSnapshots();
data = new Object[snapshots.size()][3];
int i = 0;
for(Snapshot item : snapshots) {
data[i][0] = item.getSnapshotId();
data[i][1] = item.getOwnerId();
data[i][2] = item.getStartTime();
i++;
}
} catch(Exception e) {
System.out.println("Invalid Credentials!");
}
table = new JTable(data, columns);
table.setAutoCreateRowSorter(true);
}
DescribeSnapshotsRequest を削除するか、所有者 ID を「amazon」に設定しない限り、リストのスナップショットは空です。
簡単に言うと、ストレージ ゲートウェイからプライベート スナップショットにアクセスできないのはなぜですか?