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.4.4.tar.gz (6.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.4.4-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: treinta_ms_utils-1.4.4.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for treinta_ms_utils-1.4.4.tar.gz
Algorithm Hash digest
SHA256 60de126d41c1ac631c313cdf73240cf9a194d8b4bf5d71efa9b7e5269e68477d
MD5 ded9e4af63cedb6d8be94a2fc4cc1006
BLAKE2b-256 47f55ff706368bcd98dca621246d2c7ea6cd7ed8610bcb204d462ba54272eb7e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for treinta_ms_utils-1.4.4-py3-none-any.whl
Algorithm Hash digest
SHA256 830fd5a9114df53b46541a16db7d3fc3e4268fe9a79305d38ed4d2c50fe4b493
MD5 70287f209b94818bb89a8127fd9559b5
BLAKE2b-256 4e1fd115e084d7512da552447c5631ab20203a5a3d933321cea42f8719bb3c0f

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