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 Topik di Amazon SNS
Contoh kode Node.js ini menunjukkan:
-
Cara membuat topik di Amazon SNS tempat Anda dapat mempublikasikan notifikasi.
-
Cara menghapus topik yang dibuat di Amazon SNS.
-
Cara mendapatkan daftar topik yang tersedia.
-
Cara mendapatkan dan mengatur atribut topik.
Skenario
Dalam contoh ini, Anda menggunakan serangkaian modul Node.js untuk membuat, membuat daftar, dan menghapus topik Amazon SNS, dan untuk menangani atribut topik. 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
Membuat Topik
Dalam contoh ini, gunakan modul Node.js untuk membuat 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 filecreate-topic.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.
Buat objek untuk meneruskan topik baru ke CreateTopicCommand
metode kelas SNS
klien. Name
Untuk memanggil CreateTopicCommand
metode, buat fungsi asinkron yang menjalankan objek layanan Amazon SNS, melewati objek parameter. Yang data
dikembalikan berisi ARN topik.
catatan
Ganti TOPIC_NAME
dengan nama topik.
import { CreateTopicCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} topicName - The name of the topic to create. */ export const createTopic = async (topicName = "TOPIC_NAME") => { const response = await snsClient.send( new CreateTopicCommand({ Name: topicName }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '087b8ad2-4593-50c4-a496-d7e90b82cf3e', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // TopicArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:TOPIC_NAME' // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node create-topic.js
Kode contoh ini dapat ditemukan di sini GitHub
Daftar Topik Anda
Dalam contoh ini, gunakan modul Node.js untuk mencantumkan semua 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-topics.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.
Buat objek kosong untuk diteruskan ke ListTopicsCommand
metode kelas SNS
klien. Untuk memanggil ListTopicsCommand
metode, buat fungsi asinkron yang menjalankan objek layanan Amazon SNS, melewati objek parameter. Yang data
dikembalikan berisi larik topik Anda Amazon Resource Names (ARN).
import { ListTopicsCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; export const listTopics = async () => { const response = await snsClient.send(new ListTopicsCommand({})); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '936bc5ad-83ca-53c2-b0b7-9891167b909e', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // Topics: [ { TopicArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic' } ] // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node list-topics.js
Kode contoh ini dapat ditemukan di sini GitHub
Menghapus Topik
Dalam contoh ini, gunakan modul Node.js untuk menghapus 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 filedelete-topic.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya, termasuk menginstal klien dan paket yang diperlukan.
Buat objek yang TopicArn
berisi topik yang akan dihapus untuk diteruskan ke DeleteTopicCommand
metode kelas SNS
klien. Untuk memanggil DeleteTopicCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter.
catatan
Ganti TOPIC_ARN
dengan Amazon Resource Name (ARN) dari topik yang Anda hapus.
import { DeleteTopicCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} topicArn - The ARN of the topic to delete. */ export const deleteTopic = async (topicArn = "TOPIC_ARN") => { const response = await snsClient.send( new DeleteTopicCommand({ TopicArn: topicArn }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: 'a10e2886-5a8f-5114-af36-75bd39498332', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // } // } };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node delete-topic.js
Kode contoh ini dapat ditemukan di sini GitHub
Mendapatkan Atribut Topik
Dalam contoh ini, gunakan modul Node.js untuk mengambil atribut 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 fileget-topic-attributes.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.
Buat objek yang TopicArn
berisi topik yang akan dihapus untuk diteruskan ke GetTopicAttributesCommand
metode kelas SNS
klien. Untuk memanggil GetTopicAttributesCommand
metode, memanggil objek layanan klien Amazon SNS, meneruskan objek parameter.
catatan
Ganti TOPIC_ARN dengan
ARN topik.
import { GetTopicAttributesCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; /** * @param {string} topicArn - The ARN of the topic to retrieve attributes for. */ export const getTopicAttributes = async (topicArn = "TOPIC_ARN") => { const response = await snsClient.send( new GetTopicAttributesCommand({ TopicArn: topicArn, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: '36b6a24e-5473-5d4e-ac32-ff72d9a73d94', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // }, // Attributes: { // Policy: '{...}', // Owner: 'xxxxxxxxxxxx', // SubscriptionsPending: '1', // TopicArn: 'arn:aws:sns:us-east-1:xxxxxxxxxxxx:mytopic', // TracingConfig: 'PassThrough', // EffectiveDeliveryPolicy: '{"http":{"defaultHealthyRetryPolicy":{"minDelayTarget":20,"maxDelayTarget":20,"numRetries":3,"numMaxDelayRetries":0,"numNoDelayRetries":0,"numMinDelayRetries":0,"backoffFunction":"linear"},"disableSubscriptionOverrides":false,"defaultRequestPolicy":{"headerContentType":"text/plain; charset=UTF-8"}}}', // SubscriptionsConfirmed: '0', // DisplayName: '', // SubscriptionsDeleted: '1' // } // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node get-topic-attributes.js
Kode contoh ini dapat ditemukan di sini GitHub
Mengatur Atribut Topik
Dalam contoh ini, gunakan modul Node.js untuk menyetel atribut yang dapat berubah 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 fileset-topic-attributes.js
. Konfigurasikan SDK seperti yang ditunjukkan sebelumnya.
Buat objek yang berisi parameter untuk pembaruan atribut, termasuk topik yang atributnya ingin Anda tetapkan, nama atribut yang akan ditetapkan, dan nilai baru untuk atribut tersebut. TopicArn
Anda hanya dapat mengaturPolicy
,DisplayName
, dan DeliveryPolicy
atribut. Lewati parameter ke SetTopicAttributesCommand
metode kelas SNS
klien. Untuk memanggil SetTopicAttributesCommand
metode, buat fungsi asinkron yang menjalankan objek layanan klien Amazon SNS, melewati objek parameter.
catatan
Ganti
ATTRIBUTE_NAME
dengan nama atribut yang Anda setel, TOPIC_ARN dengan Amazon Resource Name (ARN
) dari topik yang atributnya ingin Anda tetapkan, dan NEW_ATTRIBUTE_VALUE dengan nilai baru untuk atribut tersebut.
import { SetTopicAttributesCommand } from "@aws-sdk/client-sns"; import { snsClient } from "../libs/snsClient.js"; export const setTopicAttributes = async ( topicArn = "TOPIC_ARN", attributeName = "DisplayName", attributeValue = "Test Topic", ) => { const response = await snsClient.send( new SetTopicAttributesCommand({ AttributeName: attributeName, AttributeValue: attributeValue, TopicArn: topicArn, }), ); console.log(response); // { // '$metadata': { // httpStatusCode: 200, // requestId: 'd1b08d0e-e9a4-54c3-b8b1-d03238d2b935', // extendedRequestId: undefined, // cfId: undefined, // attempts: 1, // totalRetryDelay: 0 // } // } return response; };
Untuk menjalankan contoh, masukkan yang berikut ini di command prompt.
node set-topic-attributes.js
Kode contoh ini dapat ditemukan di sini GitHub