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

azure-cosmos-rust

Permite que seu agente gerencie dados NoSQL no Azure Cosmos DB com Rust. É útil para quem precisa de alta performance e segurança no acesso aos dados.

O que ela faz

Esta ferramenta permite que programas escritos em Rust interajam com o banco de dados NoSQL do Azure Cosmos DB. Você pode criar, ler, atualizar e apagar informações armazenadas nele.

Quando usar

  • ✓Quando seu programa Rust precisa salvar ou buscar dados.
  • ✓Ao gerenciar informações em um banco de dados distribuído.
  • ✓Para realizar operações básicas (criar, ler, atualizar, apagar) em dados no Cosmos DB.

Exemplo do que pedir para a IA

“Como eu crio um novo item no meu container do Cosmos DB usando Rust?”

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-rust/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-rust/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O programa Rust usa uma biblioteca especial (SDK) para se conectar ao Azure Cosmos DB. Ele define como os dados devem ser estruturados e envia comandos para o banco de dados para realizar as operações desejadas.

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-rust

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-cosmos-rust/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.

SDK do Azure Cosmos DB para Rust

Biblioteca cliente para a API NoSQL do Azure Cosmos DB — banco de dados distribuído globalmente e multimodelo.

Os exemplos abaixo exigem um conjunto de crates compatíveis revisados e a substituição de cada espaço reservado de recurso. Não use dados de produção para gravações de demonstração.

Instalação

cargo add azure_data_cosmos@=0.37.1 azure_identity@=1.0.0 azure_core@=1.1.0

Variáveis de Ambiente

export COSMOS_ENDPOINT="https://<account>.documents.azure.com:443/"
export COSMOS_DATABASE="mydb"
export COSMOS_CONTAINER="mycontainer"

Autenticação

use azure_identity::DeveloperToolsCredential;
use azure_data_cosmos::{AccountEndpoint, AccountReference, CosmosClient, RoutingStrategy};

let credential = DeveloperToolsCredential::new(None)?;
let endpoint: AccountEndpoint = "https://<account>.documents.azure.com/".parse()?;
let account = AccountReference::with_credential(endpoint, credential.clone());
let client = CosmosClient::builder()
    .build(account, RoutingStrategy::ProximityTo("East US".into()))
    .await?;

Hierarquia de Clientes

Cliente Propósito Obter de
CosmosClient Operações em nível de conta Instanciação direta
DatabaseClient Operações de banco de dados client.database_client()
ContainerClient Operações de contêiner/item database.container_client()

Fluxo de Trabalho Principal

Obter Clientes de Banco de Dados e Contêiner

let database = client.database_client("myDatabase");
let container = database.container_client("myContainer", None).await?;

Criar Item

use serde::{Serialize, Deserialize};

#[derive(Serialize, Deserialize)]
struct Item {
    pub id: String,
    pub partition_key: String,
    pub value: String,
}

let item = Item {
    id: "1".into(),
    partition_key: "partition1".into(),
    value: "hello".into(),
};

container.create_item("partition1", "1", item, None).await?;

Ler Item

let response = container.read_item("partition1", "1", None).await?;
let item: Item = response.into_model()?;

Substituir Item

let mut item: Item = container.read_item("partition1", "1", None).await?.into_model()?;
item.value = "updated".into();

container.replace_item("partition1", "1", item, None).await?;

Patch de Item

// Explicit preview opt-in: cargo add azure_data_cosmos@=0.37.1 --features preview_patch
use azure_data_cosmos::models::{PatchInstructions, PatchOperation};

let patch = PatchInstructions::from(vec![
    PatchOperation::set("/value", serde_json::json!("newValue")),
]);
let patched: Item = container.patch_item("partition1", "1", patch, None)
    .await?.into_model()?;

Excluir Item

container.delete_item("partition1", "1", None).await?;

A API atual revisada usa um inicializador/inicialização de contêiner assíncrono e um ID de item explícito separado. O PATCH de pré-visualização não é uma garantia pronta para produção; revise sua estratégia selecionada, comportamento de conflito/tentativa e custo de unidade de solicitação. Referência oficial da crate.

Autenticação por Chave (Opcional)

Habilite a autenticação baseada em chave com o sinalizador de recurso:

cargo add azure_data_cosmos@=0.37.1 --features key_auth

Melhores Práticas

  1. Sempre especifique a chave de partição — necessária para leituras e gravações pontuais
  2. Use into_model()? — para desserializar respostas em seus tipos
  3. Derive Serialize e Deserialize — para todos os tipos de documento
  4. Use autenticação do Entra ID — prefira DeveloperToolsCredential em vez de autenticação por chave
  5. Reutilize instâncias de cliente — clientes são thread-safe e reutilizáveis

O conjunto de exemplos revisados usa azure_data_cosmos 0.37.1 e crates de credenciais/core do Azure compatíveis. Grave e confirme o Cargo.lock; a revisão de código-fonte/API não é um teste de compilador ou de serviço ativo.

Links de Referência

Recurso Link
Referência da API https://docs.rs/azure_data_cosmos
Código-fonte https://github.com/Azure/azure-sdk-for-rust/tree/main/sdk/cosmos/azure_data_cosmos
crates.io https://crates.io/crates/azure_data_cosmos

Quando Usar

Use quando um aplicativo Rust precisar de CRUD de itens NoSQL do Cosmos DB, leituras pontuais por chave de partição, acesso a contêiner ou patching de pré-visualização explicitamente optado.

Limitações

…

Perguntas frequentes

O que é um 'container' no Cosmos DB?

Pense em um container como uma tabela em um banco de dados tradicional, onde você armazena itens (como linhas de dados).

O que é 'CRUD'?

CRUD é uma sigla para Criar (Create), Ler (Read), Atualizar (Update) e Apagar (Delete), que são as operações básicas de manipulação de dados.

Preciso saber muito sobre bancos de dados para usar isso?

É útil ter uma noção básica de como bancos de dados funcionam, mas a biblioteca simplifica muitas das interações complexas.

Detalhes

Descrição original do autor

Azure Cosmos DB SDK for Rust (NoSQL API). Use for document CRUD, queries, containers, and globally distributed data.

repo: sickn33/agentic-awesome-skills

Popularidade

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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas