Administración de temas en Amazon SNS con la versión 3 de AWS SDK para PHP - AWS SDK para PHP

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 para 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 para PHP.

Los siguientes ejemplos muestran cómo:

  • Crear un tema en el que publicar notificaciones mediante CreateTopic.

  • Devolver una lista de los temas del solicitante con ListTopics.

  • Eliminar un tema y todas sus suscripciones con DeleteTopic.

  • Devolver todas las propiedades de un tema con GetTopicAttributes.

  • Permitir a un propietario de tema establecer un atributo del tema en un nuevo valor mediante 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 de AWS SDK para PHP está disponible aquí en GitHub.

Credenciales

Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Autenticación AWS con la AWS SDK para PHP versión 3. A continuación, importe AWS SDK para PHP, como se indica en Instalación del AWS SDK para PHP versión 3.

Crear un tema

Para crear un tema, utilice la operación CreateTopic.

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 obtener una lista de hasta 100 temas existentes en la región de AWS actual, utilice la operación ListTopics.

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 quitar un tema existente y todas sus suscripciones, utilice la operación DeleteTopic.

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 solo tema existente, utilice la operación GetTopicAttributes.

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 solo tema existente, utilice la operación SetTopicAttributes.

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()); }