Amazon Simple Notification Service
開発者ガイド

SMS メッセージプリファレンスの設定

Amazon SNS を使用して、配信の最適化の方法 (コストに対してか、確実な配信に対してか)、毎月の使用量の上限、メッセージ配信がログに記録される方法、SMS の毎日の使用状況レポートをサブスクライブするかどうかなど、SMS メッセージのプリファレンスを指定します。

これらの設定は、アカウントから送信するすべての SMS メッセージに対して有効になりますが、個々のメッセージの送信時に上書きすることができます。詳細については、「SMS メッセージの送信」を参照してください。

AWS マネジメントコンソール を使用した SMS メッセージプリファレンスの設定

  1. Amazon SNS コンソールにサインインします。

  2. SMS メッセージングをサポートしているリージョンを選択します。

  3. ナビゲーションパネルで、[Mobile (モバイル)]、[Text messaging (SMS) (テキストメッセージ (SMS))] を選択します。

  4. [Mobile text messaging (SMS) (モバイルテキストメッセージ (SMS))] ページの [Text messaging preferences (テキストメッセージプリファレンス)] セクションで、[Edit (編集)] を選択します。

  5. [Edit text messaging preferences (テキストメッセージプリファレンスの編集)] ページの [Details (詳細)] セクションで、以下の操作を実行します。

    1. [Default message type (デフォルトメッセージタイプ)] で、次のいずれかを選択します。

      • [Promotional (プロモーション)] (デフォルト) – 重要度が低いメッセージ (広告など)。Amazon SNS はメッセージの配信を最適化してコストを最小に抑えます。

      • [トランザクション] – 顧客のトランザクションをサポートする重要なメッセージ (たとえば、多要素認証のためのワンタイムパスコードなど)。Amazon SNS によってメッセージの配信が最適化され、最高の信頼性が実現されます。

      プロモーションおよびトランザクションメッセージの料金表の詳細については、「グローバル SMS 料金表」を参照してください。

    2. [Account spend limit (アカウントの使用料制限)] に、各暦月で SMS メッセージに使用する額 (USD) を入力します。

      重要

      • デフォルトでは、使用制限は 1.00 USD に設定されます。サービスの制限を引き上げるには、SNS テキストメッセージングのケースを AWS サポート に送信します。

      • コンソールに設定した量がサービスの制限を超える場合、Amazon SNS は SMS メッセージの発行を停止します。

      • Amazon SNS は分散システムであるため、使用制限を超えると数分以内に SMS メッセージの送信を停止します。その間に SMS メッセージを送信し続けると、制限を超えるコストが発生する可能性があります。

  6. (オプション) [Default sender ID (デフォルトの送信者 ID)] にカスタム ID (企業名など) を入力します。これは、受信デバイスに送信者として表示されます。

    注記

    送信者 ID のサポートについては、国によって異なります。

  7. (オプション) [Amazon S3 bucket name for usage reports (使用状況レポートの Amazon S3 バケット名)] の名前を入力します。

    注記

    S3 バケットポリシーによって Amazon SNS への書き込みアクセスが付与される必要があります。

  8. [Save changes] を選択します。

プリファレンスの設定 (AWS SDK)

AWS SDK のいずれかを使用して SMS プリファレンスを設定するには、Amazon SNS API の SetSMSAttributes リクエストに対応する SDK のアクションを使用します。このリクエストによって、月ごとの使用制限およびデフォルトの SMS 型 (プロモーションまたはトランザクション) などの、異なる SMS の属性に値を割り当てます。すべての SMS 属性については、『Amazon Simple Notification Service API Reference』の「SetSMSAttributes」を参照してください。

以下の例では、AWS SDK で提供される Amazon SNS クライアントを使用して SMS 設定を定義する方法について説明します。

AWS SDK for JavaAWS SDK for .NET
AWS SDK for Java

以下の例では、AWS SDK for Java の AmazonSNSClient クラスの setSMSAttributes メソッドを使用します。この例では、異なる属性名の値を設定します。

