SMS メッセージプリファレンスを設定する - Amazon Simple Notification Service

SMS メッセージプリファレンスを設定する

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

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

AWS Management Console を使用した SMS メッセージングプリファレンスを設定する

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

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

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

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

  5. [テキストメッセージングの優先設定の編集] ページの [詳細] セクションで、以下の操作を実行します。

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

      • [プロモーション] (デフォルト) — 重要度が低いメッセージ (広告など)。Amazon SNS は、最も低いコストが発生するようにメッセージ配信を最適化します。

      • [トランザクション] - 多要素認証のワンタイムパスコードなど、顧客のトランザクションをサポートするクリティカルメッセージ。Amazon SNS は、メッセージ配信を最も高い信頼性の実現のために最適化します。

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

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

      重要
      • デフォルトでは、使用限度は 1.00 USD に設定されます。サービス限度を引き上げるには、リクエストを送信します。

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

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

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

    注記

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

  7. (オプション) 使用状況レポート用の 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 リファレンス』の「SetSMSAttributes」を参照してください。

次のコードの例は、Amazon SNS を使用した SMS メッセージを送信するためのデフォルト設定を設定する方法を示しています。

C++
SDK for C++

Amazon SNS を使用して defaultsMsType 属性を設定する方法。

Aws::SDKOptions options; Aws::InitAPI(options); { Aws::SNS::SNSClient sns; Aws::String sms_type = argv[1]; Aws::SNS::Model::SetSMSAttributesRequest ssmst_req; ssmst_req.AddAttributes("DefaultSMSType", sms_type); auto ssmst_out = sns.SetSMSAttributes(ssmst_req); if (ssmst_out.IsSuccess()) { std::cout << "SMS Type set successfully " << std::endl; } else { std::cout << "Error while setting SMS Type: '" << ssmst_out.GetError().GetMessage() << "'" << std::endl; } } Aws::ShutdownAPI(options);
  • 手順とその他のコードについては GitHub でご確認いただけます。

  • API の詳細については、AWS SDK for C++ API リファレンスの「SetSmsAttributes」を参照してください。

Java
SDK for Java 2.x

public static void setSNSAttributes( SnsClient snsClient, HashMap<String, String> attributes) { try { SetSmsAttributesRequest request = SetSmsAttributesRequest.builder() .attributes(attributes) .build(); SetSmsAttributesResponse result = snsClient.setSMSAttributes(request); System.out.println("Set default Attributes to " + attributes + ". Status was " + result.sdkHttpResponse().statusCode()); } catch (SnsException e) { System.err.println(e.awsErrorDetails().errorMessage()); System.exit(1); } }
  • 手順とその他のコードについては GitHub でご確認いただけます。

  • API の詳細については、AWS SDK for Java 2.x API リファレンスの「SetSmsAttributes」を参照してください。

JavaScript
SDK for JavaScript V3

別のモジュールでクライアントを作成し、エクスポートします。

import { SNSClient } from "@aws-sdk/client-sns"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create SNS service object. const snsClient = new SNSClient({ region: REGION }); export { snsClient };

SDK モジュールとクライアントモジュールをインポートし、API を呼び出します。

// Import required AWS SDK clients and commands for Node.js import {SetSMSAttributesCommand } from "@aws-sdk/client-sns"; import {snsClient } from "./libs/snsClient.js"; // Set the parameters const params = { attributes: { /* required */ DefaultSMSType: "Transactional" /* highest reliability */, //'DefaultSMSType': 'Promotional' /* lowest cost */ }, }; const run = async () => { try { const data = await snsClient.send(new SetSMSAttributesCommand(params)); console.log("Success.", data); return data; // For unit tests. } catch (err) { console.log("Error", err.stack); } }; run();
PHP
SDK for PHP

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); try { $result = $SnSclient->SetSMSAttributes([ 'attributes' => [ 'DefaultSMSType' => 'Transactional', ], ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }