Criar instâncias

Nesta página, você verá como criar uma instância do Cloud SQL para PostgreSQL.

Para saber mais sobre todas as configurações de instância, veja o artigo Configurações de instância.

Uma instância recém-criada tem um banco de dados postgres.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.

  4. Instale e inicialize a Google Cloud CLI.
  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se o faturamento está ativado para seu projeto na nuvem. Saiba como verificar se o faturamento está ativado em um projeto.

  7. Instale e inicialize a Google Cloud CLI.
  8. Verifique se você tem os papéis Administrador do Cloud SQL e Leitor do Compute na sua conta de usuário.

    Acessar a página IAM

    Saiba mais sobre papéis e permissões

Criar uma instância do PostgreSQL

Console

  1. No console do Google Cloud, acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Clique em Criar instância.
  3. No painel Escolher o mecanismo do banco de dados na página Criar uma instância, clique em Escolher PostgreSQL e clique em Avançar.
  4. No campo Código da instância do Painel de informações da instância, insira um ID para a instância.

    Não inclua informações confidenciais ou de identificação pessoal no nome da sua instância. Ele é visível externamente.

    Não é necessário incluir o ID do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

  5. Digite a senha do usuário postgres.
  6. Para ver a senha em texto não criptografado, clique no ícone Mostrar senha.

    Insira a senha manualmente ou clique em Gerar para que o Cloud SQL crie uma senha automaticamente.
  7. Opcional: configure uma política de senha para a instância da seguinte maneira:

    1. Marque a caixa de seleção Ativar políticas de senha.
    2. Clique no botão Definir política de senha, defina uma ou mais das seguintes opções e clique em Salvar.
      • Comprimento mínimo: especifica o número mínimo de caracteres que a senha precisa ter.
      • Complexidade da senha: verifica se a senha é uma combinação de caracteres minúsculos, maiúsculos, numéricos e não alfanuméricos.
      • Restringir a reutilização de senhas: especifica o número de senhas anteriores que não podem ser reutilizadas.
      • Bloquear nome de usuário: impede o uso do nome de usuário na senha.
      • Definir intervalo de alteração de senha: especifica o número mínimo de horas após as quais você pode alterar a senha.
  8. Selecione a versão do banco de dados da instância: PostgreSQL 14 (padrão), PostgreSQL 13, PostgreSQL 12, PostgreSQL 11, PostgreSQL 10, ou PostgreSQL 9.6.

    A versão do banco de dados não pode ser editada depois que a instância é criada.

  9. Na seção Escolher região e disponibilidade por zona, selecione a região e a zona da instância.

    Coloque a instância na mesma região que os recursos que a acessam. A região selecionada não poderá ser modificada no futuro. Na maioria dos casos, não é necessário especificar uma zona.

    Se você estiver configurando a instância para alta disponibilidade, selecione as zonas primária e secundária.

    As condições a seguir se aplicam quando a zona secundária é usada durante a criação da instância:

    • A zona padrão é Any para a zona principal e Any (different from primary) para a zona secundária.
    • Se as zonas primária e secundária forem especificadas, elas precisarão ser zonas diferentes.
  10. Na seção Personalizar a instância, atualize as configurações dela. Comece clicando em MOSTRAR OPÇÕES DE CONFIGURAÇÃO para exibir os grupos de configurações. Em seguida, expanda os grupos cujas configurações você quer revisar e personalizar. Um resumo de todas as opções selecionadas é mostrado à direita. A personalização dessas configurações de instância é opcional. Os padrões são atribuídos em todos os casos em que nenhuma personalização é feita.

    A tabela a seguir é uma referência rápida às configurações da instância. Para mais detalhes sobre cada configuração, consulte a página configurações da instância.

    Configuração Observações
    Tipo de máquina
    Tipo de máquina Selecione entre núcleo compartilhado, leve, Padrão (mais comum) ou Alta memória.
    Personalizado Selecione este botão para criar uma instância com uma configuração personalizada. Quando você seleciona essa opção, precisa selecionar o número de núcleos e a quantidade de memória para a instância. Saiba mais.
    Núcleos Número de vCPUs da instância. Saiba mais.
    Memória A quantidade de memória da instância, em GB. Saiba mais.
    Armazenamento
    Tipo de armazenamento Determina se a instância usa armazenamento SSD ou HDD. Saiba mais.
    Capacidade de armazenamento A quantidade de armazenamento provisionada para a instância. Saiba mais.
    Ativar aumento automático de armazenamento Determina se o Cloud SQL fornece automaticamente mais armazenamento para sua instância quando há pouco espaço livre. Saiba mais.
    Criptografia
    Criptografia gerenciada pelo GoogleA opção padrão.
    Chave de criptografia gerenciada pelo cliente (CMEK, na sigla em inglês)Selecione para usar sua chave com o Google Cloud Key Management Service. Saiba mais.
    Conectividade
    IP privado Adiciona um endereço IP privado à instância. Para ativar a conexão com a instância, é necessário ter configurações extras.
    Opcionalmente, é possível especificar um intervalo de IP alocado para as suas instâncias usarem em conexões.
    1. Expanda Mostrar opção de intervalo de IP alocado.
    2. Selecione um intervalo de IP no menu suspenso.

    A instância pode ter um endereço IP público e um particular.

    IP público Adiciona um endereço IP público à instância. Em seguida, é possível adicionar redes autorizadas para se conectar à instância.

    A instância pode ter um endereço IP público e um particular.

    Saiba mais sobre como usar o IP público.

    Redes autorizadasAdicione o nome da nova rede e o endereço dela. Saiba mais.
    Backups
    Backups automáticos A janela de horário em que você quer que os backups comecem. Saiba mais.
    Escolha onde quer armazenar os backupsSelecione "Multirregional" para a maioria dos casos de uso. Se você precisar armazenar backups em uma região específica, por exemplo, se houver razões regulatórias, selecione a região e selecione sua região no menu suspenso "Local".
    Escolher quantos backups automatizados armazenarO número de backups automáticos que você quer manter (de 1 a 365 dias). Saiba mais.
    Ativar recuperação pontual Ativa a recuperação pontual e a geração de registros em tempo de gravação. Saiba mais.
    Escolha quantos dias de registros serão retidos Configure a retenção de registros em tempo de gravação de 1 a 7 dias. A configuração padrão é de sete dias. Saiba mais.
    Manutenção
    Janela preferida Determina uma janela de uma hora em que o Cloud SQL pode executar a manutenção disruptiva na instância. Se você não definir a janela, uma manutenção disruptiva poderá ser feita a qualquer momento. Saiba mais.
    Ordem de atualizações Horário de sua preferência para as atualizações de instâncias, em relação a outras instâncias no mesmo projeto. Saiba mais.
    Sinalizações
    ADICIONAR SINALIZAÇÃO Você pode usar sinalizações do banco de dados para controlar configurações e parâmetros na instância. Saiba mais.
    Marcadores
    ADICIONAR MARCADORAdicione uma chave e um valor para cada rótulo adicionado. Use rótulos para ajudar a organizar suas instâncias.
  11. Clique em Criar instância.

    Observação: pode levar alguns minutos para criar sua instância. No entanto, é possível visualizar informações sobre a instância enquanto ela está sendo criada.

