Condividi tramite


Microsoft. Server/database SQL 2017-03-01-preview

Definizione della risorsa Bicep

Il tipo di risorsa server/database può essere distribuito con operazioni destinate a:

  • gruppi di risorse - Vedere i comandi di distribuzione del gruppo di risorse

Per un elenco delle proprietà modificate in ogni versione dell'API, vedere log delle modifiche.

Formato risorsa

Per creare un Microsoft. Risorsa SQL/server/database, aggiungi il seguente Bicep al tuo template.

resource symbolicname 'Microsoft.Sql/servers/databases@2017-03-01-preview' = {
  parent: resourceSymbolicName
  location: 'string'
  name: 'string'
  properties: {
    catalogCollation: 'string'
    collation: 'string'
    createMode: 'string'
    elasticPoolId: 'string'
    longTermRetentionBackupResourceId: 'string'
    maxSizeBytes: int
    recoverableDatabaseId: 'string'
    recoveryServicesRecoveryPointId: 'string'
    restorableDroppedDatabaseId: 'string'
    restorePointInTime: 'string'
    sampleName: 'string'
    sourceDatabaseDeletionDate: 'string'
    sourceDatabaseId: 'string'
    zoneRedundant: bool
  }
  sku: {
    capacity: int
    family: 'string'
    name: 'string'
    size: 'string'
    tier: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

Valori delle proprietà

Microsoft. SQL/server/database

Name Description Value
location Percorso della risorsa. stringa (obbligatorio)
name Nome della risorsa stringa (obbligatorio)
parent In Bicep, puoi specificare la risorsa genitore per una risorsa figlia. È necessario aggiungere questa proprietà solo quando la risorsa figlio viene dichiarata all'esterno della risorsa padre.

Per altre informazioni, vedere risorsa figlio all'esterno della risorsa padre.
Nome simbolico per la risorsa di tipo: server
properties Proprietà delle risorse. DatabaseProperties
sku Nome e livello dello SKU. Sku
tags Tag delle risorse Dizionario di nomi e valori di tag. Vedere tag nei modelli

DatabaseProperties

Name Description Value
catalogCollation Regole di confronto del catalogo di metadati. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation Regole di confronto del database. string
createMode Specifica la modalità di creazione del database.

Impostazione predefinita: creazione regolare del database.

Copia: crea un database come copia di un database esistente. sourceDatabaseId deve essere specificato come ID risorsa del database di origine.

Secondario: crea un database come replica secondaria di un database esistente. sourceDatabaseId deve essere specificato come ID risorsa del database primario esistente.

PointInTimeRestore: crea un database ripristinando un backup temporizzato di un database esistente. sourceDatabaseId deve essere specificato come ID risorsa del database esistente e deve essere specificato restorePointInTime.

Ripristino: crea un database ripristinando un backup con replica geografica. sourceDatabaseId deve essere specificato come ID risorsa di database recuperabile da ripristinare.

Ripristino: crea un database ripristinando un backup di un database eliminato. sourceDatabaseId deve essere specificato. Se sourceDatabaseId è l'ID risorsa originale del database, è necessario specificare sourceDatabaseDeletionDate. In caso contrario, sourceDatabaseId deve essere l'ID risorsa del database eliminato ripristinabile e sourceDatabaseDeletionDate viene ignorato. è anche possibile specificare restorePointInTime per eseguire il ripristino da un punto precedente nel tempo.

RestoreLongTermRetentionBackup: crea un database ripristinando da un insieme di credenziali di conservazione a lungo termine. recoveryServicesRecoveryPointResourceId deve essere specificato come ID risorsa del punto di ripristino.

Copia, Secondario e RestoreLongTermRetentionBackup non sono supportati per l'edizione DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId Identificatore della risorsa del pool elastico contenente il database. string
longTermRetentionBackupResourceId Identificatore della risorsa del backup di conservazione a lungo termine associato all'operazione di creazione del database. string
maxSizeBytes Dimensione massima del database espressa in byte. int
recoverableDatabaseId Identificatore della risorsa del database ripristinabile associato all'operazione di creazione del database. string
recoveryServicesRecoveryPointId Identificatore della risorsa del punto di ripristino associato all'operazione di creazione del database. string
restorableDroppedDatabaseId Identificatore della risorsa del database eliminato ripristinabile associato all'operazione di creazione del database. string
restorePointInTime Specifica il punto nel tempo (formato ISO8601) del database di origine che verrà ripristinato per creare il nuovo database. string
sampleName Nome dello schema di esempio da applicare durante la creazione del database. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
sourceDatabaseDeletionDate Specifica l'ora di eliminazione del database. string
sourceDatabaseId Identificatore della risorsa del database di origine associato all'operazione di creazione del database. string
zoneRedundant Indipendentemente dal fatto che il database sia con ridondanza della zona, ovvero le repliche di questo database verranno distribuite in più zone di disponibilità. bool

Sku

Name Description Value
capacity Capacità dello SKU specifico. int
family Se il servizio ha generazioni diverse di hardware, per lo stesso SKU, è possibile acquisire qui. string
name Il nome dello SKU, in genere, una lettera + codice numerico, ad esempio P3. stringa (obbligatorio)
size Dimensioni dello SKU specifico string
tier Il livello o l'edizione dello SKU specifico, ad esempio Basic, Premium. string

TrackedResourceTags

Name Description Value

Esempi di utilizzo

Campioni di Bicep

Un esempio di base di distribuzione del database MS SQL.

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

I seguenti Azure Moduli Verificati possono essere utilizzati per distribuire questo tipo di risorsa.

Modulo Description
database SQL di Azure AVM Resource Module per database SQL di Azure

Esempi di Azure Quickstart

I seguenti template Azure Quickstart contengono Bicep esempi per il deployment di questo tipo di risorsa.

File Bicep Description
Azure SQL Server con Audit scritto a Log Analytics Questo template ti permette di distribuire un server Azure SQL con Auditing abilitato per scrivere log di audit su Log Analytics (OMS workspace)
Crea un SQL Server e un database Questo modello consente di creare un database SQL e un server.
Pool SQL dedicato con crittografia trasparente Crea un SQL Server e un pool SQL dedicato (precedentemente SQL DW) con Transparent Data Encryption.
Deploy the Sports Analytics su Azure Architecture Crea un account di storage Azure con ADLS Gen 2 abilitato, un'istanza di Azure Data Factory con servizi collegati per l'account di storage (e il database SQL di Azure se distribuito) e un'istanza di Azure Databricks. All'identità di AAD per l'utente che distribuisce il modello e all'identità gestita per l'istanza di Azure Data Factory verrà concesso il ruolo Collaboratore ai dati del BLOB di archiviazione nell'account di archiviazione. Ci sono anche opzioni per distribuire un'istanza Azure Key Vault, un database SQL di Azure e un Azure Event Hub (per casi d'uso in streaming). Quando viene distribuito un Azure Key Vault, l'identità gestita dalla data factory e l'identità AAD per l'utente che distribuisce il template riceveranno il ruolo di utente Key Vault Secrets.
Questo modello mostra come creare un endpoint privato che punta ad Azure SQL Server
Provisiona un'app web con un database SQL Questo modello effettua il provisioning di un'app Web, un database SQL, impostazioni di scalabilità automatica, regole di avviso e Informazioni dettagliate app. Configura una stringa di connessione nell'app web per il database.
Sonarqube Docker Web App su Linux con Azure SQL Questo template distribuisce Sonarqube in un container Linux di Servizio app di Azure web app utilizzando l'immagine ufficiale Sonarqube e supportato da un Azure SQL Server.
Web App con Managed Identity, SQL Server e ΑΙ Esempio semplice per distribuire l'infrastruttura Azure per app + dati + identità gestita + monitoraggio

Definizione di risorsa del modello di Resource Manager

Il tipo di risorsa server/database può essere distribuito con operazioni destinate a:

  • gruppi di risorse - Vedere i comandi di distribuzione del gruppo di risorse

Per un elenco delle proprietà modificate in ogni versione dell'API, vedere log delle modifiche.

Formato risorsa

Per creare un Microsoft. Sql/server/databases, aggiungi il seguente JSON al tuo template.

{
  "type": "Microsoft.Sql/servers/databases",
  "apiVersion": "2017-03-01-preview",
  "name": "string",
  "location": "string",
  "properties": {
    "catalogCollation": "string",
    "collation": "string",
    "createMode": "string",
    "elasticPoolId": "string",
    "longTermRetentionBackupResourceId": "string",
    "maxSizeBytes": "int",
    "recoverableDatabaseId": "string",
    "recoveryServicesRecoveryPointId": "string",
    "restorableDroppedDatabaseId": "string",
    "restorePointInTime": "string",
    "sampleName": "string",
    "sourceDatabaseDeletionDate": "string",
    "sourceDatabaseId": "string",
    "zoneRedundant": "bool"
  },
  "sku": {
    "capacity": "int",
    "family": "string",
    "name": "string",
    "size": "string",
    "tier": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Valori delle proprietà

Microsoft. SQL/server/database

Name Description Value
apiVersion Versione dell'API '2017-03-01-preview'
location Percorso della risorsa. stringa (obbligatorio)
name Nome della risorsa stringa (obbligatorio)
properties Proprietà delle risorse. DatabaseProperties
sku Nome e livello dello SKU. Sku
tags Tag delle risorse Dizionario di nomi e valori di tag. Vedere tag nei modelli
type Tipo di risorsa 'Microsoft. Sql/server/database'

DatabaseProperties

Name Description Value
catalogCollation Regole di confronto del catalogo di metadati. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation Regole di confronto del database. string
createMode Specifica la modalità di creazione del database.

Impostazione predefinita: creazione regolare del database.

Copia: crea un database come copia di un database esistente. sourceDatabaseId deve essere specificato come ID risorsa del database di origine.

Secondario: crea un database come replica secondaria di un database esistente. sourceDatabaseId deve essere specificato come ID risorsa del database primario esistente.

PointInTimeRestore: crea un database ripristinando un backup temporizzato di un database esistente. sourceDatabaseId deve essere specificato come ID risorsa del database esistente e deve essere specificato restorePointInTime.

Ripristino: crea un database ripristinando un backup con replica geografica. sourceDatabaseId deve essere specificato come ID risorsa di database recuperabile da ripristinare.

Ripristino: crea un database ripristinando un backup di un database eliminato. sourceDatabaseId deve essere specificato. Se sourceDatabaseId è l'ID risorsa originale del database, è necessario specificare sourceDatabaseDeletionDate. In caso contrario, sourceDatabaseId deve essere l'ID risorsa del database eliminato ripristinabile e sourceDatabaseDeletionDate viene ignorato. è anche possibile specificare restorePointInTime per eseguire il ripristino da un punto precedente nel tempo.

RestoreLongTermRetentionBackup: crea un database ripristinando da un insieme di credenziali di conservazione a lungo termine. recoveryServicesRecoveryPointResourceId deve essere specificato come ID risorsa del punto di ripristino.

Copia, Secondario e RestoreLongTermRetentionBackup non sono supportati per l'edizione DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId Identificatore della risorsa del pool elastico contenente il database. string
longTermRetentionBackupResourceId Identificatore della risorsa del backup di conservazione a lungo termine associato all'operazione di creazione del database. string
maxSizeBytes Dimensione massima del database espressa in byte. int
recoverableDatabaseId Identificatore della risorsa del database ripristinabile associato all'operazione di creazione del database. string
recoveryServicesRecoveryPointId Identificatore della risorsa del punto di ripristino associato all'operazione di creazione del database. string
restorableDroppedDatabaseId Identificatore della risorsa del database eliminato ripristinabile associato all'operazione di creazione del database. string
restorePointInTime Specifica il punto nel tempo (formato ISO8601) del database di origine che verrà ripristinato per creare il nuovo database. string
sampleName Nome dello schema di esempio da applicare durante la creazione del database. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
sourceDatabaseDeletionDate Specifica l'ora di eliminazione del database. string
sourceDatabaseId Identificatore della risorsa del database di origine associato all'operazione di creazione del database. string
zoneRedundant Indipendentemente dal fatto che il database sia con ridondanza della zona, ovvero le repliche di questo database verranno distribuite in più zone di disponibilità. bool

Sku

Name Description Value
capacity Capacità dello SKU specifico. int
family Se il servizio ha generazioni diverse di hardware, per lo stesso SKU, è possibile acquisire qui. string
name Il nome dello SKU, in genere, una lettera + codice numerico, ad esempio P3. stringa (obbligatorio)
size Dimensioni dello SKU specifico string
tier Il livello o l'edizione dello SKU specifico, ad esempio Basic, Premium. string

TrackedResourceTags

Name Description Value

Esempi di utilizzo

Modelli di Avvio Rapido Azure

I seguenti template Azure Quickstart distribuiscono questo tipo di risorsa.

Template Description
Azure SQL Server con Audit scritto a Log Analytics

Deploya su Azure
Questo template ti permette di distribuire un server Azure SQL con Auditing abilitato per scrivere log di audit su Log Analytics (OMS workspace)
Crea un SQL Server e un database

Deploya su Azure
Questo modello consente di creare un database SQL e un server.
Pool SQL dedicato con crittografia trasparente

Deploya su Azure
Crea un SQL Server e un pool SQL dedicato (precedentemente SQL DW) con Transparent Data Encryption.
Distribuisci un nuovo SQL Elastic Pool

Deploya su Azure
Questo template ti permette di distribuire un nuovo SQL Elastic Pool con il nuovo SQL Server associato e nuovi database SQL da assegnare.
Deploy the Sports Analytics su Azure Architecture

Deploya su Azure
Crea un account di storage Azure con ADLS Gen 2 abilitato, un'istanza di Azure Data Factory con servizi collegati per l'account di storage (e il database SQL di Azure se distribuito) e un'istanza di Azure Databricks. All'identità di AAD per l'utente che distribuisce il modello e all'identità gestita per l'istanza di Azure Data Factory verrà concesso il ruolo Collaboratore ai dati del BLOB di archiviazione nell'account di archiviazione. Ci sono anche opzioni per distribuire un'istanza Azure Key Vault, un database SQL di Azure e un Azure Event Hub (per casi d'uso in streaming). Quando viene distribuito un Azure Key Vault, l'identità gestita dalla data factory e l'identità AAD per l'utente che distribuisce il template riceveranno il ruolo di utente Key Vault Secrets.
HDInsight con Ambari personalizzato + database Metastore Hive in VNET

Deploya su Azure
Questo modello consente di creare un cluster HDInsight in una rete virtuale esistente con un nuovo database SQL che funge sia da database Ambari personalizzato che da metastore Hive. È necessario disporre di un server SQL esistente, un account di archiviazione e una rete virtuale.


Deploya su Azure
Questo modello mostra come creare un endpoint privato che punta ad Azure SQL Server
Provisiona un'app web con un database SQL

Deploya su Azure
Questo modello effettua il provisioning di un'app Web, un database SQL, impostazioni di scalabilità automatica, regole di avviso e Informazioni dettagliate app. Configura una stringa di connessione nell'app web per il database.
Desktop remoto Servizi ad alta disponibilità

Deploya su Azure
Questo codice di esempio ARM Template implementerà un laboratorio Desktop remoto Services 2019 Session Collection con alta disponibilità. L'obiettivo è distribuire una soluzione completamente ridondante e altamente disponibile per Desktop remoto Services, utilizzando Windows Server 2019.
Sonarqube Docker Web App su Linux con Azure SQL

Deploya su Azure
Questo template distribuisce Sonarqube in un container Linux di Servizio app di Azure web app utilizzando l'immagine ufficiale Sonarqube e supportato da un Azure SQL Server.
Web App con Managed Identity, SQL Server e ΑΙ

Deploya su Azure
Esempio semplice per distribuire l'infrastruttura Azure per app + dati + identità gestita + monitoraggio
WebApp che consuma un Azure SQL Private Endpoint

Deploya su Azure
Questo modello mostra come creare un'app Web che consumi un endpoint privato che punta ad Azure SQL Server

Definizione di risorsa Terraform (provider AzAPI)

Il tipo di risorsa server/database può essere distribuito con operazioni destinate a:

  • Gruppi di risorse

Per un elenco delle proprietà modificate in ogni versione dell'API, vedere log delle modifiche.

Formato risorsa

Per creare un Microsoft. Sql/server/databases, aggiungi il seguente Terraform al tuo template.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/servers/databases@2017-03-01-preview"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      catalogCollation = "string"
      collation = "string"
      createMode = "string"
      elasticPoolId = "string"
      longTermRetentionBackupResourceId = "string"
      maxSizeBytes = int
      recoverableDatabaseId = "string"
      recoveryServicesRecoveryPointId = "string"
      restorableDroppedDatabaseId = "string"
      restorePointInTime = "string"
      sampleName = "string"
      sourceDatabaseDeletionDate = "string"
      sourceDatabaseId = "string"
      zoneRedundant = bool
    }
    sku = {
      capacity = int
      family = "string"
      name = "string"
      size = "string"
      tier = "string"
    }
  }
}

