

 **Esta página es solo para los clientes actuales del servicio Amazon Glacier que utilizan Vaults y la API de REST original de 2012.**

Si busca soluciones de almacenamiento de archivos, se recomienda que utilice las clases de almacenamiento de Amazon Glacier en Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval y S3 Glacier Deep Archive. Para obtener más información sobre estas opciones de almacenamiento, consulte las [clases de almacenamiento de Amazon Glacier](https://aws.amazon.com/s3/storage-classes/glacier/).

Amazon Glacier (servicio original independiente basado en bóveda) ya no acepta nuevos clientes. Amazon Glacier es un servicio independiente propio APIs que almacena datos en almacenes y es distinto de las clases de almacenamiento Amazon S3 y Amazon S3 Glacier. Sus datos actuales permanecerán seguros y accesibles en Amazon Glacier de forma indefinida. No hay que hacer migraciones. Para un almacenamiento de archivos a largo plazo y de bajo costo, AWS recomienda las [clases de almacenamiento Amazon S3 Glacier](https://aws.amazon.com/s3/storage-classes/glacier/), que ofrecen una experiencia de cliente superior con S3 basada en cubos APIs, Región de AWS disponibilidad total, costos más bajos e AWS integración de servicios. Si desea mejorar las capacidades, considere la posibilidad de migrar a las clases de almacenamiento de Amazon S3 Glacier mediante nuestra [AWS Guía de soluciones para la transferencia de datos de los almacenes de Amazon Glacier a las clases de almacenamiento de Amazon S3 Glacier](https://aws.amazon.com/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Configuración de las notificaciones de Vault en Amazon Glacier mediante AWS SDK para .NET
<a name="configuring-notifications-sdk-dotnet"></a>

A continuación, se indican los pasos necesarios para configurar las notificaciones de un almacén con la API de bajo nivel de AWS SDK para .NET.

 

1. Cree una instancia de la clase `AmazonGlacierClient` (el cliente). 

   Debe especificar la AWS región en la que reside el almacén. Todas las operaciones que realice con este cliente se aplican a esa AWS región. 

1. Para facilitar la información de configuración de las notificaciones, cree una instancia de la clase `SetVaultNotificationsRequest`.

   Debe proporcionar el nombre del almacén, la información de configuración de las notificaciones y el ID de la cuenta. Si no proporciona el ID de la cuenta, se presumirá que se trata del ID de cuenta asociado a las credenciales proporcionadas para firmar la solicitud. Para obtener más información, consulte [Uso de AWS SDK para .NET con Amazon Glacier](using-aws-sdk-for-dot-net.md). 

   Al especificar la configuración de las notificaciones, tiene que proporcionar el nombre de recurso de Amazon (ARN) de un tema de Amazon SNS existente y uno o varios eventos para los que quiere recibir notificaciones. Para obtener una lista de los eventos compatibles, consulte [Establecimiento de la configuración de notificación del almacén (PUT configuración-notificaciones)](api-vault-notifications-put.md).

1. Ejecute el método `SetVaultNotifications` proporcionando el objeto de solicitud como parámetro. 

1. Una vez que la configuración de las notificaciones está establecida en un almacén, puede recuperar esta información llamando al método `GetVaultNotifications` y eliminarla con el método `DeleteVaultNotifications` proporcionado por el cliente. 

## Ejemplo: establecer la configuración de notificaciones en un almacén mediante el AWS SDK para .NET
<a name="creating-vaults-sdk-dotnet-example-notification"></a>

En el siguiente ejemplo de código C\$1, se ilustran los pasos anteriores. El ejemplo establece la configuración de las notificaciones del almacén ("`examplevault`") en la región Oeste de EE. UU. (Oregón), recupera la configuración y, después, la elimina. La configuración solicita a Amazon Glacier (Amazon Glacier) que envíe una notificación al tema de Amazon SNS especificado cuando se produzca el evento `ArchiveRetrievalCompleted` o el evento `InventoryRetrievalCompleted`.

**nota**  
Para obtener información acerca de la API de REST subyacente, consulte [Operaciones de almacén](vault-operations.md).

Para step-by-step obtener instrucciones sobre cómo ejecutar el siguiente ejemplo, consulte[Ejecución de los ejemplos de código](using-aws-sdk-for-dot-net.md#setting-up-and-testing-sdk-dotnet). Es necesario actualizar el código que se muestra y proporcionar el nombre de un almacén existente, así como un tema de Amazon SNS. 

**Example**  

```
using System;
using System.Collections.Generic;
using Amazon.Glacier;
using Amazon.Glacier.Model;
using Amazon.Runtime;

namespace glacier.amazon.com.docsamples
{
  class VaultNotificationSetGetDelete
  {
    static string vaultName   = "examplevault";
    static string snsTopicARN = "*** Provide Amazon SNS topic ARN ***";

    static IAmazonGlacier client;

    public static void Main(string[] args)
    {
      try
      {
        using (client = new AmazonGlacierClient(Amazon.RegionEndpoint.USWest2))
        {
          Console.WriteLine("Adding notification configuration to the vault.");
          SetVaultNotificationConfig();
          GetVaultNotificationConfig();
          Console.WriteLine("To delete vault notification configuration, press Enter");
          Console.ReadKey();
          DeleteVaultNotificationConfig();
        }
      }
      catch (AmazonGlacierException e) { Console.WriteLine(e.Message); }
      catch (AmazonServiceException e) { Console.WriteLine(e.Message); }
      catch (Exception e) { Console.WriteLine(e.Message); }
      Console.WriteLine("To continue, press Enter");
      Console.ReadKey();
    }

    static void SetVaultNotificationConfig()
    {

      SetVaultNotificationsRequest request = new SetVaultNotificationsRequest()
      {     
        VaultName = vaultName,
        VaultNotificationConfig = new VaultNotificationConfig()
        {
          Events   = new List<string>() { "ArchiveRetrievalCompleted", "InventoryRetrievalCompleted" },
          SNSTopic = snsTopicARN
        }
      };
      SetVaultNotificationsResponse response = client.SetVaultNotifications(request);
    }

    static void GetVaultNotificationConfig()
    {
      GetVaultNotificationsRequest request = new GetVaultNotificationsRequest()
      {
        VaultName = vaultName,
        AccountId = "-"
      };
      GetVaultNotificationsResponse response = client.GetVaultNotifications(request);
      Console.WriteLine("SNS Topic ARN: {0}", response.VaultNotificationConfig.SNSTopic);
      foreach (string s in response.VaultNotificationConfig.Events)
        Console.WriteLine("Event : {0}", s);
    }

    static void DeleteVaultNotificationConfig()
    {
      DeleteVaultNotificationsRequest request = new DeleteVaultNotificationsRequest()
      {  
        VaultName = vaultName
      };
      DeleteVaultNotificationsResponse response = client.DeleteVaultNotifications(request);
    }
  }
}
```