Criar uma base de dados e uma recolha para a MongoDB API para Azure Cosmos DB usando Azure CLI

APLICA A: Azure Cosmos DB API para MongoDB

O script deste artigo demonstra a criação de uma base de dados e recolha da API mongoDB.

Se não tiver uma subscrição do Azure, crie uma conta Azure gratuita antes de começar.

Pré-requisitos

Você pode usar o Azure Cloud Shell ou um Azure CLI local.

  • Este artigo requer a versão 2.30 ou posterior. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI). Se utilizar o Azure Cloud Shell, a versão mais recente já está instalada.

Script de exemplo

Iniciar o Azure Cloud Shell

O Azure Cloud Shell é um shell interativo gratuito que pode utilizar para executar os passos neste artigo. Tem as ferramentas comuns do Azure pré-instaladas e configuradas para utilização com a sua conta.

Para abrir o Cloud Shell, basta selecionar Experimente no canto superior direito de um bloco de código. Também pode iniciar o Cloud Shell num separador do browser separado ao aceder a https://shell.azure.com.

Quando Cloud Shell abrir, verifique se a Bash está selecionada para o seu ambiente. As sessões subsequentes utilizarão o CLI Azure num ambiente bash, seleciona a Cópia para copiar os blocos de código, colá-lo no Cloud Shell e pressionar Enter para executá-lo.

Iniciar sessão no Azure

Cloud Shell é automaticamente autenticado na conta inicial com a qual se inscreve. Utilize o seguinte script para iniciar sing usando uma subscrição diferente, substituindo <Subscription ID> pelo seu ID de subscrição Azure. Se não tiver uma subscrição do Azure, crie uma conta Azure gratuita antes de começar.

subscription="<subscriptionId>" # add subscription here

az account set -s $subscription # ...or use 'az login'

Para obter mais informações, consulte a subscrição ativa definida ou faça login interativamente

Executar o script

# Create a MongoDB API database and collection

# Variable block
let "randomIdentifier=$RANDOM*$RANDOM"
location="East US"
failoverLocation="South Central US"
resourceGroup="msdocs-cosmosdb-rg-$randomIdentifier"
tag="create-mongodb-cosmosdb"
account="msdocs-account-cosmos-$randomIdentifier" #needs to be lower case
database="msdocs-db-mongo-cosmos"
serverVersion="4.0" #3.2, 3.6, 4.0
collection="collection1"

# Create a resource group
echo "Creating $resourceGroup in $location..."
az group create --name $resourceGroup --location "$location" --tags $tag

# Create a Cosmos account for MongoDB API
echo "Creating $account"
az cosmosdb create --name $account --resource-group $resourceGroup --kind MongoDB --server-version $serverVersion --default-consistency-level Eventual --enable-automatic-failover true --locations regionName="$location" failoverPriority=0 isZoneRedundant=False --locations regionName="$failoverLocation" failoverPriority=1 isZoneRedundant=False

# Create a MongoDB API database
echo "Creating $database"
az cosmosdb mongodb database create --account-name $account --resource-group $resourceGroup --name $database

# Define the index policy for the collection, with _id, wildcard, compound, unique and TTL
printf ' 
[ 
    {
        "key": {"keys": ["_id"]}
    },
    {
        "key": {"keys": ["$**"]}
    },
    {
        "key": {"keys": ["user_id", "user_address"]}, 
        "options": {"unique": "true"}
    },
    {
        "key": {"keys": ["_ts"]},
        "options": {"expireAfterSeconds": 2629746}
    }
]' > idxpolicy-$randomIdentifier.json

# Create a MongoDB API collection
echo "Creating $collection1"
az cosmosdb mongodb collection create --account-name $account --resource-group $resourceGroup --database-name $database --name $collection --shard "user_id" --throughput 400 --idx @idxpolicy-$randomIdentifier.json

# Clean up temporary index policy file
rm -f "idxpolicy-$randomIdentifier.json"

Limpar os recursos

Utilize o seguinte comando para remover o grupo de recursos e todos os recursos que lhe estão associados utilizando o comando de eliminação do grupo AZ - a menos que tenha uma necessidade permanente para estes recursos. Alguns destes recursos podem demorar algum tempo a criar, bem como a eliminar.

az group delete --name $resourceGroup

Referência da amostra

Este script utiliza os seguintes comandos. Cada comando na tabela liga à documentação específica do comando.

Comando Notas
az group create Cria um grupo de recursos no qual todos os recursos são armazenados.
az cosmosdb create Cria uma conta do Azure Cosmos DB.
az cosmosdb mongodb base de dados criar Cria uma base de dados Azure Cosmos MongoDB API.
coleção az cosmosdb mongodb criar Cria uma coleção Azure Cosmos MongoDB API.
az group delete Elimina um grupo de recursos, incluindo todos os recursos aninhados.

Passos seguintes

Para mais informações sobre o Azure Cosmos DB CLI, consulte a documentação do Azure Cosmos DB CLI.