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

このページは、2012 年にリリースされた当初のボールトと REST API を使用する、S3 Glacier サービスの既存のお客様を対象としたものです。

アーカイブストレージソリューションをお探しの場合は、Amazon S3 の S3 Glacier ストレージクラス (S3 Glacier Instant RetrievalS3 Glacier Flexible RetrievalS3 Glacier Deep Archive) を使用することをお勧めします。これらのストレージオプションの詳細については、「Amazon S3 ユーザーガイド」の「S3 Glacier ストレージクラス」および「長期データストレージとしての S3 Glacier ストレージクラスを理解する」を参照してください。これらのストレージクラスは Amazon S3 API を使用し、すべてのリージョンで利用可能で、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 S3 」を参照してください。

    通知設定の指定で、既存の 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); } } }