Configuration des notifications de coffre dans Amazon S3 Glacier à l'aide d'AWS SDK for Java - Amazon S3 Glacier

Cette page est réservée aux clients existants du service S3 Glacier utilisant Vaults et l'original REST API de 2012.

Si vous recherchez des solutions de stockage d'archives, nous vous conseillons d'utiliser les classes de stockage S3 Glacier dans Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval et S3 Glacier Deep Archive. Pour en savoir plus sur ces options de stockage, consultez les sections Classes de stockage S3 Glacier et Stockage de données à long terme à l'aide des classes de stockage S3 Glacier dans le guide de l'utilisateur Amazon S3. Ces classes de stockage utilisent Amazon S3API, sont disponibles dans toutes les régions et peuvent être gérées au sein de la console Amazon S3. Ils offrent des fonctionnalités telles que l'analyse des coûts de stockage, Storage Lens, des fonctionnalités de chiffrement optionnelles avancées, etc.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des notifications de coffre dans Amazon S3 Glacier à l'aide d'AWS SDK for Java

Voici les étapes pour configurer des notifications sur un coffre à l'aide de l'API de bas niveau de AWS SDK for Java.

  1. Créez une instance de la classe AmazonGlacierClient (le client).

    Vous devez spécifier la région AWS où réside le coffre. Toutes les opérations que vous effectuez à l'aide de ce client s'appliquent à cette région AWS.

  2. Indiquez les informations sur la configuration de notification en créant une instance de la classe SetVaultNotificationsRequest.

    Vous devez fournir le nom du coffre, les informations sur la configuration de notification et l'ID de compte. En spécifiant une configuration de notification, vous fournissez l'Amazon Resource Name (ARN) d'une rubrique Amazon SNS existante et un ou plusieurs événements pour lesquels vous souhaitez être notifié. Pour obtenir la liste des événements pris en charge, consultez la section Définition d'une configuration de notification de coffre (PUT notification-configuration).

  3. Exécutez la méthode setVaultNotifications en fournissant l'objet de demande comme paramètre.

L'extrait de code Java suivant illustre les étapes précédentes. Cet extrait définit une configuration de notification sur un coffre. La configuration demande à Amazon S3 Glacier (S3 Glacier) d'envoyer une notification à la rubrique Amazon SNS spécifiée lorsque l'événement ArchiveRetrievalCompleted ou l'événement InventoryRetrievalCompleted se produit.

SetVaultNotificationsRequest request = new SetVaultNotificationsRequest() .withAccountId("-") .withVaultName("*** provide vault name ***") .withVaultNotificationConfig( new VaultNotificationConfig() .withSNSTopic("*** provide SNS topic ARN ***") .withEvents("ArchiveRetrievalCompleted", "InventoryRetrievalCompleted") ); client.setVaultNotifications(request);

Note

Pour obtenir des informations sur l'API REST sous-jacente, consultez la section Opérations de coffre.

Exemple : Définition de la configuration de notification sur un coffre à l'aide du kit AWS SDK for Java

L'exemple de code Java suivant définit la configuration des notifications d'un coffre, la supprime, puis la restaure. Pour obtenir les instructions étape par étape sur la façon d'exécuter l'exemple suivant, consultez la section Utilisation d'AWS SDK for Java avec Amazon S3 Glacier.

import java.io.IOException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.glacier.AmazonGlacierClient; import com.amazonaws.services.glacier.model.DeleteVaultNotificationsRequest; import com.amazonaws.services.glacier.model.GetVaultNotificationsRequest; import com.amazonaws.services.glacier.model.GetVaultNotificationsResult; import com.amazonaws.services.glacier.model.SetVaultNotificationsRequest; import com.amazonaws.services.glacier.model.VaultNotificationConfig; public class AmazonGlacierVaultNotifications { public static AmazonGlacierClient client; public static String vaultName = "*** provide vault name ****"; public static String snsTopicARN = "*** provide sns topic ARN ***"; public static void main(String[] args) throws IOException { ProfileCredentialsProvider credentials = new ProfileCredentialsProvider(); client = new AmazonGlacierClient(credentials); client.setEndpoint("https://glacier.us-east-1.amazonaws.com/"); try { System.out.println("Adding notification configuration to the vault."); setVaultNotifications(); getVaultNotifications(); deleteVaultNotifications(); } catch (Exception e) { System.err.println("Vault operations failed." + e.getMessage()); } } private static void setVaultNotifications() { VaultNotificationConfig config = new VaultNotificationConfig() .withSNSTopic(snsTopicARN) .withEvents("ArchiveRetrievalCompleted", "InventoryRetrievalCompleted"); SetVaultNotificationsRequest request = new SetVaultNotificationsRequest() .withVaultName(vaultName) .withVaultNotificationConfig(config); client.setVaultNotifications(request); System.out.println("Notification configured for vault: " + vaultName); } private static void getVaultNotifications() { VaultNotificationConfig notificationConfig = null; GetVaultNotificationsRequest request = new GetVaultNotificationsRequest() .withVaultName(vaultName); GetVaultNotificationsResult result = client.getVaultNotifications(request); notificationConfig = result.getVaultNotificationConfig(); System.out.println("Notifications configuration for vault: " + vaultName); System.out.println("Topic: " + notificationConfig.getSNSTopic()); System.out.println("Events: " + notificationConfig.getEvents()); } private static void deleteVaultNotifications() { DeleteVaultNotificationsRequest request = new DeleteVaultNotificationsRequest() .withVaultName(vaultName); client.deleteVaultNotifications(request); System.out.println("Notifications configuration deleted for vault: " + vaultName); } }