Lab/virtualmachine Microsoft.DevTestLab

Definisi sumber daya Bicep

Jenis sumber daya labs/virtualmachines 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 Mesin Virtual dalam Lab Pengujian Pengembang.

param resourceName string = 'acctest0001'
param location string = 'westeurope'
@secure()
@description('The password for the DevTest Lab virtual machine')
param vmPassword string

resource lab 'Microsoft.DevTestLab/labs@2018-09-15' = {
  name: resourceName
  location: location
  properties: {
    labStorageType: 'Premium'
  }
}

resource virtualNetwork 'Microsoft.DevTestLab/labs/virtualNetworks@2018-09-15' = {
  name: resourceName
  parent: lab
  properties: {
    description: ''
    subnetOverrides: [
      {
        labSubnetName: '${resourceName}Subnet'
        resourceId: resourceId(
          'Microsoft.Network/virtualNetworks/subnets',
          resourceGroup().name,
          resourceName,
          '${resourceName}Subnet'
        )
        useInVmCreationPermission: 'Allow'
        usePublicIpAddressPermission: 'Allow'
      }
    ]
  }
}

resource virtualMachine 'Microsoft.DevTestLab/labs/virtualMachines@2018-09-15' = {
  name: resourceName
  location: location
  parent: lab
  properties: {
    allowClaim: true
    disallowPublicIpAddress: false
    galleryImageReference: {
      offer: 'WindowsServer'
      osType: 'Windows'
      publisher: 'MicrosoftWindowsServer'
      sku: '2012-Datacenter'
      version: 'latest'
    }
    isAuthenticationWithSshKey: false
    labSubnetName: '${resourceName}Subnet'
    labVirtualNetworkId: virtualNetwork.id
    networkInterface: {}
    notes: ''
    osType: 'Windows'
    password: vmPassword
    size: 'Standard_F2'
    storageType: 'Standard'
    userName: 'acct5stU5er'
  }
}

Sampel Mulai Cepat Azure

Templat Mulai Cepat Azure berikut ini berisi sampel Bicep untuk menyebarkan jenis sumber daya ini.

File Bisep Description
Membuat lab di Azure DevTest Labs dengan VM yang diklaim Templat ini membuat instans DevTest Lab / DTL baru dengan VM Pusat Data Server Windows 2019 yang diklaim di dalamnya. Templat Mulai Cepat Azure Resource Manager lainnya untuk Azure DevTest Labs tersedia di https://github.com/Azure/azure-devtestlab/tree/master/samples/DevTestLabs/QuickStartTemplates

Format sumber daya

Untuk membuat sumber daya Microsoft.DevTestLab/labs/virtualmachines, tambahkan Bicep berikut ke templat Anda.

resource symbolicname 'Microsoft.DevTestLab/labs/virtualmachines@2018-09-15' = {
  parent: resourceSymbolicName
  location: 'string'
  name: 'string'
  properties: {
    allowClaim: bool
    artifacts: [
      {
        artifactId: 'string'
        artifactTitle: 'string'
        deploymentStatusMessage: 'string'
        installTime: 'string'
        parameters: [
          {
            name: 'string'
            value: 'string'
          }
        ]
        status: 'string'
        vmExtensionStatusMessage: 'string'
      }
    ]
    createdDate: 'string'
    customImageId: 'string'
    dataDiskParameters: [
      {
        attachNewDataDiskOptions: {
          diskName: 'string'
          diskSizeGiB: int
          diskType: 'string'
        }
        existingLabDiskId: 'string'
        hostCaching: 'string'
      }
    ]
    disallowPublicIpAddress: bool
    environmentId: 'string'
    expirationDate: 'string'
    galleryImageReference: {
      offer: 'string'
      osType: 'string'
      publisher: 'string'
      sku: 'string'
      version: 'string'
    }
    isAuthenticationWithSshKey: bool
    labSubnetName: 'string'
    labVirtualNetworkId: 'string'
    networkInterface: {
      dnsName: 'string'
      privateIpAddress: 'string'
      publicIpAddress: 'string'
      publicIpAddressId: 'string'
      rdpAuthority: 'string'
      sharedPublicIpAddressConfiguration: {
        inboundNatRules: [
          {
            backendPort: int
            frontendPort: int
            transportProtocol: 'string'
          }
        ]
      }
      sshAuthority: 'string'
      subnetId: 'string'
      virtualNetworkId: 'string'
    }
    notes: 'string'
    ownerObjectId: 'string'
    ownerUserPrincipalName: 'string'
    password: 'string'
    planId: 'string'
    scheduleParameters: [
      {
        name: 'string'
        properties: {
          dailyRecurrence: {
            time: 'string'
          }
          hourlyRecurrence: {
            minute: int
          }
          notificationSettings: {
            emailRecipient: 'string'
            notificationLocale: 'string'
            status: 'string'
            timeInMinutes: int
            webhookUrl: 'string'
          }
          status: 'string'
          targetResourceId: 'string'
          taskType: 'string'
          timeZoneId: 'string'
          weeklyRecurrence: {
            time: 'string'
            weekdays: [
              'string'
            ]
          }
        }
        tags: {
          {customized property}: 'string'
        }
      }
    ]
    size: 'string'
    sshKey: 'string'
    storageType: 'string'
    userName: 'string'
  }
  tags: {
    {customized property}: 'string'
  }
}

