Microsoft. Servidores/bases de datos SQL 2014-04-01

Definición de recurso Bicep

El tipo de recurso servers/databases se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un Microsoft. Recurso SQL/servidores/bases de datos, añade el siguiente Bicep a tu plantilla.

resource symbolicname 'Microsoft.Sql/servers/databases@2014-04-01' = {
  parent: resourceSymbolicName
  location: 'string'
  name: 'string'
  properties: {
    collation: 'string'
    createMode: 'string'
    edition: 'string'
    elasticPoolName: 'string'
    maxSizeBytes: 'string'
    readScale: 'string'
    recoveryServicesRecoveryPointResourceId: 'string'
    requestedServiceObjectiveId: 'string'
    requestedServiceObjectiveName: 'string'
    restorePointInTime: 'string'
    sampleName: 'string'
    sourceDatabaseDeletionDate: 'string'
    sourceDatabaseId: 'string'
    zoneRedundant: bool
  }
  tags: {
    {customized property}: 'string'
  }
}

Valores de propiedad

Microsoft. SQL/servidores/bases de datos

Name Description Value
location Ubicación del recurso. string (obligatorio)
name El nombre del recurso string (obligatorio)
parent En Bicep, puedes especificar el recurso padre para un recurso hijo. Solo tiene que agregar esta propiedad cuando el recurso secundario se declara fuera del recurso primario.

Para obtener más información, consulte recurso secundario fuera del recurso primario.
Nombre simbólico del recurso de tipo: servidores
properties Propiedades que representan el recurso. DatabaseProperties
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas

DatabaseProperties

| Nombre | Descripción | Valor | | ---- | ----------- | ------------ | | intercalación | Intercalación de la base de datos. Si createMode no es Default, este valor se omite. | string | | createMode | Especifica el modo de creación de la base de datos.

Valor predeterminado: creación normal de la base de datos.

Copiar: crea una base de datos como una copia de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos de origen.

OnlineSecondary/NonReadableSecondary: crea una base de datos como una réplica secundaria (legible o no legible) de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos principal existente.

PointInTimeRestore: crea una base de datos restaurando una copia de seguridad a un momento dado de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos existente y se debe especificar restorePointInTime.

Recuperación: crea una base de datos restaurando una copia de seguridad con replicación geográfica. sourceDatabaseId debe especificarse como identificador de recurso de base de datos recuperable que se va a restaurar.

Restaurar: crea una base de datos restaurando una copia de seguridad de una base de datos eliminada. sourceDatabaseId debe especificarse. Si sourceDatabaseId es el identificador de recurso original de la base de datos, se debe especificar sourceDatabaseDeletionDate. De lo contrario, sourceDatabaseId debe ser el identificador de recurso de base de datos descartable restaurable y sourceDatabaseDeletionDate se omite. restorePointInTime también se puede especificar para restaurar desde un momento dado anterior.

RestoreLongTermRetentionBackup: crea una base de datos restaurando desde un almacén de retención a largo plazo. recoveryServicesRecoveryPointResourceId debe especificarse como identificador de recurso de punto de recuperación.

Copy, NonReadableSecondary, OnlineSecondary y RestoreLongTermRetentionBackup no se admiten para la edición DataWarehouse. | 'Copia'
'Default'
'NonReadableSecondary'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreLongTermRetentionBackup' | | edición | Edición de la base de datos. La enumeración DatabaseEditions contiene todas las ediciones válidas. Si createMode es NonReadableSecondary o OnlineSecondary, este valor se omite.

