Crear y restaurar bases de datos con Azure Resource Manager

Ya has visto cómo desplegar entornoscrear y publicar websites usando Azure Resource Manager. Otro de los escenarios más comunes es la creación de bases de datos y restauración de un backup dentro de la misma plantilla.

Para este post he utilizado una de ejemplo, utilizando esta opción que existe dentro del nuevo portal. Una vez que tienes la base de datos necesitas exportarla. Para ello basta con hacer clic sobre Export, asignar un nombre al archivo y configurar la cuenta de storage donde se va a almacenar.

SQLDatabaseTest - Export
SQLDatabaseTest – Export

Lo único que necesitas del archivo bacpac es la URL donde está alojado. En la sección de Storage Accounts selecciona la cuenta donde asociaste la exportación, accede al container, selecciona el archivo y haz clic sobre la opción de copiado de la URL.

SQL Database - URL bacpac
SQL Database – URL bacpac

Desde el punto de vista del proyecto de Azure Resource Group existen varias formas de agregar la información que necesitas para crear la base de datos y resturarla. Puedes empezar creando la base de datos, que estará asociada a un servidor SQL y, posteriormente agregar el recurso de SQL Database Import o bien empezar por este último e ir creando los recursos asociados (base de datos y servidor SQL).

SQL Database Import - Azure Resource Manager
SQL Database Import – Azure Resource Manager

Finalmente, aparecerá un recurso anidado a la base de datos con un conjunto de parámetros asociados.

Azure Resource Manager - MyBacPac
Azure Resource Manager – MyBacPac
  • MyBacPacStorageKeyType: Si bien este parámetro está presente, para este escenario se trabaja con una cuenta de Azure Storage, por lo que no es relevante.
  • MyBacPacStorageKey: Clave asociada a tu cuenta de Azure Storage.
  • MyBacPacStorageUri: URI absoluta del archivo bacpac que vas a importar.
  • MyBacPacAdministratorLogin: usuario administrador de la base de datos que exportaste.
  • MyBacPacAdministratorLoginPassword: la contraseña del usuario administrador.

Como ya viste en los artículos anteriores, dichos parámetros se definen en el archivo DeploymentTemplate.param.dev.json. Para poder desplegar mi base de datos he utilizado los siguientes valores:

{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "AzureSQLServerName": {
            "value": "sqlserveradventgis"
        },
        "AzureSQLServerLocation": {
            "value": "West Europe"
        },
        "AzureSQLServerAdminLogin": {
            "value": "YOUR_SQLSERVER_ADMIN_USER"
        },
        "AzureSQLServerAdminLoginPassword": {
            "value": "YOUR_PASSWORD"
        },
        "SQLAzureDbName": {
            "value": "AdventureWorksSample"
        },
        "MyBacPacStorageKeyType": {
            "value": "Sas"
        },
        "MyBacPacStorageKey": {
            "value": "YOUR_STORAGE_KEY"
        },
        "MyBacPacStorageUri": {
            "value": "https://resourcemanagerstore.blob.core.windows.net/bacpacs/AdventureWorksSample-2015-6-15-16-20.bacpac"
        },
        "MyBacPacAdministratorLogin": {
            "value": "YOUR_ADMIN_USER"
        },
        "MyBacPacAdministratorLoginPassword": {
            "value": "YOUR_PASSWORD"
        }
    }
}

Selecciona con el botón derecho el proyecto y haz clic en Deploy, que creará el servidor SQL, la base de datos y la importación del bacpac.

¡Saludos!