Microsoft. Sql instancePools 01-01-2025

Definición de recurso Bicep

El tipo de recurso instancePools se puede implementar con operaciones destinadas a:

  • Grupos de recursos - Véase grupos de recursos c1

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/InstancePools, añade el siguiente Bicep a tu plantilla.

resource symbolicname 'Microsoft.Sql/instancePools@2025-01-01' = {
  location: 'string'
  name: 'string'
  properties: {
    licenseType: 'string'
    maintenanceConfigurationId: 'string'
    subnetId: 'string'
    vCores: int
  }
  sku: {
    capacity: int
    family: 'string'
    name: 'string'
    size: 'string'
    tier: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

Valores de propiedad

Microsoft. Sql/InstancePools

Nombre Descripción Importancia
location Ubicación geográfica donde reside el recurso string (obligatorio)
nombre El nombre del recurso string (obligatorio)
Propiedades Propiedades de recursos. InstancePoolProperties
sku Nombre y nivel de la SKU. Sku
etiquetas Etiquetas de recursos Diccionario de nombres y valores de etiqueta. Consulta c0 en las plantillas

InstancePoolProperties

Nombre Descripción Importancia
licenseType Tipo de licencia. Los valores posibles son "LicenseIncluded" (se incluye el precio de la licencia de SQL) y "BasePrice" (sin precio de licencia de SQL). 'BasePrice'
'LicenseIncluded' (obligatorio)
maintenanceConfigurationId Especifica el identificador de configuración de mantenimiento que se aplicará a esta instancia administrada. cuerda / cadena
subnetId Identificador de recurso de la subred en el que se va a colocar este grupo de instancias. string (obligatorio)
vCores Recuento de núcleos virtuales que pertenecen a este grupo de instancias. int (obligatorio)

Sku

Nombre Descripción Importancia
capacidad Capacidad de la SKU determinada. int
family Si el servicio tiene diferentes generaciones de hardware, para la misma SKU, se puede capturar aquí. cuerda / cadena
nombre El nombre de la SKU, normalmente, una letra + código de número, por ejemplo, P3. string (obligatorio)
tamaño Tamaño de la SKU determinada cuerda / cadena
nivel Nivel o edición de la SKU concreta, por ejemplo, Básico, Premium. cuerda / cadena

TrackedResourceTags

Nombre Descripción Importancia

Ejemplos de uso

Muestras de Bicep

Un ejemplo básico de implementación de grupos de instancias de SQL.

param resourceName string = 'acctest0001'

resource subnet 'Microsoft.Network/virtualNetworks/subnets@2023-04-01' existing = {
  parent: virtualNetwork
  name: resourceName
}

resource instancePool 'Microsoft.Sql/instancePools@2022-05-01-preview' = {
  name: resourceName
  properties: {
    licenseType: 'LicenseIncluded'
    subnetId: subnet.id
    vCores: 8
  }
  sku: {
    family: 'Gen5'
    name: 'GP_Gen5'
    tier: 'GeneralPurpose'
  }
}

resource networkSecurityGroup 'Microsoft.Network/networkSecurityGroups@2023-04-01' = {
  name: resourceName
  properties: {
    securityRules: [
      {
        name: 'allow_tds_inbound'
        properties: {
          access: 'Allow'
          description: 'Allow access to data'
          destinationAddressPrefix: '*'
          destinationPortRange: '1433'
          direction: 'Inbound'
          priority: 1000
          protocol: 'TCP'
          sourceAddressPrefix: 'VirtualNetwork'
          sourcePortRange: '*'
        }
      }
      {
        name: 'allow_redirect_inbound'
        properties: {
          access: 'Allow'
          description: 'Allow inbound redirect traffic to Managed Instance inside the virtual network'
          destinationAddressPrefix: '*'
          destinationPortRange: '11000-11999'
          direction: 'Inbound'
          priority: 1100
          protocol: 'Tcp'
          sourceAddressPrefix: 'VirtualNetwork'
          sourcePortRange: '*'
        }
      }
      {
        name: 'allow_geodr_inbound'
        properties: {
          access: 'Allow'
          description: 'Allow inbound geodr traffic inside the virtual network'
          destinationAddressPrefix: '*'
          destinationPortRange: '5022'
          direction: 'Inbound'
          priority: 1200
          protocol: 'Tcp'
          sourceAddressPrefix: 'VirtualNetwork'
          sourcePortRange: '*'
        }
      }
      {
        name: 'deny_all_inbound'
        properties: {
          access: 'Deny'
          description: 'Deny all other inbound traffic'
          destinationAddressPrefix: '*'
          destinationPortRange: '*'
          direction: 'Inbound'
          priority: 4096
          protocol: '*'
          sourceAddressPrefix: '*'
          sourcePortRange: '*'
        }
      }
      {
        name: 'allow_linkedserver_outbound'
        properties: {
          access: 'Allow'
          description: 'Allow outbound linkedserver traffic inside the virtual network'
          destinationAddressPrefix: 'VirtualNetwork'
          destinationPortRange: '1433'
          direction: 'Outbound'
          priority: 1000
          protocol: 'Tcp'
          sourceAddressPrefix: '*'
          sourcePortRange: '*'
        }
      }
      {
        name: 'allow_redirect_outbound'
        properties: {
          access: 'Allow'
          description: 'Allow outbound redirect traffic to Managed Instance inside the virtual network'
          destinationAddressPrefix: 'VirtualNetwork'
          destinationPortRange: '11000-11999'
          direction: 'Outbound'
          priority: 1100
          protocol: 'Tcp'
          sourceAddressPrefix: '*'
          sourcePortRange: '*'
        }
      }
      {
        name: 'allow_geodr_outbound'
        properties: {
          access: 'Allow'
          description: 'Allow outbound geodr traffic inside the virtual network'
          destinationAddressPrefix: 'VirtualNetwork'
          destinationPortRange: '5022'
          direction: 'Outbound'
          priority: 1200
          protocol: 'Tcp'
          sourceAddressPrefix: '*'
          sourcePortRange: '*'
        }
      }
      {
        name: 'deny_all_outbound'
        properties: {
          access: 'Deny'
          description: 'Deny all other outbound traffic'
          destinationAddressPrefix: '*'
          destinationPortRange: '*'
          direction: 'Outbound'
          priority: 4096
          protocol: '*'
          sourceAddressPrefix: '*'
          sourcePortRange: '*'
        }
      }
    ]
  }
}

resource routeTable 'Microsoft.Network/routeTables@2023-04-01' = {
  name: resourceName
  properties: {
    disableBgpRoutePropagation: false
  }
}

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2023-04-01' = {
  name: resourceName
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Default'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'acctest0001'
        properties: {
          addressPrefix: '10.0.1.0/24'
          delegations: [
            {
              name: 'miDelegation'
              properties: {
                serviceName: 'Microsoft.Sql/managedInstances'
              }
            }
          ]
          networkSecurityGroup: {
            id: networkSecurityGroup.id
          }
          routeTable: {
            id: routeTable.id
          }
        }
      }
    ]
  }
}