Nilai Properti

Microsoft.DevTestLab/labs/virtualmachines

Name Description Value
lokasi Lokasi geografis tempat sumber daya berada string
name Nama sumber daya string (diperlukan)
induk Di Bicep, Anda dapat menentukan sumber daya induk untuk sumber daya anak. Anda hanya perlu menambahkan properti ini ketika sumber daya anak dideklarasikan di luar sumber daya induk.

Untuk informasi selengkapnya, lihat sumber daya Turunan di luar sumber daya induk.
Nama simbolis untuk sumber daya jenis: lab
properties Properti sumber daya. LabVirtualMachineProperties (wajib)
tags Tag sumber daya Kamus nama dan nilai tag. Lihat Tag dalam templat

ArtifactInstallProperties

Name Description Value
artifactId Pengidentifikasi artefak. string
artifactTitle Judul artefak. string
deploymentStatusMessage Pesan status dari penyebaran. string
installTime Waktu artefak mulai diinstal pada komputer virtual. string
parameters Parameter artefak. ArtifactParameterProperties[]
status Status artefak. string
vmExtensionStatusMessage Pesan status dari ekstensi komputer virtual. string

ArtifactParameterProperties

Name Description Value
name Nama parameter artefak. string
value Nilai parameter artefak. string

AttachNewDataDiskOptions

Name Description Value
diskName Nama disk yang akan dilampirkan. string
diskSizeGiB Ukuran disk yang akan dilampirkan dalam Gibibyte. int
diskType Jenis penyimpanan untuk disk (yaitu Standar, Premium). 'Premium'
'Standard'
'StandardSSD'

DataDiskProperties

Name Description Value
attachNewDataDiskOptions Menentukan opsi untuk melampirkan disk baru ke komputer virtual. AttachNewDataDiskOptions
existingLabDiskId Menentukan id disk lab yang ada untuk dilampirkan ke komputer virtual. string
hostCaching Opsi penembolokan untuk disk data (yaitu None, ReadOnly, ReadWrite). 'None'
'ReadOnly'
'ReadWrite'

DayDetails

Name Description Value
time Waktu hari jadwal akan terjadi. string

GalleryImageReference

Name Description Value
offer Penawaran gambar galeri. string
osType Jenis OS gambar galeri. string
penerbit Penerbit gambar galeri. string
sku SKU gambar galeri. string
versi Versi gambar galeri. string

HourDetails

Name Description Value
minute Menit dalam satu jam jadwal akan berjalan. int

InboundNatRule

Name Description Value
backendPort Port tempat lalu lintas eksternal akan dialihkan. int
frontendPort Port titik akhir eksternal dari koneksi masuk. Kemungkinan rentang nilai antara 1 dan 65535, inklusif. Jika tidak ditentukan, nilai akan dialokasikan secara otomatis. int
transportProtocol Protokol transportasi untuk titik akhir. 'Tcp'
'Udp'

LabVirtualMachineProperties

Name Description Value
allowClaim Menunjukkan apakah pengguna lain dapat mengambil kepemilikan komputer virtual bool
artifacts Artefak yang akan diinstal pada komputer virtual. ArtifactInstallProperties[]
createdDate Tanggal pembuatan komputer virtual. string
customImageId Pengidentifikasi gambar kustom komputer virtual. string
dataDiskParameters Disk data baru atau yang sudah ada untuk dilampirkan ke komputer virtual setelah pembuatan DataDiskProperties[]
disallowPublicIpAddress Menunjukkan apakah komputer virtual akan dibuat tanpa alamat IP publik. bool
environmentId ID sumber daya lingkungan yang berisi komputer virtual ini, jika ada. string
expirationDate Tanggal kedaluwarsa untuk VM. string
galleryImageReference Referensi gambar Microsoft Marketplace Azure dari komputer virtual. GalleryImageReference
isAuthenticationWithSshKey Menunjukkan apakah komputer virtual ini menggunakan kunci SSH untuk autentikasi. bool
labSubnetName Nama subnet lab komputer virtual. string
labVirtualNetworkId Pengidentifikasi jaringan virtual lab komputer virtual. string
networkInterface Properti antarmuka jaringan. NetworkInterfaceProperties
notes Catatan komputer virtual. string
ownerObjectId Pengidentifikasi objek pemilik komputer virtual. string
ownerUserPrincipalName Nama utama pengguna pemilik komputer virtual. string
kata sandi Kata sandi administrator komputer virtual. string
planId Id paket yang terkait dengan gambar komputer virtual string
scheduleParameters Virtual Machine menjadwalkan untuk dibuat ScheduleCreationParameter[]
size Ukuran komputer virtual. string
sshKey Kunci SSH administrator komputer virtual. string
storageType Jenis penyimpanan yang digunakan untuk komputer virtual (yaitu Standar, Premium). string
userName Nama pengguna komputer virtual. string

