Tutorial: Provisionar um Banco de Dados do Azure para o servidor MySQL usando o modelo do Azure Resource Manager

APLICA-SE A: Banco de Dados do Azure para MySQL - Servidor Único

Importante

O servidor único do Banco de Dados do Azure para MySQL está no caminho de desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para o servidor flexível MySQL. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para servidor flexível MySQL, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único MySQL?

O Banco de Dados do Azure para MySQL REST API permite que os engenheiros de DevOps automatizem e integrem provisionamento, configuração e operações de servidores MySQL gerenciados e bancos de dados no Azure. A API permite a criação, enumeração, gerenciamento e exclusão de servidores e bancos de dados MySQL no serviço Banco de Dados do Azure para MySQL.

O Azure Resource Manager aproveita a API REST subjacente para declarar e programar os recursos do Azure necessários para implantações em escala, alinhando-se com a infraestrutura como um conceito de código. O modelo parametriza o nome do recurso do Azure, a SKU, a rede, a configuração do firewall e as configurações, permitindo que ele seja criado uma vez e usado várias vezes. Os modelos do Azure Resource Manager podem ser facilmente criados usando o portal do Azure ou o Visual Studio Code. Eles permitem empacotamento de aplicativos, padronização e automação de implantação, que podem ser integrados no pipeline de CI/CD do DevOps. Por exemplo, se você estiver procurando implantar rapidamente um Aplicativo Web com o Banco de Dados do Azure para back-end MySQL, poderá executar a implantação de ponta a ponta usando este modelo de Início Rápido da galeria do GitHub.

Neste tutorial, você usa o modelo do Azure Resource Manager e outros utilitários para saber como:

  • Criar um Banco de Dados do Azure para o servidor MySQL com o Ponto de Extremidade do Serviço VNet usando o modelo do Azure Resource Manager
  • Utilize a ferramenta da linha de comandos mysql para criar uma base de dados
  • Carregar dados de exemplo
  • Consultar os dados
  • Atualizar dados

Pré-requisitos

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

Criar um Banco de Dados do Azure para o servidor MySQL com o Ponto de Extremidade do Serviço VNet usando o modelo do Azure Resource Manager

Para obter a referência de modelo JSON para um banco de dados do Azure para servidor MySQL, vá para Referência de modelo de servidores Microsoft.DBforMySQL. Abaixo está o modelo JSON de exemplo que pode ser usado para criar um novo servidor executando o Banco de Dados do Azure para MySQL com o Ponto de Extremidade do Serviço VNet.

{
  "apiVersion": "2017-12-01",
  "type": "Microsoft.DBforMySQL/servers",
  "name": "string",
  "location": "string",
  "tags": "string",
  "properties": {
    "version": "string",
    "sslEnforcement": "string",
    "administratorLogin": "string",
    "administratorLoginPassword": "string",
    "storageProfile": {
      "storageMB": "string",
      "backupRetentionDays": "string",
      "geoRedundantBackup": "string"
    }
  },
  "sku": {
    "name": "string",
    "tier": "string",
    "capacity": "string",
    "family": "string"
  },
  "resources": [
    {
      "name": "AllowSubnet",
      "type": "virtualNetworkRules",
      "apiVersion": "2017-12-01",
      "properties": {
        "virtualNetworkSubnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]",
        "ignoreMissingVnetServiceEndpoint": true
      },
      "dependsOn": [
        "[concat('Microsoft.DBforMySQL/servers/', parameters('serverName'))]"
      ]
    }
  ]
}

Nesta solicitação, os valores que precisam ser personalizados são:

  • name - Especifique o nome do seu servidor MySQL (sem nome de domínio).
  • location - Especifique uma região de data center do Azure válida para o seu MySQL Server. Por exemplo, westus2.
  • properties/version - Especifique a versão do servidor MySQL a ser implantada. Por exemplo, 5.6 ou 5.7.
  • properties/administratorLogin - Especifique o login de administrador do MySQL para o servidor. O nome de início de sessão de administrador não pode ser azure_superuser, admin, administrator, root, guest ou public.
  • properties/administratorLoginPassword - Especifique a senha para o usuário administrador do MySQL especificado acima.
  • properties/sslEnforcement - Especifique Enabled/Disabled para ativar/desativar sslEnforcement.
  • storageProfile/storageMB - Especifique o tamanho máximo de armazenamento provisionado necessário para o servidor em megabytes. Por exemplo, 5120.
  • storageProfile/backupRetentionDays - Especifique o período de retenção de backup desejado em dias. Por exemplo, 7.
  • storageProfile/geoRedundantBackup - Especifique Ativado/Desativado dependendo dos requisitos de Geo-DR.
  • sku/tier - Especifique a camada Basic, GeneralPurpose ou MemoryOptimized para implantação.
  • sku/capacity - Especifique a capacidade vCore. Os valores possíveis incluem 2, 4, 8, 16, 32 ou 64.
  • sku/family - Especifique Gen5 para escolher a geração de hardware para implantação de servidor.
  • sku/name - Especifique TierPrefix_family_capacity. Por exemplo, B_Gen5_1, GP_Gen5_16 MO_Gen5_32. Consulte a documentação dos níveis de preços para entender os valores válidos por região e por camada.
  • resources/properties/virtualNetworkSubnetId - Especifique o identificador do Azure da sub-rede na VNet onde o servidor Azure MySQL deve ser colocado.
  • tags(optional) - Especificar tags opcionais são pares de valor-chave que você usaria para categorizar os recursos para faturamento, etc.

