Mengatur preferensi SMS pesan di Amazon SNS - Amazon Simple Notification Service

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengatur preferensi SMS pesan di Amazon SNS

Gunakan Amazon SNS untuk menentukan preferensi SMS pesan. Misalnya, Anda dapat menentukan apakah akan mengoptimalkan pengiriman untuk biaya atau keandalan, batas pengeluaran bulanan Anda, bagaimana pengiriman dicatat, dan apakah akan berlangganan laporan SMS penggunaan harian.

Preferensi ini berlaku untuk setiap SMS pesan yang Anda kirim dari akun Anda, tetapi Anda dapat mengganti beberapa dari mereka ketika Anda mengirim pesan individual. Untuk informasi selengkapnya, lihat Menerbitkan SMS pesan ke ponsel menggunakan Amazon SNS.

Mengatur preferensi SMS pesan menggunakan AWS Management Console

  1. Masuk ke SNSkonsol Amazon.

  2. Pilih wilayah yang mendukung SMS pengiriman pesan.

  3. Pada panel navigasi, pilih Seluler dan kemudian Pesan teks (SMS).

  4. Pada halaman Pesan teks seluler (SMS), di bagian Preferensi pesan teks, pilih Edit.

  5. Di halaman Edit text messaging preferences (Edit preferensi olahpesan teks), di bagian Details, lakukan hal berikut:

    1. Untuk Default message type (Jenis pesan bawaan), pilih salah satu jenis berikut:

      • Promosi — Pesan non-kritis (misalnya, pemasaran). Amazon SNS mengoptimalkan pengiriman pesan untuk mengeluarkan biaya terendah.

      • Transaksional (default) — Pesan penting yang mendukung transaksi pelanggan, seperti kode sandi satu kali untuk otentikasi multi-faktor. Amazon SNS mengoptimalkan pengiriman pesan untuk mencapai keandalan tertinggi.

      Untuk informasi harga untuk pesan promosi dan transaksional, lihat Harga Global SMS.

    2. (Opsional) Untuk batas pengeluaran Akun, masukkan jumlah (dalamUSD) yang ingin Anda belanjakan untuk SMS pesan setiap bulan kalender.

      penting
      • Secara default, kuota pembelanjaan diatur ke USD 1,00. Jika Anda ingin meningkatkan kuota layanan, kirimkan permintaan.

      • Jika jumlah yang ditetapkan di konsol melebihi kuota layanan Anda, Amazon SNS berhenti menerbitkan SMS pesan.

      • Karena Amazon SNS adalah sistem terdistribusi, Amazon berhenti mengirim SMS pesan dalam beberapa menit setelah kuota pengeluaran terlampaui. Selama interval ini, jika Anda terus mengirim SMS pesan, Anda mungkin dikenakan biaya yang melebihi kuota Anda.

  6. (Opsional) Untuk Default sender ID (ID pengirim default), masukkan ID kustom, seperti merek bisnis Anda, yang ditampilkan sebagai pengirim di perangkat penerima.

    catatan

    Support untuk pengirim IDs bervariasi menurut negara.

  7. (Opsional) Masukkan nama Nama bucket Amazon S3 untuk laporan penggunaan.

    catatan

    Kebijakan bucket S3 harus memberikan akses tulis ke AmazonSNS.

  8. Pilih Simpan perubahan.

Pengaturan preferensi (AWS SDKs)

Untuk mengatur SMS preferensi Anda menggunakan salah satu AWS SDKs, gunakan tindakan SDK yang sesuai dengan SetSMSAttributes permintaan di Amazon SNSAPI. Dengan permintaan ini, Anda menetapkan nilai ke SMS atribut yang berbeda, seperti kuota belanja bulanan dan SMS tipe default Anda (promosi atau transaksional). Untuk semua SMS atribut, lihat S etSMSAttributes di APIReferensi Layanan Pemberitahuan Sederhana Amazon.

Contoh kode berikut menunjukkan cara menggunakanSetSMSAttributes.

C++
SDKuntuk C ++
catatan

Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS.

Cara menggunakan Amazon SNS untuk mengatur efaultSMSType atribut D.

//! Set the default settings for sending SMS messages. /*! \param smsType: The type of SMS message that you will send by default. \param clientConfiguration: AWS client configuration. \return bool: Function succeeded. */ bool AwsDoc::SNS::setSMSType(const Aws::String &smsType, const Aws::Client::ClientConfiguration &clientConfiguration) { Aws::SNS::SNSClient snsClient(clientConfiguration); Aws::SNS::Model::SetSMSAttributesRequest request; request.AddAttributes("DefaultSMSType", smsType); const Aws::SNS::Model::SetSMSAttributesOutcome outcome = snsClient.SetSMSAttributes( request); if (outcome.IsSuccess()) { std::cout << "SMS Type set successfully " << std::endl; } else { std::cerr << "Error while setting SMS Type: '" << outcome.GetError().GetMessage() << "'" << std::endl; } return outcome.IsSuccess(); }
CLI
AWS CLI

Untuk mengatur atribut SMS pesan