LabVirtualMachineTags

Name Description Value

NetworkInterfaceProperties

Name Description Value
dnsName Nama DNS. string
privateIpAddress Alamat IP privat. string
publicIpAddress Alamat IP publik. string
publicIpAddressId ID sumber daya alamat IP publik. string
rdpAuthority Properti RdpAuthority adalah nama host DNS server atau alamat IP diikuti dengan nomor port layanan untuk RDP (Protokol Desktop Jarak Jauh). string
sharedPublicIpAddressConfiguration Konfigurasi untuk berbagi alamat IP publik di beberapa komputer virtual. SharedPublicIpAddressConfiguration
sshAuthority Properti SshAuthority adalah nama host DNS server atau alamat IP diikuti dengan nomor port layanan untuk SSH. string
subnetId ID sumber daya sub net. string
virtualNetworkId ID sumber daya jaringan virtual. string

NotificationSettings

Name Description Value
emailRecipient Penerima email untuk mengirim pemberitahuan ke (dapat menjadi daftar alamat email yang dipisahkan titik koma). string
notificationLocale Lokal yang digunakan saat mengirim pemberitahuan (fallback untuk bahasa yang tidak didukung adalah EN). string
status Jika pemberitahuan diaktifkan untuk jadwal ini (yaitu Diaktifkan, Dinonaktifkan). 'Disabled'
'Enabled'
timeInMinutes Waktu dalam menit sebelum peristiwa di mana pemberitahuan akan dikirim. int
webhookUrl URL webhook tempat pemberitahuan akan dikirim. string

ScheduleCreationParameter

Name Description Value
name Nama komputer atau lingkungan virtual string
properties Properti jadwal. ScheduleCreationParameterProperties
tags Tag sumber daya. ScheduleCreationParameterTags

ScheduleCreationParameterProperties

Name Description Value
dailyRecurrence Jika jadwal akan terjadi sekali setiap hari dalam seminggu, tentukan pengulangan harian. DayDetails
hourlyRecurrence Jika jadwal akan terjadi beberapa kali sehari, tentukan pengulangan per jam. HourDetails
notificationSettings Setelan notifikasi. NotificationSettings
status Status jadwal (yaitu Diaktifkan, Dinonaktifkan) 'Disabled'
'Enabled'
targetResourceId ID sumber daya tempat jadwal berada string
taskType Jenis tugas jadwal (misalnya LabVmsShutdownTask, LabVmAutoStart). string
timeZoneId ID zona waktu (misalnya Waktu Standar Tiongkok, Waktu Standar Greenland, waktu Standar Pasifik, dll.). Nilai yang mungkin untuk properti ini dapat ditemukan di IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) string
weeklyRecurrence Jika jadwal hanya akan terjadi beberapa hari dalam seminggu, tentukan pengulangan mingguan. WeekDetails

ScheduleCreationParameterTags

Name Description Value

SharedPublicIpAddressConfiguration

Name Description Value
inboundNatRules Aturan NAT masuk InboundNatRule[]

WeekDetails

Name Description Value
time Waktu pada hari jadwal akan terjadi. string
weekdays Hari-hari dalam seminggu di mana jadwal ditetapkan (misalnya Minggu, Senin, Selasa, dll.). string[]

Definisi sumber daya templat ARM

Jenis sumber daya labs/virtualmachines dapat disebarkan dengan operasi yang menargetkan:

Contoh Penggunaan

Templat Quickstart Azure

Templat Mulai Cepat Azure berikut ini menyebarkan jenis sumber daya ini.

Template Description
Membuat lab di Azure DevTest Labs dengan VM yang diklaim

Sebarkan ke Azure
Templat ini membuat instans DevTest Lab / DTL baru dengan VM Pusat Data Server Windows 2019 yang diklaim di dalamnya. Templat Mulai Cepat Azure Resource Manager lainnya untuk Azure DevTest Labs tersedia di https://github.com/Azure/azure-devtestlab/tree/master/samples/DevTestLabs/QuickStartTemplates

Format sumber daya

Untuk membuat sumber daya Microsoft.DevTestLab/labs/virtualmachines, tambahkan JSON berikut ke templat Anda.