Se você estiver procurando criar um modelo do Azure Resource Manager para automatizar implantações do Banco de Dados do Azure para MySQL para sua organização, a recomendação seria começar a partir do modelo de exemplo do Azure Resource Manager na Galeria GitHub de Início Rápido do Azure primeiro e compilar sobre ele.

Se você é novo nos modelos do Azure Resource Manager e gostaria de experimentá-lo, pode começar seguindo estas etapas:

  • Clone ou baixe o modelo Sample Azure Resource Manager da galeria de início rápido do Azure.
  • Modifique o azuredeploy.parameters.json para atualizar os valores dos parâmetros com base em sua preferência e salve o arquivo.
  • Use a CLI do Azure para criar o servidor MySQL do Azure usando os seguintes comandos

Pode utilizar o Azure Cloud Shell no browser ou instalar a CLI do Azure no computador para executar os blocos de código deste tutorial.

Azure Cloud Shell

O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Pode utilizar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.

Para iniciar o Azure Cloud Shell:

Opção Exemplo/Ligação
Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. Button to launch Azure Cloud Shell.
Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Para usar o Azure Cloud Shell:

  1. Inicie o Cloud Shell.

  2. Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.

  3. Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e Linux ou selecionando Cmd+Shift+V no macOS.

  4. Selecione Enter para executar o código ou comando.

az login
az group create -n ExampleResourceGroup  -l "West US2"
az deployment group create -g $ ExampleResourceGroup   --template-file $ {templateloc} --parameters $ {parametersloc}

Obter as informações da ligação

Para ligar ao seu servidor, terá de fornecer credenciais de acesso e informações de anfitrião.

az mysql server show --resource-group myresourcegroup --name mydemoserver

O resultado está no formato JSON. Aponte o fullyQualifiedDomainName e o administratorLogin.

{
  "administratorLogin": "myadmin",
  "administratorLoginPassword": null,
  "fullyQualifiedDomainName": "mydemoserver.mysql.database.azure.com",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myresourcegroup/providers/Microsoft.DBforMySQL/servers/mydemoserver",
  "location": "westus2",
  "name": "mydemoserver",
  "resourceGroup": "myresourcegroup",
 "sku": {
    "capacity": 2,
    "family": "Gen5",
    "name": "GP_Gen5_2",
    "size": null,
    "tier": "GeneralPurpose"
  },
  "sslEnforcement": "Enabled",
  "storageProfile": {
    "backupRetentionDays": 7,
    "geoRedundantBackup": "Disabled",
    "storageMb": 5120
  },
  "tags": null,
  "type": "Microsoft.DBforMySQL/servers",
  "userVisibleState": "Ready",
  "version": "5.7"
}

Ligar ao servidor com o mysql

Utilize a ferramenta de linha de comandos do mysql para ligar à Base de Dados do Azure para o servidor MySQL. Neste exemplo, o comando é:

mysql -h mydemoserver.database.windows.net -u myadmin@mydemoserver -p

Criar uma base de dados vazia

Quando estiver conectado ao servidor, crie um banco de dados em branco.

mysql> CREATE DATABASE mysampledb;

Na linha de comandos, execute o comando seguinte para mudar a ligação para a base de dados recentemente criada:

mysql> USE mysampledb;

Criar tabelas na base de dados

Agora que sabe como ligar à Base de Dados do Azure para MySQL, conclua algumas tarefas básicas.

Em primeiro lugar, crie uma tabela e carregue-a com alguns dados. Vamos criar uma tabela que armazena informações de inventário.

CREATE TABLE inventory (
  id serial PRIMARY KEY, 
  name VARCHAR(50), 
  quantity INTEGER
);

Carregar dados para as tabelas

Agora que tem uma tabela, insira alguns dados na mesma. Na janela da linha de comandos aberta, execute a seguinte consulta para inserir algumas linhas de dados.

INSERT INTO inventory (id, name, quantity) VALUES (1, 'banana', 150); 
INSERT INTO inventory (id, name, quantity) VALUES (2, 'orange', 154);

Tem agora duas linhas de dados de exemplo nas tabelas que criou anteriormente.

Consultar e atualizar os dados nas tabelas

Execute a seguinte consulta para obter informações da tabela de base de dados.

SELECT * FROM inventory;

Também pode atualizar os dados nas tabelas.

UPDATE inventory SET quantity = 200 WHERE name = 'banana';

A linha é atualizada em conformidade ao obter dados.

SELECT * FROM inventory;

Clean up resources (Limpar recursos)

Quando não for mais necessário, exclua o grupo de recursos, que exclui os recursos do grupo de recursos.

  1. No portal do Azure, procure e selecione Grupos de recursos.

  2. Na lista de grupos de recursos, escolha o nome do seu grupo de recursos.

  3. Na página Visão geral do seu grupo de recursos, selecione Excluir grupo de recursos.

  4. Na caixa de diálogo de confirmação, digite o nome do grupo de recursos e selecione Excluir.

Próximos passos

Neste tutorial, aprendeu a:

  • Criar um Banco de Dados do Azure para o servidor MySQL com o Ponto de Extremidade do Serviço VNet usando o modelo do Azure Resource Manager
  • Utilizar a ferramenta de linha de comandos mysql para criar uma base de dados
  • Carregar dados de exemplo
  • Consultar os dados
  • Atualizar dados