Amazon S3 Glacier で AWS SDK for .NET を使用してボールト通知を設定する - Amazon S3 Glacier

Amazon Simple Storage Service (Amazon S3) のアーカイブストレージを初めて使用する場合は、Amazon S3 の S3 Glacier ストレージクラス、S3 Glacier Instant RetrievalS3 Glacier Flexible RetrievalS3 Glacier Deep Archive について詳しく知ることから始めることをお勧めします。詳細については、「Amazon S3 ユーザーガイド」の「オブジェクトをアーカイブするための S3 Glacier ストレージクラス」および「ストレージクラス」を参照してください。 Amazon S3

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon S3 Glacier で AWS SDK for .NET を使用してボールト通知を設定する

以下では、AWS SDK for .NET の低レベル API を使用してボールトに通知を設定する手順を示します。

  1. AmazonGlacierClient クラスのインスタンス(クライアント)を作成します。

    ボールトが属する AWS リージョンを指定する必要があります。このクライアントを使用して実行するすべてのオペレーションは、そのAWSリージョンに適用されます。

  2. SetVaultNotificationsRequest クラスのインスタンスを作成することにより、通知設定の情報を指定します。

    ボールト名、通知設定の情報、およびアカウント ID を指定する必要があります。アカウント ID を指定しなかった場合には、リクエストに署名する際に使用した認証情報に関連付けられているアカウント ID が使用されます。詳細については、「Amazon S3 Glacier でのAWS SDK for .NETの使用」を参照してください。

    通知設定の指定で、既存の Amazon SNS トピックの Amazon リソースネーム (ARN) と、通知する 1 つ以上のイベントを指定します。サポートされているイベントのリストについては、「ボールトの通知設定の指定 (PUT notification-configuration)」を参照してください。

  3. リクエストオブジェクトをパラメータとして指定して、SetVaultNotifications メソッドを実行します。

  4. ボールトに通知設定を設定した後は、クライアントにより提供される、GetVaultNotifications メソッドを呼び出して設定情報を取得することや、DeleteVaultNotifications メソッドを呼び出して設定情報を削除することができます。

例: AWS SDK for .NET によるボールトの通知設定

以下の C# コードの例は、前述の手順を示しています。この例では、US West (Oregon) Region のボールト ("examplevault") の通知 設定の設定、取得、および削除を行います。この設定では、ArchiveRetrievalCompleted イベントまたは InventoryRetrievalCompleted イベントが発生したときに、指定した Amazon SNS トピックに通知を送信するように Amazon S3 Glacier (S3 Glacier) にリクエストします。

注記

基本となる REST API については、「ボールトオペレーション」を参照してください。

以下の例を実行するための詳しい手順については、「コード例の実行」を参照してください。ここに示したコードを更新し、既存のボールト名および Amazon SNS トピックを指定する必要があります。

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); } } }