Uso de PowerShell con una plantilla de Azure Resource Manager para crear una instancia administradaUse PowerShell with an Azure Resource Manager template to create a managed instance

SE APLICA A: sí Instancia administrada de Azure SQL APPLIES TO: yesAzure SQL Managed Instance

Puede crear una instancia administrada mediante la biblioteca de Azure PowerShell y plantillas de Azure Resource Manager.You can create a managed instance by using the Azure PowerShell library and Azure Resource Manager templates.

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.If you don't have an Azure subscription, create a free account before you begin.

Nota

Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell.This article has been updated to use the new Azure PowerShell Az module. Aún puede usar el módulo de AzureRM que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo.You can still use the AzureRM module, which will continue to receive bug fixes until at least December 2020. Para más información acerca del nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module (Presentación del nuevo módulo Az de Azure PowerShell).To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. Para obtener instrucciones sobre la instalación del módulo Az, consulte Instalación de Azure PowerShell.For Az module installation instructions, see Install Azure PowerShell.

Uso de Azure Cloud ShellUse Azure Cloud Shell

En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador.Azure hosts Azure Cloud Shell, an interactive shell environment that you can use through your browser. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure.You can use either Bash or PowerShell with Cloud Shell to work with Azure services. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.You can use the Cloud Shell preinstalled commands to run the code in this article without having to install anything on your local environment.

Para iniciar Azure Cloud Shell:To start Azure Cloud Shell:

OpciónOption Ejemplo o vínculoExample/Link
Seleccione Pruébelo en la esquina superior derecha de un bloque de código.Select Try It in the upper-right corner of a code block. Solo con seleccionar Pruébelo no se copia automáticamente el código en Cloud Shell.Selecting Try It doesn't automatically copy the code to Cloud Shell. Ejemplo de Probarlo para Azure Cloud Shell
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador.Go to https://shell.azure.com, or select the Launch Cloud Shell button to open Cloud Shell in your browser. Iniciar Cloud Shell en una nueva ventanaLaunch Cloud Shell in a new window
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal.Select the Cloud Shell button on the menu bar at the upper right in the Azure portal. Botón Cloud Shell en Azure Portal

Para ejecutar el código de este artículo en Azure Cloud Shell:To run the code in this article in Azure Cloud Shell:

  1. Inicie Cloud Shell.Start Cloud Shell.

  2. Seleccione el botón Copiar de un bloque de código para copiar el código.Select the Copy button on a code block to copy the code.

  3. Pegue el código en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.Paste the code into the Cloud Shell session by selecting Ctrl+Shift+V on Windows and Linux or by selecting Cmd+Shift+V on macOS.

  4. Seleccione Entrar para ejecutar el código.Select Enter to run the code.

Si decide instalar y usar PowerShell de manera local, en este tutorial se requiere la versión 1.4.0 o posterior de Azure PowerShell.If you choose to install and use PowerShell locally, this tutorial requires Azure PowerShell 1.4.0 or later. Si necesita actualizarla, consulte Instalación del módulo de Azure PowerShell.If you need to upgrade, see Install Azure PowerShell module. Si PowerShell se ejecuta localmente, ejecute Connect-AzAccount para crear una conexión con Azure.If you are running PowerShell locally, run Connect-AzAccount to create a connection to Azure.

Los comandos de Azure PowerShell pueden iniciar la implementación mediante una plantilla predefinida de Azure Resource Manager.Azure PowerShell commands can start deployment using a predefined Azure Resource Manager template. Se pueden especificar las siguientes propiedades en la plantilla:The following properties can be specified in the template:

  • Nombre de la instancia administradaManaged instance name
  • Nombre de usuario y contraseña de administrador SQL.SQL administrator username and password.
  • Tamaño de la instancia de (número de núcleos y tamaño de almacenamiento máximo).Size of the instance (number of cores and max storage size).
  • Red virtual y subred en la que se colocará la instancia.VNet and subnet where the instance will be placed.
  • Intercalación en el nivel de servidor de la instancia (versión preliminar).Server-level collation of the instance (preview).

El nombre de la instancia, el nombre de usuario del administrador SQL, la red virtual o la subred, y la intercalación no se podrán modificar posteriormente.Instance name, SQL administrator username, VNet/subnet, and collation cannot be changed later. Se podrán cambiar otras propiedades de la instancia.Other instance properties can be changed.

Requisitos previosPrerequisites

En este ejemplo se supone que ha creado un entorno de red válido o que ha modificado la red virtual existente para la Instancia administrada.This sample assumes that you have created a valid network environment or modified an existing VNet for your managed instance. Puede preparar el entorno de red mediante una plantilla de Azure Resource Manager independiente, si es necesario.You can prepare the network environment using a separate Azure Resource Manager template, if necessary.

El ejemplo usa los cmdlets New-AzResourceGroupDeployment y Get-AzVirtualNetwork, así que asegúrese de que ha instalado los módulos de PowerShell siguientes: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

Plantilla del Administrador de recursos de AzureAzure Resource Manager template

Guarde el siguiente script en un archivo .json y anote la ubicación del archivo:Save the following script into a .json file, and note the file location:

{
    "$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_Gen5",
                "tier": "GeneralPurpose"
            },
            "properties": {
                "administratorLogin": "[parameters('user')]",
                "administratorLoginPassword": "[parameters('pwd')]",
                "subnetId": "[parameters('subnetId')]",
                "storageSizeInGB": 256,
                "vCores": 8,
                "licenseType": "LicenseIncluded",
                "hardwareFamily": "Gen5",
                "collation": "Serbian_Cyrillic_100_CS_AS"
            },
            "type": "Microsoft.Sql/managedInstances",
            "identity": {
                "type": "SystemAssigned"
            },
            "apiVersion": "2015-05-01-preview"
        }
    ]
}

Actualice el siguiente script de PowerShell con la ruta de acceso de archivo correcta para el archivo .json que guardó anteriormente y cambie los nombres de los objetos en el script:Update the following PowerShell script with the correct file path for the .json file you saved previously, 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

Una vez completado el script, se puede acceder a la instancia administrada desde todos los servicios de Azure y la dirección IP configurada.Once the script completes, the managed instance can be accessed from all Azure services and the configured IP address.

Pasos siguientesNext steps

Para más información sobre Azure PowerShell, consulte la documentación de Azure PowerShell.For more information on Azure PowerShell, see Azure PowerShell documentation.

Puede encontrar más ejemplos de scripts de PowerShell para Instancia administrada de Azure SQL en Scripts de PowerShell de Instancia administrada de Azure SQL.Additional PowerShell script samples for Azure SQL Managed Instance can be found in Azure SQL Managed Instance PowerShell scripts.