Estabeleça ligação ao Cloud SQL para MySQL a partir do Cloud Run

Saiba como implementar uma app de exemplo no Cloud Run ligado a uma instância do MySQL através da Trusted Cloud consola e de uma aplicação cliente.

Partindo do princípio de que conclui todos os passos atempadamente, os recursos criados neste início rápido custam normalmente menos de um dólar (USD).

Antes de começar

  1. In the Trusted Cloud console, on the project selector page, select or create a Trusted Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Trusted Cloud project.

  3. Ative as APIs Cloud necessárias para executar uma app de exemplo do Cloud SQL no Cloud Run.

    Consola

    Clique em Ativar APIs para ativar as APIs necessárias para este início rápido.

    Ative as APIs

    Isto ativa as seguintes APIs:

    • API Compute Engine
    • API Cloud SQL Admin
    • API Cloud Run
    • API Container Registry
    • API Cloud Build
    • API de rede de serviços

    gcloud

    Clique no botão seguinte para abrir o Cloud Shell, que oferece acesso à linha de comandos aos seus Trusted Cloud recursos diretamente a partir do navegador. Pode usar o Cloud Shell para executar os comandos gcloud apresentados ao longo deste início rápido.

    Abra o Cloud Shell

    Execute o seguinte comando gcloud através da Cloud Shell:

    gcloud services enable compute.googleapis.com sqladmin.googleapis.com run.googleapis.com \
    containerregistry.googleapis.com cloudbuild.googleapis.com servicenetworking.googleapis.com

    Este comando ativa as seguintes APIs:

    • API Compute Engine
    • API Cloud SQL Admin
    • API Cloud Run
    • API Container Registry
    • API Cloud Build
    • API de rede de serviços

Configure o Cloud SQL

Crie uma instância do Cloud SQL

Crie uma base de dados

Consola

  1. Na Trusted Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Selecione quickstart-instance.
  3. No menu de navegação SQL, selecione Bases de dados.
  4. Clique em Criar base de dados.
    1. No campo Nome da base de dados da caixa de diálogo Criar uma base de dados, introduza quickstart-db. Deixe os valores para o conjunto de carateres e a ordenação.
    2. Clique em Criar.

gcloud

Execute o comando gcloud sql databases create para criar uma base de dados.

gcloud sql databases create quickstart-db --instance=quickstart-instance

Crie um utilizador

Consola

  1. Na Trusted Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Para abrir a página Vista geral de uma instância, clique no nome da instância.
  3. Selecione Utilizadores no menu de navegação do SQL.
  4. Clique em Adicionar conta de utilizador.
    • Na página Adicione uma conta de utilizador à instância instance_name, adicione as seguintes informações:
      • Nome de utilizador: definido como quickstart-user
      • Palavra-passe: especifique uma palavra-passe para o utilizador da base de dados. Anote esta informação para usar num passo posterior deste início rápido.
      • Na secção Nome do anfitrião, a predefinição é Permitir qualquer anfitrião, o que significa que o utilizador pode estabelecer ligação a partir de qualquer endereço IP.

        Opcionalmente, selecione Restringir anfitrião por endereço IP ou intervalo de endereços e introduza um endereço IP ou um intervalo de endereços na secção Anfitrião. O utilizador só pode estabelecer ligação a partir do endereço IP ou dos endereços especificados.

  5. Clique em Adicionar.

gcloud

Antes de executar o seguinte comando, faça as seguintes substituições:

  1. PASSWORD com uma palavra-passe para o utilizador da base de dados. Anote esta informação para usar num passo posterior deste início rápido.

Execute o comando gcloud sql users create para criar o utilizador.

gcloud sql users create quickstart-user \
--instance=quickstart-instance \
--password=PASSWORD

Os limites de comprimento dos nomes de utilizador são os mesmos para o Cloud SQL e para o MySQL no local: 32 carateres para o MySQL 8.0 e posterior, e 16 carateres para as versões anteriores.

Implemente a app de exemplo no Cloud Run

Configure uma conta de serviço do Cloud Run

Configure a conta de serviço predefinida do Compute Engine usada pelo Cloud Run para que tenha as funções Cliente do Cloud SQL e Leitor de objetos do Storage.

Consola

  1. Na Trusted Cloud consola, aceda à página IAM.

    Aceda ao IAM

  2. Selecione o separador Ver por diretores.
  3. Use o campo Filtro para pesquisar a conta de serviço denominada Conta de serviço predefinida do Compute Engine.
  4. Clique no ícone de lápis junto à conta de serviço predefinida do Compute Engine.
  5. Na página Atribuir funções, clique em Adicionar funções.
  6. Encontre e selecione a função denominada Cliente do Cloud SQL (roles/cloudsql.client).
  7. Encontre e selecione a função denominada Visualizador de objetos do Storage (roles/storage.ObjectViewer).
  8. Clique em Aplicar.
  9. Clique em Guardar.

gcloud

  1. Execute o comando gcloud seguinte para obter uma lista das contas de serviço do seu projeto:
    gcloud iam service-accounts list
  2. Copie o EMAIL da conta de serviço predefinida do Compute Engine.
  3. Execute o seguinte comando para adicionar a função Cliente do Cloud SQL à conta de serviço predefinida do Compute Engine:
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/cloudsql.client"
  4. Execute o seguinte comando para adicionar a função Storage Object Viewer à conta de serviço predefinida do Compute Engine:
    gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
      --member="serviceAccount:SERVICE_ACCOUNT_EMAIL" \
      --role="roles/storage.ObjectViewer"

Configure uma app de exemplo do Cloud SQL

Com uma instância, uma base de dados e uma conta de serviço do Cloud SQL com autorizações de cliente, já pode configurar uma aplicação de exemplo para estabelecer ligação à sua instância do Cloud SQL.

Implemente a app de exemplo

Os passos para implementar o exemplo no Cloud Run dependem do tipo de endereço IP que atribuiu à sua instância do Cloud SQL.

O método de associação de imagens varia consoante as variáveis de ambiente definidas.

  • Para estabelecer ligação através de TCP, defina o valor da variável de ambiente INSTANCE_HOST. Este método de ligação respeita os certificados e as portas configurados como variáveis de ambiente.
  • Para estabelecer ligação através de sockets Unix, defina o valor da variável de ambiente INSTANCE_UNIX_SOCKET.

    Não defina o valor da variável de ambiente INSTANCE_HOST.

    Os sockets Unix não são suportados nativamente em Java. Se a sua aplicação for escrita em Java, tem de usar o conetor Java do Cloud SQL.

  • Para estabelecer ligação através de um dos conetores de linguagem do Cloud SQL, defina os valores das variáveis de ambiente INSTANCE_CONNECTION_NAME e DB_IAM_HOST.

    Não defina os valores das seguintes variáveis de ambiente:

    • INSTANCE_HOST
    • INSTANCE_UNIX_SOCKET
    • DB_PORT
    • DB_ROOT_CERT
    • DB_CERT
    • DB_KEY
    Estes valores não são usados porque o conetor de linguagem do Cloud SQL já fornece uma ligação segura através do servidor do proxy Auth do Cloud SQL, que estabelece ligações ao Cloud SQL na porta 3307.

Limpar

Para evitar incorrer em cobranças na sua Trusted Cloud conta pelos recursos usados nesta página, siga estes passos.

  1. Na Trusted Cloud consola, aceda à página Instâncias do Cloud SQL.

    Aceda a Instâncias do Cloud SQL

  2. Selecione a instância quickstart-instance para abrir a página Detalhes da instância.
  3. Na barra de ícones na parte superior da página, clique em Eliminar.
  4. Na caixa de diálogo Eliminar instância, escreva quickstart-instance e, de seguida, clique em Eliminar para eliminar a instância.
  5. Na Trusted Cloud consola, aceda à página Cloud Run.

    Aceda ao Cloud Run

  6. Selecione a caixa de verificação junto ao nome do serviço quickstart-service.
  7. Clique em Eliminar na parte superior da página do Cloud Run.

Passos de limpeza opcionais

Se não estiver a usar a função de cliente do Cloud SQL que atribuiu à conta de serviço do Compute Engine, pode removê-la.

  1. Na Trusted Cloud consola, aceda à página IAM.

    Aceda ao IAM

  2. Clique no ícone de edição (que se assemelha a um lápis) para a conta de IAM denominada Conta de serviço predefinida do Compute Engine.
  3. Elimine a função cliente do Cloud SQL.
  4. Clique em Guardar.

Se não estiver a usar as APIs que foram ativadas como parte deste início rápido, pode desativá-las.

  • APIs ativadas neste guia de início rápido:
    • API Compute Engine
    • API Cloud SQL Admin
    • API Cloud Run
    • API Container Registry
    • API Cloud Build
  1. Na Trusted Cloud consola, aceda à página APIs.

    Aceder às APIs

  2. Selecione qualquer API que queira desativar e, de seguida, clique no botão Desativar API.

O que se segue?

Com base nas suas necessidades, pode saber mais sobre como criar instâncias do Cloud SQL.

Também pode saber como criar utilizadores do MySQL e bases de dados para a sua instância do Cloud SQL.

Para mais informações sobre os preços, consulte os preços do Cloud SQL para MySQL.

Saiba mais sobre:

  • Configurar a instância do Cloud SQL com um endereço IP público.
  • Configurar a sua instância do Cloud SQL com um endereço IP privado.

Além disso, pode saber como estabelecer ligação a uma instância do Cloud SQL a partir de outras aplicações do Google Cloud: