Panduan API Referensi AWS SDK for JavaScript V3 menjelaskan secara rinci semua API operasi untuk AWS SDK for JavaScript versi 3 (V3).
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mengelola Langganan di Amazon SNS
Contoh kode Node.js ini menunjukkan:
-
Cara membuat daftar semua langganan ke topik Amazon SNS.
-
Cara berlangganan alamat email, titik akhir aplikasi, atau AWS Lambda fungsi ke topik Amazon SNS.
-
Cara berhenti berlangganan dari topik Amazon SNS.
Skenario
Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk mempublikasikan pesan notifikasi ke topik Amazon SNS. Modul Node.js menggunakan SDK JavaScript untuk mengelola topik menggunakan metode kelas SNS
klien berikut:
Tugas Prasyarat
Untuk mengatur dan menjalankan contoh ini, Anda harus terlebih dahulu menyelesaikan tugas-tugas ini:
-
Siapkan lingkungan proyek untuk menjalankan TypeScript contoh Node ini, dan instal modul yang diperlukan AWS SDK for JavaScript dan pihak ketiga. Ikuti instruksi pada GitHub
. -
Buat file konfigurasi bersama dengan kredensi pengguna Anda. Untuk informasi selengkapnya tentang menyediakan file kredensial bersama, lihat File konfigurasi dan kredensial bersama di Panduan Referensi AWSSDK dan Alat.
penting
Contoh-contoh ini menunjukkan cara mengimpor/mengekspor objek dan perintah layanan klien menggunakan ECMAScript6 (ES6).
Ini membutuhkan Node.js versi 13.x atau lebih tinggi. Untuk mengunduh dan menginstal versi terbaru dari Node.js, lihat unduhan Node.js.
. Jika Anda lebih suka menggunakan sintaks CommonJS, lihat. JavaScript ES6/CommonJS sintaks
Daftar Langganan ke Topik
Dalam contoh ini, gunakan modul Node.js untuk mencantumkan semua langganan ke topik Amazon SNS.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
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({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama filelist-subscriptions-by-topic.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.
Buat objek yang berisi TopicArn
parameter untuk topik yang langganannya ingin Anda daftarkan. Lewati parameter ke ListSubscriptionsByTopicCommand
metode kelas SNS
klien. Untuk memanggil ListSubscriptionsByTopicCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, dan meneruskan objek parameter.
catatan
Ganti TOPIC_ARN
dengan Amazon Resource Name (ARN) untuk topik yang langganannya ingin Anda daftarkan.
import { ListSubscriptionsByTopicCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} topicArn - The ARN of the topic for which you wish to list subscriptions. */ export const listSubscriptionsByTopic = async (topicArn = "TOPIC_ARN") => { const response = await snsClient.send( new ListSubscriptionsByTopicCommand({ TopicArn: topicArn }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '0934fedf-0c4b-572e-9ed2-a3e38fadb0c8', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // Subscriptions: [ // { // SubscriptionArn: 'PendingConfirmation', // Owner: '901487484989', // Protocol: 'email', // Endpoint: 'corepyle@amazon.com', // TopicArn: 'arn:aws:sns:us-east-1:901487484989:mytopic' // } // ] // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node list-subscriptions-by-topic.js
Kode contoh ini dapat ditemukan di sini GitHub
Berlangganan Alamat Email ke Topik
Dalam contoh ini, gunakan modul Node.js untuk berlangganan alamat email sehingga menerima pesan email SMTP dari topik Amazon SNS.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
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({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama filesubscribe-email.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.
Buat objek yang berisi Protocol
parameter untuk menentukan email
protokol, topik TopicArn
untuk berlangganan, dan alamat email sebagai pesanEndpoint
. Lewati parameter ke SubscribeCommand
metode kelas SNS
klien. Anda dapat menggunakan subscribe
metode ini untuk berlangganan beberapa titik akhir yang berbeda ke topik Amazon SNS, tergantung pada nilai yang digunakan untuk parameter yang diteruskan, seperti contoh lain dalam topik ini akan ditampilkan.
Untuk memanggil SubscribeCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, dan meneruskan objek parameter.
catatan
Ganti TOPIC_ARN
dengan Amazon Resource Name (ARN) untuk topik tersebut, dan EMAIL_ADDRESS
dengan alamat email untuk berlangganan.
import { SubscribeCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} topicArn - The ARN of the topic for which you wish to confirm a subscription. * @param {string} emailAddress - The email address that is subscribed to the topic. */ export const subscribeEmail = async ( topicArn = "TOPIC_ARN", emailAddress = "usern@me.com", ) => { const response = await snsClient.send( new SubscribeCommand({ Protocol: "email", TopicArn: topicArn, Endpoint: emailAddress, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: 'c8e35bcd-b3c0-5940-9f66-06f6fcc108f0', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // SubscriptionArn: 'pending confirmation' // } };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node subscribe-email.js
Kode contoh ini dapat ditemukan di sini GitHub
Mengonfirmasi Langganan
Dalam contoh ini, gunakan modul Node.js untuk memverifikasi maksud pemilik endpoint untuk menerima email dengan memvalidasi token yang dikirim ke titik akhir dengan tindakan berlangganan sebelumnya.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
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({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama fileconfirm-subscription.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.
Tentukan parameter, termasuk TOPIC_ARN
danTOKEN
, dan tentukan nilai TRUE
atau FALSE
untukAuthenticateOnUnsubscribe
.
Token adalah token berumur pendek yang dikirim ke pemilik titik akhir selama tindakan sebelumnyaSUBSCRIBE
. Misalnya, untuk titik akhir email TOKEN
ada di URL email Konfirmasi Langganan yang dikirim ke pemilik email. Misalnya, abc123
adalah token di URL berikut.
Untuk memanggil ConfirmSubscriptionCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter.
catatan
Ganti TOPIC_ARN
dengan Amazon Resource Name (ARN) untuk topik, TOKEN
dengan nilai token dari URL yang dikirim ke pemilik titik akhir dalam Subscribe
tindakan sebelumnya, dan tentukan AuthenticateOnUnsubscribe
. dengan nilai or. TRUE
FALSE
import { ConfirmSubscriptionCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} token - This token is sent the subscriber. Only subscribers * that are not AWS services (HTTP/S, email) need to be confirmed. * @param {string} topicArn - The ARN of the topic for which you wish to confirm a subscription. */ export const confirmSubscription = async ( token = "TOKEN", topicArn = "TOPIC_ARN", ) => { const response = await snsClient.send( // A subscription only needs to be confirmed if the endpoint type is // HTTP/S, email, or in another AWS account. new ConfirmSubscriptionCommand({ Token: token, TopicArn: topicArn, // If this is true, the subscriber cannot unsubscribe while unauthenticated. AuthenticateOnUnsubscribe: "false", }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '4bb5bce9-805a-5517-8333-e1d2cface90b', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // SubscriptionArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:TOPIC_NAME:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node confirm-subscription.js
Kode contoh ini dapat ditemukan di sini GitHub
Berlangganan Endpoint Aplikasi ke Topik
Dalam contoh ini, gunakan modul Node.js untuk berlangganan titik akhir aplikasi seluler sehingga menerima pemberitahuan dari topik Amazon SNS.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
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({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama filesubscribe-app.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal modul dan paket yang diperlukan.
Buat objek yang berisi Protocol
parameter untuk menentukan application
protokol, topik TopicArn
untuk berlangganan, dan Nama Sumber Daya Amazon (ARN) dari titik akhir aplikasi seluler untuk parameter tersebut. Endpoint
Lewati parameter ke SubscribeCommand
metode kelas SNS
klien.
Untuk memanggil SubscribeCommand
metode, buat fungsi asinkron yang menjalankan objek layanan Amazon SNS, melewati objek parameter.
catatan
Ganti TOPIC_ARN
dengan Amazon Resource Name (ARN) untuk topik tersebut, dan MOBILE_ENDPOINT_ARN dengan titik akhir
yang Anda berlangganan topik.
import { SubscribeCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} topicArn - The ARN of the topic the subscriber is subscribing to. * @param {string} endpoint - The Endpoint ARN of an application. This endpoint is created * when an application registers for notifications. */ export const subscribeApp = async ( topicArn = "TOPIC_ARN", endpoint = "ENDPOINT", ) => { const response = await snsClient.send( new SubscribeCommand({ Protocol: "application", TopicArn: topicArn, Endpoint: endpoint, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: 'c8e35bcd-b3c0-5940-9f66-06f6fcc108f0', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // SubscriptionArn: 'pending confirmation' // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node subscribe-app.js
Kode contoh ini dapat ditemukan di sini GitHub
Berlangganan Fungsi Lambda ke Topik
Dalam contoh ini, gunakan modul Node.js untuk berlangganan suatu AWS Lambda fungsi sehingga menerima pemberitahuan dari topik Amazon SNS.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
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({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama filesubscribe-lambda.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.
Buat objek yang berisi Protocol
parameter, tentukan lambda
protokol, topik TopicArn
untuk berlangganan, dan Amazon Resource Name (ARN) dari fungsi AWS Lambda sebagai Endpoint
parameter. Lewati parameter ke SubscribeCommand
metode kelas SNS
klien.
Untuk memanggil SubscribeCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter.
catatan
Ganti TOPIC_ARN
dengan Amazon Resource Name (ARN) untuk topik tersebut, dan LAMBDA_FUNCTION_ARN dengan Amazon Resource Name (ARN) dari fungsi Lambda
.
import { SubscribeCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} topicArn - The ARN of the topic the subscriber is subscribing to. * @param {string} endpoint - The Endpoint ARN of and AWS Lambda function. */ export const subscribeLambda = async ( topicArn = "TOPIC_ARN", endpoint = "ENDPOINT", ) => { const response = await snsClient.send( new SubscribeCommand({ Protocol: "lambda", TopicArn: topicArn, Endpoint: endpoint, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: 'c8e35bcd-b3c0-5940-9f66-06f6fcc108f0', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // SubscriptionArn: 'pending confirmation' // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node subscribe-lambda.js
Kode contoh ini dapat ditemukan di sini GitHub
Berhenti berlangganan dari topik
Dalam contoh ini, gunakan modul Node.js untuk berhenti berlangganan langganan topik Amazon SNS.
Buat libs
direktori, dan buat modul Node.js dengan nama filesnsClient.js
. Salin dan tempel kode di bawah ini ke dalamnya, yang membuat objek klien Amazon SNS. Ganti REGION
dengan AWS Region Anda.
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({});
Kode contoh ini dapat ditemukan di sini GitHub
Buat modul Node.js dengan nama fileunsubscribe.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.
Buat objek yang berisi SubscriptionArn
parameter, tentukan Amazon Resource Name (ARN) dari langganan untuk berhenti berlangganan. Lewati parameter ke UnsubscribeCommand
metode kelas SNS
klien.
Untuk memanggil UnsubscribeCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter.
catatan
Ganti TOPIC_SUBSCRIPTION_ARN dengan
Amazon Resource Name (ARN) dari langganan untuk berhenti berlangganan.
import { UnsubscribeCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} subscriptionArn - The ARN of the subscription to cancel. */ const unsubscribe = async ( subscriptionArn = "arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", ) => { const response = await snsClient.send( new UnsubscribeCommand({ SubscriptionArn: subscriptionArn, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '0178259a-9204-507c-b620-78a7570a44c6', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // } // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node unsubscribe.js
Kode contoh ini dapat ditemukan di sini GitHub