技能 azure-cosmos-db-py
📦

azure-cosmos-db-py

安全

Construir Servicios Azure Cosmos DB con Python

Implemente servicios Azure Cosmos DB NoSQL de nivel de producción con autenticación adecuada, arquitectura limpia y desarrollo guiado por pruebas. Esta habilidad proporciona plantillas y patrones para integración segura de bases de datos en aplicaciones FastAPI.

支持: Claude Codex Code(CC)
🥉 74 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“azure-cosmos-db-py”。 Crear un módulo cliente Cosmos DB con autenticación dual

预期结果:

Un archivo cosmos.py completo con función singleton get_container(), helper _is_emulator_endpoint(), y soporte para ambos modos de autenticación DefaultAzureCredential y clave de emulador.

正在使用“azure-cosmos-db-py”。 Construir un ProjectService con operaciones CRUD

预期结果:

Clase de servicio con métodos get_by_id, create, update, y delete usando envoltorios asíncronos, conversión adecuada de modelo Pydantic, y degradación elegante devolviendo None cuando Cosmos no está disponible.

安全审计

安全
v1 • 2/24/2026

All 37 static analysis findings are false positives. The scanned file (SKILL.md) is a documentation file containing code examples in markdown format, not executable code. External command detections are bash examples in documentation blocks. Network and environment variable references are configuration templates for Azure Cosmos DB connectivity. The skill demonstrates proper security practices including RBAC via DefaultAzureCredential, parameterized queries, and secure secret management.

1
已扫描文件
245
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
100
安全
91
规范符合性

你能构建什么

Desarrollador Backend Construyendo Aplicación SaaS

Implemente almacenamiento de datos multiinquilino usando Cosmos DB con aislamiento de clave de partición por espacio de trabajo, aprovechando DefaultAzureCredential para despliegue seguro en producción.

Ingeniero DevOps Configurar Entorno de Desarrollo

Configure desarrollo local con emulador Cosmos DB, usando variables de entorno para configuración de endpoint y fixtures de prueba para pipelines CI/CD.

Arquitecto de Soluciones Diseñando Aplicaciones Cloud-Native

Aplique patrones de arquitectura limpia con capas de repositorio y servicio, asegurando separación de lógica de negocio de la implementación de base de datos para mantenibilidad a largo plazo.

试试这些提示

Básico: Configurar Cliente Cosmos DB
Cree un módulo cliente Cosmos DB con patrón singleton que use DefaultAzureCredential para producción y clave de emulador para desarrollo local. Incluya configuración SSL e inicialización de contenedor.
Intermedio: Crear Capa de Servicio
Construya una clase de servicio para entidad Project con operaciones CRUD. Use el patrón de modelo Pydantic de cinco niveles e implemente degradación elegante cuando Cosmos DB no esté disponible.
Avanzado: Escribir Consultas Parametrizadas
Implemente consultas SQL de Cosmos DB usando sintaxis @parameter para filtrar proyectos por workspace_id y name. Incluya manejo adecuado de errores para CosmosResourceNotFoundError.
Experto: Configurar Infraestructura de Pruebas
Cree fixtures de pytest para simular operaciones de contenedor Cosmos DB. Incluya ejemplos de pruebas asíncronas para métodos de capa de servicio con simulación adecuada de la función get_container.

最佳实践

  • Siempre use DefaultAzureCredential en entornos de producción - nunca codifique claves o secretos directamente en el código fuente
  • Use consultas parametrizadas con sintaxis @parameter para prevenir inyección SQL en consultas de Cosmos DB
  • Implemente degradación elegante devolviendo None o listas vacías cuando Cosmos DB no esté disponible en lugar de lanzar excepciones

避免

  • Codificar claves de conexión o secretos directamente en el código fuente en lugar de usar variables de entorno o identidad gestionada
  • Usar concatenación de strings para construir consultas en lugar de sintaxis de consulta parametrizada con placeholders @parameter
  • Crear nuevas instancias de CosmosClient por petición en lugar de usar patrón singleton para pooling de conexiones

常见问题

¿Cuál es la diferencia entre autenticación DefaultAzureCredential y clave de emulador?
DefaultAzureCredential usa identidad gestionada o credenciales de Azure CLI para entornos de producción con RBAC. La autenticación con clave de emulador usa una clave bien conocida solo para desarrollo local y nunca debe usarse en producción.
¿Cómo manejo la indisponibilidad de Cosmos DB de manera elegante?
Implemente una verificación _use_cosmos() en su capa de servicio que devuelva False cuando el contenedor sea None. Los métodos de servicio devuelven None para items individuales o listas vacías para consultas en lugar de lanzar excepciones.
¿Por qué usar envoltorios asíncronos para llamadas sincrónicas del SDK Cosmos?
El SDK de Python de Azure Cosmos DB es sincrónico. Usar run_in_threadpool de starlette previene bloquear el bucle de eventos de FastAPI, manteniendo características de rendimiento asíncrono.
¿Qué es el patrón de modelo de cinco niveles?
Usa ProjectBase para campos compartidos, ProjectCreate para peticiones de creación, ProjectUpdate para actualizaciones parciales, Project para respuestas de API, y ProjectInDB para documentos internos con metadatos docType.
¿Cómo elijo una clave de partición para Cosmos DB?
Seleccione una clave de partición que proporcione distribución uniforme de datos y se alinee con patrones de consulta. Para aplicaciones multiinquilino, workspace_id es común. Valide que el acceso a clave de partición coincida con la autorización del usuario para hacer cumplir límites de datos.
¿Puedo usar esta habilidad con otras APIs de Azure Cosmos DB como MongoDB o SQL?
Esta habilidad se enfoca específicamente en la API NoSQL con SDK nativo de Cosmos. Las APIs MongoDB y SQL requieren diferentes bibliotecas cliente y patrones de consulta, aunque los principios de arquitectura de capa de servicio permanecen aplicables.

开发者详情

文件结构

📄 SKILL.md