Microsoft. Kumpulan Instans SQL 2023-08-01

Definisi sumber daya Bicep

Jenis sumber daya instancePools dapat disebarkan dengan operasi yang menargetkan:

  • Grup sumber daya - Lihat perintah penyebaran grup sumber daya

Untuk daftar properti yang diubah di setiap versi API, lihat mengubah log.

Contoh Penggunaan

Sampel Bicep

Contoh dasar penyebaran Kumpulan Instans SQL.

param resourceName string = 'acctest0001'
param location string = 'westeurope'

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

resource networkSecurityGroup 'Microsoft.Network/networkSecurityGroups@2023-04-01' = {
  name: resourceName
  location: 'azapi_resource.resourceGroup.location'
  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
  location: 'azapi_resource.resourceGroup.location'
  properties: {
    disableBgpRoutePropagation: false
  }
}

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

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

Modul Terverifikasi Azure

Modul Terverifikasi Azure berikut dapat digunakan untuk menyebarkan jenis sumber daya ini.

Module Description
Kumpulan Instans SQL Modul Sumber Daya AVM untuk Kumpulan Instans SQL

Format sumber daya

Untuk membuat Microsoft. Sql/instancePools, tambahkan Bicep berikut ke templat Anda.

resource symbolicname 'Microsoft.Sql/instancePools@2023-08-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'
  }
}

Nilai Properti

Microsoft. Kumpulan SQL/instance

Name Description Value
lokasi Lokasi sumber daya. string (diperlukan)
name Nama sumber daya string (diperlukan)
properties Properti sumber daya. InstancePoolProperties
sku Nama dan tingkat SKU. Sku
tags Tag sumber daya Kamus nama dan nilai tag. Lihat Tag dalam templat

InstancePoolProperties

Name Description Value
licenseType Jenis lisensi. Nilai yang mungkin adalah 'LicenseIncluded' (harga untuk lisensi SQL disertakan) dan 'BasePrice' (tanpa harga lisensi SQL). 'BasePrice'
'LicenseIncluded' (wajib)
maintenanceConfigurationId Menentukan id konfigurasi pemeliharaan untuk diterapkan ke instans terkelola ini. string
subnetId ID sumber daya subnet untuk menempatkan kumpulan instans ini. string (diperlukan)
vCores Jumlah vCore milik kumpulan instans ini. int (diperlukan)

Sku

Name Description Value
kapasitas Kapasitas SKU tertentu. int
family Jika layanan memiliki generasi perangkat keras yang berbeda, untuk SKU yang sama, maka itu dapat ditangkap di sini. string
name Nama SKU, biasanya, kode huruf + Angka, misalnya P3. string (diperlukan)
size Ukuran SKU tertentu string
tier Tingkat atau edisi SKU tertentu, misalnya Dasar, Premium. string

TrackedResourceTags

Name Description Value

Definisi sumber daya templat ARM

Jenis sumber daya instancePools dapat disebarkan dengan operasi yang menargetkan:

Contoh Penggunaan

Format sumber daya

Untuk membuat Microsoft. Sumber daya SQL/instancePools, tambahkan JSON berikut ke templat Anda.

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

Nilai Properti

Microsoft. Kumpulan SQL/instance

Name Description Value
apiVersion Versi api '2023-08-01'
lokasi Lokasi sumber daya. string (diperlukan)
name Nama sumber daya string (diperlukan)
properties Properti sumber daya. InstancePoolProperties
sku Nama dan tingkat SKU. Sku
tags Tag sumber daya Kamus nama dan nilai tag. Lihat Tag dalam templat
jenis Jenis sumber daya "Microsoft. Sql/instancePools'

InstancePoolProperties

Name Description Value
licenseType Jenis lisensi. Nilai yang mungkin adalah 'LicenseIncluded' (harga untuk lisensi SQL disertakan) dan 'BasePrice' (tanpa harga lisensi SQL). 'BasePrice'
'LicenseIncluded' (wajib)
maintenanceConfigurationId Menentukan id konfigurasi pemeliharaan untuk diterapkan ke instans terkelola ini. string
subnetId ID sumber daya subnet untuk menempatkan kumpulan instans ini. string (diperlukan)
vCores Jumlah vCore milik kumpulan instans ini. int (diperlukan)

Sku

Name Description Value
kapasitas Kapasitas SKU tertentu. int
family Jika layanan memiliki generasi perangkat keras yang berbeda, untuk SKU yang sama, maka itu dapat ditangkap di sini. string
name Nama SKU, biasanya, kode huruf + Angka, misalnya P3. string (diperlukan)
size Ukuran SKU tertentu string
tier Tingkat atau edisi SKU tertentu, misalnya Dasar, Premium. string

TrackedResourceTags

Name Description Value

Definisi sumber daya Terraform (penyedia AzAPI)

Jenis sumber daya instancePools dapat disebarkan dengan operasi yang menargetkan:

  • Grup sumber daya Untuk daftar properti yang diubah di setiap versi API, lihat log perubahan.

Contoh Penggunaan

Sampel Terraform

Contoh dasar penyebaran Kumpulan Instans 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"
  }
}

Format sumber daya

Untuk membuat Microsoft. Sql/instancePools, tambahkan Terraform berikut ke templat Anda.

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

Nilai Properti

Microsoft. Kumpulan SQL/instance

Name Description Value
lokasi Lokasi sumber daya. string (diperlukan)
name Nama sumber daya string (diperlukan)
properties Properti sumber daya. InstancePoolProperties
sku Nama dan tingkat SKU. Sku
tags Tag sumber daya Kamus nama dan nilai tag.
jenis Jenis sumber daya "Microsoft. Sql/instancePools@2023-08-01"

InstancePoolProperties

Name Description Value
licenseType Jenis lisensi. Nilai yang mungkin adalah 'LicenseIncluded' (harga untuk lisensi SQL disertakan) dan 'BasePrice' (tanpa harga lisensi SQL). 'BasePrice'
'LicenseIncluded' (wajib)
maintenanceConfigurationId Menentukan id konfigurasi pemeliharaan untuk diterapkan ke instans terkelola ini. string
subnetId ID sumber daya subnet untuk menempatkan kumpulan instans ini. string (diperlukan)
vCores Jumlah vCore milik kumpulan instans ini. int (diperlukan)

Sku

Name Description Value
kapasitas Kapasitas SKU tertentu. int
family Jika layanan memiliki generasi perangkat keras yang berbeda, untuk SKU yang sama, maka itu dapat ditangkap di sini. string
name Nama SKU, biasanya, kode huruf + Angka, misalnya P3. string (diperlukan)
size Ukuran SKU tertentu string
tier Tingkat atau edisi SKU tertentu, misalnya Dasar, Premium. string

TrackedResourceTags

Name Description Value