Mengelola Topik di Amazon SNS - AWS SDK for JavaScript

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

JavaScript code example that applies to Node.js execution

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).

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.