Compartilhar via


Microsoft.Sql instancePools 2018-06-01-preview

Definição de recurso do 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 um recurso Microsoft.Sql/instancePools, adicione o Bicep a seguir ao seu modelo.

resource symbolicname 'Microsoft.Sql/instancePools@2018-06-01-preview' = {
  scope: resourceSymbolicName or scope
  location: 'string'
  name: 'string'
  properties: {
    licenseType: '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
local Local do recurso. cadeia de caracteres (obrigatório)
name O nome do recurso cadeia de caracteres (obrigatório)
properties Propriedades do recurso. InstancePoolProperties
escopo 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 do SKU. Sku
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Marcas 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)
subnetId 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

Name Description Value
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
name 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

Name Description Value

Exemplos de uso

Módulos verificados do Azure

O módulos verificados do Azure a seguir pode ser usado para implantar esse tipo de recurso.

Module Description
Pool de Instâncias do 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 um recurso Microsoft.Sql/instancePools, adicione o JSON a seguir ao seu modelo.

{
  "type": "Microsoft.Sql/instancePools",
  "apiVersion": "2018-06-01-preview",
  "name": "string",
  "location": "string",
  "properties": {
    "licenseType": "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 da API '2018-06-01-preview'
local Local do recurso. cadeia de caracteres (obrigatório)
name O nome do recurso cadeia de caracteres (obrigatório)
properties 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. Consulte Marcas 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)
subnetId 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

Name Description Value
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
name 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

Name Description Value

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:

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

Formato de recurso

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Sql/instancePools@2018-06-01-preview"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      licenseType = "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
local Local do recurso. cadeia de caracteres (obrigatório)
name O nome do recurso cadeia de caracteres (obrigatório)
parent_id A ID do recurso ao qual aplicar esse recurso de extensão. cadeia de caracteres (obrigatório)
properties 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@2018-06-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)
subnetId 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

Name Description Value
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
name 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

Name Description Value

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