Como usar o Cloud SQL para MySQL

Nesta página, você aprende como se conectar a uma instância do Cloud SQL para MySQL segunda geração a partir de um aplicativo do App Engine e como fazer leituras e gravações no Cloud SQL. O Cloud SQL é um banco de dados SQL que reside na nuvem do Google.

Para saber mais sobre o Cloud SQL, consulte a documentação do Cloud SQL. Para informações sobre preços e limites do Cloud SQL, consulte a página de preços do Cloud SQL. Os aplicativos do App Engine também estão sujeitos às cotas dessa plataforma.

Antes de começar

  1. Crie ou selecione um projeto do GCP no Console do GCP e verifique se o projeto inclui um aplicativo do App Engine e se o faturamento está ativado:
    Acessar o App Engine

    O Painel será aberto se houver um aplicativo do App Engine no projeto e se o faturamento estiver ativado. Caso contrário, siga as instruções para escolher uma região e ativar o faturamento.

  2. Ativar Cloud SQL API.

    Ativar a API

  3. Para implantar o aplicativo com a ferramenta gcloud, você precisa fazer o download, instalar e inicializar o SDK do Cloud:
    Fazer o download do SDK
  4. Instale o SDK do .NET Core, versão LTS.
  5. Se você estiver usando o Visual Studio, será necessário instalar as ferramentas do .NET Core para criar e executar aplicativos do .NET Core.
  6. Se você estiver usando o Visual Studio, instale o Google Cloud Tools for Visual Studio para facilitar a implantação no App Engine.

Como configurar a instância do Cloud SQL

Para criar e configurar uma instância do Cloud SQL, siga estas etapas:

  1. Crie uma instância do Cloud SQL segunda geração.
  2. Defina a senha do usuário padrão na instância do Cloud SQL caso ainda não o tenha feito:
    gcloud sql users set-password root --host=% --instance [INSTANCE_NAME] --password [PASSWORD]
    
  3. Se não quiser usar o usuário padrão para se conectar, crie um usuário.

Configurar o acesso SSL à instância do Cloud SQL

  1. Siga as instruções para criar um certificado de cliente e exigir o SSL.

  2. Na página "Detalhes da instância", clique em Controles de acesso > Autorização.

  3. Clique em + Adicionar rede.

  4. Digite all para o nome.

  5. Digite 0.0.0.0/0 para a rede.

  6. Clique em Concluído e em Salvar.

  7. Para gerar um arquivo client.pfx dos arquivos de certificado criados na etapa 1, digite na linha de comando:

    openssl pkcs12 -export -in client-cert.pem -inkey client-key.pem -certfile server-ca.pem -out client.pfx
    

    Se você não tiver uma máquina com openssl instalado, use o SDK do Cloud.

  8. Substitua o arquivo client.pfx no projeto dotnet-docs-samples\appengine\flexible\CloudSql pelo client.pfx criado.

Como configurar a string de conexão e adicionar uma biblioteca

Configure o ambiente local para oferecer suporte a conexões de testes locais.

Por exemplo, na amostra de código fornecida, inclua a string de conexão no arquivo appsettings.json.

A string de conexão inclui o usuário, a senha e o endereço IP:

"ConnectionString": "Uid=aspnetuser;Pwd=;Host=cloudsql;Database=visitors"

A string de conexão é usada para criar a conexão:

var connectionString = new MySqlConnectionStringBuilder(
    Configuration["CloudSql:ConnectionString"])
{
    // Connecting to a local proxy that does not support ssl.
    SslMode = MySqlSslMode.None,
};
DbConnection connection =
    new MySqlConnection(connectionString.ConnectionString);

Como executar o código de amostra

A amostra abaixo grava as informações de visita no Cloud SQL. Em seguida, ela lê e retorna as últimas dez visitas:
// Insert a visit into the database:
using (var insertVisitCommand = _connection.CreateCommand())
{
    insertVisitCommand.CommandText =
        @"INSERT INTO visits (user_ip) values (@user_ip)";
    var userIp = insertVisitCommand.CreateParameter();
    userIp.ParameterName = "@user_ip";
    userIp.DbType = DbType.String;
    userIp.Value =
        FormatAddress(HttpContext.Connection.RemoteIpAddress);
    insertVisitCommand.Parameters.Add(userIp);
    await insertVisitCommand.ExecuteNonQueryAsync();
}

// Look up the last 10 visits.
using (var lookupCommand = _connection.CreateCommand())
{
    lookupCommand.CommandText = @"
        SELECT * FROM visits
        ORDER BY time_stamp DESC LIMIT 10";
    List<string> lines = new List<string>();
    var reader = await lookupCommand.ExecuteReaderAsync();
    HomeModel model = new HomeModel() {
        VisitorLog = new List<VisitorLogEntry>()
    };
    while (await reader.ReadAsync()) {
        model.VisitorLog.Add(new VisitorLogEntry() {
            IpAddress = reader.GetString(1),
            TimeStamp = reader.GetDateTime(0)
        });
    }
    return View(model);
}

Como testar e implantar

Visual Studio

Para testar o aplicativo no local, siga estas etapas:

  1. No Visual Studio, abra dotnet-docs-samples\appengine\flexible\AppEngineFlex.sln.
  2. Pressione F5.

Para implantar o aplicativo, siga estas etapas:

  1. No "Solution Explorer", clique com o botão direito do mouse em CloudSql e selecione Publish CloudSql to Google Cloud...
  2. Clique em App Engine Flex.
  3. Clique em Publish.

Linha de comando

Para testar o aplicativo no local, siga estas etapas:

  1. Execute os seguintes comandos no diretório dotnet-docs-samples\appengine\flexible\:
    dotnet restore
    dotnet run
  2. No seu navegador da Web, acesse http://localhost:5000/.
  3. Na janela do terminal, pressione Ctrl+C para sair do servidor da Web.

Para implantar o aplicativo, siga estas etapas:

  1. Navegue até o diretório dotnet-docs-samples\appengine\flexible\.
  2. Execute os seguintes comandos:
    dotnet restore
    dotnet publish
    gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml
  3. Inicie o navegador e execute o comando a seguir para ver o aplicativo em http://[YOUR_PROJECT_ID].appspot.com:
    gcloud app browse

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente flexível do App Engine para documentos .NET