gcloud

Para informações sobre como instalar e começar a usar a gcloud, consulte Como instalar a gcloud CLI. Para mais informações sobre como iniciar o Cloud Shell, consulte a documentação dele.

  1. Use o comando gcloud sql instances create para criar a instância:
    gcloud sql instances create INSTANCE_NAME \
    --database-version=POSTGRES_12 \
    --cpu=NUMBER_CPUS \
    --memory=MEMORY_SIZE \
    --region=REGION \
    --gce-zone=GCE_ZONE \
    --zone=ZONE
    
    Como alternativa, é possível usar a sinalização --tier se você escolher db-f1-micro ou db-g1-small como o tipo de máquina:
    gcloud sql instances create INSTANCE_NAME \
    --tier=API_TIER_STRING \
    --region=REGION
    

    Há restrições quanto ao valor das vCPUs e tamanho de memória:

    • O valor das vCPUs precisa ser 1 ou um número par entre 2 e 96.
    • A memória precisa:
      • ter 0,9 a 6,5 GB por vCPU;
      • ser um múltiplo de 256 MB;
      • ter pelo menos 3,75 GB (3840 MB).

    Por exemplo, a string a seguir cria uma instância com duas vCPUs e 7.680 MB de memória:

    gcloud sql instances create myinstance \
    --database-version=POSTGRES_12 \
    --cpu=2 \
    --memory=7680MB \
    --region=us-central
    
    Consulte Configuração da instância personalizada para mais informações sobre como dimensionar --cpu e --memory.

    O valor padrão de REGION é us-central.

    Não inclua informações confidenciais ou de identificação pessoal no nome da sua instância. Elas são visíveis externamente.
    Não é necessário incluir o ID do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

    Se você estiver criando uma instância para alta disponibilidade, especifique as zonas primária e secundária usando os parâmetros --zone e --secondary-zone. As condições a seguir se aplicam quando a zona secundária é usada durante a criação ou edição da instância:

    • As zonas precisam ser válidas.
    • Se a zona secundária for especificada, a primária também precisará ser especificada.
    • Se as zonas primária e secundária forem especificadas, elas precisarão ser zonas diferentes.
    • Se as zonas primária e secundária forem especificadas, elas precisarão pertencer à mesma região.

    Adicione mais parâmetros para determinar outras configurações da instância:

    Configuração Parâmetro Observações
    Parâmetros obrigatórios
    Versão do banco de dados --database-version POSTGRES_14 (padrão), POSTGRES_13, POSTGRES_12, POSTGRES_11, POSTGRES_10 ou POSTGRES_9_6
    Região --region Consulte os valores válidos.
    Definir política de senha
    Ativar política de senha --enable-password-policy Ativa a política de senha quando usada. Por padrão, a política de senha fica desativada. Quando desativados usando o parâmetro --clear-password-policy, os outros parâmetros da política de senha são redefinidos.
    Tamanho mínimo --password-policy-min-length Especifica o número mínimo de caracteres que a senha precisa ter.
    Complexidade da senha --password-policy-complexity Ativa a verificação de complexidade da senha para garantir que ela contenha um dos seguintes tipos de caractere: caractere minúsculo, caractere maiúsculo, número e símbolo. Definir o valor como COMPLEXITY_UNSPECIFIED.
    Restringir a reutilização de senhas --password-policy-reuse-interval Especifica o número de senhas anteriores que não podem ser reutilizadas.
    Nome de usuário não permitido --password-policy-disallow-username-substring Impede o uso do nome de usuário na senha. Use o parâmetro --no-password-policy-disallow-username-substring para desativar a verificação.
    Definir intervalo de alteração de senha --password-policy-password-change-interval Especifica a duração mínima após a qual você pode alterar a senha, por exemplo, 2m para 2 minutos.
    Conectividade
    IP privado --network

    --no-assign-ip (opcional)

    --allocated-ip-range-name (opcional)

    --network: Especifica o nome da rede VPC que você quer usar para a instância. O acesso a serviços particulares já precisa estar configurado na rede. Disponível apenas para o comando Beta (gcloud beta sql instances create).

    --no-assign-ip: a instância terá apenas um endereço IP particular.

    --allocated-ip-range-name: se especificado, define um nome de intervalo para o qual um intervalo de IP é alocado. Por exemplo, google-managed-services-default. O nome do intervalo precisa obedecer a RFC-1035 e ter de 1 a 63 caracteres. (gcloud alpha sql instances create).

    Saiba mais sobre como configurar o IP particular.
    IP público --authorized-networks Nas conexões de IP público, apenas as conexões de redes autorizadas podem se conectar à instância. Saiba mais.
    Tipo de máquina e armazenamento
    Tipo de máquina --tier Usado para especificar uma instância de núcleo compartilhado (db-f1-micro ou db-g1-small). Para uma configuração de instância personalizada, use os parâmetros --cpu ou --memory. Consulte Configuração da instância personalizada.
    Tipo de armazenamento --storage-type Determina se a instância usa armazenamento SSD ou HDD. Saiba mais.
    Capacidade de armazenamento --storage-size Quantidade de armazenamento provisionada para a instância em GB.Saiba mais.
    Aumento automático de armazenamento --storage-auto-increase Determina se o Cloud SQL fornece automaticamente mais armazenamento para sua instância quando há pouco espaço livre. Saiba mais.
    Limite de aumento automático de armazenamento --storage-auto-increase-limit Determina o quanto o Cloud SQL pode expandir o armazenamento automaticamente. Disponível apenas para o comando Beta (gcloud beta sql instances create). Saiba mais.
    Backups automáticos e alta disponibilidade
    Alta disponibilidade --availability-type Para uma instância altamente disponível, defina como REGIONAL. Saiba mais.
    Zona secundária --secondary-zone Se você estiver criando uma instância para alta disponibilidade, poderá especificar as zonas primária e secundária usando --zone e --secondary-zone parameters. As restrições a seguir se aplicam quando a zona secundária é usada durante a criação ou edição da instância:
    • As zonas precisam ser válidas.
    • Se a zona secundária for especificada, a primária também precisará ser especificada.
    • Se as zonas primária e secundária forem especificadas, elas precisarão ser zonas diferentes.

      Se as zonas primária e secundária forem especificadas, elas precisarão pertencer à mesma região.

    Backups automáticos --backup-start-time A janela do horário que você quer que os backups comecem. Saiba mais.
    Configurações de retenção para backups automáticos --retained-backups-count O número de backups automáticos a serem mantidos. Saiba mais.
    Recuperação pontual --enable-point-in-time recovery Ativa a recuperação pontual e a geração de registros em tempo de gravação. Saiba mais.
    Configurações de retenção para geração de registros binários --retained-transaction-log-days Número de dias para reter registros de gravação para recuperação pontual.Saiba mais.
    Adicionar sinalizações do banco de dados
    Sinalizações do banco de dados --database-flags Você pode usar sinalizações do banco de dados para controlar configurações e parâmetros na instância. Saiba mais sobre as sinalizações do banco de dados.
    Cronograma de manutenção
    Janela de manutenção --maintenance-window-day,
    --maintenance-window-hour
    Determina uma janela de uma hora em que o Cloud SQL pode executar a manutenção disruptiva na instância. Se você não definir a janela, uma manutenção disruptiva poderá ser feita a qualquer momento. Saiba mais.
    Dia/hora da manutenção --maintenance-release-channel Horário de sua preferência para as atualizações de instâncias, em relação a outras instâncias no mesmo projeto. Use preview para atualizações anteriores e production para atualizações posteriores. Saiba mais.

  2. Observe o endereço IP atribuído automaticamente.

    Se não estiver usando o proxy do Cloud SQL Auth, você usará esse endereço como o endereço do host que os aplicativos ou as ferramentas usam para se conectar à instância.

  3. Defina a senha do usuário postgres:
    gcloud sql users set-password postgres \
    --instance=INSTANCE_NAME \
    --password=PASSWORD
    