{
  "type": "Microsoft.DevTestLab/labs/virtualmachines",
  "apiVersion": "2018-09-15",
  "name": "string",
  "location": "string",
  "properties": {
    "allowClaim": "bool",
    "artifacts": [
      {
        "artifactId": "string",
        "artifactTitle": "string",
        "deploymentStatusMessage": "string",
        "installTime": "string",
        "parameters": [
          {
            "name": "string",
            "value": "string"
          }
        ],
        "status": "string",
        "vmExtensionStatusMessage": "string"
      }
    ],
    "createdDate": "string",
    "customImageId": "string",
    "dataDiskParameters": [
      {
        "attachNewDataDiskOptions": {
          "diskName": "string",
          "diskSizeGiB": "int",
          "diskType": "string"
        },
        "existingLabDiskId": "string",
        "hostCaching": "string"
      }
    ],
    "disallowPublicIpAddress": "bool",
    "environmentId": "string",
    "expirationDate": "string",
    "galleryImageReference": {
      "offer": "string",
      "osType": "string",
      "publisher": "string",
      "sku": "string",
      "version": "string"
    },
    "isAuthenticationWithSshKey": "bool",
    "labSubnetName": "string",
    "labVirtualNetworkId": "string",
    "networkInterface": {
      "dnsName": "string",
      "privateIpAddress": "string",
      "publicIpAddress": "string",
      "publicIpAddressId": "string",
      "rdpAuthority": "string",
      "sharedPublicIpAddressConfiguration": {
        "inboundNatRules": [
          {
            "backendPort": "int",
            "frontendPort": "int",
            "transportProtocol": "string"
          }
        ]
      },
      "sshAuthority": "string",
      "subnetId": "string",
      "virtualNetworkId": "string"
    },
    "notes": "string",
    "ownerObjectId": "string",
    "ownerUserPrincipalName": "string",
    "password": "string",
    "planId": "string",
    "scheduleParameters": [
      {
        "name": "string",
        "properties": {
          "dailyRecurrence": {
            "time": "string"
          },
          "hourlyRecurrence": {
            "minute": "int"
          },
          "notificationSettings": {
            "emailRecipient": "string",
            "notificationLocale": "string",
            "status": "string",
            "timeInMinutes": "int",
            "webhookUrl": "string"
          },
          "status": "string",
          "targetResourceId": "string",
          "taskType": "string",
          "timeZoneId": "string",
          "weeklyRecurrence": {
            "time": "string",
            "weekdays": [ "string" ]
          }
        },
        "tags": {
          "{customized property}": "string"
        }
      }
    ],
    "size": "string",
    "sshKey": "string",
    "storageType": "string",
    "userName": "string"
  },
  "tags": {
    "{customized property}": "string"
  }
}

Nilai Properti

Microsoft.DevTestLab/labs/virtualmachines

Name Description Value
apiVersion Versi api '2018-09-15'
lokasi Lokasi geografis tempat sumber daya berada string
name Nama sumber daya string (diperlukan)
properties Properti sumber daya. LabVirtualMachineProperties (wajib)
tags Tag sumber daya Kamus nama dan nilai tag. Lihat Tag dalam templat
jenis Jenis sumber daya 'Microsoft.DevTestLab/labs/virtualmachines'

ArtifactInstallProperties

Name Description Value
artifactId Pengidentifikasi artefak. string
artifactTitle Judul artefak. string
deploymentStatusMessage Pesan status dari penyebaran. string
installTime Waktu artefak mulai diinstal pada komputer virtual. string
parameters Parameter artefak. ArtifactParameterProperties[]
status Status artefak. string
vmExtensionStatusMessage Pesan status dari ekstensi komputer virtual. string

ArtifactParameterProperties

Name Description Value
name Nama parameter artefak. string
value Nilai parameter artefak. string

AttachNewDataDiskOptions

Name Description Value
diskName Nama disk yang akan dilampirkan. string
diskSizeGiB Ukuran disk yang akan dilampirkan dalam Gibibyte. int
diskType Jenis penyimpanan untuk disk (yaitu Standar, Premium). 'Premium'
'Standard'
'StandardSSD'

DataDiskProperties

Name Description Value
attachNewDataDiskOptions Menentukan opsi untuk melampirkan disk baru ke komputer virtual. AttachNewDataDiskOptions
existingLabDiskId Menentukan id disk lab yang ada untuk dilampirkan ke komputer virtual. string
hostCaching Opsi penembolokan untuk disk data (yaitu None, ReadOnly, ReadWrite). 'None'
'ReadOnly'
'ReadWrite'

DayDetails

Name Description Value
time Waktu hari jadwal akan terjadi. string

GalleryImageReference

Name Description Value
offer Penawaran gambar galeri. string
osType Jenis OS gambar galeri. string
penerbit Penerbit gambar galeri. string
sku SKU gambar galeri. string
versi Versi gambar galeri. string

