Configurar notificações de cofre no Amazon S3 Glacier usando o AWS SDK for .NET - Amazon S3 Glacier

Esta página é somente para clientes existentes do serviço S3 Glacier que usam o Vaults e o original de 2012. REST API

Se você estiver procurando por soluções de armazenamento de arquivamento, sugerimos usar as classes de armazenamento S3 Glacier no Amazon S3, S3 Glacier Instant Retrieval, S3 Glacier Flexible Retrieval e S3 Glacier Deep Archive. Para saber mais sobre essas opções de armazenamento, consulte Classes de armazenamento S3 Glacier e Armazenamento de dados de longo prazo usando classes de armazenamento S3 Glacier no Guia do usuário do Amazon S3. Essas classes de armazenamento usam o Amazon S3API, estão disponíveis em todas as regiões e podem ser gerenciadas no console do Amazon S3. Eles oferecem recursos como análise de custos de armazenamento, lente de armazenamento, recursos avançados de criptografia opcional e muito mais.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurar notificações de cofre no Amazon S3 Glacier usando o AWS SDK for .NET

Estas são as etapas para configurar notificações em um cofre usando a API de nível inferior do AWS SDK for .NET.

  1. Crie uma instância da classe AmazonGlacierClient (o cliente).

    Você precisa especificar uma região da AWS onde o cofre reside. Todas as operações realizadas por você usando esse cliente se aplicam a essa região da AWS.

  2. Forneça informações de configuração da notificação criando uma instância da classe SetVaultNotificationsRequest.

    Você precisa fornecer o nome do cofre, as informações de configuração da notificação e o ID da conta. Se você não fornecer um ID da conta, o ID da conta associado às credenciais fornecidas por você para assinar a solicitação será pressuposto. Para obter mais informações, consulte Como usar o AWS SDK for .NET com o Amazon S3 Glacier .

    Especificando uma configuração de notificação, você fornece o nome do recurso da Amazon (ARN) de um tópico do Amazon SNS existente e um ou mais eventos para os quais deseja ser notificado. Para obter uma lista de eventos compatíveis, consulte Definir configuração de notificação de cofre (PUT notification-configuration).

  3. Execute o método SetVaultNotifications fornecendo o objeto de solicitação como um parâmetro.

  4. Depois de definir a configuração de notificação em um cofre, você poderá recuperar informações de configuração chamando o método GetVaultNotifications e removê-la chamando o método DeleteVaultNotifications fornecido pelo cliente.

Exemplo: definir a configuração de notificação em um cofre usando o AWS SDK for .NET

O exemplo de código do C# a seguir ilustra as etapas anteriores. O exemplo define a configuração de notificação no cofre (“examplevault”) na região oeste dos EUA (Oregon), recupera a configuração e a exclui. A configuração solicita que o Amazon S3 Glacier (S3 Glacier) envie uma notificação para o tópico Amazon SNS especificado quando o evento ArchiveRetrievalCompleted ou o InventoryRetrievalCompleted ocorre.

nota

Para obter informações sobre a API REST subjacente, consulte Operações de cofre.

Para obter instruções passo a passo sobre como executar o exemplo a seguir, consulte Executar exemplos de código. Você precisa atualizar o código conforme mostrado e fornecer um nome de cofre existente, além de um tópico do Amazon SNS.

using System; using System.Collections.Generic; using Amazon.Glacier; using Amazon.Glacier.Model; using Amazon.Runtime; namespace glacier.amazon.com.rproxy.goskope.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); } } }