Terraform

Para criar uma instância, use um recurso do Terraform.

resource "google_sql_database_instance" "instance" {
  name             = "postgres-instance"
  region           = "us-central1"
  database_version = "POSTGRES_14"
  settings {
    tier = "db-custom-2-7680"
  }
  deletion_protection =  "true"
}

Aplique as alterações

Para aplicar a configuração do Terraform a um projeto do Google Cloud, siga estas etapas:

  1. Inicie o Cloud Shell.
  2. Defina o projeto do Google Cloud em que a configuração do Terraform será aplicada:
        export GOOGLE_CLOUD_PROJECT=PROJECT_ID
        
  3. Crie um diretório e abra um novo arquivo. O nome do arquivo precisa ter a extensão .tf, por exemplo: main.tf:
        mkdir DIRECTORY && cd DIRECTORY && nano main.tf
        
  4. Copie a amostra para main.tf.
  5. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  6. Salve as mudanças pressionando Ctrl-x e depois y.
  7. Inicialize o Terraform:
    terraform init
  8. Revise a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expectativas:
    terraform plan

    Faça as correções necessárias na configuração.

  9. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply

    Aguarde até que o Terraform exiba a mensagem "Apply complete!".

  10. Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.

Excluir as alterações

Para excluir as mudanças, faça o seguinte:

  1. Para desativar a proteção contra exclusão, no arquivo de configuração do Terraform, defina o argumento deletion_protection como false.
    deletion_protection =  "false"
  2. Para aplicar a configuração atualizada do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply
  1. Remova os recursos aplicados anteriormente com a configuração do Terraform executando o seguinte comando e inserindo yes no prompt:

    terraform destroy

REST v1

Criar instância

Este exemplo cria uma instância. Alguns parâmetros opcionais, como backups e geração de registros binários, também estão incluídos. Para ver uma lista completa de parâmetros dessa chamada, consulte a página Instances:insert. Para informações sobre configurações da instância, incluindo valores válidos para região, consulte Configurações da instância.

Não inclua informações confidenciais ou de identificação pessoal no ID da instância. Elas são visíveis externamente.
Não é necessário incluir o ID do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o ID do projeto
  • instance-id: o ID da instância buscada
  • region: a região desejada
  • database-version: string de enum da versão do banco de dados. Por exemplo: POSTGRES_13
  • password: a senha do usuário raiz
  • machine-type: string de enum do tipo de máquina (camada), como: db-custom-[CPUS]-[MEMORY_MBS]

Para definir uma política de senha ao criar uma instância, inclua o objeto passwordValidationPolicy na solicitação. Defina os seguintes parâmetros, conforme necessário:

  • enablePasswordPolicy: ativa a política de senha quando definida como true.

    Para remover a política de senha, use uma solicitação PATCH com null como o valor de enablePasswordPolicy. Nesse caso, os outros parâmetros da política de senha serão redefinidos.

  • minLength: especifica o número mínimo de caracteres que a senha precisa ter.
  • complexity: verifica se a senha é uma combinação de caracteres minúsculos, maiúsculos, numéricos e não alfanuméricos. O valor padrão é COMPLEXITY_DEFAULT.
  • reuseInterval: especifica o número de senhas anteriores que não podem ser reutilizadas.
  • disallowUsernameSubstring: impede o uso do nome de usuário na senha quando definido como true.
  • passwordChangeInterval: especifica o período mínimo após o qual você pode alterar a senha. O valor é exibido em segundos com até nove dígitos fracionários, encerrados por s. Por exemplo, 3.5s.

Método HTTP e URL:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances

Corpo JSON da solicitação:

{
  "name": "instance-id",
  "region": "region",
  "databaseVersion": "database-version",
  "rootPassword": "password",
  "settings": {
    "tier": "machine-type",
    "backupConfiguration": {
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "minLength",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "reuseInterval",
      "disallowUsernameSubstring": "disallowUsernameSubstring",
      "passwordChangeInterval": "passwordChangeInterval"
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

A resposta é uma operação de longa duração, que pode levar alguns minutos para ser concluída.

Recuperar o endereço IPv4

Recupere o endereço IPv4 atribuído automaticamente à nova instância:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: ID do projeto
  • instance-id: o ID da instância criado na etapa anterior

Método HTTP e URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Procure o campo ipAddress na resposta.

REST v1beta4

Criar instância

Este exemplo cria uma instância. Alguns parâmetros opcionais, como backups e geração de registros binários, também estão incluídos. Para ver uma lista completa de parâmetros dessa chamada, consulte a página instances:insert. Para informações sobre configurações da instância, incluindo valores válidos para a região, consulte Configurações de instância.

Não inclua informações confidenciais ou de identificação pessoal no ID da instância. Elas são visíveis externamente.
Não é necessário incluir o ID do projeto no nome da instância. Isso é feito automaticamente quando necessário, como nos arquivos de registros.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: o ID do projeto
  • instance-id: o ID da instância buscada
  • region: a região desejada
  • database-version: string de enum da versão do banco de dados. Por exemplo: POSTGRES_12
  • password: a senha do usuário raiz
  • machine-type: string de enum do tipo de máquina (camada), como: db-custom-[CPUS]-[MEMORY_MBS]

Para definir uma política de senha ao criar uma instância, inclua o objeto passwordValidationPolicy na solicitação. Defina os seguintes parâmetros, conforme necessário:

  • enablePasswordPolicy: ativa a política de senha quando definida como true.

    Para remover a política de senha, use uma solicitação PATCH com null como o valor de enablePasswordPolicy. Nesse caso, os outros parâmetros da política de senha serão redefinidos.

  • minLength: especifica o número mínimo de caracteres que a senha precisa ter.
  • complexity: verifica se a senha é uma combinação de caracteres minúsculos, maiúsculos, numéricos e não alfanuméricos. O valor padrão é COMPLEXITY_DEFAULT.
  • reuseInterval: especifica o número de senhas anteriores que não podem ser reutilizadas.
  • disallowUsernameSubstring: impede o uso do nome de usuário na senha quando definido como true.
  • passwordChangeInterval: especifica o período mínimo após o qual você pode alterar a senha. O valor é exibido em segundos com até nove dígitos fracionários, encerrados por s. Por exemplo, 3.5s.

Método HTTP e URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances

Corpo JSON da solicitação:

{
  "name": "instance-id",
  "region": "region",
  "databaseVersion": "database-version",
  "rootPassword": "password",
  "settings": {
    "tier": "machine-type",
    "backupConfiguration": {
      "enabled": true
    },
    "passwordValidationPolicy": {
      "enablePasswordPolicy": true
      "minLength": "minLength",
      "complexity": COMPLEXITY_DEFAULT,
      "reuseInterval": "reuseInterval",
      "disallowUsernameSubstring": "disallowUsernameSubstring",
      "passwordChangeInterval": "passwordChangeInterval"
    }
  }
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-01T19:13:21.834Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

A resposta é uma operação de longa duração, que pode levar alguns minutos para ser concluída.

Recuperar o endereço IPv4

Recupere o endereço IPv4 atribuído automaticamente à nova instância:

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • project-id: ID do projeto
  • instance-id: o ID da instância criado na etapa anterior

Método HTTP e URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_8_0_18",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Procure o campo ipAddress na resposta.

Para ver como a solicitação de API REST de base é criada nesta tarefa, consulte a página APIs Explorer em instances:insert.

Configurações de instâncias personalizadas

Com as configurações de instância flexíveis, você seleciona a quantidade de memória e CPUs necessárias para a instância. Essa flexibilidade permite escolher o formato de VM apropriado para a carga de trabalho.

Os nomes dos tipos de máquina usam o seguinte formato: db-custom-#-#

Substitua o primeiro marcador # pelo número de CPUs na máquina e o segundo marcador # pela quantidade de memória na máquina.

Por exemplo, se o nome da máquina for db-custom e tiver 1 CPU e 3.840 MB de RAM, o formato será db-custom-1-3840.

Ao selecionar o número de CPUs e a quantidade de memória, há algumas restrições à configuração escolhida:

  • O valor das vCPUs precisa ser 1 ou um número par entre 2 e 96.
  • A memória precisa:
    • ter 0,9 a 6,5 GB por vCPU;
    • ser um múltiplo de 256 MB;
    • ter pelo menos 3,75 GB (3840 MB).

Resolver problemas

Problema Solução de problemas
Você receberá a mensagem de erro: Failed to create subnetwork. Couldn't find free blocks in allocated IP ranges. Please allocate new ranges for this service provider. Não há mais endereços disponíveis no intervalo de IP alocado. Pode haver vários cenários possíveis:

  • O tamanho do intervalo de IP alocado para a conexão de serviço particular é menor que /24.
  • O tamanho do intervalo de IP alocado para a conexão de serviço particular é muito pequeno para o número de instâncias do Cloud SQL.
  • O requisito sobre o tamanho do intervalo de IP alocado será maior se as instâncias forem criadas em várias regiões. Consulte tamanho do intervalo alocado.

Em cada um dos cenários acima, é possível optar por expandir o intervalo de IP alocado atual ou alocar outro intervalo de IP para a conexão de serviço particular.

Se você usou a sinalização --allocated-ip-range-name ao criar a instância do Cloud SQL, só vai poder expandir o intervalo de IP especificado.

Se você estiver alocando um novo intervalo, tenha cuidado para que a alocação não se sobreponha a nenhuma alocação atual.

Depois de criar um novo intervalo de IP, atualize o peering VPC com o comando a seguir:


gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID \
--force
    

Se você estiver expandindo uma alocação atual, só aumente o intervalo de alocação em vez de diminuí-lo. Por exemplo, se a alocação original for 10.0.10.0/24, faça a nova alocação pelo menos 10.0.10.0/23.

Em geral, se começar com uma alocação de /24, diminuir o /mascaramento em 1 para cada condição (grupo de tipo de instância adicional, região adicional) é uma boa regra geral. Por exemplo, se você tentar criar os dois grupos de tipos de instância na mesma alocação, a mudança de /24 para /23 será suficiente.

Depois de expandir um intervalo de IP atual, use o seguinte comando para atualizar o peering VPC:


gcloud services vpc-peerings update \
--service=servicenetworking.googleapis.com \
--ranges=RESERVED_RANGE_NAME \
--network=VPC_NETWORK \
--project=PROJECT_ID
    

A seguir

  1. Crie um banco de dados PostgreSQL na instância.
  2. Crie usuários do PostgreSQL na instância.
  3. Proteja e controle o acesso à instância.
  4. Conecte-se à instância com um cliente PostgreSQL.
  5. Importar dados para o banco de dados.