Pular para o conteúdo
Skillpedia
Bancos de dados48 mil · #2302

azure-cosmos-db-py

Permite que seu agente crie serviços NoSQL no Azure Cosmos DB com boas práticas. Ajuda a garantir que o banco de dados seja seguro e confiável.

O que ela faz

Este código ajuda a criar e gerenciar dados em um banco de dados chamado Azure Cosmos DB. Ele garante que os dados sejam armazenados de forma organizada e segura, seguindo boas práticas de programação.

Quando usar

  • ✓Ao criar um novo serviço de dados para um aplicativo.
  • ✓Ao precisar garantir que os dados sejam armazenados de forma segura.
  • ✓Ao desenvolver um aplicativo que usa o Azure Cosmos DB.

Exemplo do que pedir para a IA

“Configure o banco de dados Azure Cosmos DB para meu aplicativo.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-cosmos-db-py/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-cosmos-db-py/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O código se conecta ao Azure Cosmos DB usando credenciais seguras. Ele organiza os dados em modelos e garante que as operações sejam realizadas de forma eficiente e segura.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill azure-cosmos-db-py

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-cosmos-db-py/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Suporte upstream incluído

Arquivos de suporte são incluídos em caminhos relativos à skill. Veja UPSTREAM-NOTICE.md para suas fontes fixadas, licenças, hashes e alterações de importação.

Segurança de helper restaurada

O fixture de integração em assets/conftest_template.py se conecta ao endpoint Cosmos configurado; cleanup_test_docs exclui registros explicitamente adicionados à sua lista de rastreamento. Use apenas um container de teste isolado e descartável com registros apenas para teste, nunca dados de produção. Copiar o template não se conecta ao Cosmos.

Implementação do Serviço Cosmos DB

Construa serviços Azure Cosmos DB NoSQL de nível de produção seguindo princípios de código limpo, melhores práticas de segurança e TDD.

Instalação

pip install azure-cosmos azure-identity

Variáveis de Ambiente

COSMOS_ENDPOINT=https://<account>.documents.azure.com:443/
COSMOS_DATABASE_NAME=<database-name>
COSMOS_CONTAINER_ID=<container-id>
# For emulator only (not production)
COSMOS_KEY=<emulator-key>

Autenticação

DefaultAzureCredential (preferencial):

from azure.cosmos import CosmosClient
from azure.identity import DefaultAzureCredential

client = CosmosClient(
    url=os.environ["COSMOS_ENDPOINT"],
    credential=DefaultAzureCredential()
)

Emulador (desenvolvimento local):

from azure.cosmos import CosmosClient

client = CosmosClient(
    url="https://localhost:8081",
    credential=os.environ["COSMOS_KEY"],
    connection_verify=False
)

Visão Geral da Arquitetura

┌─────────────────────────────────────────────────────────────────┐
│                         FastAPI Router                          │
│  - Auth dependencies (get_current_user, get_current_user_required)
│  - HTTP error responses (HTTPException)                         │
└──────────────────────────────┬──────────────────────────────────┘
                               │
┌──────────────────────────────▼──────────────────────────────────┐
│                        Service Layer                            │
│  - Business logic and validation                                │
│  - Document ↔ Model conversion                                  │
│  - Graceful degradation when Cosmos unavailable                 │
└──────────────────────────────┬──────────────────────────────────┘
                               │
┌──────────────────────────────▼──────────────────────────────────┐
│                     Cosmos DB Client Module                     │
│  - Singleton container initialization                           │
│  - Dual auth: DefaultAzureCredential (Azure) / Key (emulator)   │
│  - Async wrapper via run_in_threadpool                          │
└─────────────────────────────────────────────────────────────────┘

Início Rápido

1. Configuração do Módulo Cliente

Crie um cliente Cosmos singleton com autenticação dupla:

# db/cosmos.py
from azure.cosmos import CosmosClient
from azure.identity import DefaultAzureCredential
from starlette.concurrency import run_in_threadpool

_cosmos_container = None

def _is_emulator_endpoint(endpoint: str) -> bool:
    return "localhost" in endpoint or "127.0.0.1" in endpoint

async def get_container():
    global _cosmos_container
    if _cosmos_container is None:
        if _is_emulator_endpoint(settings.cosmos_endpoint):
            client = CosmosClient(
                url=settings.cosmos_endpoint,
                credential=settings.cosmos_key,
                connection_verify=False
            )
        else:
            client = CosmosClient(
                url=settings.cosmos_endpoint,
                credential=DefaultAzureCredential()
            )
        db = client.get_database_client(settings.cosmos_database_name)
        _cosmos_container = db.get_container_client(settings.cosmos_container_id)
    return _cosmos_container

Implementação completa: Veja references/client-setup.md

2. Hierarquia de Modelos Pydantic

Use o padrão de modelo de cinco níveis para separação limpa:

class ProjectBase(BaseModel):           # Campos compartilhados
    name: str = Field(..., min_length=1, max_length=200)

class ProjectCreate(ProjectBase):       # Requisição de criação
    workspace_id: str = Field(..., alias="workspaceId")

class ProjectUpdate(BaseModel):         # Atualizações parciais (todas opcionais)
    name: Optional[str] = Field(None, min_length=1)

class Project(ProjectBase):             # Resposta da API
    id: str
    created_at: datetime = Field(..., alias="createdAt")


…
Perguntas frequentes

O que é Azure Cosmos DB?

É um serviço de banco de dados NoSQL da Microsoft que permite armazenar e consultar dados de forma rápida e escalável.

O que são 'boas práticas de programação'?

São métodos e convenções que tornam o código mais fácil de entender, manter e seguro, como organizar o código e evitar erros comuns.

O que é TDD?

TDD significa Test-Driven Development (Desenvolvimento Guiado por Testes). É uma prática onde você escreve testes antes de escrever o código principal, garantindo que tudo funcione como esperado.

Detalhes

Descrição original do autor

Build production-grade Azure Cosmos DB NoSQL services following clean code, security best practices, and TDD principles.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2302
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas