翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SDK for PHP バージョン 3 を使用した Amazon SNS でのトピックの管理
Amazon Simple Queue Service (Amazon SQS)、HTTP/HTTPS URLs、E メール AWS SMS、または に通知を送信するには AWS Lambda、まず、そのトピックの受信者へのメッセージの配信を管理するトピックを作成する必要があります。
オブザーバー設計パターンの観点で言うと、トピックは件名と同様です。トピックが作成されたら、メッセージがトピックに発行されたときに自動的に通知を受け取るサブスクライバを追加します。
トピックへのサブスクライブの詳細については、AWS SDK for PHP 「バージョン 3 を使用した Amazon SNS でのサブスクリプションの管理」を参照してください。
以下の例では、次の方法を示しています。
-
CreateTopic を使用して通知を発行するトピックを作成する。
-
ListTopics を使用してリクエスタのトピックのリストを返す。
-
DeleteTopic を使用してトピックとそのすべてのサブスクリプションを削除する。
-
GetTopicAttributes を使用してトピックのすべてのプロパティを返す。
-
SetTopicAttributes を使用して、トピックの所有者がトピックの属性を新しい値に設定できるようにする。
Amazon SNS の使用の詳細については、「メッセージの配信ステータスの Amazon SNS トピック属性を使用するを」参照してください。
のすべてのサンプルコード AWS SDK for PHP はGitHub で入手できます
認証情報
サンプルコードを実行する前に、「」の説明に従って AWS 認証情報を設定しますAWS SDK for PHP バージョン 3 AWS を使用した での認証。次に AWS SDK for PHP、「」の説明に従って をインポートしますAWS SDK for PHP バージョン 3 のインストール。
トピックの作成
トピックを作成するには、CreateTopic オペレーションを使用します。
の各トピック名は一意 AWS アカウント である必要があります。
インポート
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;
サンプルコード
$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()); }
トピックをリストする
現在の AWS リージョンで最大 100 個の既存のトピックを一覧表示するには、ListTopics オペレーションを使用します。
インポート
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;
サンプルコード
$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()); }
トピックの削除
既存のトピックとそのすべてのサブスクリプションを削除するには、DeleteTopic オペレーションを使用します。
サブスクライバにまだ配信されていないメッセージもすべて削除されます。
インポート
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;
サンプルコード
$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()); }
トピック属性を取得する
1 つの既存のトピックのプロパティを取得するには、GetTopicAttributes オペレーションを使用します。
インポート
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;
サンプルコード
$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()); }
トピック属性を設定する
1 つの既存のトピックのプロパティを更新するには、SetTopicAttributes オペレーションを使用します。
Policy
、DisplayName
、および DeliveryPolicy
属性のみ設定できます。
インポート
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;
サンプルコード
$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()); }