set-sms-attributesContoh berikut menetapkan ID pengirim default untuk SMS pesan keMyName.

aws sns set-sms-attributes \ --attributes DefaultSenderID=MyName

Perintah ini tidak menghasilkan output.

Java
SDKuntuk Java 2.x
catatan

Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS.

import software.amazon.awssdk.regions.Region; import software.amazon.awssdk.services.sns.SnsClient; import software.amazon.awssdk.services.sns.model.SetSmsAttributesRequest; import software.amazon.awssdk.services.sns.model.SetSmsAttributesResponse; import software.amazon.awssdk.services.sns.model.SnsException; import java.util.HashMap; /** * Before running this Java V2 code example, set up your development * environment, including your credentials. * * For more information, see the following documentation topic: * * https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html */ public class SetSMSAttributes { public static void main(String[] args) { HashMap<String, String> attributes = new HashMap<>(1); attributes.put("DefaultSMSType", "Transactional"); attributes.put("UsageReportS3Bucket", "janbucket"); SnsClient snsClient = SnsClient.builder() .region(Region.US_EAST_1) .build(); setSNSAttributes(snsClient, attributes); snsClient.close(); } 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); } } }
JavaScript
SDKuntuk JavaScript (v3)
catatan

Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS.

Buat klien dalam modul terpisah dan ekspor klien tersebut.

import { SNSClient } from "@aws-sdk/client-sns"; // The AWS Region can be provided here using the `region` property. If you leave it blank // the SDK will default to the region set in your AWS config. export const snsClient = new SNSClient({});

Impor modul SDK dan klien dan panggil fileAPI.

import { SetSMSAttributesCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {"Transactional" | "Promotional"} defaultSmsType */ export const setSmsType = async (defaultSmsType = "Transactional") => { const response = await snsClient.send( new SetSMSAttributesCommand({ attributes: { // Promotional – (Default) Noncritical messages, such as marketing messages. // Transactional – Critical messages that support customer transactions, // such as one-time passcodes for multi-factor authentication. DefaultSMSType: defaultSmsType, }, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '1885b977-2d7e-535e-8214-e44be727e265', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // } // } return response; };
PHP
SDKuntuk PHP
catatan

Ada lebih banyak tentang GitHub. Temukan contoh lengkapnya dan pelajari cara pengaturan dan menjalankannya di Repositori Contoh Kode AWS.

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

Menyetel preferensi SMS pesan untuk pengiriman khusus negara

Anda dapat mengelola dan mengontrol SMS lalu lintas Anda dengan mengirim pesan hanya ke negara tujuan tertentu. Ini memastikan bahwa pesan Anda dikirim hanya ke negara yang disetujui, menghindari SMS biaya yang tidak diinginkan. Petunjuk berikut menggunakan konfigurasi Protect Amazon Pinpoint untuk menentukan negara yang ingin Anda izinkan atau blokir.

  1. Buka AWS SMS konsol di https://console.aws.amazon.com/sms-voice/.

  2. Di panel navigasi, di bawah Ikhtisar, di bagian Mulai cepat, pilih Buat konfigurasi proteksi.

  3. Di bawah Protect configuration details, masukkan nama yang ramah bisnis untuk konfigurasi proteksi Anda (misalnya, Allow-only-AU).

  4. Di bawah aturan SMS negara, pilih kotak centang Wilayah/Negara untuk memblokir pengiriman pesan ke semua negara yang didukung.

  5. Hapus centang kotak untuk negara tempat Anda ingin mengirim pesan. Misalnya, untuk mengizinkan pesan hanya ke Australia, batalkan centang kotak untuk Australia.

  6. Di bagian Lindungi asosiasi konfigurasi, di bawah Jenis asosiasi, pilih Akun default. Ini akan memastikan bahwa konfigurasi AWS Olah Pesan Pengguna Akhir SMS Protect memengaruhi semua pesan yang dikirim melalui AmazonSNS, Amazon Cognito, dan panggilan Amazon SendMessagesAPIPinpoint.

  7. Pilih Buat konfigurasi proteksi untuk menyimpan pengaturan Anda.

    Pesan konfirmasi berikut ditampilkan:

    Success Protect configuration protect-abc0123456789 has been created.
  8. Masuk ke SNSkonsol Amazon.

  9. Publikasikan pesan ke salah satu negara yang diblokir, seperti India.

    Pesan tidak akan terkirim. Anda dapat memverifikasi ini di log kegagalan pengiriman menggunakan CloudWatch. Cari grup log DirectPublishToPhoneNumberSNS/Region/Accountid//Failure untuk respons yang mirip dengan contoh berikut:

    { "notification": { "messageId": "bd59a509-XXXX-XXXX-82f8-fbdb8cb68217", "timestamp": "YYYY-MM-DD XX:XX:XX.XXXX“ }, "delivery": { "destination": "+91XXXXXXXXXX", "smsType": "Transactional", "providerResponse": "Cannot deliver message to the specified destination country", "dwellTimeMs": 85 }, "status": "FAILURE" }