Skip to main content

paquete que permite a los microservicios interaccionar con otros MS

Project description

treinta_ms_utils

treinta_ms_utils es una librería de Python desarrollada para simplificar y optimizar la interacción con diversos microservicios, facilitando la implementación de operaciones comunes como la creación, actualización, lectura y eliminación de registros de logs. Está dirigida a ingenieros de software, desarrolladores de backend y profesionales de TI que trabajan en la construcción y mantenimiento de arquitecturas basadas en microservicios.

Índice

Introducción

La librería treinta_ms_utils proporciona un conjunto de herramientas y utilidades diseñadas para mejorar la eficiencia del desarrollo y la gestión de microservicios, especialmente en entornos que utilizan Amazon DynamoDB para el registro y seguimiento de logs.

Ventajas Clave

  • Simplificación de Tareas Comunes: Automatiza y simplifica tareas repetitivas como la inserción, actualización, lectura y eliminación de logs en DynamoDB.
  • Generación Automática de Tokens: Facilita la generación de tokens únicos para cada registro, asegurando la trazabilidad y unicidad de los logs.
  • Manejo Preciso de la Zona Horaria: Garantiza que todos los registros de logs se manejen en la zona horaria de Colombia (UTC-5), tanto para created_timestamp como para updated_timestamp.
  • Integración con DynamoDB: Diseñada para trabajar de manera óptima con Amazon DynamoDB, aprovechando sus capacidades de almacenamiento NoSQL para gestionar logs de manera eficiente.
  • Manejo de Errores: Incorpora prácticas de manejo de errores para asegurar la robustez y fiabilidad de las operaciones de microservicios.

Instalación

Para instalar treinta_ms_utils, utiliza el siguiente comando pip:

pip install treinta_ms_utils

Este comando instala la última versión de la librería en tu entorno Python, permitiéndote comenzar a utilizarla de inmediato en tus proyectos.

Uso de la Librería

1. create_log

Crea y almacena un nuevo registro de log en la tabla especificada de DynamoDB, incluyendo created_timestamp y updated_timestamp basados en la hora de Colombia.

2. update_log

Actualiza un registro existente de log en DynamoDB, identificado por su token único, incluyendo la actualización del updated_timestamp a la hora actual de Colombia.

3. delete_log

Elimina un registro de log de la tabla especificada en DynamoDB, utilizando su token único y timestamp como identificadores.

4. read_log

Recupera los detalles de un registro específico de log basado en su token, incluyendo created_timestamp y updated_timestamp, mostrando la información en la zona horaria de Colombia.

5. publish_message_sns

Publica un mensaje en un tema (topic) de Amazon SNS, envía un SMS directamente a un número de teléfono o un mensaje a un endpoint móvil, facilitando la comunicación asincrónica entre microservicios o la notificación directa a usuarios finales.

Parámetros:

  • topic_arn (opcional): ARN del tema al que quieres publicar.
  • target_arn (opcional): ARN del endpoint móvil al que quieres enviar el mensaje.
  • phone_number (opcional): Número de teléfono al cual quieres enviar un SMS, en formato E.164.
  • message: Contenido del mensaje a enviar.
  • subject (opcional): Asunto del mensaje, utilizado principalmente para notificaciones por correo electrónico.
  • message_structure (opcional): Define si el mensaje debe ser enviado como un string JSON para soportar formatos de mensaje específicos por protocolo.
  • message_attributes (opcional): Atributos del mensaje para filtrar o manejar el mensaje de manera diferenciada por los suscriptores.
  • message_deduplication_id (opcional, solo para temas FIFO): Identificador para la deduplicación de mensajes.
  • message_group_id (opcional, solo para temas FIFO): Identificador del grupo de mensajes para asegurar la entrega en orden dentro del mismo grupo.

Retorna:

  • ID del mensaje publicado.

Ejemplo:

from treinta_ms_utils import publish_message_sns

# Publicar un mensaje simple a un tema de SNS
message_id = publish_message_sns(
    topic_arn="arn:aws:sns:us-west-2:123456789012:mi-tema",
    message="Mensaje importante",
    subject="Asunto del mensaje"
)
print(f"Mensaje publicado con éxito. ID: {message_id}")

Ejemplo:

from treinta_ms_utils import read_log

log_details = read_log(token="unique-token", table_name="ServiceLogs")
print(log_details)

Manejo de Errores

treinta_ms_utils implementa un manejo de errores robusto para asegurar que las operaciones fallidas sean gestionadas de manera adecuada, proporcionando retroalimentación útil para la resolución de problemas.

Licencia

treinta_ms_utils se distribuye bajo la Licencia MIT. Esto permite su uso, modificación y distribución libre en proyectos de cualquier tipo.

Contacto

Para soporte, colaboraciones o preguntas, no dudes en contactarnos a través de nuestro repositorio de GitHub.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

treinta_ms_utils-1.1.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

treinta_ms_utils-1.1-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file treinta_ms_utils-1.1.tar.gz.

File metadata

  • Download URL: treinta_ms_utils-1.1.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for treinta_ms_utils-1.1.tar.gz
Algorithm Hash digest
SHA256 e23b468915f0a0f0f5c346c9a844e4fa0ce5ab51b9afaf62cd1b2fb8a01fd75c
MD5 acd45548fd5a5a09c18387079d1dcb51
BLAKE2b-256 77d6df9cf91b61a17af9c05be53e317ae172e0ed038cf16b6360a9c33a53f457

See more details on using hashes here.

File details

Details for the file treinta_ms_utils-1.1-py3-none-any.whl.

File metadata

  • Download URL: treinta_ms_utils-1.1-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for treinta_ms_utils-1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ad320d2918bac7da9bc431fe3233d316c2ace78bd67d4278c2f07d740bab8933
MD5 0faf1465851819e120a9c8a5e6685170
BLAKE2b-256 24d387b71421a929e61c4b7de078a3e46d38c5ae9604323f28ee03fa053cd78b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page