このページは、Vaults と 2012 RESTAPI年のオリジナルを使用する S3 Glacier サービスの既存のお客様専用です。
アーカイブストレージソリューションをお探しの場合は、Amazon S3、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval、S3 GlacierS3 Deep Archive の S3 Glacier ストレージクラスを使用することをお勧めします。これらのストレージオプションの詳細については、Amazon S3 ユーザーガイドの「S3 Glacier ストレージクラス
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon S3 Glacier で AWS SDK for .NET を使用してボールト通知を設定する
以下では、AWS SDK for .NET の低レベル API を使用してボールトに通知を設定する手順を示します。
-
AmazonGlacierClient
クラスのインスタンス(クライアント)を作成します。ボールトが属する AWS リージョンを指定する必要があります。このクライアントを使用して実行するすべてのオペレーションは、そのAWSリージョンに適用されます。
-
SetVaultNotificationsRequest
クラスのインスタンスを作成することにより、通知設定の情報を指定します。ボールト名、通知設定の情報、およびアカウント ID を指定する必要があります。アカウント ID を指定しなかった場合には、リクエストに署名する際に使用した認証情報に関連付けられているアカウント ID が使用されます。詳細については、「Amazon S3 Glacier でのAWS SDK for .NETの使用」を参照してください。
通知設定の指定で、既存の Amazon SNS トピックの Amazon リソースネーム (ARN) と、通知する 1 つ以上のイベントを指定します。サポートされているイベントのリストについては、「ボールトの通知設定の指定 (PUT notification-configuration)」を参照してください。
-
リクエストオブジェクトをパラメータとして指定して、
SetVaultNotifications
メソッドを実行します。 -
ボールトに通知設定を設定した後は、クライアントにより提供される、
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); } } }