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_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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file treinta_ms_utils-1.4.3.tar.gz.
File metadata
- Download URL: treinta_ms_utils-1.4.3.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af62cd48a983eeba76060994da19cb6c60b18325ca410544487b738e7f9a5bd3
|
|
| MD5 |
3ab7e1e108bf2e8e2246c8844f6c835d
|
|
| BLAKE2b-256 |
88ffd810291d7b51e497c9af613501899de16fc4384273eeb6a8cff1151a6366
|
File details
Details for the file treinta_ms_utils-1.4.3-py3-none-any.whl.
File metadata
- Download URL: treinta_ms_utils-1.4.3-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
105342b63623ad3b4ddc6f5217a95d229e19167b45c81ffb0a35cb367f7eaa41
|
|
| MD5 |
0055892bf9bca4baf3b533b03d74a5e4
|
|
| BLAKE2b-256 |
3c66301c39b4babf17ea6e920fe5585bea7290c2a53fc8a2a803917d352fd58a
|