技能 azure-cosmos-db-py
📦

azure-cosmos-db-py

安全

Azure Cosmos DB-Dienste mit Python erstellen

Implementieren Sie production-grade Azure Cosmos DB NoSQL-Dienste mit ordnungsgemäßer Authentifizierung, sauberer Architektur und testgetriebener Entwicklung. Diese Skill bietet Vorlagen und Muster für sichere Datenbankintegration in FastAPI-Anwendungen.

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

下载技能 ZIP

2

在 Claude 中上传

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

3

开启并开始使用

测试它

正在使用“azure-cosmos-db-py”。 Cosmos DB-Client-Modul mit dualer Authentifizierung erstellen

预期结果:

Eine vollständige cosmos.py-Datei mit get_container()-Singleton-Funktion, _is_emulator_endpoint()-Erkennungs-Helper und Unterstützung für beide Authentifizierungsmodi DefaultAzureCredential und Emulator-Key.

正在使用“azure-cosmos-db-py”。 ProjectService mit CRUD-Operationen erstellen

预期结果:

Service-Klasse mit get_by_id-, create-, update- und delete-Methoden unter Verwendung von Async-Wrappern, ordnungsgemäßer Pydantic-Modell-Konvertierung und eleganter Degradierung, die None zurückgibt, wenn Cosmos nicht verfügbar ist.

安全审计

安全
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
规范符合性

你能构建什么

Backend-Entwickler erstellt SaaS-Anwendung

Implementieren Sie mandantenfähige Datenspeicherung mit Cosmos DB mit Partition-Key-Isolierung pro Workspace unter Verwendung von DefaultAzureCredential für sichere Production-Bereitstellung.

DevOps-Ingenieur richtet Entwicklungsumgebung ein

Konfigurieren Sie lokale Entwicklung mit Cosmos DB-Emulator unter Verwendung von Umgebungsvariablen für Endpoint-Konfiguration und Test-Fixtures für CI/CD-Pipelines.

Solution Architect entwirft Cloud-native Anwendungen

Wenden Sie Clean-Architecture-Muster mit Repository- und Service-Schichten an und stellen Sie Trennung der Geschäftslogik von der Datenbankimplementierung für langfristige Wartbarkeit sicher.

试试这些提示

Basis: Cosmos DB-Client einrichten
Erstellen Sie ein Cosmos DB-Client-Modul mit Singleton-Muster, das DefaultAzureCredential für Production und Emulator-Key für lokale Entwicklung verwendet. Inklusive SSL-Konfiguration und Container-Initialisierung.
Mittel: Service-Schicht erstellen
Bauen Sie eine Service-Klasse für Project-Entity mit CRUD-Operationen. Verwenden Sie das fünfstufige Pydantic-Modellmuster und implementieren Sie elegante Degradierung, wenn Cosmos DB nicht verfügbar ist.
Fortgeschritten: Parametrisierte Abfragen schreiben
Implementieren Sie Cosmos DB SQL-Abfragen mit @parameter-Syntax zum Filtern von Projekten nach workspace_id und name. Inklusive ordnungsgemäßer Fehlerbehandlung für CosmosResourceNotFoundError.
Experte: Testing-Infrastructure einrichten
Erstellen Sie pytest-Fixtures zum Mocken von Cosmos DB-Container-Operationen. Inklusive Async-Test-Beispielen für Service-Schicht-Methoden mit ordnungsgemäßem Mocking der get_container-Funktion.

最佳实践

  • Verwenden Sie in Production-Umgebungen immer DefaultAzureCredential - hardcoden Sie niemals Keys oder Secrets im Quellcode
  • Verwenden Sie parametrisierte Abfragen mit @parameter-Syntax, um SQL-Injection in Cosmos DB-Abfragen zu verhindern
  • Implementieren Sie elegante Degradierung durch Zurückgeben von None oder leeren Listen, wenn Cosmos DB nicht verfügbar ist, statt Exceptions zu werfen

避免

  • Hardcodierung von Connection-Keys oder Secrets direkt im Quellcode statt Verwendung von Umgebungsvariablen oder Managed Identity
  • Verwendung von String-Konkatenation zum Erstellen von Abfragen statt parametrisierter Abfragesyntax mit @parameter-Platzhaltern
  • Erstellen neuer CosmosClient-Instanzen pro Anfrage statt Verwendung des Singleton-Musters für Connection-Pooling

常见问题

Was ist der Unterschied zwischen DefaultAzureCredential und Emulator-Key-Authentifizierung?
DefaultAzureCredential verwendet Managed Identity oder Azure CLI-Credentials für Production-Umgebungen mit RBAC. Emulator-Key-Authentifizierung verwendet einen bekannten Key nur für lokale Entwicklung und sollte niemals in Production verwendet werden.
Wie gehe ich mit Cosmos DB-Nichtverfügbarkeit elegant um?
Implementieren Sie eine _use_cosmos()-Prüfung in Ihrer Service-Schicht, die False zurückgibt, wenn der Container None ist. Service-Methoden geben None für einzelne Items oder leere Listen für Abfragen zurück, statt Exceptions auszulösen.
Warum Async-Wrapper für synchrone Cosmos SDK-Aufrufe verwenden?
Das Azure Cosmos DB Python SDK ist synchron. Die Verwendung von starlette's run_in_threadpool verhindert das Blockieren der FastAPI-Event-Loop und behält Async-Performance-Eigenschaften bei.
Was ist das Fünfstufen-Modellmuster?
Es verwendet ProjectBase für gemeinsame Felder, ProjectCreate für Erstellungsanfragen, ProjectUpdate für partielle Updates, Project für API-Antworten und ProjectInDB für interne Dokumente mit docType-Metadaten.
Wie wähle ich einen Partition-Key für Cosmos DB?
Wählen Sie einen Partition-Key, der gleichmäßige Datenverteilung bietet und mit Abfragemustern übereinstimmt. Für mandantenfähige Apps ist workspace_id üblich. Validieren Sie, dass Partition-Key-Zugriff mit Benutzer-Autorisierung übereinstimmt, um Datengrenzen durchzusetzen.
Kann ich diese Skill mit anderen Azure Cosmos DB-APIs wie MongoDB oder SQL verwenden?
Diese Skill konzentriert sich spezifisch auf die NoSQL-API mit nativem Cosmos SDK. MongoDB- und SQL-APIs erfordern unterschiedliche Client-Bibliotheken und Abfragemuster, obwohl die Service-Schicht-Architekturprinzipien anwendbar bleiben.

开发者详情

文件结构

📄 SKILL.md