HourDetails

Name Description Value
minute Menit dalam satu jam jadwal akan berjalan. int

InboundNatRule

Name Description Value
backendPort Port tempat lalu lintas eksternal akan dialihkan. int
frontendPort Port titik akhir eksternal dari koneksi masuk. Kemungkinan rentang nilai antara 1 dan 65535, inklusif. Jika tidak ditentukan, nilai akan dialokasikan secara otomatis. int
transportProtocol Protokol transportasi untuk titik akhir. 'Tcp'
'Udp'

LabVirtualMachineProperties

Name Description Value
allowClaim Menunjukkan apakah pengguna lain dapat mengambil kepemilikan komputer virtual bool
artifacts Artefak yang akan diinstal pada komputer virtual. ArtifactInstallProperties[]
createdDate Tanggal pembuatan komputer virtual. string
customImageId Pengidentifikasi gambar kustom komputer virtual. string
dataDiskParameters Disk data baru atau yang sudah ada untuk dilampirkan ke komputer virtual setelah pembuatan DataDiskProperties[]
disallowPublicIpAddress Menunjukkan apakah komputer virtual akan dibuat tanpa alamat IP publik. bool
environmentId ID sumber daya lingkungan yang berisi komputer virtual ini, jika ada. string
expirationDate Tanggal kedaluwarsa untuk VM. string
galleryImageReference Referensi gambar Microsoft Marketplace Azure dari komputer virtual. GalleryImageReference
isAuthenticationWithSshKey Menunjukkan apakah komputer virtual ini menggunakan kunci SSH untuk autentikasi. bool
labSubnetName Nama subnet lab komputer virtual. string
labVirtualNetworkId Pengidentifikasi jaringan virtual lab komputer virtual. string
networkInterface Properti antarmuka jaringan. NetworkInterfaceProperties
notes Catatan komputer virtual. string
ownerObjectId Pengidentifikasi objek pemilik komputer virtual. string
ownerUserPrincipalName Nama utama pengguna pemilik komputer virtual. string
kata sandi Kata sandi administrator komputer virtual. string
planId Id paket yang terkait dengan gambar komputer virtual string
scheduleParameters Virtual Machine menjadwalkan untuk dibuat ScheduleCreationParameter[]
size Ukuran komputer virtual. string
sshKey Kunci SSH administrator komputer virtual. string
storageType Jenis penyimpanan yang digunakan untuk komputer virtual (yaitu Standar, Premium). string
userName Nama pengguna komputer virtual. string

LabVirtualMachineTags

Name Description Value

NetworkInterfaceProperties

Name Description Value
dnsName Nama DNS. string
privateIpAddress Alamat IP privat. string
publicIpAddress Alamat IP publik. string
publicIpAddressId ID sumber daya alamat IP publik. string
rdpAuthority Properti RdpAuthority adalah nama host DNS server atau alamat IP diikuti dengan nomor port layanan untuk RDP (Protokol Desktop Jarak Jauh). string
sharedPublicIpAddressConfiguration Konfigurasi untuk berbagi alamat IP publik di beberapa komputer virtual. SharedPublicIpAddressConfiguration
sshAuthority Properti SshAuthority adalah nama host DNS server atau alamat IP diikuti dengan nomor port layanan untuk SSH. string
subnetId ID sumber daya sub net. string
virtualNetworkId ID sumber daya jaringan virtual. string

NotificationSettings

Name Description Value
emailRecipient Penerima email untuk mengirim pemberitahuan ke (dapat menjadi daftar alamat email yang dipisahkan titik koma). string
notificationLocale Lokal yang digunakan saat mengirim pemberitahuan (fallback untuk bahasa yang tidak didukung adalah EN). string
status Jika pemberitahuan diaktifkan untuk jadwal ini (yaitu Diaktifkan, Dinonaktifkan). 'Disabled'
'Enabled'
timeInMinutes Waktu dalam menit sebelum peristiwa di mana pemberitahuan akan dikirim. int
webhookUrl URL webhook tempat pemberitahuan akan dikirim. string

ScheduleCreationParameter

Name Description Value
name Nama komputer atau lingkungan virtual string
properties Properti jadwal. ScheduleCreationParameterProperties
tags Tag sumber daya. ScheduleCreationParameterTags

ScheduleCreationParameterProperties

