0

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」に設定しない限り、リストのスナップショットは空です。

簡単に言うと、ストレージ ゲートウェイからプライベート スナップショットにアクセスできないのはなぜですか?

4

1 に答える 1

0

理解した。EC2 エンドポイントを明示的に定義する必要があることがわかりました。どういうわけか私はそのステップを逃しました。

エンドポイントのリストは次のとおりです: http://docs.aws.amazon.com/general/latest/gr/rande.html#ec2_region

AmazonEC2Client.setEndpoint("<Endpoint URL>");
于 2013-06-19T23:52:14.880 に答える