Compartilhar via


Microsoft. Sql instancePools 2025-01-01

Definição de recurso Bicep

O tipo de recurso instancePools pode ser implantado com operações de destino:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato de recurso

Para criar uma Microsoft. Recurso Sql/instancePools, adicione o seguinte Bicep ao seu modelo.

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 propriedade

Microsoft. Sql/InstancePools

Nome Descrição Valor
local Local do recurso. cadeia de caracteres (obrigatório)
nome O nome do recurso cadeia de caracteres (obrigatório)
propriedades Propriedades do recurso. InstancePoolProperties
sku O nome e a camada do SKU. Sku
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Veja Tags nos templates

InstancePoolProperties

Nome Descrição Valor
licenseType O tipo de licença. Os valores possíveis são "LicenseIncluded" (o preço da licença SQL está incluído) e "BasePrice" (sem o preço da licença SQL). 'BasePrice'
'LicenseIncluded' (obrigatório)
maintenanceConfigurationId Especifica a ID de configuração de manutenção a ser aplicada a essa instância gerenciada. cadeia
ID da sub-rede ID do recurso da sub-rede na qual colocar esse pool de instâncias. cadeia de caracteres (obrigatório)
vCores Contagem de vCores que pertencem a esse pool de instâncias. int (obrigatório)

Sku

Nome Descrição Valor
capacidade Capacidade da SKU específica. INT
family Se o serviço tiver diferentes gerações de hardware, para a mesma SKU, isso poderá ser capturado aqui. cadeia
nome O nome da SKU, normalmente, uma letra + código de número, por exemplo, P3. cadeia de caracteres (obrigatório)
size Tamanho da SKU específica cadeia
nível A camada ou edição da SKU específica, por exemplo, Basic, Premium. cadeia

TrackedResourceTags

Nome Descrição Valor

Exemplos de uso

Amostras de Bicep

Um exemplo básico de implantação de pools de instâncias 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
          }
        }
      }
    ]
  }
}

Azure Verified Modules

Os seguintes módulos Azure Verificados podem ser usados para implantar esse tipo de recurso.

Módulo Descrição
SQL Módulo de recurso AVM para pool de instâncias SQL

Definição de recurso de modelo do ARM

O tipo de recurso instancePools pode ser implantado com operações de destino:

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato de recurso

Para criar uma Microsoft. Recurso Sql/instancePools, adicione o seguinte JSON ao seu modelo.

{
  "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 propriedade

Microsoft. Sql/InstancePools

Nome Descrição Valor
apiVersion A versão da API '2025-01-01'
local Local do recurso. cadeia de caracteres (obrigatório)
nome O nome do recurso cadeia de caracteres (obrigatório)
propriedades Propriedades do recurso. InstancePoolProperties
sku O nome e a camada do SKU. Sku
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Veja Tags nos templates
tipo O tipo de recurso 'Microsoft. Sql/instancePools

InstancePoolProperties

Nome Descrição Valor
licenseType O tipo de licença. Os valores possíveis são "LicenseIncluded" (o preço da licença SQL está incluído) e "BasePrice" (sem o preço da licença SQL). 'BasePrice'
'LicenseIncluded' (obrigatório)
maintenanceConfigurationId Especifica a ID de configuração de manutenção a ser aplicada a essa instância gerenciada. cadeia
ID da sub-rede ID do recurso da sub-rede na qual colocar esse pool de instâncias. cadeia de caracteres (obrigatório)
vCores Contagem de vCores que pertencem a esse pool de instâncias. int (obrigatório)

Sku

Nome Descrição Valor
capacidade Capacidade da SKU específica. INT
family Se o serviço tiver diferentes gerações de hardware, para a mesma SKU, isso poderá ser capturado aqui. cadeia
nome O nome da SKU, normalmente, uma letra + código de número, por exemplo, P3. cadeia de caracteres (obrigatório)
size Tamanho da SKU específica cadeia
nível A camada ou edição da SKU específica, por exemplo, Basic, Premium. cadeia

TrackedResourceTags

Nome Descrição Valor

Exemplos de uso

Definição de recurso do Terraform (provedor de AzAPI)

O tipo de recurso instancePools pode ser implantado com operações de destino:

  • Grupos de recursos

Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.

Formato de recurso

Para criar uma Microsoft. Recurso Sql/instancePools, adicione o seguinte Terraform ao seu template.

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 propriedade

Microsoft. Sql/InstancePools

Nome Descrição Valor
local Local do recurso. cadeia de caracteres (obrigatório)
nome O nome do recurso cadeia de caracteres (obrigatório)
propriedades Propriedades do recurso. InstancePoolProperties
sku O nome e a camada do SKU. Sku
tags Etiquetas de recursos Dicionário de nomes e valores de tags.
tipo O tipo de recurso "Microsoft. Sql/instancePools@2025-01-01"

InstancePoolProperties

Nome Descrição Valor
licenseType O tipo de licença. Os valores possíveis são "LicenseIncluded" (o preço da licença SQL está incluído) e "BasePrice" (sem o preço da licença SQL). 'BasePrice'
'LicenseIncluded' (obrigatório)
maintenanceConfigurationId Especifica a ID de configuração de manutenção a ser aplicada a essa instância gerenciada. cadeia
ID da sub-rede ID do recurso da sub-rede na qual colocar esse pool de instâncias. cadeia de caracteres (obrigatório)
vCores Contagem de vCores que pertencem a esse pool de instâncias. int (obrigatório)

Sku

Nome Descrição Valor
capacidade Capacidade da SKU específica. INT
family Se o serviço tiver diferentes gerações de hardware, para a mesma SKU, isso poderá ser capturado aqui. cadeia
nome O nome da SKU, normalmente, uma letra + código de número, por exemplo, P3. cadeia de caracteres (obrigatório)
size Tamanho da SKU específica cadeia
nível A camada ou edição da SKU específica, por exemplo, Basic, Premium. cadeia

TrackedResourceTags

Nome Descrição Valor

Exemplos de uso

Exemplos do Terraform

Um exemplo básico de implantação de pools de instâncias 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"
  }
}