Name Description Value
dailyRecurrence Jika jadwal akan terjadi sekali setiap hari dalam seminggu, tentukan pengulangan harian. DayDetails
hourlyRecurrence Jika jadwal akan terjadi beberapa kali sehari, tentukan pengulangan per jam. HourDetails
notificationSettings Setelan notifikasi. NotificationSettings
status Status jadwal (yaitu Diaktifkan, Dinonaktifkan) 'Disabled'
'Enabled'
targetResourceId ID sumber daya tempat jadwal berada string
taskType Jenis tugas jadwal (misalnya LabVmsShutdownTask, LabVmAutoStart). string
timeZoneId ID zona waktu (misalnya Waktu Standar Tiongkok, Waktu Standar Greenland, waktu Standar Pasifik, dll.). Nilai yang mungkin untuk properti ini dapat ditemukan di IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) string
weeklyRecurrence Jika jadwal hanya akan terjadi beberapa hari dalam seminggu, tentukan pengulangan mingguan. WeekDetails

ScheduleCreationParameterTags

Name Description Value

SharedPublicIpAddressConfiguration

Name Description Value
inboundNatRules Aturan NAT masuk InboundNatRule[]

WeekDetails

Name Description Value
time Waktu pada hari jadwal akan terjadi. string
weekdays Hari-hari dalam seminggu di mana jadwal ditetapkan (misalnya Minggu, Senin, Selasa, dll.). string[]

Definisi sumber daya Terraform (penyedia AzAPI)

Jenis sumber daya labs/virtualmachines 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 Mesin Virtual dalam Lab Pengujian Pengembang.

terraform {
  required_providers {
    azapi = {
      source = "Azure/azapi"
    }
  }
}

provider "azapi" {
  skip_provider_registration = false
}

variable "resource_name" {
  type    = string
  default = "acctest0001"
}

variable "location" {
  type    = string
  default = "westeurope"
}

variable "vm_password" {
  type        = string
  description = "The password for the DevTest Lab virtual machine"
  sensitive   = true
}

resource "azapi_resource" "resourceGroup" {
  type     = "Microsoft.Resources/resourceGroups@2020-06-01"
  name     = var.resource_name
  location = var.location
}

resource "azapi_resource" "lab" {
  type      = "Microsoft.DevTestLab/labs@2018-09-15"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      labStorageType = "Premium"
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

data "azapi_resource_id" "virtualNetwork" {
  type      = "Microsoft.Network/virtualNetworks@2023-04-01"
  parent_id = azapi_resource.resourceGroup.id
  name      = var.resource_name
}

data "azapi_resource_id" "subnet" {
  type      = "Microsoft.Network/virtualNetworks/subnets@2023-04-01"
  parent_id = data.azapi_resource_id.virtualNetwork.id
  name      = "${var.resource_name}Subnet"
}

resource "azapi_resource" "virtualNetwork" {
  type      = "Microsoft.DevTestLab/labs/virtualNetworks@2018-09-15"
  parent_id = azapi_resource.lab.id
  name      = var.resource_name
  body = {
    properties = {
      description = ""
      subnetOverrides = [
        {
          labSubnetName                = data.azapi_resource_id.subnet.name
          resourceId                   = data.azapi_resource_id.subnet.id
          useInVmCreationPermission    = "Allow"
          usePublicIpAddressPermission = "Allow"
        },
      ]
    }
  }
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

resource "azapi_resource" "virtualMachine" {
  type      = "Microsoft.DevTestLab/labs/virtualMachines@2018-09-15"
  parent_id = azapi_resource.lab.id
  name      = var.resource_name
  location  = var.location
  body = {
    properties = {
      allowClaim              = true
      disallowPublicIpAddress = false
      galleryImageReference = {
        offer     = "WindowsServer"
        osType    = "Windows"
        publisher = "MicrosoftWindowsServer"
        sku       = "2012-Datacenter"
        version   = "latest"
      }
      isAuthenticationWithSshKey = false
      labSubnetName              = data.azapi_resource_id.subnet.name
      labVirtualNetworkId        = azapi_resource.virtualNetwork.id
      networkInterface = {
      }
      notes       = ""
      osType      = "Windows"
      password    = var.vm_password
      size        = "Standard_F2"
      storageType = "Standard"
      userName    = "acct5stU5er"
    }
  }
  ignore_casing             = true
  schema_validation_enabled = false
  response_export_values    = ["*"]
}

Format sumber daya

Untuk membuat sumber daya Microsoft.DevTestLab/labs/virtualmachines, tambahkan Terraform berikut ke templat Anda.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.DevTestLab/labs/virtualmachines@2018-09-15"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    properties = {
      allowClaim = bool
      artifacts = [
        {
          artifactId = "string"
          artifactTitle = "string"
          deploymentStatusMessage = "string"
          installTime = "string"
          parameters = [
            {
              name = "string"
              value = "string"
            }
          ]
          status = "string"
          vmExtensionStatusMessage = "string"
        }
      ]
      createdDate = "string"
      customImageId = "string"
      dataDiskParameters = [
        {
          attachNewDataDiskOptions = {
            diskName = "string"
            diskSizeGiB = int
            diskType = "string"
          }
          existingLabDiskId = "string"
          hostCaching = "string"
        }
      ]
      disallowPublicIpAddress = bool
      environmentId = "string"
      expirationDate = "string"
      galleryImageReference = {
        offer = "string"
        osType = "string"
        publisher = "string"
        sku = "string"
        version = "string"
      }
      isAuthenticationWithSshKey = bool
      labSubnetName = "string"
      labVirtualNetworkId = "string"
      networkInterface = {
        dnsName = "string"
        privateIpAddress = "string"
        publicIpAddress = "string"
        publicIpAddressId = "string"
        rdpAuthority = "string"
        sharedPublicIpAddressConfiguration = {
          inboundNatRules = [
            {
              backendPort = int
              frontendPort = int
              transportProtocol = "string"
            }
          ]
        }
        sshAuthority = "string"
        subnetId = "string"
        virtualNetworkId = "string"
      }
      notes = "string"
      ownerObjectId = "string"
      ownerUserPrincipalName = "string"
      password = "string"
      planId = "string"
      scheduleParameters = [
        {
          name = "string"
          properties = {
            dailyRecurrence = {
              time = "string"
            }
            hourlyRecurrence = {
              minute = int
            }
            notificationSettings = {
              emailRecipient = "string"
              notificationLocale = "string"
              status = "string"
              timeInMinutes = int
              webhookUrl = "string"
            }
            status = "string"
            targetResourceId = "string"
            taskType = "string"
            timeZoneId = "string"
            weeklyRecurrence = {
              time = "string"
              weekdays = [
                "string"
              ]
            }
          }
          tags = {
            {customized property} = "string"
          }
        }
      ]
      size = "string"
      sshKey = "string"
      storageType = "string"
      userName = "string"
    }
  }
}

