Partilhar via


Microsoft.Sql instancePools

Definição de recursos do bíceps

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

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

Formato do recurso

Para criar um recurso Microsoft.Sql/instancePools, adicione o seguinte Bicep ao seu modelo.

resource symbolicname 'Microsoft.Sql/instancePools@2024-11-01-preview' = {
  scope: resourceSymbolicName or scope
  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

Name Description Value
localização Localização do recurso. string (obrigatório)
name O nome do recurso string (obrigatório)
properties Propriedades do recurso. InstancePoolProperties
âmbito Use ao criar um recurso em um escopo diferente do escopo de implantação. Defina essa propriedade como o nome simbólico de um recurso para aplicar o recurso de extensão .
sku O nome e a camada da SKU. Sku
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Tags em modelos

InstancePoolProperties

Name Description Value
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 (de caracteres)
subnetId ID do recurso da sub-rede para colocar esse pool de instâncias. string (obrigatório)
vCores Contagem de vCores pertencentes a este pool de instâncias. int (obrigatório)

Sku

Name Description Value
capacidade Capacidade do SKU específico. int
family Se o serviço tiver diferentes gerações de hardware, para o mesmo SKU, isso pode ser capturado aqui. cadeia (de caracteres)
name O nome do SKU, normalmente, uma letra + código numérico, por exemplo, P3. string (obrigatório)
size Tamanho do SKU específico cadeia (de caracteres)
escalão O nível ou edição do SKU específico, por exemplo, Basic, Premium. cadeia (de caracteres)

TrackedResourceTags

Name Description Value

Exemplos de uso

Módulos verificados do Azure

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

Module Description
Pool de instâncias SQL Módulo de recursos AVM para pool de instâncias SQL

Definição de recurso de modelo ARM

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

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

Formato do recurso

Para criar um recurso Microsoft.Sql/instancePools, adicione o seguinte JSON ao seu modelo.

{
  "type": "Microsoft.Sql/instancePools",
  "apiVersion": "2024-11-01-preview",
  "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

Name Description Value
apiVersion A versão api '2024-11-01-preview'
localização Localização do recurso. string (obrigatório)
name O nome do recurso string (obrigatório)
properties Propriedades do recurso. InstancePoolProperties
sku O nome e a camada da SKU. Sku
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Tags em modelos
tipo O tipo de recurso 'Microsoft.Sql/instancePools'

InstancePoolProperties

Name Description Value
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 (de caracteres)
subnetId ID do recurso da sub-rede para colocar esse pool de instâncias. string (obrigatório)
vCores Contagem de vCores pertencentes a este pool de instâncias. int (obrigatório)

Sku

Name Description Value
capacidade Capacidade do SKU específico. int
family Se o serviço tiver diferentes gerações de hardware, para o mesmo SKU, isso pode ser capturado aqui. cadeia (de caracteres)
name O nome do SKU, normalmente, uma letra + código numérico, por exemplo, P3. string (obrigatório)
size Tamanho do SKU específico cadeia (de caracteres)
escalão O nível ou edição do SKU específico, por exemplo, Basic, Premium. cadeia (de caracteres)

TrackedResourceTags

Name Description Value

Exemplos de uso

Definição de recursos Terraform (provedor AzAPI)

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

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

Formato do recurso

Para criar um recurso Microsoft.Sql/instancePools, adicione o seguinte Terraform ao seu modelo.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/instancePools@2024-11-01-preview"
  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

Name Description Value
localização Localização do recurso. string (obrigatório)
name O nome do recurso string (obrigatório)
parent_id A ID do recurso ao qual aplicar esse recurso de extensão. string (obrigatório)
properties Propriedades do recurso. InstancePoolProperties
sku O nome e a camada da SKU. Sku
tags Etiquetas de recursos Dicionário de nomes e valores de tags.
tipo O tipo de recurso "Microsoft.Sql/instancePools@2024-11-01-preview"

InstancePoolProperties

Name Description Value
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 (de caracteres)
subnetId ID do recurso da sub-rede para colocar esse pool de instâncias. string (obrigatório)
vCores Contagem de vCores pertencentes a este pool de instâncias. int (obrigatório)

Sku

Name Description Value
capacidade Capacidade do SKU específico. int
family Se o serviço tiver diferentes gerações de hardware, para o mesmo SKU, isso pode ser capturado aqui. cadeia (de caracteres)
name O nome do SKU, normalmente, uma letra + código numérico, por exemplo, P3. string (obrigatório)
size Tamanho do SKU específico cadeia (de caracteres)
escalão O nível ou edição do SKU específico, por exemplo, Basic, Premium. cadeia (de caracteres)

TrackedResourceTags

Name Description Value

Exemplos de uso

Amostras 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"
  }
}