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_timestampcomo paraupdated_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.
Metadata
Release files for treinta-ms-utils 1.4.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| treinta_ms_utils-1.4.4.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| treinta_ms_utils-1.4.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.1 kB
Release files / treinta_ms_utils-1.4.4.tar.gz
| Download URL | treinta_ms_utils-1.4.4.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
60de126d41c1ac631c313cdf73240cf9a194d8b4bf5d71efa9b7e5269e68477d
|
|
BLAKE2b-256 checksum How to use checksums |
47f55ff706368bcd98dca621246d2c7ea6cd7ed8610bcb204d462ba54272eb7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.20
|
Release files / treinta_ms_utils-1.4.4-py3-none-any.whl
| Download URL | treinta_ms_utils-1.4.4-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
830fd5a9114df53b46541a16db7d3fc3e4268fe9a79305d38ed4d2c50fe4b493
|
|
BLAKE2b-256 checksum How to use checksums |
4e1fd115e084d7512da552447c5631ab20203a5a3d933321cea42f8719bb3c0f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.9.20
|