Nilai Properti

Microsoft.DevTestLab/labs/virtualmachines

Name Description Value
lokasi Lokasi geografis tempat sumber daya berada string
name Nama sumber daya string (diperlukan)
parent_id ID sumber daya yang merupakan induk untuk sumber daya ini. ID untuk sumber daya jenis: lab
properties Properti sumber daya. LabVirtualMachineProperties (wajib)
tags Tag sumber daya Kamus nama dan nilai tag.
jenis Jenis sumber daya "Microsoft.DevTestLab/labs/virtualmachines@2018-09-15"

ArtifactInstallProperties

Name Description Value
artifactId Pengidentifikasi artefak. string
artifactTitle Judul artefak. string
deploymentStatusMessage Pesan status dari penyebaran. string
installTime Waktu artefak mulai diinstal pada komputer virtual. string
parameters Parameter artefak. ArtifactParameterProperties[]
status Status artefak. string
vmExtensionStatusMessage Pesan status dari ekstensi komputer virtual. string

ArtifactParameterProperties

Name Description Value
name Nama parameter artefak. string
value Nilai parameter artefak. string

AttachNewDataDiskOptions

Name Description Value
diskName Nama disk yang akan dilampirkan. string
diskSizeGiB Ukuran disk yang akan dilampirkan dalam Gibibyte. int
diskType Jenis penyimpanan untuk disk (yaitu Standar, Premium). 'Premium'
'Standard'
'StandardSSD'

DataDiskProperties

Name Description Value
attachNewDataDiskOptions Menentukan opsi untuk melampirkan disk baru ke komputer virtual. AttachNewDataDiskOptions
existingLabDiskId Menentukan id disk lab yang ada untuk dilampirkan ke komputer virtual. string
hostCaching Opsi penembolokan untuk disk data (yaitu None, ReadOnly, ReadWrite). 'None'
'ReadOnly'
'ReadWrite'

DayDetails

Name Description Value
time Waktu hari jadwal akan terjadi. string

GalleryImageReference

Name Description Value
offer Penawaran gambar galeri. string
osType Jenis OS gambar galeri. string
penerbit Penerbit gambar galeri. string
sku SKU gambar galeri. string
versi Versi gambar galeri. string

HourDetails

Name Description Value
minute Menit dalam satu jam jadwal akan berjalan. int

InboundNatRule

Name Description Value
backendPort Port tempat lalu lintas eksternal akan dialihkan. int
frontendPort Port titik akhir eksternal dari koneksi masuk. Kemungkinan rentang nilai antara 1 dan 65535, inklusif. Jika tidak ditentukan, nilai akan dialokasikan secara otomatis. int
transportProtocol Protokol transportasi untuk titik akhir. 'Tcp'
'Udp'

LabVirtualMachineProperties

