Use o PowerShell com o modelo do Azure Resource Manager para criar uma instância gerenciada do Banco de Dados SQL do AzureUse PowerShell with Azure Resource Manager template to create a managed instance in Azure SQL Database

A instância gerenciada do Banco de Dados SQL do Azure pode ser criada usando a biblioteca do PowerShell do Azure e os modelos do Azure Resource Manager.Azure SQL Database Managed Instance can be created using Azure PowerShell library and Azure Resource Manager templates.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.If you don't have an Azure subscription, create a free account before you begin.

Observação

Este artigo foi atualizado para usar o novo módulo Az do Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Você ainda pode usar o módulo AzureRM, que continuará a receber as correções de bugs até pelo menos dezembro de 2020.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para saber mais sobre o novo módulo Az e a compatibilidade com o AzureRM, confira Apresentação do novo módulo Az do Azure PowerShell.To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obter instruções de instalação do módulo Az, confira Instalar o Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Usar o Azure Cloud ShellUse Azure Cloud Shell

O Azure hospeda o Azure Cloud Shell, um ambiente de shell interativo que pode ser usado por meio do navegador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. O Cloud Shell permite usar bash ou PowerShell para trabalhar com serviços do Azure.Cloud Shell lets you use either bash or PowerShell to work with Azure services. É possível usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo sem precisar instalar nada no seu ambiente local.You can use the Cloud Shell pre-installed commands to run the code in this article without having to install anything on your local environment.

Para iniciar o Azure Cloud Shell:To launch Azure Cloud Shell:

OpçãoOption Exemplo/LinkExample/Link
Selecione Experimente no canto superior direito de um bloco de código.Select Try It in the upper-right corner of a code block. Selecionar Experimente não copia automaticamente o código para o Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Exemplo de “Experimente” no Azure Cloud Shell
Acesse https://shell.azure.com ou clique no botão Iniciar o Cloud Shell para abri-lo no navegador.Go to https://shell.azure.com or select the Launch Cloud Shell button to open Cloud Shell in your browser. Inicie o Cloud Shell em uma nova janelaLaunch Cloud Shell in a new window
Clique no botão Cloud Shell na barra de menus no canto superior direito do portal do Azure.Select the Cloud Shell button on the top-right menu bar in the Azure portal. Botão Cloud Shell no portal do Azure

Para executar o código neste artigo no Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Inicie o Cloud Shell.Launch Cloud Shell.

  2. Clique no botão Copiar no bloco de código para copiá-lo.Select the Copy button on a code block to copy the code.

  3. Cole o código na sessão do Cloud Shell com Ctrl+Shift+V no Windows e no Linux ou Cmd+Shift+V no macOS.Paste the code into the Cloud Shell session with Ctrl+Shift+V on Windows and Linux, or Cmd+Shift+V on macOS.

  4. Pressione Enter para executar o código.Press Enter to run the code.

Se você optar por instalar e usar o PowerShell localmente, este tutorial exigirá o AZ PowerShell 1.4.0 ou posterior.If you choose to install and use the PowerShell locally, this tutorial requires AZ PowerShell 1.4.0 or later. Se você precisa atualizar, consulte Instalar o módulo do Azure PowerShell.If you need to upgrade, see Install Azure PowerShell module. Se você estiver executando o PowerShell localmente, também precisará executar o Connect-AzAccount para criar uma conexão com o Azure.If you are running PowerShell locally, you also need to run Connect-AzAccount to create a connection with Azure.

Os comandos do PowerShell do Azure podem começar a implantação usando o modelo predefinido do Azure Resource Manager.Azure PowerShell commands can start deployment using predefined Azure Resource Manager template. As propriedades a seguir podem ser especificadas no modelo:The following properties can be specified in the template:

  • Nome da instânciaInstance name
  • Nome de usuário do administrador do SQL e senha.SQL administrator username and password.
  • Tamanho da instância (número de núcleos e o tamanho máximo de armazenamento).Size of the instance (number of cores and max storage size).
  • Rede virtual e sub-rede onde a instância será colocada.VNet and subnet where the instance will be placed.
  • Ordenação de nível de servidor da instância (versão prévia).Server-level collation of the instance (Preview).

O nome da instância, o nome de usuário do administrador do SQL, a rede virtual/sub-rede e a ordenação não podem ser alterados posteriormente.Instance name, SQL Administrator user name, VNet/subnet, and collation cannot be changed later. As outras propriedades da instância podem ser alteradas.Other instance properties can be changed.

Pré-requisitosPrerequisites

