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.
Un tema de Amazon SNS es un punto de acceso lógico que actúa como un canal de comunicación. Un tema le permite agrupar varios puntos de enlace (como Amazon SQS AWS Lambda, HTTP/S o una dirección de correo electrónico).
Para difundir los mensajes de un sistema productor de mensajes (por ejemplo, un sitio web de comercio electrónico) que trabaja con otros servicios que requieren sus mensajes (por ejemplo, sistemas de pago y tramitación), puede crear un tema para su sistema productor.
La primera tarea, y la más habitual, en Amazon SNS es la creación de un tema. En esta página se muestra cómo puede utilizar los AWS Management Console AWS SDK para Java, los y los AWS SDK for .NET para crear un tema.
Durante la creación, elige un tipo de tema (estándar o FIFO) y asigna un nombre al tema. Después de un tema, no podrá modificar el tipo o el nombre del tema. Todas las demás opciones de configuración son opcionales durante la creación del tema y puede editarlas más adelante.
importante
No agregue información de identificación personal (PII) ni ninguna otra información confidencial o sensible en los nombres de los temas. Otros Amazon Web Services, incluidos los CloudWatch registros, pueden acceder a los nombres de los temas. Los nombres de los temas no están diseñados para contener información privada o confidencial.
Para crear un tema mediante el AWS Management Console
La creación de un tema en Amazon SNS sienta las bases para la distribución de mensajes, ya que le permite publicar mensajes que se pueden distribuir de forma ramificada entre varios suscriptores. Este paso es esencial para configurar el tipo de tema, las opciones de cifrado y las políticas de acceso, a fin de garantizar que el tema cumpla los requisitos operativos, de conformidad y de seguridad de la organización.
Inicie sesión en la consola de Amazon SNS
. -
Realice una de las siguientes acciones:
-
Si nunca se ha creado ningún tema bajo tu Cuenta de AWS dirección, lee la descripción de Amazon SNS en la página de inicio.
-
Si los temas se han creado Cuenta de AWS anteriormente bajo su dirección, en el panel de navegación, elija Temas.
-
-
En la página Temas, elija Crear tema.
-
En la página Crear tema, en la sección Detalles, haga lo siguiente:
-
Para Tipo, elija un tipo de tema (estándar o FIFO).
-
Ingrese un nombre para el nuevo tema. En el caso de un tema FIFO, agregue .fifo al final del nombre.
-
(Opcional) Ingrese un nombre para mostrar para el tema.
importante
Cuando se suscriba a un punto de conexión de correo electrónico, el recuento combinado de caracteres del nombre mostrado del tema de Amazon SNS y de la dirección de correo electrónico de envío (por ejemplo, no-reply@sns.amazonaws.com) no debe superar los 320 caracteres UTF-8. Puede utilizar una herramienta de codificación de terceros para verificar la longitud de la dirección de envío antes de configurar un nombre para mostrar para su tema de Amazon SNS.
-
(Opcional) En el caso de un tema FIFO, puede elegir Desduplicación de mensajes basada en el contenido para habilitar la desduplicación de mensajes predeterminada. Para obtener más información, consulte Desduplicación de mensajes de Amazon SNS para temas FIFO.
-
-
(Opcional) Expanda la sección Encryption (Cifrado) y haga lo siguiente. Para obtener más información, consulte Protección de los datos de Amazon SNS con cifrado del servidor.
-
Elija Habilitar el cifrado.
-
Especifique la AWS KMS clave. Para obtener más información, consulte Términos clave.
Se muestran los valores de Description (Descripción), Account (Cuenta) y KMS ARN (ARN de KMS) de cada tipo de KMS.
importante
Si no es el propietario de la KMS o si ha iniciado sesión con una cuenta que no tiene los permisos
kms:ListAliases
ykms:DescribeKey
, no podrá ver la información sobre la KMS en la consola de Amazon SNS.Pida al propietario de la KMS que le conceda estos permisos. Para obtener más información, consulte Permisos API de AWS KMS : referencia de recursos y acciones en la Guía para desarrolladores de AWS Key Management Service .
-
El KMS AWS gestionado para Amazon SNS (predeterminado) alias/aws/sns está seleccionado de forma predeterminada.
nota
Tenga en cuenta lo siguiente:
-
La primera vez que utilice AWS Management Console para especificar el KMS AWS administrado para Amazon SNS para un tema, AWS KMS crea el KMS AWS administrado para Amazon SNS.
-
Como alternativa, la primera vez que utilice la
Publish
acción en un tema con SSE habilitado, AWS KMS creará el KMS AWS administrado para Amazon SNS.
-
-
Para usar un KMS personalizado de su AWS cuenta, elija el campo clave de KMS y, a continuación, elija el KMS personalizado de la lista.
nota
Para obtener instrucciones sobre cómo crear claves personalizadas KMSs, consulte Creación de claves en la Guía para AWS Key Management Service desarrolladores
-
Para usar un ARN de KMS personalizado de su AWS cuenta o de otra AWS cuenta, introdúzcalo en el campo de clave de KMS.
-
-
-
(Opcional) De forma predeterminada, solo el propietario del tema puede publicar en el tema o suscribirse a este. Para configurar permisos de acceso adicionales, expanda la sección Access policy (Política de acceso). Para obtener más información, consulte Identity and Access Management en Amazon SNS y Ejemplos de casos de control de acceso con Amazon SNS.
nota
Cuando se crea un tema a través de la consola, la política predeterminada utiliza la clave de condición
aws:SourceOwner
. Esta clave es similar aaws:SourceAccount
. -
(Opcional) Para configurar la forma en que Amazon SNS reintenta los intentos de entrega de mensajes con error, expanda la sección Política de reintentos de entrega (HTTP/S). Para obtener más información, consulte Reintento de entrega de mensajes de Amazon SNS.
-
(Opcional) Para configurar la forma en que Amazon SNS registra la entrega de mensajes CloudWatch, amplíe la sección Registro del estado de entrega. Para obtener más información, consulte Estado de entrega de mensajes de Amazon SNS.
-
(Opcional) Para añadir etiquetas de metadatos al tema, expanda la sección Tags (Etiquetas), escriba un valor en Key (Clave) y en Value (Valor) (opcional) y elija Add tag (Añadir etiqueta). Para obtener más información, consulte Etiquetado de temas de Amazon SNS.
-
Seleccione Crear tema.
Se crea el tema y se muestra la
MyTopic
página.El nombre del tema, el ARN, el nombre para mostrar (opcional) y el ID de AWS cuenta del propietario del tema se muestran en la sección Detalles.
-
Copie el ARN del tema en el portapapeles, por ejemplo:
arn:aws:sns:us-east-2:123456789012:MyTopic
Para crear un tema mediante un SDK AWS
Para usar un AWS SDK, debe configurarlo con sus credenciales. Para obtener más información, consulte Los archivos de configuración y credenciales compartidos en la Guía de referencia de herramientas AWS SDKs y herramientas.
En los siguientes ejemplos de código, se muestra cómo utilizar CreateTopic
.
- SDK for .NET
-
nota
Hay más información al respecto GitHub. Busque el ejemplo completo y aprenda a configurar y ejecutar en el Repositorio de ejemplos de código de AWS
. Cree un tema con un nombre específico.
using System; using System.Threading.Tasks; using Amazon.SimpleNotificationService; using Amazon.SimpleNotificationService.Model; /// <summary> /// This example shows how to use Amazon Simple Notification Service /// (Amazon SNS) to add a new Amazon SNS topic. /// </summary> public class CreateSNSTopic { public static async Task Main() { string topicName = "ExampleSNSTopic"; IAmazonSimpleNotificationService client = new AmazonSimpleNotificationServiceClient(); var topicArn = await CreateSNSTopicAsync(client, topicName); Console.WriteLine($"New topic ARN: {topicArn}"); } /// <summary> /// Creates a new SNS topic using the supplied topic name. /// </summary> /// <param name="client">The initialized SNS client object used to /// create the new topic.</param> /// <param name="topicName">A string representing the topic name.</param> /// <returns>The Amazon Resource Name (ARN) of the created topic.</returns> public static async Task<string> CreateSNSTopicAsync(IAmazonSimpleNotificationService client, string topicName) { var request = new CreateTopicRequest { Name = topicName, }; var response = await client.CreateTopicAsync(request); return response.TopicArn; } }
Cree un tema nuevo con un nombre y atributos específicos de FIFO y desduplicación.
/// <summary> /// Create a new topic with a name and specific FIFO and de-duplication attributes. /// </summary> /// <param name="topicName">The name for the topic.</param> /// <param name="useFifoTopic">True to use a FIFO topic.</param> /// <param name="useContentBasedDeduplication">True to use content-based de-duplication.</param> /// <returns>The ARN of the new topic.</returns> public async Task<string> CreateTopicWithName(string topicName, bool useFifoTopic, bool useContentBasedDeduplication) { var createTopicRequest = new CreateTopicRequest() { Name = topicName, }; if (useFifoTopic) { // Update the name if it is not correct for a FIFO topic. if (!topicName.EndsWith(".fifo")) { createTopicRequest.Name = topicName + ".fifo"; } // Add the attributes from the method parameters. createTopicRequest.Attributes = new Dictionary<string, string> { { "FifoTopic", "true" } }; if (useContentBasedDeduplication) { createTopicRequest.Attributes.Add("ContentBasedDeduplication", "true"); } } var createResponse = await _amazonSNSClient.CreateTopicAsync(createTopicRequest); return createResponse.TopicArn; }
-
Para obtener más información sobre la API, consulta CreateTopicla Referencia AWS SDK for .NET de la API.
-