Name Description Value
allowClaim Menunjukkan apakah pengguna lain dapat mengambil kepemilikan komputer virtual bool
artifacts Artefak yang akan diinstal pada komputer virtual. ArtifactInstallProperties[]
createdDate Tanggal pembuatan komputer virtual. string
customImageId Pengidentifikasi gambar kustom komputer virtual. string
dataDiskParameters Disk data baru atau yang sudah ada untuk dilampirkan ke komputer virtual setelah pembuatan DataDiskProperties[]
disallowPublicIpAddress Menunjukkan apakah komputer virtual akan dibuat tanpa alamat IP publik. bool
environmentId ID sumber daya lingkungan yang berisi komputer virtual ini, jika ada. string
expirationDate Tanggal kedaluwarsa untuk VM. string
galleryImageReference Referensi gambar Microsoft Marketplace Azure dari komputer virtual. GalleryImageReference
isAuthenticationWithSshKey Menunjukkan apakah komputer virtual ini menggunakan kunci SSH untuk autentikasi. bool
labSubnetName Nama subnet lab komputer virtual. string
labVirtualNetworkId Pengidentifikasi jaringan virtual lab komputer virtual. string
networkInterface Properti antarmuka jaringan. NetworkInterfaceProperties
notes Catatan komputer virtual. string
ownerObjectId Pengidentifikasi objek pemilik komputer virtual. string
ownerUserPrincipalName Nama utama pengguna pemilik komputer virtual. string
kata sandi Kata sandi administrator komputer virtual. string
planId Id paket yang terkait dengan gambar komputer virtual string
scheduleParameters Virtual Machine menjadwalkan untuk dibuat ScheduleCreationParameter[]
size Ukuran komputer virtual. string
sshKey Kunci SSH administrator komputer virtual. string
storageType Jenis penyimpanan yang digunakan untuk komputer virtual (yaitu Standar, Premium). string
userName Nama pengguna komputer virtual. string

LabVirtualMachineTags

Name Description Value

NetworkInterfaceProperties

Name Description Value
dnsName Nama DNS. string
privateIpAddress Alamat IP privat. string
publicIpAddress Alamat IP publik. string
publicIpAddressId ID sumber daya alamat IP publik. string
rdpAuthority Properti RdpAuthority adalah nama host DNS server atau alamat IP diikuti dengan nomor port layanan untuk RDP (Protokol Desktop Jarak Jauh). string
sharedPublicIpAddressConfiguration Konfigurasi untuk berbagi alamat IP publik di beberapa komputer virtual. SharedPublicIpAddressConfiguration
sshAuthority Properti SshAuthority adalah nama host DNS server atau alamat IP diikuti dengan nomor port layanan untuk SSH. string
subnetId ID sumber daya sub net. string
virtualNetworkId ID sumber daya jaringan virtual. string

NotificationSettings

Name Description Value
emailRecipient Penerima email untuk mengirim pemberitahuan ke (dapat menjadi daftar alamat email yang dipisahkan titik koma). string
notificationLocale Lokal yang digunakan saat mengirim pemberitahuan (fallback untuk bahasa yang tidak didukung adalah EN). string
status Jika pemberitahuan diaktifkan untuk jadwal ini (yaitu Diaktifkan, Dinonaktifkan). 'Disabled'
'Enabled'
timeInMinutes Waktu dalam menit sebelum peristiwa di mana pemberitahuan akan dikirim. int
webhookUrl URL webhook tempat pemberitahuan akan dikirim. string

ScheduleCreationParameter

Name Description Value
name Nama komputer atau lingkungan virtual string
properties Properti jadwal. ScheduleCreationParameterProperties
tags Tag sumber daya. ScheduleCreationParameterTags

ScheduleCreationParameterProperties

Name Description Value
dailyRecurrence Jika jadwal akan terjadi sekali setiap hari dalam seminggu, tentukan pengulangan harian. DayDetails
hourlyRecurrence Jika jadwal akan terjadi beberapa kali sehari, tentukan pengulangan per jam. HourDetails
notificationSettings Setelan notifikasi. NotificationSettings
status Status jadwal (yaitu Diaktifkan, Dinonaktifkan) 'Disabled'
'Enabled'
targetResourceId ID sumber daya tempat jadwal berada string
taskType Jenis tugas jadwal (misalnya LabVmsShutdownTask, LabVmAutoStart). string
timeZoneId ID zona waktu (misalnya Waktu Standar Tiongkok, Waktu Standar Greenland, waktu Standar Pasifik, dll.). Nilai yang mungkin untuk properti ini dapat ditemukan di IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) string
weeklyRecurrence Jika jadwal hanya akan terjadi beberapa hari dalam seminggu, tentukan pengulangan mingguan. WeekDetails

ScheduleCreationParameterTags

Name Description Value

SharedPublicIpAddressConfiguration

Name Description Value
inboundNatRules Aturan NAT masuk InboundNatRule[]

WeekDetails

Name Description Value
time Waktu pada hari jadwal akan terjadi. string
weekdays Hari-hari dalam seminggu di mana jadwal ditetapkan (misalnya Minggu, Senin, Selasa, dll.). string[]