Módulos comprobados de Azure

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

Módulo Descripción
SQL Módulo de recursos de AVM para el grupo de instancias de SQL

Definición de recursos de plantilla de ARM

El tipo de recurso instancePools se puede implementar con operaciones destinadas a:

  • Grupos de recursos - Véase grupos de recursos c1

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/instancePools, añade el siguiente JSON a tu plantilla.

{
  "type": "Microsoft.Sql/instancePools",
  "apiVersion": "2025-01-01",
  "name": "string",
  "location": "string",
  "properties": {
    "licenseType": "string",
    "maintenanceConfigurationId": "string",
    "subnetId": "string",
    "vCores": "int"
  },
  "sku": {
    "capacity": "int",
    "family": "string",
    "name": "string",
    "size": "string",
    "tier": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Valores de propiedad

Microsoft. Sql/InstancePools

Nombre Descripción Importancia
apiVersion La versión de api '2025-01-01'
location Ubicación geográfica donde reside el recurso string (obligatorio)
nombre El nombre del recurso string (obligatorio)
Propiedades Propiedades de recursos. InstancePoolProperties
sku Nombre y nivel de la SKU. Sku
etiquetas Etiquetas de recursos Diccionario de nombres y valores de etiqueta. Consulta c0 en las plantillas
tipo El tipo de recurso 'Microsoft. Sql/instancePools

InstancePoolProperties

Nombre Descripción Importancia
licenseType Tipo de licencia. Los valores posibles son "LicenseIncluded" (se incluye el precio de la licencia de SQL) y "BasePrice" (sin precio de licencia de SQL). 'BasePrice'
'LicenseIncluded' (obligatorio)
maintenanceConfigurationId Especifica el identificador de configuración de mantenimiento que se aplicará a esta instancia administrada. cuerda / cadena
subnetId Identificador de recurso de la subred en el que se va a colocar este grupo de instancias. string (obligatorio)
vCores Recuento de núcleos virtuales que pertenecen a este grupo de instancias. int (obligatorio)

Sku

Nombre Descripción Importancia
capacidad Capacidad de la SKU determinada. int
family Si el servicio tiene diferentes generaciones de hardware, para la misma SKU, se puede capturar aquí. cuerda / cadena
nombre El nombre de la SKU, normalmente, una letra + código de número, por ejemplo, P3. string (obligatorio)
tamaño Tamaño de la SKU determinada cuerda / cadena
nivel Nivel o edición de la SKU concreta, por ejemplo, Básico, Premium. cuerda / cadena

TrackedResourceTags

Nombre Descripción Importancia

Ejemplos de uso

Definición de recursos de Terraform (proveedor AzAPI)

El tipo de recurso instancePools 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/instancePools, añade el siguiente Terraform a tu plantilla.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/instancePools@2025-01-01"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      licenseType = "string"
      maintenanceConfigurationId = "string"
      subnetId = "string"
      vCores = int
    }
    sku = {
      capacity = int
      family = "string"
      name = "string"
      size = "string"
      tier = "string"
    }
  }
}

