翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS SDK for PHP バージョン 3 を使用した Amazon SNS でのトピックの管理
Amazon Simple Queue Service (Amazon SQS)、HTTP/HTTPS URL、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 からのインポート (基本的な使用法 を参照)。
トピックの作成
トピックを作成するには、 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()); }
トピック属性を取得する
単一の既存のトピックのプロパティを取得するには、 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()); }
トピック属性を設定する
単一の既存のトピックのプロパティを更新するには、 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()); }