Valori delle proprietà

Microsoft. SQL/server/database

Name Description Value
location Percorso della risorsa. stringa (obbligatorio)
name Nome della risorsa stringa (obbligatorio)
parent_id ID della risorsa padre per questa risorsa. ID per la risorsa di tipo: server
properties Proprietà delle risorse. DatabaseProperties
sku Nome e livello dello SKU. Sku
tags Tag delle risorse Dizionario di nomi e valori di tag.
type Tipo di risorsa "Microsoft. Sql/servers/databases@2017-03-01-anteprima"

DatabaseProperties

Name Description Value
catalogCollation Regole di confronto del catalogo di metadati. 'DATABASE_DEFAULT'
'SQL_Latin1_General_CP1_CI_AS'
collation Regole di confronto del database. string
createMode Specifica la modalità di creazione del database.

Impostazione predefinita: creazione regolare del database.

Copia: crea un database come copia di un database esistente. sourceDatabaseId deve essere specificato come ID risorsa del database di origine.

Secondario: crea un database come replica secondaria di un database esistente. sourceDatabaseId deve essere specificato come ID risorsa del database primario esistente.

PointInTimeRestore: crea un database ripristinando un backup temporizzato di un database esistente. sourceDatabaseId deve essere specificato come ID risorsa del database esistente e deve essere specificato restorePointInTime.