Este exemplo pressupõe que você tenha criado um ambiente de rede válido ou modificado a VNet existente para sua Instância Gerenciada.This sample assumes that you have created a valid network environment or modified existing VNet for your Managed Instance. A amostra usa os cmdlets New-AzResourceGroupDeployment e Get-AzVirtualNetwork, portanto, verifique se você instalou os seguintes módulos do PowerShell:The sample uses the cmdlets New-AzResourceGroupDeployment and Get-AzVirtualNetwork so make sure that you have installed the following PowerShell modules:

Install-Module Az.Network
Install-Module Az.Resources

Modelo do Azure Resource ManagerAzure Resource Manager template

O conteúdo a seguir deve ser colocado em um arquivo que representa um modelo que será usado para criar a instância:The following content should be placed in a file that represents a template that will be used to create the instance:

{
    "$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
    "contentVersion": "1.0.0.1",
    "parameters": {
        "instance": {
            "type": "string"
        },
        "user": {
            "type": "string"
        },
        "pwd": {
            "type": "securestring"
        },
        "subnetId": {
            "type": "string"
        }
    },
    "resources": [
        {
            "name": "[parameters('instance')]",
            "location": "West Central US",
            "tags": {
                "Description":"GP Instance with custom instance collation - Serbian_Cyrillic_100_CS_AS"
            },
            "sku": {
                "name": "GP_Gen4",
                "tier": "GeneralPurpose"
            },
            "properties": {
                "administratorLogin": "[parameters('user')]",
                "administratorLoginPassword": "[parameters('pwd')]",
                "subnetId": "[parameters('subnetId')]",
                "storageSizeInGB": 256,
                "vCores": 8,
                "licenseType": "LicenseIncluded",
                "hardwareFamily": "Gen4",
                "collation": "Serbian_Cyrillic_100_CS_AS"
            },
            "type": "Microsoft.Sql/managedInstances",
            "identity": {
                "type": "SystemAssigned"
            },
            "apiVersion": "2015-05-01-preview"
        }
    ]
}

Pressupõe-se que já existe uma rede virtual do Azure com a sub-rede configurada corretamente.Assumption is that Azure VNet with the properly configured subnet already exists. Se não tiver uma sub-rede configurada corretamente, prepare o ambiente de rede usando o modelo gerenciado de recursos do Azure separado, que pode ser executado de forma independente ou incluído nesse modelo.If you do not have a properly configured subnet, prepare the network environment using separate Azure Resource Managed template that can be executed independently or included in this template.

Salve o conteúdo desse arquivo como arquivo .json, coloque o caminho para o arquivo no script do PowerShell a seguir e altere os nomes dos objetos no script:Save the content of this file as .json file, put the file path in the following PowerShell script, and change the names of the objects in the script:

$subscriptionId = "ed827499-xxxx-xxxx-xxxx-xxxxxxxxxx"
Select-AzSubscription -SubscriptionId $subscriptionId

# Managed Instance properties
$resourceGroup = "rg_mi"
$location = "West Central US"
$name = "managed-instance-name"
$user = "miSqlAdmin"
$secpasswd = ConvertTo-SecureString "<Put some strong password here>" -AsPlainText -Force

# Network configuration
$vNetName = "my_vnet"
$vNetResourceGroup = "rg_mi_vnet"
$subnetName = "ManagedInstances"
$vNet = Get-AzVirtualNetwork -Name $vNetName -ResourceGroupName $vNetResourceGroup
$subnet = Get-AzVirtualNetworkSubnetConfig -Name $SubnetName -VirtualNetwork $vNet
$subnetId = $subnet.Id

# Deploy Instance using Azure Resource Manager template:
New-AzResourceGroupDeployment  -Name MyDeployment -ResourceGroupName $resourceGroup  `
                                    -TemplateFile 'C:\...\create-managed-instance.json' `
                                    -instance $name -user $user -pwd $secpasswd -subnetId $subnetId

Depois que o script tiver sido executado com êxito, o Banco de Dados SQL poderá ser acessado de todos os serviços do Azure e o endereço IP configurado.Once the script has been successfully run, the SQL Database can be accessed from all Azure services and the configured IP address.

Próximas etapasNext steps

Para obter mais informações sobre o Azure PowerShell, confira Documentação do Azure PowerShell.For more information on the Azure PowerShell, see Azure PowerShell documentation.

Outros exemplos de script do PowerShell para Banco de Dados SQL podem ser encontrados nos scripts do PowerShell para Banco de Dados SQL do Azure.Additional SQL Database PowerShell script samples can be found in the Azure SQL Database PowerShell scripts.