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.
  • Integración con Datadog: Facilita la configuración y el envío de logs a Datadog para el monitoreo y análisis avanzado.

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.

Ejemplo:

from treinta_ms_utils import read_log

log_details = read_log(token="unique-token", table_name="ServiceLogs", BIL="low", PATH="src/routers/metabase_etl/main.py")
print(log_details)

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}")

6. configure_datadog

Configura el logger de Datadog para enviar logs personalizados a la plataforma de Datadog.

Ejemplo:

from treinta_ms_utils import configure_datadog

logger = configure_datadog()

7. log_with_datadog

Envía un log personalizado a Datadog con los detalles específicos del evento.

Parámetros:

  • level: Nivel del log (e.g., logging.INFO, logging.ERROR).
  • message: Mensaje del log.
  • BIL: Atributo personalizado BIL.
  • PATH: Atributo personalizado PATH.
  • **kwargs: Cualquier otro atributo adicional que se quiera incluir en el log.

Ejemplo:

from treinta_ms_utils import log_with_datadog
import logging

log_with_datadog(logging.INFO, "Este es un mensaje de información", BIL="low", PATH="src/routers/metabase_etl/main.py")

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.3.tar.gz (6.7 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.3-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: treinta_ms_utils-1.3.tar.gz
  • Upload date:
  • Size: 6.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for treinta_ms_utils-1.3.tar.gz
Algorithm Hash digest
SHA256 80860341e615e5dda28ab5ca6b201b0fe344050f07f2bc5f53f387f6d01c653e
MD5 39f7cf1daba793d0395d12c84eaf2562
BLAKE2b-256 d724cbd4f036d24e49c0c964c1d761fa9f4d9a78cada7350d040604288a90cca

See more details on using hashes here.

File details

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

File metadata

  • Download URL: treinta_ms_utils-1.3-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for treinta_ms_utils-1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c112ad2e92a8a005ba4038f7b9498cd878db469a5d5b40e32e3fe35ad65589e4
MD5 e0402f683817e5f1b5bb3542bb0b1066
BLAKE2b-256 1e94b0a1a3ddd81ed922a2601de9ab7b3db7da2f05ae0bba85d2f31bbedb91cd

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