Condividi tramite


Microsoft.Sql instancePools 2020-11-preview

Definizione di risorsa Bicep

Il tipo di risorsa instancePools 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 una risorsa Microsoft.Sql/instancePools, aggiungere il bicep seguente al modello.

resource symbolicname 'Microsoft.Sql/instancePools@2020-11-01-preview' = {
  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'
  }
}

Valori delle proprietà

Microsoft.Sql/instancePools

Name Description Value
location Percorso della risorsa. stringa (obbligatorio)
name Nome della risorsa stringa (obbligatorio)
properties Proprietà delle risorse. InstancePoolProperties
sku Nome e livello dello SKU. Sku
tags Tag delle risorse Dizionario di nomi e valori di tag. Vedere tag nei modelli

InstancePoolProperties

Name Description Value
licenseType Tipo di licenza. I valori possibili sono 'LicenseIncluded' (prezzo per la licenza SQL è inclusa) e 'BasePrice' (senza prezzo di licenza SQL). 'BasePrice'
'LicenseIncluded' (obbligatorio)
subnetId ID risorsa della subnet in cui inserire il pool di istanze. stringa (obbligatorio)
vCores Numero di vCore appartenenti a questo pool di istanze. int (obbligatorio)

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

Moduli verificati di Azure

Per distribuire questo tipo di risorsa, è possibile usare moduli verificati di Azure.

Module Description
Pool di istanze SQL Modulo di risorse AVM per il pool di istanze SQL

Definizione di risorsa del modello di Resource Manager

Il tipo di risorsa instancePools 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 una risorsa Microsoft.Sql/instancePools, aggiungere il codice JSON seguente al modello.

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

Valori delle proprietà

Microsoft.Sql/instancePools

Name Description Value
apiVersion Versione dell'API '2020-11-01-preview'
location Percorso della risorsa. stringa (obbligatorio)
name Nome della risorsa stringa (obbligatorio)
properties Proprietà delle risorse. InstancePoolProperties
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/instancePools'

InstancePoolProperties

Name Description Value
licenseType Tipo di licenza. I valori possibili sono 'LicenseIncluded' (prezzo per la licenza SQL è inclusa) e 'BasePrice' (senza prezzo di licenza SQL). 'BasePrice'
'LicenseIncluded' (obbligatorio)
subnetId ID risorsa della subnet in cui inserire il pool di istanze. stringa (obbligatorio)
vCores Numero di vCore appartenenti a questo pool di istanze. int (obbligatorio)

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

Definizione di risorsa Terraform (provider AzAPI)

Il tipo di risorsa instancePools 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 una risorsa Microsoft.Sql/instancePools, aggiungere il comando Terraform seguente al modello.

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

Valori delle proprietà

Microsoft.Sql/instancePools

Name Description Value
location Percorso della risorsa. stringa (obbligatorio)
name Nome della risorsa stringa (obbligatorio)
properties Proprietà delle risorse. InstancePoolProperties
sku Nome e livello dello SKU. Sku
tags Tag delle risorse Dizionario di nomi e valori di tag.
type Tipo di risorsa "Microsoft.Sql/instancePools@2020-11-01-preview"

InstancePoolProperties

Name Description Value
licenseType Tipo di licenza. I valori possibili sono 'LicenseIncluded' (prezzo per la licenza SQL è inclusa) e 'BasePrice' (senza prezzo di licenza SQL). 'BasePrice'
'LicenseIncluded' (obbligatorio)
subnetId ID risorsa della subnet in cui inserire il pool di istanze. stringa (obbligatorio)
vCores Numero di vCore appartenenti a questo pool di istanze. int (obbligatorio)

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

Esempio di base di distribuzione di pool di istanze 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"
  }
}