Mengelola topik di Amazon SNS dengan Versi 3 AWS SDK for PHP - AWS SDK for PHP

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 dengan Versi 3 AWS SDK for PHP

Untuk mengirim pemberitahuan ke Amazon Simple Queue Service (Amazon SQS), URL HTTP/HTTPS, email, AWS Lambda atauAWS SMS, Anda harus terlebih dahulu membuat topik yang mengelola pengiriman pesan ke pelanggan mana pun dari topik tersebut.

Dalam hal pola desain pengamat, topik seperti subjek. Setelah topik dibuat, Anda menambahkan pelanggan yang diberi tahu secara otomatis saat pesan dipublikasikan ke topik tersebut.

Pelajari lebih lanjut tentang berlangganan topik di Mengelola Langganan di Amazon AWS SDK for PHP SNS dengan Versi 3.

Contoh berikut menunjukkan cara:

  • Buat topik untuk mempublikasikan notifikasi untuk digunakan CreateTopic.

  • Kembalikan daftar topik pemohon menggunakan ListTopics.

  • Hapus topik dan semua langganannya menggunakan DeleteTopic.

  • Kembalikan semua properti topik menggunakan GetTopicAttributes.

  • Izinkan pemilik topik untuk menyetel atribut topik ke nilai baru menggunakan SetTopicAttributes.

Untuk informasi selengkapnya tentang menggunakan Amazon SNS, lihat Atribut Topik Amazon SNS untuk Status Pengiriman Pesan.

Semua kode contoh untuk AWS SDK for PHP tersedia di sini GitHub.

Kredensial

Sebelum menjalankan kode contoh, konfigurasikan AWS kredensyal Anda, seperti yang dijelaskan dalam. Kredensial Kemudian imporAWS SDK for PHP, seperti yang dijelaskan dalamPenggunaan dasar.

Buat topik

Untuk membuat topik, gunakan CreateTopicoperasi.

Setiap nama topik dalam Anda Akun AWS harus unik.

Impor

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Kode Sampel

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

Buat daftar topik Anda

Untuk membuat daftar hingga 100 topik yang ada di AWS Wilayah saat ini, gunakan ListTopicsoperasi.

Impor

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Kode Sampel

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

Hapus topik

Untuk menghapus topik yang ada dan semua langganannya, gunakan DeleteTopicoperasi.

Setiap pesan yang belum dikirim ke pelanggan juga akan dihapus.

Impor

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Kode Sampel

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->deleteTopic([ 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Dapatkan atribut topik

Untuk mengambil properti dari satu topik yang ada, gunakan GetTopicAttributesoperasi.

Impor

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Kode Sampel

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->getTopicAttributes([ 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }

Tetapkan atribut topik

Untuk memperbarui properti dari satu topik yang ada, gunakan SetTopicAttributesoperasi.

Anda hanya dapat mengaturPolicy,DisplayName, dan DeliveryPolicy atribut.

Impor

require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;

Kode Sampel

$SnSclient = new SnsClient([ 'profile' => 'default', 'region' => 'us-east-1', 'version' => '2010-03-31' ]); $attribute = 'Policy | DisplayName | DeliveryPolicy'; $value = 'First Topic'; $topic = 'arn:aws:sns:us-east-1:111122223333:MyTopic'; try { $result = $SnSclient->setTopicAttributes([ 'AttributeName' => $attribute, 'AttributeValue' => $value, 'TopicArn' => $topic, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails error_log($e->getMessage()); }