Valores de propiedad

Microsoft. Sql/InstancePools

Nombre Descripción Importancia
location Ubicación geográfica donde reside el recurso string (obligatorio)
nombre El nombre del recurso string (obligatorio)
Propiedades Propiedades de recursos. InstancePoolProperties
sku Nombre y nivel de la SKU. Sku
etiquetas Etiquetas de recursos Diccionario de nombres y valores de etiqueta.
tipo El tipo de recurso "Microsoft. Sql/instancePools@2025-01-01"

InstancePoolProperties

Nombre Descripción Importancia
licenseType Tipo de licencia. Los valores posibles son "LicenseIncluded" (se incluye el precio de la licencia de SQL) y "BasePrice" (sin precio de licencia de SQL). 'BasePrice'
'LicenseIncluded' (obligatorio)
maintenanceConfigurationId Especifica el identificador de configuración de mantenimiento que se aplicará a esta instancia administrada. cuerda / cadena
subnetId Identificador de recurso de la subred en el que se va a colocar este grupo de instancias. string (obligatorio)
vCores Recuento de núcleos virtuales que pertenecen a este grupo de instancias. int (obligatorio)

Sku

Nombre Descripción Importancia
capacidad Capacidad de la SKU determinada. int
family Si el servicio tiene diferentes generaciones de hardware, para la misma SKU, se puede capturar aquí. cuerda / cadena
nombre El nombre de la SKU, normalmente, una letra + código de número, por ejemplo, P3. string (obligatorio)
tamaño Tamaño de la SKU determinada cuerda / cadena
nivel Nivel o edición de la SKU concreta, por ejemplo, Básico, Premium. cuerda / cadena

TrackedResourceTags

Nombre Descripción Importancia

Ejemplos de uso

Ejemplos de Terraform

Un ejemplo básico de implementación de grupos de instancias de 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"
}

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

