Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Administración de temas en Amazon SNS con la versión 3 de AWS SDK for PHP
Para enviar notificaciones a Amazon Simple Queue Service (Amazon SQS), URL HTTP/HTTPS, correo electrónico, AWS SMS, o AWS Lambda, primero debe crear un tema que administre la entrega de los mensajes a los suscriptores de ese tema
En lo relativo al patrón de diseño de observador, un tema es como el asunto. Una vez que se crea un tema, se añaden los suscriptores que reciben notificaciones automáticas cuando se publica un mensaje en el tema.
Obtenga más información sobre la suscripción a temas en Administración de suscripciones en Amazon SNS con la versión 3 de AWS SDK for PHP.
Los siguientes ejemplos muestran cómo:
-
Crea un tema para publicar las notificaciones de uso CreateTopic.
-
Devuelve una lista de los temas que utiliza ListTopicsel solicitante.
-
Elimine un tema y todas sus suscripciones utilizando DeleteTopic.
-
Devuelve todas las propiedades de un tema utilizando GetTopicAttributes.
-
Permita al propietario de un tema establecer un atributo del tema con un nuevo valor utilizando SetTopicAttributes.
Para obtener más información sobre el uso de Amazon SNS, consulte Atributos de temas de Amazon SNS para el estado de entrega de mensajes.
Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.
Crear un tema
Para crear un tema, utilice la CreateTopicoperación.
Cada nombre de tema de su Cuenta de AWS debe ser exclusivo.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;
Código de muestra
$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()); }
Lista de temas
Para enumerar hasta 100 temas existentes en la AWS región actual, utilice la ListTopicsoperación.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;
Código de muestra
$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()); }
Eliminación de un tema
Para eliminar un tema existente y todas sus suscripciones, utilice la DeleteTopicoperación.
Todos los mensajes que no se han entregado a los suscriptores también se eliminarán.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;
Código de muestra
$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()); }
Obtener de atributos de los temas
Para recuperar las propiedades de un único tema existente, utilice la GetTopicAttributesoperación.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;
Código de muestra
$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()); }
Crear atributos de temas
Para actualizar las propiedades de un único tema existente, utilice la SetTopicAttributesoperación.
Solo puede establecer los atributos Policy
, DisplayName
y DeliveryPolicy
.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException; use Aws\Sns\SnsClient;
Código de muestra
$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()); }