API REST do Cosmos DB para PostgreSQL

O Azure Cosmos DB for Postgres é um banco de dados SQL distribuído totalmente gerenciado e nativo de nuvem para aplicativos transacionais.

As APIs REST (Transferência de Estado Representacional) do Provedor de Recursos permitem que você gerencie seus recursos do Azure Cosmos DB programaticamente. As principais categorias com suporte incluem:

  • Implante, gerencie ou promova um cluster.
  • Gerenciar configurações de nó de trabalho do coordenador.
  • Gerencie regras de firewall.
  • Gerencie conexões de ponto de extremidade privado e recursos de link privado.
  • Gerenciar funções.

Autorização

Todas as chamadas REST do Azure Resource Manager precisam de um token de autorização válido no cabeçalho da solicitação para serem bem-sucedidas. Consulte Criar a solicitação: adquirir um token de acesso para obter detalhes sobre como obter esse token de autorização.

Como fazer chamadas à API REST

Há várias maneiras de fazer chamadas à API REST para qualquer serviço do Azure, incluindo o Azure Cosmos DB for PostgreSQL. Você pode usar o Postman como a ferramenta multiuso mais universal para chamadas à API REST. Você também pode usar curl para alguns outros cenários, incluindo scripts autônomos, como os usados na automação de DevOps. Você também pode usar 'az rest' como uma maneira fácil de fazer chamadas à API REST da CLI do Azure.

Espaços reservados e valores

As informações a seguir são comuns a todas as tarefas que você pode fazer usando essas APIs REST:

  • Substitua {api-version} pela versão mais recente da API disponível , como 2022-11-08.
  • Substitua {subscriptionId} pelo identificador de assinatura no URI. Esse valor é um GUID exclusivo para sua assinatura, como 6B29FC40-CA47-1067-B31D-00DD010662DA. Localize a ID da assinatura usando a folha Assinaturas do portal do Azure.
  • Substitua {resourceGroupName} pelo grupo de recursos. Para obter mais informações, consulte Como usar grupos de recursos para gerenciar seus recursos do Azure.
  • Substitua {clusterName} pelo nome do cluster do Azure Cosmos DB for PostgreSQL. Use o nome curto, como mydemocluster.
  • Defina o cabeçalho Content-Type como application/json.
  • Defina o cabeçalho Authorization como um JSON Web Token obtido do Azure Active Directory. Para obter mais informações, consulte a seção Autorização.

Valores

Use a referência a seguir para determinar os valores com suporte para várias chamadas à API REST para clusters e nós do Azure Cosmos DB for PostgreSQL.

Criação e atualização de cluster

  • properties.postgresqlVersion: versão principal do PostgreSQL em todos os nós do cluster. Especifique uma versão principal do PostgreSQL com suporte. Por exemplo, "15". Consulte a lista de versões do Postgres suportadas. O cluster é criado com a versão secundária mais recente do PostgreSQL e a versão mais recente do Citus correspondente disponível na região selecionada.
  • properties.citusVersion: versão da extensão do Citus instalada em todos os nós do cluster. Por exemplo, "11.3". Consulte a versão do Citus atualmente suportada.
    • Essa propriedade é opcional para um novo provisionamento de cluster. Se essa propriedade for omitida, a versão mais recente do Citus suportada para a versão principal especificada do PostgreSQL será instalada.
    • O caso principal para essa propriedade é a atualização da versão do Citus, como 11.0 para 11.3. Quando uma versão atualizada do Citus é lançada para a versão principal do PostgreSQL em seu cluster, você pode usar a chamada de API de atualização do cluster para atualizar apenas a versão do Citus para a versão mais recente compatível com a versão principal atual do PostgreSQL.
  • properties.administratorLoginPassword: senha para a função 'citus' em todos os nós do cluster. A senha precisa atender aos seguintes requisitos
    • Comprimento: Pelo menos 8 caracteres e no máximo 128 caracteres
    • Complexidade: Deve conter caracteres de cada uma das seguintes categorias:
      • Letras maiúsculas do alfabeto inglês
      • Letras minúsculas do alfabeto inglês
      • Números (0-9)
      • Caracteres não alfanuméricos (!, $, #, %, etc.)
    • Nome da função na senha: não pode conter todo ou partes do nome da função. Parte do nome de uma função é definida como três ou mais caracteres alfanuméricos consecutivos
  • properties.coordinatorServerEdition: tipo de computação em um único nó ou coordenador de cluster de vários nós. Use os seguintes valores para a computação de nó único e de vários nós com suporte
    • Nó único
      • Expansível, 1 vCore: BurstableMemoryOptimized
      • Expansível, 2 vCores: BurstableGeneralPurpose
      • Não expansível, qualquer vCores compatível: GeneralPurpose
    • Multi-nó
      • Não expansível, qualquer vCores compatível: GeneralPurpose
  • properties.coordinatorVCores: número de vCores de computação no coordenador do cluster de nó único ou de vários nós. Veja os valores suportados nesta página.
  • properties.coordinatorStorageQuotaInMb: tamanho do armazenamento em MiB em um único nó ou no coordenador no cluster de vários nós. Consulte os tamanhos de armazenamento compatíveis para configurações de nó único e de vários nós. Por exemplo, para especificar 128 GiB de armazenamento, use o valor "131072" (128 GiB * 1024 = 131072 MiB).
  • properties.nodeServerEdition: tipo de computação em nós de trabalho. Há suporte apenas para o valor "MemoryOptimized".
  • properties.nodeVCores: número de vCores de computação em cada nó de trabalho no cluster de vários nós. Veja os valores suportados nesta página.
  • properties.nodeStorageQuotaInMb: tamanho do armazenamento em MiB em um nó de trabalho em um cluster de vários nós. Consulte as configurações de vários nós de tamanhos de armazenamento com suporte . Por exemplo, para especificar 2 TiB de armazenamento, use o valor "2097152" (2 TiB * 1024 = 2048 GiB * 1024 = 2097152 MiB).
  • properties.coordinatorEnablePublicIpAccess: quando definida como "False", essa propriedade desabilita o acesso público ao coordenador de cluster.
  • properties.nodeEnablePublicIpAccess: o valor padrão para essa propriedade é 'false', desabilitando efetivamente o acesso público direto aos nós de trabalho. Para habilitar o acesso direto opcional a nós de trabalho em clusters de vários nós, você precisa definir essa propriedade como "True" e criar regras de firewall para esses endereços IP públicos. Todas as regras de firewall se aplicam ao coordenador e a todos os nós de trabalho.

Criação de regra de firewall

  • properties.startIpAddress e properties.endIpAddress
    • Para criar uma regra de firewall para um único endereço IP público, especifique esse endereço IP como um valor para startIpAddress e endIpAddress.
    • Para permitir conexões de qualquer endereço IP gerenciado pelo Azure, especifique "0.0.0.0" para os valores startIpAddress e endIpAddress. Observe que essa regra de firewall permitiria conexões das assinaturas do Azure de outros clientes.

Criação de função

  • properties.password: senha para a função Postgres a ser criada em todos os nós do cluster. A senha precisa atender aos seguintes requisitos
    • Comprimento: Pelo menos 8 caracteres e no máximo 128 caracteres
    • Complexidade: Deve conter caracteres de cada uma das seguintes categorias:
      • Letras maiúsculas do alfabeto inglês
      • Letras minúsculas do alfabeto inglês
      • Números (0-9)
      • Caracteres não alfanuméricos (!, $, #, %, etc.)
    • Nome da função na senha: não pode conter todo ou partes do nome da função. Parte do nome de uma função é definida como três ou mais caracteres alfanuméricos consecutivos