La lista de SKU puede variar según la región y la oferta de soporte técnico. Para determinar los SKUs (incluyendo el nombre, nivel/edición, familia y capacidad) que están disponibles para tu suscripción en una región Azure, utiliza la API REST Capabilities_ListByLocation o uno de los siguientes comandos:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />PowerShell
<ubicación de Get-AzSqlServerServiceObjective -Location>
| 'Basic'<br />'Business'<br />'BusinessCritical'<br />'DataWarehouse'<br />'Free'<br />'GeneralPurpose'<br />'Hyperscale'<br />'Premium'<br />'PremiumRS'<br />'Standard'<br />'Stretch'<br />'System'<br />'System2'<br />'Web' | | elasticPoolName | The name of the elastic pool the database is in. If elasticPoolName and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveName is ignored. Not supported for DataWarehouse edition. | string | | maxSizeBytes | The max size of the database expressed in bytes. If createMode is not Default, this value is ignored. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." | string | | readScale | Conditional. If the database is a geo-secondary, readScale indicates whether read-only connections are allowed to this database or not. Not supported for DataWarehouse edition. | 'Disabled'<br />'Enabled' | | recoveryServicesRecoveryPointResourceId | Conditional. If createMode is RestoreLongTermRetentionBackup, then this value is required. Specifies the resource ID of the recovery point to restore from. | string | | requestedServiceObjectiveId | The configured service level objective ID of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of currentServiceObjectiveId property. If requestedServiceObjectiveId and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveId overrides the value of requestedServiceObjectiveName.<br /><br />The list of SKUs may vary by region and support offer. To determine the service objective ids that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API. | string <br /><br />Constraints:<br />Min length = 36<br />Max length = 36<br />Pattern = `^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$` | | requestedServiceObjectiveName | The name of the configured service level objective of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of serviceLevelObjective property. <br /><br />The list of SKUs may vary by region and support offer. To determine the SKUs (including the SKU name, tier/edition, family, and capacity) that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API or one of the following commands:<br /><br />```azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />

```powershell
<ubicación de Get-AzSqlServerServiceObjective -Location>
```` | "Básico"
'DS100'
'DS1000'
'DS1200'
'DS1500'
'DS200'
'DS2000'
'DS300'
'DS400'
'DS500'
'DS600'
'DW100'
'DW1000'
'DW10000c'
'DW1000c'
'DW1200'
'DW1500'
'DW15000c'
'DW1500c'
'DW200'
'DW2000'
'DW2000c'
'DW2500c'
'DW300'
'DW3000'
'DW30000c'
'DW3000c'
'DW400'
'DW500'
'DW5000c'
'DW600'
'DW6000'
'DW6000c'
'DW7500c'
'ElasticPool'
'Free'
'P1'
'P11'
'P15'
'P2'
'P3'
'P4'
'P6'
'PRS1'
'PRS2'
'PRS4'
'PRS6'
'S0'
'S1'
'S12'
'S2'
'S3'
'S4'
'S6'
'S7'
'S9'
'System'
'System0'
'System1'
'System2'
'System2L'
'System3'
'System3L'
'System4'
'System4L' | | restorePointInTime | Condicional. Si createMode es PointInTimeRestore, se requiere este valor. Si createMode es Restore, este valor es opcional. Especifica el momento dado (ISO8601 formato) de la base de datos de origen que se restaurará para crear la nueva base de datos. Debe ser mayor o igual que el valor más antiguo de La base de datos de origenRestoreDate. | string | | sampleName | Indica el nombre del esquema de ejemplo que se va a aplicar al crear esta base de datos. Si createMode no es Default, este valor se omite. No se admite para la edición DataWarehouse. | 'AdventureWorksLT' | | sourceDatabaseDeletionDate | Condicional. Si createMode es Restore y sourceDatabaseId es el identificador de recurso original de la base de datos eliminada cuando existía (en lugar de su identificador de base de datos restaurable actual), se requiere este valor. Especifica la hora en que se eliminó la base de datos. | string | | sourceDatabaseId | Condicional. Si createMode es Copy, NonReadableSecondary, OnlineSecondary, PointInTimeRestore, Recovery o Restore, se requiere este valor. Especifica el identificador de recurso de la base de datos de origen. Si createMode es NonReadableSecondary o OnlineSecondary, el nombre de la base de datos de origen debe ser el mismo que la nueva base de datos que se va a crear. | string | | zoneRedundant | Si esta base de datos es con redundancia de zona, lo que significa que las réplicas de esta base de datos se distribuirán entre varias zonas de disponibilidad. | Bool |

TrackedResourceTags

Name Description Value

Ejemplos de uso

Muestras de Bicep

Un ejemplo básico de implementación de MS SQL Database.

param resourceName string = 'acctest0001'
param location string = 'westeurope'
@secure()
@description('The administrator login password for the SQL server')
param administratorLoginPassword string

resource server 'Microsoft.Sql/servers@2021-02-01-preview' = {
  name: resourceName
  location: location
  properties: {
    administratorLogin: 'mradministrator'
    administratorLoginPassword: null
    minimalTlsVersion: '1.2'
    publicNetworkAccess: 'Enabled'
    restrictOutboundNetworkAccess: 'Disabled'
    version: '12.0'
  }
}

resource database 'Microsoft.Sql/servers/databases@2021-02-01-preview' = {
  parent: server
  name: resourceName
  location: location
  properties: {
    autoPauseDelay: 0
    createMode: 'Default'
    elasticPoolId: ''
    highAvailabilityReplicaCount: 0
    isLedgerOn: false
    licenseType: 'LicenseIncluded'
    maintenanceConfigurationId: resourceId('Microsoft.Maintenance/publicMaintenanceConfigurations', 'SQL_Default')
    minCapacity: 0
    readScale: 'Disabled'
    requestedBackupStorageRedundancy: 'Geo'
    zoneRedundant: false
  }
}

Azure Verified Modules

Los siguientes módulos verificados Azure pueden usarse para desplegar este tipo de recurso.

Módulo Description
Azure SQL Database AVM Resource Module for Azure SQL Database

Azure Quickstart Samples

Las siguientes plantillas de inicio rápido Azure contienen Bicep ejemplos para desplegar este tipo de recurso.

Archivo Bicep Description
Azure SQL Server con Auditoría redactada a Log Analytics Esta plantilla te permite desplegar un servidor Azure SQL con Auditoría activada para escribir registros de auditoría en Log Analytics (espacio de trabajo OMS)
Crear un SQL Server y una base de datos Esta plantilla le permite crear SQL Database y Server.
Pool SQL dedicado con cifrado transparente Crea un SQL Server y un pool SQL dedicado (anteriormente SQL DW) con Cifrado de datos transparente.
Despliega la analítica deportiva en Azure Arquitectura Crea una cuenta de almacenamiento de Azure con ADLS Gen 2 habilitada, una instancia de Azure Data Factory con servicios vinculados para la cuenta de almacenamiento (y la Azure SQL Database si está desplegada), y una instancia de Azure Databricks. AAD identity for the user deploying the template and the managed identity for the ADF instance will be granted the Storage Blob Data Contributor role on the storage account. También hay opciones para desplegar una instancia de Azure Key Vault, una Azure SQL Database y un Azure Event Hub (para casos de uso en streaming). Cuando se despliega un Azure Key Vault, la identidad gestionada por la fábrica de datos y la identidad AAD del usuario que despliega la plantilla recibirán el rol de usuario de Key Vault Secrets.
Esta plantilla muestra cómo crear un endpoint privado que apunta a Azure SQL Server
Provisiona una aplicación web con una base de datos SQL Esta plantilla aprovisiona una aplicación web, una instancia de SQL Database, la configuración de escalabilidad automática, las reglas de alerta y App Insights. Configura una cadena de conexión en la aplicación web para la base de datos.
Sonarqube Docker Web App en Linux con Azure SQL Esta plantilla despliega Sonarqube en un contenedor Linux de Azure App Service web usando la imagen oficial de Sonarqube y respaldado por un Azure SQL Server.
Aplicación Web con Identidad Gestionada, SQL Server y ΑΙ Ejemplo sencillo para desplegar infraestructura de Azure para app + datos + identidad gestionada + monitorización

Definición de recursos de plantilla de ARM

El tipo de recurso servers/databases se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un Microsoft. Recurso SQL/servidores/bases de datos, añade el siguiente JSON a tu plantilla.

{
  "type": "Microsoft.Sql/servers/databases",
  "apiVersion": "2014-04-01",
  "name": "string",
  "location": "string",
  "properties": {
    "collation": "string",
    "createMode": "string",
    "edition": "string",
    "elasticPoolName": "string",
    "maxSizeBytes": "string",
    "readScale": "string",
    "recoveryServicesRecoveryPointResourceId": "string",
    "requestedServiceObjectiveId": "string",
    "requestedServiceObjectiveName": "string",
    "restorePointInTime": "string",
    "sampleName": "string",
    "sourceDatabaseDeletionDate": "string",
    "sourceDatabaseId": "string",
    "zoneRedundant": "bool"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Valores de propiedad

Microsoft. SQL/servidores/bases de datos

Name Description Value
apiVersion La versión de api '2014-04-01'
location Ubicación del recurso. string (obligatorio)
name El nombre del recurso string (obligatorio)
properties Propiedades que representan el recurso. DatabaseProperties
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas
type El tipo de recurso 'Microsoft. Sql/servidores/bases de datos

DatabaseProperties

| Nombre | Descripción | Valor | | ---- | ----------- | ------------ | | intercalación | Intercalación de la base de datos. Si createMode no es Default, este valor se omite. | string | | createMode | Especifica el modo de creación de la base de datos.

Valor predeterminado: creación normal de la base de datos.

Copiar: crea una base de datos como una copia de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos de origen.

OnlineSecondary/NonReadableSecondary: crea una base de datos como una réplica secundaria (legible o no legible) de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos principal existente.

PointInTimeRestore: crea una base de datos restaurando una copia de seguridad a un momento dado de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos existente y se debe especificar restorePointInTime.

Recuperación: crea una base de datos restaurando una copia de seguridad con replicación geográfica. sourceDatabaseId debe especificarse como identificador de recurso de base de datos recuperable que se va a restaurar.

Restaurar: crea una base de datos restaurando una copia de seguridad de una base de datos eliminada. sourceDatabaseId debe especificarse. Si sourceDatabaseId es el identificador de recurso original de la base de datos, se debe especificar sourceDatabaseDeletionDate. De lo contrario, sourceDatabaseId debe ser el identificador de recurso de base de datos descartable restaurable y sourceDatabaseDeletionDate se omite. restorePointInTime también se puede especificar para restaurar desde un momento dado anterior.

RestoreLongTermRetentionBackup: crea una base de datos restaurando desde un almacén de retención a largo plazo. recoveryServicesRecoveryPointResourceId debe especificarse como identificador de recurso de punto de recuperación.

Copy, NonReadableSecondary, OnlineSecondary y RestoreLongTermRetentionBackup no se admiten para la edición DataWarehouse. | 'Copia'
'Default'
'NonReadableSecondary'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreLongTermRetentionBackup' | | edición | Edición de la base de datos. La enumeración DatabaseEditions contiene todas las ediciones válidas. Si createMode es NonReadableSecondary o OnlineSecondary, este valor se omite.

La lista de SKU puede variar según la región y la oferta de soporte técnico. Para determinar los SKUs (incluyendo el nombre, nivel/edición, familia y capacidad) que están disponibles para tu suscripción en una región Azure, utiliza la API REST Capabilities_ListByLocation o uno de los siguientes comandos:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />PowerShell
<ubicación de Get-AzSqlServerServiceObjective -Location>
| 'Basic'<br />'Business'<br />'BusinessCritical'<br />'DataWarehouse'<br />'Free'<br />'GeneralPurpose'<br />'Hyperscale'<br />'Premium'<br />'PremiumRS'<br />'Standard'<br />'Stretch'<br />'System'<br />'System2'<br />'Web' | | elasticPoolName | The name of the elastic pool the database is in. If elasticPoolName and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveName is ignored. Not supported for DataWarehouse edition. | string | | maxSizeBytes | The max size of the database expressed in bytes. If createMode is not Default, this value is ignored. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." | string | | readScale | Conditional. If the database is a geo-secondary, readScale indicates whether read-only connections are allowed to this database or not. Not supported for DataWarehouse edition. | 'Disabled'<br />'Enabled' | | recoveryServicesRecoveryPointResourceId | Conditional. If createMode is RestoreLongTermRetentionBackup, then this value is required. Specifies the resource ID of the recovery point to restore from. | string | | requestedServiceObjectiveId | The configured service level objective ID of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of currentServiceObjectiveId property. If requestedServiceObjectiveId and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveId overrides the value of requestedServiceObjectiveName.<br /><br />The list of SKUs may vary by region and support offer. To determine the service objective ids that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API. | string <br /><br />Constraints:<br />Min length = 36<br />Max length = 36<br />Pattern = `^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$` | | requestedServiceObjectiveName | The name of the configured service level objective of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of serviceLevelObjective property. <br /><br />The list of SKUs may vary by region and support offer. To determine the SKUs (including the SKU name, tier/edition, family, and capacity) that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API or one of the following commands:<br /><br />```azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />

```powershell
<ubicación de Get-AzSqlServerServiceObjective -Location>
```` | "Básico"
'DS100'
'DS1000'
'DS1200'
'DS1500'
'DS200'
'DS2000'
'DS300'
'DS400'
'DS500'
'DS600'
'DW100'
'DW1000'
'DW10000c'
'DW1000c'
'DW1200'
'DW1500'
'DW15000c'
'DW1500c'
'DW200'
'DW2000'
'DW2000c'
'DW2500c'
'DW300'
'DW3000'
'DW30000c'
'DW3000c'
'DW400'
'DW500'
'DW5000c'
'DW600'
'DW6000'
'DW6000c'
'DW7500c'
'ElasticPool'
'Free'
'P1'
'P11'
'P15'
'P2'
'P3'
'P4'
'P6'
'PRS1'
'PRS2'
'PRS4'
'PRS6'
'S0'
'S1'
'S12'
'S2'
'S3'
'S4'
'S6'
'S7'
'S9'
'System'
'System0'
'System1'
'System2'
'System2L'
'System3'
'System3L'
'System4'
'System4L' | | restorePointInTime | Condicional. Si createMode es PointInTimeRestore, se requiere este valor. Si createMode es Restore, este valor es opcional. Especifica el momento dado (ISO8601 formato) de la base de datos de origen que se restaurará para crear la nueva base de datos. Debe ser mayor o igual que el valor más antiguo de La base de datos de origenRestoreDate. | string | | sampleName | Indica el nombre del esquema de ejemplo que se va a aplicar al crear esta base de datos. Si createMode no es Default, este valor se omite. No se admite para la edición DataWarehouse. | 'AdventureWorksLT' | | sourceDatabaseDeletionDate | Condicional. Si createMode es Restore y sourceDatabaseId es el identificador de recurso original de la base de datos eliminada cuando existía (en lugar de su identificador de base de datos restaurable actual), se requiere este valor. Especifica la hora en que se eliminó la base de datos. | string | | sourceDatabaseId | Condicional. Si createMode es Copy, NonReadableSecondary, OnlineSecondary, PointInTimeRestore, Recovery o Restore, se requiere este valor. Especifica el identificador de recurso de la base de datos de origen. Si createMode es NonReadableSecondary o OnlineSecondary, el nombre de la base de datos de origen debe ser el mismo que la nueva base de datos que se va a crear. | string | | zoneRedundant | Si esta base de datos es con redundancia de zona, lo que significa que las réplicas de esta base de datos se distribuirán entre varias zonas de disponibilidad. | Bool |

TrackedResourceTags

Name Description Value

Ejemplos de uso

Plantillas de inicio rápido de Azure

Las siguientes plantillas Azure Quickstart despliegan este tipo de recurso.

Template Description
Azure SQL Server con Auditoría redactada a Log Analytics

Despliega en Azure
Esta plantilla te permite desplegar un servidor Azure SQL con Auditoría activada para escribir registros de auditoría en Log Analytics (espacio de trabajo OMS)
Crear un SQL Server y una base de datos

Despliega en Azure
Esta plantilla le permite crear SQL Database y Server.
Pool SQL dedicado con cifrado transparente

Despliega en Azure
Crea un SQL Server y un pool SQL dedicado (anteriormente SQL DW) con Cifrado de datos transparente.
Despliega un nuevo SQL Elastic Pool

Despliega en Azure
Esta plantilla te permite desplegar un nuevo SQL Elastic Pool con su nuevo SQL Server asociado y nuevas bases de datos SQL para asignarle.
Despliega la analítica deportiva en Azure Arquitectura

Despliega en Azure
Crea una cuenta de almacenamiento de Azure con ADLS Gen 2 habilitada, una instancia de Azure Data Factory con servicios vinculados para la cuenta de almacenamiento (y la Azure SQL Database si está desplegada), y una instancia de Azure Databricks. AAD identity for the user deploying the template and the managed identity for the ADF instance will be granted the Storage Blob Data Contributor role on the storage account. También hay opciones para desplegar una instancia de Azure Key Vault, una Azure SQL Database y un Azure Event Hub (para casos de uso en streaming). Cuando se despliega un Azure Key Vault, la identidad gestionada por la fábrica de datos y la identidad AAD del usuario que despliega la plantilla recibirán el rol de usuario de Key Vault Secrets.
HDInsight con Ambari personalizada + base de datos Hive Metastore en VNET

Despliega en Azure
Esta plantilla permite crear un clúster de HDInsight en una red virtual existente con una nueva base de datos SQL que actúa como base de datos de Ambari personalizada y Metastore de Hive. Debe tener una instancia de SQL Sever, una cuenta de almacenamiento y una red virtual existentes.


Despliega en Azure
Esta plantilla muestra cómo crear un endpoint privado que apunta a Azure SQL Server
Provisiona una aplicación web con una base de datos SQL

Despliega en Azure
Esta plantilla aprovisiona una aplicación web, una instancia de SQL Database, la configuración de escalabilidad automática, las reglas de alerta y App Insights. Configura una cadena de conexión en la aplicación web para la base de datos.
Escritorio remoto Servicios con Alta Disponibilidad

Despliega en Azure
Este código de ejemplo de plantilla ARM desplegará un laboratorio de la Colección de Sesiones 2019 Escritorio remoto Services 2019 con alta disponibilidad. El objetivo es desplegar una solución totalmente redundante y altamente disponible para Escritorio remoto Services, utilizando Windows Server 2019.
Sonarqube Docker Web App en Linux con Azure SQL

Despliega en Azure
Esta plantilla despliega Sonarqube en un contenedor Linux de Azure App Service web usando la imagen oficial de Sonarqube y respaldado por un Azure SQL Server.
Aplicación Web con Identidad Gestionada, SQL Server y ΑΙ

Despliega en Azure
Ejemplo sencillo para desplegar infraestructura de Azure para app + datos + identidad gestionada + monitorización
WebApp consumiendo un Azure SQL Endpoint Privado

Despliega en Azure
Esta plantilla muestra cómo crear una aplicación web que consuma un endpoint privado que apunta a Azure SQL Server

Definición de recursos de Terraform (proveedor AzAPI)

El tipo de recurso servers/databases se puede implementar con operaciones destinadas a:

  • Grupos de recursos

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un Microsoft. Recurso SQL/servidores/bases de datos, añade el siguiente Terraform a tu plantilla.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/servers/databases@2014-04-01"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      collation = "string"
      createMode = "string"
      edition = "string"
      elasticPoolName = "string"
      maxSizeBytes = "string"
      readScale = "string"
      recoveryServicesRecoveryPointResourceId = "string"
      requestedServiceObjectiveId = "string"
      requestedServiceObjectiveName = "string"
      restorePointInTime = "string"
      sampleName = "string"
      sourceDatabaseDeletionDate = "string"
      sourceDatabaseId = "string"
      zoneRedundant = bool
    }
  }
}

Valores de propiedad

Microsoft. SQL/servidores/bases de datos

Name Description Value
location Ubicación del recurso. string (obligatorio)
name El nombre del recurso string (obligatorio)
parent_id Identificador del recurso que es el elemento primario de este recurso. Identificador del recurso de tipo: servidores
properties Propiedades que representan el recurso. DatabaseProperties
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta.
type El tipo de recurso "Microsoft. SQL/servidores/databases@2014-04-01"

DatabaseProperties

| Nombre | Descripción | Valor | | ---- | ----------- | ------------ | | intercalación | Intercalación de la base de datos. Si createMode no es Default, este valor se omite. | string | | createMode | Especifica el modo de creación de la base de datos.

Valor predeterminado: creación normal de la base de datos.

Copiar: crea una base de datos como una copia de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos de origen.

OnlineSecondary/NonReadableSecondary: crea una base de datos como una réplica secundaria (legible o no legible) de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos principal existente.

PointInTimeRestore: crea una base de datos restaurando una copia de seguridad a un momento dado de una base de datos existente. sourceDatabaseId debe especificarse como identificador de recurso de la base de datos existente y se debe especificar restorePointInTime.

Recuperación: crea una base de datos restaurando una copia de seguridad con replicación geográfica. sourceDatabaseId debe especificarse como identificador de recurso de base de datos recuperable que se va a restaurar.

Restaurar: crea una base de datos restaurando una copia de seguridad de una base de datos eliminada. sourceDatabaseId debe especificarse. Si sourceDatabaseId es el identificador de recurso original de la base de datos, se debe especificar sourceDatabaseDeletionDate. De lo contrario, sourceDatabaseId debe ser el identificador de recurso de base de datos descartable restaurable y sourceDatabaseDeletionDate se omite. restorePointInTime también se puede especificar para restaurar desde un momento dado anterior.

RestoreLongTermRetentionBackup: crea una base de datos restaurando desde un almacén de retención a largo plazo. recoveryServicesRecoveryPointResourceId debe especificarse como identificador de recurso de punto de recuperación.

Copy, NonReadableSecondary, OnlineSecondary y RestoreLongTermRetentionBackup no se admiten para la edición DataWarehouse. | 'Copia'
'Default'
'NonReadableSecondary'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreLongTermRetentionBackup' | | edición | Edición de la base de datos. La enumeración DatabaseEditions contiene todas las ediciones válidas. Si createMode es NonReadableSecondary o OnlineSecondary, este valor se omite.

La lista de SKU puede variar según la región y la oferta de soporte técnico. Para determinar los SKUs (incluyendo el nombre, nivel/edición, familia y capacidad) que están disponibles para tu suscripción en una región Azure, utiliza la API REST Capabilities_ListByLocation o uno de los siguientes comandos:

azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />````<br /><br />PowerShell
<ubicación de Get-AzSqlServerServiceObjective -Location>
| 'Basic'<br />'Business'<br />'BusinessCritical'<br />'DataWarehouse'<br />'Free'<br />'GeneralPurpose'<br />'Hyperscale'<br />'Premium'<br />'PremiumRS'<br />'Standard'<br />'Stretch'<br />'System'<br />'System2'<br />'Web' | | elasticPoolName | The name of the elastic pool the database is in. If elasticPoolName and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveName is ignored. Not supported for DataWarehouse edition. | string | | maxSizeBytes | The max size of the database expressed in bytes. If createMode is not Default, this value is ignored. To see possible values, query the capabilities API (/subscriptions/{subscriptionId}/providers/Microsoft.Sql/locations/{locationID}/capabilities) referred to by operationId: "Capabilities_ListByLocation." | string | | readScale | Conditional. If the database is a geo-secondary, readScale indicates whether read-only connections are allowed to this database or not. Not supported for DataWarehouse edition. | 'Disabled'<br />'Enabled' | | recoveryServicesRecoveryPointResourceId | Conditional. If createMode is RestoreLongTermRetentionBackup, then this value is required. Specifies the resource ID of the recovery point to restore from. | string | | requestedServiceObjectiveId | The configured service level objective ID of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of currentServiceObjectiveId property. If requestedServiceObjectiveId and requestedServiceObjectiveName are both updated, the value of requestedServiceObjectiveId overrides the value of requestedServiceObjectiveName.<br /><br />The list of SKUs may vary by region and support offer. To determine the service objective ids that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API. | string <br /><br />Constraints:<br />Min length = 36<br />Max length = 36<br />Pattern = `^[0-9a-fA-F]{8}-([0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}$` | | requestedServiceObjectiveName | The name of the configured service level objective of the database. This is the service level objective that is in the process of being applied to the database. Once successfully updated, it will match the value of serviceLevelObjective property. <br /><br />The list of SKUs may vary by region and support offer. To determine the SKUs (including the SKU name, tier/edition, family, and capacity) that are available to your subscription in an Azure region, use the `Capabilities_ListByLocation` REST API or one of the following commands:<br /><br />```azurecli<br />az sql db list-editions -l &lt;location&gt; -o table<br />

```powershell
<ubicación de Get-AzSqlServerServiceObjective -Location>
```` | "Básico"
'DS100'
'DS1000'
'DS1200'
'DS1500'
'DS200'
'DS2000'
'DS300'
'DS400'
'DS500'
'DS600'
'DW100'
'DW1000'
'DW10000c'
'DW1000c'
'DW1200'
'DW1500'
'DW15000c'
'DW1500c'
'DW200'
'DW2000'
'DW2000c'
'DW2500c'
'DW300'
'DW3000'
'DW30000c'
'DW3000c'
'DW400'
'DW500'
'DW5000c'
'DW600'
'DW6000'
'DW6000c'
'DW7500c'
'ElasticPool'
'Free'
'P1'
'P11'
'P15'
'P2'
'P3'
'P4'
'P6'
'PRS1'
'PRS2'
'PRS4'
'PRS6'
'S0'
'S1'
'S12'
'S2'
'S3'
'S4'
'S6'
'S7'
'S9'
'System'
'System0'
'System1'
'System2'
'System2L'
'System3'
'System3L'
'System4'
'System4L' | | restorePointInTime | Condicional. Si createMode es PointInTimeRestore, se requiere este valor. Si createMode es Restore, este valor es opcional. Especifica el momento dado (ISO8601 formato) de la base de datos de origen que se restaurará para crear la nueva base de datos. Debe ser mayor o igual que el valor más antiguo de La base de datos de origenRestoreDate. | string | | sampleName | Indica el nombre del esquema de ejemplo que se va a aplicar al crear esta base de datos. Si createMode no es Default, este valor se omite. No se admite para la edición DataWarehouse. | 'AdventureWorksLT' | | sourceDatabaseDeletionDate | Condicional. Si createMode es Restore y sourceDatabaseId es el identificador de recurso original de la base de datos eliminada cuando existía (en lugar de su identificador de base de datos restaurable actual), se requiere este valor. Especifica la hora en que se eliminó la base de datos. | string | | sourceDatabaseId | Condicional. Si createMode es Copy, NonReadableSecondary, OnlineSecondary, PointInTimeRestore, Recovery o Restore, se requiere este valor. Especifica el identificador de recurso de la base de datos de origen. Si createMode es NonReadableSecondary o OnlineSecondary, el nombre de la base de datos de origen debe ser el mismo que la nueva base de datos que se va a crear. | string | | zoneRedundant | Si esta base de datos es con redundancia de zona, lo que significa que las réplicas de esta base de datos se distribuirán entre varias zonas de disponibilidad. | Bool |

TrackedResourceTags

Name Description Value

Ejemplos de uso

Ejemplos de Terraform

Un ejemplo básico de implementación de MS SQL Database.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
    azurerm = {
      source = "hashicorp/azurerm"
    }
  }
}

provider "azurerm" {
  features {
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

variable "administrator_login_password" {
  type        = string
  description = "The administrator login password for the SQL server"
  sensitive   = true
}

data "azurerm_client_config" "current" {
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "server" {
  type      = "Microsoft.Sql/servers@2021-02-01-preview"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      administratorLogin            = "mradministrator"
      administratorLoginPassword    = var.administrator_login_password
      minimalTlsVersion             = "1.2"
      publicNetworkAccess           = "Enabled"
      restrictOutboundNetworkAccess = "Disabled"
      version                       = "12.0"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

data "azapi_resource_id" "publicMaintenanceConfiguration" {
  type      = "Microsoft.Maintenance/publicMaintenanceConfigurations@2023-04-01"
  parent_id = "/subscriptions/${data.azurerm_client_config.current.subscription_id}"
  name      = "SQL_Default"
}

resource "azapi_resource" "database" {
  type      = "Microsoft.Sql/servers/databases@2021-02-01-preview"
  parent_id = azapi_resource.server.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      autoPauseDelay                   = 0
      createMode                       = "Default"
      elasticPoolId                    = ""
      highAvailabilityReplicaCount     = 0
      isLedgerOn                       = false
      licenseType                      = "LicenseIncluded"
      maintenanceConfigurationId       = data.azapi_resource_id.publicMaintenanceConfiguration.id
      minCapacity                      = 0
      readScale                        = "Disabled"
      requestedBackupStorageRedundancy = "Geo"
      zoneRedundant                    = false
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

Un ejemplo básico de implementación de MS SQL Database.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
    azurerm = {
      source = "hashicorp/azurerm"
    }
  }
}

provider "azurerm" {
  features {
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

variable "administrator_login_password" {
  type        = string
  description = "The administrator login password for the SQL server"
  sensitive   = true
}

data "azurerm_client_config" "current" {
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "server" {
  type      = "Microsoft.Sql/servers@2021-02-01-preview"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      administratorLogin            = "mradministrator"
      administratorLoginPassword    = var.administrator_login_password
      minimalTlsVersion             = "1.2"
      publicNetworkAccess           = "Enabled"
      restrictOutboundNetworkAccess = "Disabled"
      version                       = "12.0"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

data "azapi_resource_id" "publicMaintenanceConfiguration" {
  type      = "Microsoft.Maintenance/publicMaintenanceConfigurations@2023-04-01"
  parent_id = "/subscriptions/${data.azurerm_client_config.current.subscription_id}"
  name      = "SQL_Default"
}

resource "azapi_resource" "database" {
  type      = "Microsoft.Sql/servers/databases@2021-02-01-preview"
  parent_id = azapi_resource.server.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      autoPauseDelay                   = 0
      createMode                       = "Default"
      elasticPoolId                    = ""
      highAvailabilityReplicaCount     = 0
      isLedgerOn                       = false
      licenseType                      = "LicenseIncluded"
      maintenanceConfigurationId       = data.azapi_resource_id.publicMaintenanceConfiguration.id
      minCapacity                      = 0
      readScale                        = "Disabled"
      requestedBackupStorageRedundancy = "Geo"
      zoneRedundant                    = false
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}