resource "azapi_resource" "networkSecurityGroup" {
  type      = "Microsoft.Network/networkSecurityGroups@2023-04-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = azapi_resource.resourceGroup.location
  body = {
    properties = {
      securityRules = [
        {
          name = "allow_tds_inbound"
          properties = {
            description              = "Allow access to data"
            protocol                 = "TCP"
            sourcePortRange          = "*"
            destinationPortRange     = "1433"
            sourceAddressPrefix      = "VirtualNetwork"
            destinationAddressPrefix = "*"
            access                   = "Allow"
            priority                 = 1000
            direction                = "Inbound"
          }
        },
        {
          name = "allow_redirect_inbound"
          properties = {
            description              = "Allow inbound redirect traffic to Managed Instance inside the virtual network"
            protocol                 = "Tcp"
            sourcePortRange          = "*"
            destinationPortRange     = "11000-11999"
            sourceAddressPrefix      = "VirtualNetwork"
            destinationAddressPrefix = "*"
            access                   = "Allow"
            priority                 = 1100
            direction                = "Inbound"
          }
        },
        {
          name = "allow_geodr_inbound"
          properties = {
            description              = "Allow inbound geodr traffic inside the virtual network"
            protocol                 = "Tcp"
            sourcePortRange          = "*"
            destinationPortRange     = "5022"
            sourceAddressPrefix      = "VirtualNetwork"
            destinationAddressPrefix = "*"
            access                   = "Allow"
            priority                 = 1200
            direction                = "Inbound"
          }
        },
        {
          name = "deny_all_inbound"
          properties = {
            description              = "Deny all other inbound traffic"
            protocol                 = "*"
            sourcePortRange          = "*"
            destinationPortRange     = "*"
            sourceAddressPrefix      = "*"
            destinationAddressPrefix = "*"
            access                   = "Deny"
            priority                 = 4096
            direction                = "Inbound"
          }
        },
        {
          name = "allow_linkedserver_outbound"
          properties = {
            description              = "Allow outbound linkedserver traffic inside the virtual network"
            protocol                 = "Tcp"
            sourcePortRange          = "*"
            destinationPortRange     = "1433"
            sourceAddressPrefix      = "*"
            destinationAddressPrefix = "VirtualNetwork"
            access                   = "Allow"
            priority                 = 1000
            direction                = "Outbound"
          }
        },
        {
          name = "allow_redirect_outbound"
          properties = {
            description              = "Allow outbound redirect traffic to Managed Instance inside the virtual network"
            protocol                 = "Tcp"
            sourcePortRange          = "*"
            destinationPortRange     = "11000-11999"
            sourceAddressPrefix      = "*"
            destinationAddressPrefix = "VirtualNetwork"
            access                   = "Allow"
            priority                 = 1100
            direction                = "Outbound"
          }
        },
        {
          name = "allow_geodr_outbound"
          properties = {
            description              = "Allow outbound geodr traffic inside the virtual network"
            protocol                 = "Tcp"
            sourcePortRange          = "*"
            destinationPortRange     = "5022"
            sourceAddressPrefix      = "*"
            destinationAddressPrefix = "VirtualNetwork"
            access                   = "Allow"
            priority                 = 1200
            direction                = "Outbound"
          }
        },
        {
          name = "deny_all_outbound"
          properties = {
            description              = "Deny all other outbound traffic"
            protocol                 = "*"
            sourcePortRange          = "*"
            destinationPortRange     = "*"
            sourceAddressPrefix      = "*"
            destinationAddressPrefix = "*"
            access                   = "Deny"
            priority                 = 4096
            direction                = "Outbound"
          }
        }
      ]
    }
  }
}

resource "azapi_resource" "routeTable" {
  type      = "Microsoft.Network/routeTables@2023-04-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = azapi_resource.resourceGroup.location
  body = {
    properties = {
      disableBgpRoutePropagation = false
    }
  }
}

resource "azapi_resource" "virtualNetwork" {
  type      = "Microsoft.Network/virtualNetworks@2023-04-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = azapi_resource.resourceGroup.location
  body = {
    properties = {
      addressSpace = {
        addressPrefixes = ["10.0.0.0/16"]
      }
      subnets = [
        {
          name = "Default"
          properties = {
            addressPrefix = "10.0.0.0/24"
          }
        },
        {
          name = var.resource_name
          properties = {
            addressPrefix = "10.0.1.0/24"
            networkSecurityGroup = {
              id = azapi_resource.networkSecurityGroup.id
            }
            routeTable = {
              id = azapi_resource.routeTable.id
            }
            delegations = [
              {
                name = "miDelegation"
                properties = {
                  serviceName = "Microsoft.Sql/managedInstances"
                }
              }
            ]
          }
        }
      ]
    }
  }
}

data "azapi_resource" "subnet" {
  type      = "Microsoft.Network/virtualNetworks/subnets@2023-04-01"
  parent_id = azapi_resource.virtualNetwork.id
  name      = var.resource_name
}


resource "azapi_resource" "instancePool" {
  type      = "Microsoft.Sql/instancePools@2022-05-01-preview"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = azapi_resource.resourceGroup.location
  body = {
    properties = {
      licenseType = "LicenseIncluded"
      subnetId    = data.azapi_resource.subnet.id
      vCores      = 8
    }
    sku = {
      family = "Gen5"
      name   = "GP_Gen5"
      tier   = "GeneralPurpose"
    }
  }

  timeouts {
    create = "300m"
    update = "300m"
    delete = "300m"
  }
}