azure-cosmos-db-py
Создание сервисов Azure Cosmos DB с использованием Python
Реализация производственных сервисов Azure Cosmos DB NoSQL с надлежащей аутентификацией, чистой архитектурой и разработкой через тестирование. Этот навык предоставляет шаблоны и паттерны для безопасной интеграции баз данных в приложения FastAPI.
Скачать ZIP навыка
Загрузить в Claude
Перейдите в Settings → Capabilities → Skills → Upload skill
Включите и начните использовать
Протестировать
Использование «azure-cosmos-db-py». Create a Cosmos DB client module with dual authentication
Ожидаемый результат:
Полный файл cosmos.py с синглтон-функцией get_container(), вспомогательной функцией определения _is_emulator_endpoint() и поддержкой обоих режимов аутентификации - DefaultAzureCredential и ключа эмулятора.
Использование «azure-cosmos-db-py». Build a ProjectService with CRUD operations
Ожидаемый результат:
Сервисный класс с методами get_by_id, create, update и delete, использующий асинхронные обертки, надлежащее преобразование моделей Pydantic и элегантную деградацию с возвратом None при недоступности Cosmos.
Аудит безопасности
Безопасно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.
Оценка качества
Что вы можете построить
Бэкенд-разработчик, создающий SaaS-приложение
Реализовать мультитенантное хранение данных с использованием Cosmos DB с изоляцией по ключу секции для каждого рабочего пространства, используя DefaultAzureCredential для безопасного развертывания в production.
DevOps-инженер, настраивающий среду разработки
Настроить локальную разработку с эмулятором Cosmos DB, используя переменные окружения для конфигурации конечной точки и фикстуры для CI/CD-конвейеров.
Решения архитектор, проектирующий облачные приложения
Применить паттерны чистой архитектуры с уровнями репозитория и сервиса, обеспечив разделение бизнес-логики от реализации базы данных для долгосрочной поддерживаемости.
Попробуйте эти промпты
Создать модуль клиента Cosmos DB с синглтон-паттерном, который использует DefaultAzureCredential для production и ключ эмулятора для локальной разработки. Включить настройку SSL и инициализацию контейнера.
Построить сервисный класс для сущности Project с операциями CRUD. Использовать пятиуровневый паттерн моделей Pydantic и реализовать элегантную деградацию при недоступности Cosmos DB.
Реализовать SQL-запросы Cosmos DB с использованием синтаксиса @parameter для фильтрации проектов по workspace_id и имени. Включить надлежащую обработку ошибок для CosmosResourceNotFoundError.
Создать pytest-фикстуры для мокирования операций контейнера Cosmos DB. Включить примеры асинхронных тестов для методов сервисного уровня с надлежащим мокированием функции get_container.
Лучшие практики
- Всегда используйте DefaultAzureCredential в production-средах - никогда не хардкодьте ключи или секреты в исходном коде
- Используйте параметризованные запросы с синтаксисом @parameter для предотвращения SQL-внедрения в запросах Cosmos DB
- Реализуйте элегантную деградацию, возвращая None или пустые списки при недоступности Cosmos DB вместо выброса исключений
Избегать
- Хардкод подключения ключей или секретов непосредственно в исходном коде вместо использования переменных окружения или управляемой идентичности
- Использование конкатенации строк для построения запросов вместо параметризованного синтаксиса запросов с заполнителями @parameter
- Создание новых экземпляров CosmosClient при каждом запросе вместо использования синглтон-паттерна для объединения подключений
Часто задаваемые вопросы
В чем разница между DefaultAzureCredential и аутентификацией с ключом эмулятора?
Как обрабатывать недоступность Cosmos DB элегантно?
Зачем использовать асинхронные обертки для синхронных вызовов Cosmos SDK?
Что такое пятиуровневый паттерн модели?
Как выбрать ключ секции для Cosmos DB?
Могу ли я использовать этот навык с другими API Azure Cosmos DB, такими как MongoDB или SQL?
Сведения для разработчиков
Автор
sickn33Лицензия
MIT
Репозиторий
https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-cosmos-db-pyСсылка
main
Структура файлов
📄 SKILL.md