public static void main(String[] args) { AmazonSNSClient snsClient = new AmazonSNSClient(); setDefaultSmsAttributes(snsClient); } public static void setDefaultSmsAttributes(AmazonSNSClient snsClient) { SetSMSAttributesRequest setRequest = new SetSMSAttributesRequest() .addAttributesEntry("DefaultSenderID", "mySenderID") .addAttributesEntry("MonthlySpendLimit", "1") .addAttributesEntry("DeliveryStatusIAMRole", "arn:aws:iam::123456789012:role/mySnsRole") .addAttributesEntry("DeliveryStatusSuccessSamplingRate", "10") .addAttributesEntry("DefaultSMSType", "Transactional") .addAttributesEntry("UsageReportS3Bucket", "sns-sms-daily-usage"); snsClient.setSMSAttributes(setRequest); Map<String, String> myAttributes = snsClient.getSMSAttributes(new GetSMSAttributesRequest()) .getAttributes(); System.out.println("My SMS attributes:"); for (String key : myAttributes.keySet()) { System.out.println(key + " = " + myAttributes.get(key)); } }

この例では、MonthlySpendLimit 属性の値を 1.00 USD に設定します。デフォルトでは、これは Amazon SNS で許可される最大額です。制限を引き上げる場合は、SNS テキストメッセージングのケースを AWS サポート に送信します。[新しい制限値] に、必要な月ごとの使用制限を入力します。[Use Case Description] フィールドで、月ごとの SMS 使用制限の引き上げをリクエストしていることを説明します。通常、AWS サポートでは 2 営業日以内にケースが処理されます。AWS サポート では、リクエストする使用制限およびケースの複雑さに応じて、リクエストを確実に処理するために、さらに 3~5 日必要になることがあります。

属性が正しく設定されたことを確認するために、この例では、getSMSAttributes メソッドの結果を表示します。この例を実行すると、IDE のコンソール出力ウィンドウに属性が表示されます。

My SMS attributes: DeliveryStatusSuccessSamplingRate = 10 UsageReportS3Bucket = sns-sms-daily-usage DefaultSMSType = Transactional DeliveryStatusIAMRole = arn:aws:iam::123456789012:role/mySnsRole MonthlySpendLimit = 1 DefaultSenderID = mySenderID
AWS SDK for .NET

以下の例では、AWS SDK for .NET の AmazonSimpleNotificationServiceClient クラスの SetSMSAttributes メソッドを使用します。この例では、異なる属性名の値を設定します。

static void Main(string[] args) { AmazonSimpleNotificationServiceClient snsClient = new AmazonSimpleNotificationServiceClient(Amazon.RegionEndpoint.USWest2); SetDefaultSmsAttributes(snsClient); } public static void SetDefaultSmsAttributes(AmazonSimpleNotificationServiceClient snsClient) { SetSMSAttributesRequest setRequest = new SetSMSAttributesRequest(); setRequest.Attributes["DefaultSenderID"] = "mySenderID"; setRequest.Attributes["MonthlySpendLimit"] = "1"; setRequest.Attributes["DeliveryStatusIAMRole"] = "arn:aws:iam::123456789012:role/mySnsRole"; setRequest.Attributes["DeliveryStatusSuccessSamplingRate"] = "10"; setRequest.Attributes["DefaultSMSType"] = "Transactional"; setRequest.Attributes["UsageReportS3Bucket"] = "sns-sms-daily-usage"; SetSMSAttributesResponse setResponse = snsClient.SetSMSAttributes(setRequest); GetSMSAttributesRequest getRequest = new GetSMSAttributesRequest(); GetSMSAttributesResponse getResponse = snsClient.GetSMSAttributes(getRequest); Console.WriteLine("My SMS attributes:"); foreach (var item in getResponse.Attributes) { Console.WriteLine(item.Key + " = " + item.Value); } }

この例では、MonthlySpendLimit 属性の値を 1.00 USD に設定します。デフォルトでは、これは Amazon SNS で許可される最大額です。制限を引き上げる場合は、SNS テキストメッセージングのケースを AWS サポート に送信します。[新しい制限値] に、必要な月ごとの使用制限を入力します。[Use Case Description] フィールドで、月ごとの SMS 使用制限の引き上げをリクエストしていることを説明します。通常、AWS サポートでは 2 営業日以内にケースが処理されます。AWS サポート では、リクエストする使用制限およびケースの複雑さに応じて、リクエストを確実に処理するために、さらに 3~5 日必要になることがあります。

属性が正しく設定されたことを確認するために、この例では、GetSMSAttributes メソッドの結果を表示します。この例を実行すると、IDE のコンソール出力ウィンドウに属性が表示されます。

My SMS attributes: DeliveryStatusSuccessSamplingRate = 10 UsageReportS3Bucket = sns-sms-daily-usage DefaultSMSType = Transactional DeliveryStatusIAMRole = arn:aws:iam::123456789012:role/mySnsRole MonthlySpendLimit = 1 DefaultSenderID = mySenderID