2016-03-22 11 views
1

Ich möchte einen Snapshot für ein EBS-Volume mit Tags als "Backup" erstellen. Ich habe eine Methode geschrieben, um einen Snapshot für ein EBS-Volume zu erstellen. Der Schnappschuss wird korrekt erstellt. Der Snapshot hat jedoch kein Tag. Das Verfahren ist wie folgt.Erstellen eines Snapshots zu einem EBS-Volume mit Tags

public Snapshot createEbsSnapshot(String volumeId) 
     throws IOException { 

    logger.log("============Creating snapshot for a volume: " + volumeId +" =============="); 

    String description = "This is a snapshot created by using AWS-Java SDK"; 

    CreateSnapshotRequest snapshotRequest = new CreateSnapshotRequest(
      volumeId, description); 

    CreateSnapshotResult snapshotResult = ec2Client 
      .createSnapshot(snapshotRequest); 

    Snapshot snapshot = snapshotResult.getSnapshot();  

    logger.log("============Snapshot creation for a volume: " + volumeId +" is done.=============="); 

    return snapshot; 
} 

Ich bin nicht sicher, ob wir dies tun können durch aws-java sdk verwenden. Bitte korrigieren Sie mich, falls ich falsch liege.

Danke

Antwort

2

Die AmazonEC2Client-Klasse verfügt über eine createTags-Methode, die einer Ressource Tags zuweisen kann. Wenn Sie die SnapshotId of the CreateSnapshotResult nehmen und damit die Methode createTags aufrufen, sollten Sie dem Snapshot ein Tag zuweisen können.

+0

createTags Methode eines AmazonEC2Client hat den Trick gemacht. Ich danke dir sehr!! –

1

Sie haben die Snapshot-ID aus dem Aufruf von createSnapshot() zurückgegeben und dann diese ID in einem anderen API-Aufruf-Tags verwenden, um übernehmen die Snapshot zu erstellen.

+0

Danke für die Antwort. createSnapshot() erstellt nur einen Snapshot. Wenn möglich, können Sie mir Code-Snippet für den zweiten API-Aufruf bereitstellen. –