Ripristino: crea un database ripristinando un backup con replica geografica. sourceDatabaseId deve essere specificato come ID risorsa di database recuperabile da ripristinare.

Ripristino: crea un database ripristinando un backup di un database eliminato. sourceDatabaseId deve essere specificato. Se sourceDatabaseId è l'ID risorsa originale del database, è necessario specificare sourceDatabaseDeletionDate. In caso contrario, sourceDatabaseId deve essere l'ID risorsa del database eliminato ripristinabile e sourceDatabaseDeletionDate viene ignorato. è anche possibile specificare restorePointInTime per eseguire il ripristino da un punto precedente nel tempo.

RestoreLongTermRetentionBackup: crea un database ripristinando da un insieme di credenziali di conservazione a lungo termine. recoveryServicesRecoveryPointResourceId deve essere specificato come ID risorsa del punto di ripristino.

Copia, Secondario e RestoreLongTermRetentionBackup non sono supportati per l'edizione DataWarehouse.
'Copy'
'Default'
'OnlineSecondary'
'PointInTimeRestore'
'Recovery'
'Restore'
'RestoreExternalBackup'
'RestoreExternalBackupSecondary'
'RestoreLongTermRetentionBackup'
'Secondary'
elasticPoolId Identificatore della risorsa del pool elastico contenente il database. string
longTermRetentionBackupResourceId Identificatore della risorsa del backup di conservazione a lungo termine associato all'operazione di creazione del database. string
maxSizeBytes Dimensione massima del database espressa in byte. int
recoverableDatabaseId Identificatore della risorsa del database ripristinabile associato all'operazione di creazione del database. string
recoveryServicesRecoveryPointId Identificatore della risorsa del punto di ripristino associato all'operazione di creazione del database. string
restorableDroppedDatabaseId Identificatore della risorsa del database eliminato ripristinabile associato all'operazione di creazione del database. string
restorePointInTime Specifica il punto nel tempo (formato ISO8601) del database di origine che verrà ripristinato per creare il nuovo database. string
sampleName Nome dello schema di esempio da applicare durante la creazione del database. 'AdventureWorksLT'
'WideWorldImportersFull'
'WideWorldImportersStd'
sourceDatabaseDeletionDate Specifica l'ora di eliminazione del database. string
sourceDatabaseId Identificatore della risorsa del database di origine associato all'operazione di creazione del database. string
zoneRedundant Indipendentemente dal fatto che il database sia con ridondanza della zona, ovvero le repliche di questo database verranno distribuite in più zone di disponibilità. bool

Sku

Name Description Value
capacity Capacità dello SKU specifico. int
family Se il servizio ha generazioni diverse di hardware, per lo stesso SKU, è possibile acquisire qui. string
name Il nome dello SKU, in genere, una lettera + codice numerico, ad esempio P3. stringa (obbligatorio)
size Dimensioni dello SKU specifico string
tier Il livello o l'edizione dello SKU specifico, ad esempio Basic, Premium. string

TrackedResourceTags

Name Description Value

Esempi di utilizzo

Esempi di Terraform

Un esempio di base di distribuzione del database MS SQL.

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 esempio di base di distribuzione del database MS SQL.

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    = ["*"]
}