Compartir a través de


Microsoft.DevTestLab labs/virtualmachines

Definición de recursos de Bicep

El tipo de recurso labs/virtualmachines se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un recurso Microsoft.DevTestLab/labs/virtualmachines, agregue el siguiente bicep a la plantilla.

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

Valores de propiedad

Microsoft.DevTestLab/labs/virtualmachines

Name Description Value
location Ubicación del recurso. string
name El nombre del recurso string (obligatorio)
parent En Bicep, puede especificar el recurso primario para un recurso secundario. Solo tiene que agregar esta propiedad cuando el recurso secundario se declara fuera del recurso primario.

Para obtener más información, consulte recurso secundario fuera del recurso primario.
Nombre simbólico del recurso de tipo: laboratorios
properties Propiedades del recurso. LabVirtualMachineProperties (obligatorio)
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas

ArtifactInstallProperties

Name Description Value
artifactId Identificador del artefacto. string
artifactTitle Título del artefacto. string
deploymentStatusMessage Mensaje de estado de la implementación. string
installTime Hora en que el artefacto comienza a instalarse en la máquina virtual. string
parameters Parámetros del artefacto. ArtifactParameterProperties[]
status Estado del artefacto. string
vmExtensionStatusMessage Mensaje de estado de la extensión de máquina virtual. string

ArtifactParameterProperties

Name Description Value
name Nombre del parámetro artifact. string
value Valor del parámetro artifact. string

AttachNewDataDiskOptions

Name Description Value
diskName Nombre del disco que se va a conectar. string
diskSizeGiB Tamaño del disco que se va a conectar en Gibibytes. int
diskType Tipo de almacenamiento para el disco (es decir, Estándar, Premium). 'Premium'
'Standard'
'StandardSSD'

DataDiskProperties

Name Description Value
attachNewDataDiskOptions Especifica las opciones para conectar un nuevo disco a la máquina virtual. AttachNewDataDiskOptions
existingLabDiskId Especifica el identificador de disco de laboratorio existente que se va a conectar a la máquina virtual. string
hostCaching Opción de almacenamiento en caché para un disco de datos (es decir, None, ReadOnly, ReadWrite). 'None'
'ReadOnly'
'ReadWrite'

DayDetails

Name Description Value
time Hora del día en que se producirá la programación. string

GalleryImageReference

Name Description Value
offer Oferta de la imagen de la galería. string
osType Tipo de sistema operativo de la imagen de la galería. string
publisher Publicador de la imagen de la galería. string
sku SKU de la imagen de la galería. string
version Versión de la imagen de la galería. string

HourDetails

Name Description Value
minute Minutos de la hora en que se ejecutará la programación. int

InboundNatRule

Name Description Value
backendPort Puerto al que se redirigirá el tráfico externo. int
frontendPort Puerto de punto de conexión externo de la conexión entrante. Los valores posibles oscilan entre 1 y 65535, ambos incluidos. Si no se especifica, se asignará automáticamente un valor. int
transportProtocol Protocolo de transporte para el punto de conexión. 'Tcp'
'Udp'

LabVirtualMachineProperties

Name Description Value
allowClaim Indica si otro usuario puede tomar posesión de la máquina virtual. bool
artifacts Artefactos que se van a instalar en la máquina virtual. ArtifactInstallProperties[]
createdDate Fecha de creación de la máquina virtual. string
customImageId Identificador de imagen personalizado de la máquina virtual. string
dataDiskParameters Discos de datos nuevos o existentes que se van a conectar a la máquina virtual después de la creación DataDiskProperties[]
disallowPublicIpAddress Indica si la máquina virtual se va a crear sin una dirección IP pública. bool
environmentId Identificador de recurso del entorno que contiene esta máquina virtual, si existe. string
expirationDate Fecha de expiración de la máquina virtual. string
galleryImageReference Referencia de imagen de Microsoft Azure Marketplace de la máquina virtual. GalleryImageReference
isAuthenticationWithSshKey Indica si esta máquina virtual usa una clave SSH para la autenticación. bool
labSubnetName Nombre de subred del laboratorio de la máquina virtual. string
labVirtualNetworkId Identificador de red virtual del laboratorio de la máquina virtual. string
networkInterface Propiedades de la interfaz de red. NetworkInterfaceProperties
notes Notas de la máquina virtual. string
ownerObjectId Identificador de objeto del propietario de la máquina virtual. string
ownerUserPrincipalName Nombre principal de usuario del propietario de la máquina virtual. string
password Contraseña del administrador de la máquina virtual. string
planId Identificador del plan asociado a la imagen de máquina virtual string
scheduleParameters Programaciones de máquina virtual que se van a crear ScheduleCreationParameter[]
size Tamaño de la máquina virtual. string
sshKey Clave SSH del administrador de la máquina virtual. string
storageType Tipo de almacenamiento que se va a usar para la máquina virtual (es decir, Estándar, Premium). string
userName Nombre de usuario de la máquina virtual. string

NetworkInterfaceProperties

Name Description Value
dnsName Nombre DNS. string
privateIpAddress Dirección IP privada. string
publicIpAddress Dirección IP pública. string
publicIpAddressId Identificador de recurso de la dirección IP pública. string
rdpAuthority La propiedad RdpAuthority es un nombre de host DNS del servidor o una dirección IP seguido del número de puerto de servicio para RDP (Protocolo de escritorio remoto). string
sharedPublicIpAddressConfiguration Configuración para compartir una dirección IP pública en varias máquinas virtuales. SharedPublicIpAddressConfiguration
sshAuthority La propiedad SshAuthority es un nombre de host DNS del servidor o una dirección IP seguido del número de puerto de servicio para SSH. string
subnetId Identificador de recurso de la subred. string
virtualNetworkId Identificador de recurso de la red virtual. string

NotificationSettings

Name Description Value
emailRecipient El destinatario del correo electrónico al que enviar notificaciones (puede ser una lista de direcciones de correo electrónico separadas por punto y coma). string
notificationLocale Configuración regional que se va a usar al enviar una notificación (la reserva de idiomas no admitidos es EN). string
status Si las notificaciones están habilitadas para esta programación (es decir, Habilitada, Deshabilitada). 'Disabled'
'Enabled'
timeInMinutes Tiempo en minutos antes del evento en el que se enviará la notificación. int
webhookUrl Dirección URL del webhook a la que se enviará la notificación. string

ResourceTags

Name Description Value

ScheduleCreationParameter

Name Description Value
name El nombre de la máquina virtual o el entorno string
properties Propiedades de la programación. ScheduleCreationParameterProperties
tags Etiquetas del recurso. ScheduleCreationParameterTags

ScheduleCreationParameterProperties

Name Description Value
dailyRecurrence Si la programación se producirá una vez cada día de la semana, especifique la periodicidad diaria. DayDetails
hourlyRecurrence Si la programación se producirá varias veces al día, especifique la periodicidad por hora. HourDetails
notificationSettings Configuración de notificaciones. NotificationSettings
status Estado de la programación (es decir, Habilitado, Deshabilitado) 'Disabled'
'Enabled'
targetResourceId Identificador de recurso al que pertenece la programación string
taskType El tipo de tarea de la programación (por ejemplo, LabVmsShutdownTask, LabVmAutoStart). string
timeZoneId El identificador de zona horaria (por ejemplo, hora estándar de China, hora estándar de Groenlandia, hora estándar del Pacífico, etc.). Los valores posibles para esta propiedad se pueden encontrar en IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) string
weeklyRecurrence Si la programación solo se producirá algunos días de la semana, especifique la periodicidad semanal. WeekDetails

ScheduleCreationParameterTags

Name Description Value

SharedPublicIpAddressConfiguration

Name Description Value
inboundNatRules Reglas NAT entrantes InboundNatRule[]

WeekDetails

Name Description Value
time Hora del día en que se producirá la programación. string
weekdays Los días de la semana para los que se establece la programación (por ejemplo, domingo, lunes, martes, etc.). string[]

Ejemplos de uso

Ejemplos de inicio rápido de Azure

Los siguientes plantillas de inicio rápido de Azure contienen ejemplos de Bicep para implementar este tipo de recurso.

Archivo de Bicep Description
Crea un laboratorio en Azure DevTest Labs con una máquina virtual reclamada Esta plantilla crea una nueva instancia de DevTest Lab /DTL con una máquina virtual de Windows Server 2019 Datacenter reclamada en ella. Más plantillas de inicio rápido de Azure Resource Manager para Azure DevTest Labs disponibles en https://github.com/Azure/azure-devtestlab/tree/master/ARMTemplates

Definición de recursos de plantilla de ARM

El tipo de recurso labs/virtualmachines se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un recurso Microsoft.DevTestLab/labs/virtualmachines, agregue el siguiente JSON a la plantilla.

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

Valores de propiedad

Microsoft.DevTestLab/labs/virtualmachines

Name Description Value
apiVersion La versión de api '2018-09-15'
location Ubicación del recurso. string
name El nombre del recurso string (obligatorio)
properties Propiedades del recurso. LabVirtualMachineProperties (obligatorio)
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta. Consulte etiquetas de en plantillas
type El tipo de recurso 'Microsoft.DevTestLab/labs/virtualmachines'

ArtifactInstallProperties

Name Description Value
artifactId Identificador del artefacto. string
artifactTitle Título del artefacto. string
deploymentStatusMessage Mensaje de estado de la implementación. string
installTime Hora en que el artefacto comienza a instalarse en la máquina virtual. string
parameters Parámetros del artefacto. ArtifactParameterProperties[]
status Estado del artefacto. string
vmExtensionStatusMessage Mensaje de estado de la extensión de máquina virtual. string

ArtifactParameterProperties

Name Description Value
name Nombre del parámetro artifact. string
value Valor del parámetro artifact. string

AttachNewDataDiskOptions

Name Description Value
diskName Nombre del disco que se va a conectar. string
diskSizeGiB Tamaño del disco que se va a conectar en Gibibytes. int
diskType Tipo de almacenamiento para el disco (es decir, Estándar, Premium). 'Premium'
'Standard'
'StandardSSD'

DataDiskProperties

Name Description Value
attachNewDataDiskOptions Especifica las opciones para conectar un nuevo disco a la máquina virtual. AttachNewDataDiskOptions
existingLabDiskId Especifica el identificador de disco de laboratorio existente que se va a conectar a la máquina virtual. string
hostCaching Opción de almacenamiento en caché para un disco de datos (es decir, None, ReadOnly, ReadWrite). 'None'
'ReadOnly'
'ReadWrite'

DayDetails

Name Description Value
time Hora del día en que se producirá la programación. string

GalleryImageReference

Name Description Value
offer Oferta de la imagen de la galería. string
osType Tipo de sistema operativo de la imagen de la galería. string
publisher Publicador de la imagen de la galería. string
sku SKU de la imagen de la galería. string
version Versión de la imagen de la galería. string

HourDetails

Name Description Value
minute Minutos de la hora en que se ejecutará la programación. int

InboundNatRule

Name Description Value
backendPort Puerto al que se redirigirá el tráfico externo. int
frontendPort Puerto de punto de conexión externo de la conexión entrante. Los valores posibles oscilan entre 1 y 65535, ambos incluidos. Si no se especifica, se asignará automáticamente un valor. int
transportProtocol Protocolo de transporte para el punto de conexión. 'Tcp'
'Udp'

LabVirtualMachineProperties

Name Description Value
allowClaim Indica si otro usuario puede tomar posesión de la máquina virtual. bool
artifacts Artefactos que se van a instalar en la máquina virtual. ArtifactInstallProperties[]
createdDate Fecha de creación de la máquina virtual. string
customImageId Identificador de imagen personalizado de la máquina virtual. string
dataDiskParameters Discos de datos nuevos o existentes que se van a conectar a la máquina virtual después de la creación DataDiskProperties[]
disallowPublicIpAddress Indica si la máquina virtual se va a crear sin una dirección IP pública. bool
environmentId Identificador de recurso del entorno que contiene esta máquina virtual, si existe. string
expirationDate Fecha de expiración de la máquina virtual. string
galleryImageReference Referencia de imagen de Microsoft Azure Marketplace de la máquina virtual. GalleryImageReference
isAuthenticationWithSshKey Indica si esta máquina virtual usa una clave SSH para la autenticación. bool
labSubnetName Nombre de subred del laboratorio de la máquina virtual. string
labVirtualNetworkId Identificador de red virtual del laboratorio de la máquina virtual. string
networkInterface Propiedades de la interfaz de red. NetworkInterfaceProperties
notes Notas de la máquina virtual. string
ownerObjectId Identificador de objeto del propietario de la máquina virtual. string
ownerUserPrincipalName Nombre principal de usuario del propietario de la máquina virtual. string
password Contraseña del administrador de la máquina virtual. string
planId Identificador del plan asociado a la imagen de máquina virtual string
scheduleParameters Programaciones de máquina virtual que se van a crear ScheduleCreationParameter[]
size Tamaño de la máquina virtual. string
sshKey Clave SSH del administrador de la máquina virtual. string
storageType Tipo de almacenamiento que se va a usar para la máquina virtual (es decir, Estándar, Premium). string
userName Nombre de usuario de la máquina virtual. string

NetworkInterfaceProperties

Name Description Value
dnsName Nombre DNS. string
privateIpAddress Dirección IP privada. string
publicIpAddress Dirección IP pública. string
publicIpAddressId Identificador de recurso de la dirección IP pública. string
rdpAuthority La propiedad RdpAuthority es un nombre de host DNS del servidor o una dirección IP seguido del número de puerto de servicio para RDP (Protocolo de escritorio remoto). string
sharedPublicIpAddressConfiguration Configuración para compartir una dirección IP pública en varias máquinas virtuales. SharedPublicIpAddressConfiguration
sshAuthority La propiedad SshAuthority es un nombre de host DNS del servidor o una dirección IP seguido del número de puerto de servicio para SSH. string
subnetId Identificador de recurso de la subred. string
virtualNetworkId Identificador de recurso de la red virtual. string

NotificationSettings

Name Description Value
emailRecipient El destinatario del correo electrónico al que enviar notificaciones (puede ser una lista de direcciones de correo electrónico separadas por punto y coma). string
notificationLocale Configuración regional que se va a usar al enviar una notificación (la reserva de idiomas no admitidos es EN). string
status Si las notificaciones están habilitadas para esta programación (es decir, Habilitada, Deshabilitada). 'Disabled'
'Enabled'
timeInMinutes Tiempo en minutos antes del evento en el que se enviará la notificación. int
webhookUrl Dirección URL del webhook a la que se enviará la notificación. string

ResourceTags

Name Description Value

ScheduleCreationParameter

Name Description Value
name El nombre de la máquina virtual o el entorno string
properties Propiedades de la programación. ScheduleCreationParameterProperties
tags Etiquetas del recurso. ScheduleCreationParameterTags

ScheduleCreationParameterProperties

Name Description Value
dailyRecurrence Si la programación se producirá una vez cada día de la semana, especifique la periodicidad diaria. DayDetails
hourlyRecurrence Si la programación se producirá varias veces al día, especifique la periodicidad por hora. HourDetails
notificationSettings Configuración de notificaciones. NotificationSettings
status Estado de la programación (es decir, Habilitado, Deshabilitado) 'Disabled'
'Enabled'
targetResourceId Identificador de recurso al que pertenece la programación string
taskType El tipo de tarea de la programación (por ejemplo, LabVmsShutdownTask, LabVmAutoStart). string
timeZoneId El identificador de zona horaria (por ejemplo, hora estándar de China, hora estándar de Groenlandia, hora estándar del Pacífico, etc.). Los valores posibles para esta propiedad se pueden encontrar en IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) string
weeklyRecurrence Si la programación solo se producirá algunos días de la semana, especifique la periodicidad semanal. WeekDetails

ScheduleCreationParameterTags

Name Description Value

SharedPublicIpAddressConfiguration

Name Description Value
inboundNatRules Reglas NAT entrantes InboundNatRule[]

WeekDetails

Name Description Value
time Hora del día en que se producirá la programación. string
weekdays Los días de la semana para los que se establece la programación (por ejemplo, domingo, lunes, martes, etc.). string[]

Ejemplos de uso

Plantillas de inicio rápido de Azure

Los siguientes plantillas de inicio rápido de Azure implementar este tipo de recurso.

Template Description
Crea un laboratorio en Azure DevTest Labs con una máquina virtual reclamada

Implementación en Azure
Esta plantilla crea una nueva instancia de DevTest Lab /DTL con una máquina virtual de Windows Server 2019 Datacenter reclamada en ella. Más plantillas de inicio rápido de Azure Resource Manager para Azure DevTest Labs disponibles en https://github.com/Azure/azure-devtestlab/tree/master/ARMTemplates

Definición de recursos de Terraform (proveedor AzAPI)

El tipo de recurso labs/virtualmachines se puede implementar con operaciones destinadas a:

Para obtener una lista de las propiedades modificadas en cada versión de API, consulte registro de cambios.

Formato de recurso

Para crear un recurso Microsoft.DevTestLab/labs/virtualmachines, agregue el siguiente terraform a la plantilla.

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

Valores de propiedad

Microsoft.DevTestLab/labs/virtualmachines

Name Description Value
location Ubicación del recurso. string
name El nombre del recurso string (obligatorio)
parent_id Identificador del recurso que es el elemento primario de este recurso. Identificador del recurso de tipo: laboratorios
properties Propiedades del recurso. LabVirtualMachineProperties (obligatorio)
tags Etiquetas de recursos Diccionario de nombres y valores de etiqueta.
type El tipo de recurso "Microsoft.DevTestLab/labs/virtualmachines@2018-09-15"

ArtifactInstallProperties

Name Description Value
artifactId Identificador del artefacto. string
artifactTitle Título del artefacto. string
deploymentStatusMessage Mensaje de estado de la implementación. string
installTime Hora en que el artefacto comienza a instalarse en la máquina virtual. string
parameters Parámetros del artefacto. ArtifactParameterProperties[]
status Estado del artefacto. string
vmExtensionStatusMessage Mensaje de estado de la extensión de máquina virtual. string

ArtifactParameterProperties

Name Description Value
name Nombre del parámetro artifact. string
value Valor del parámetro artifact. string

AttachNewDataDiskOptions

Name Description Value
diskName Nombre del disco que se va a conectar. string
diskSizeGiB Tamaño del disco que se va a conectar en Gibibytes. int
diskType Tipo de almacenamiento para el disco (es decir, Estándar, Premium). 'Premium'
'Standard'
'StandardSSD'

DataDiskProperties

Name Description Value
attachNewDataDiskOptions Especifica las opciones para conectar un nuevo disco a la máquina virtual. AttachNewDataDiskOptions
existingLabDiskId Especifica el identificador de disco de laboratorio existente que se va a conectar a la máquina virtual. string
hostCaching Opción de almacenamiento en caché para un disco de datos (es decir, None, ReadOnly, ReadWrite). 'None'
'ReadOnly'
'ReadWrite'

DayDetails

Name Description Value
time Hora del día en que se producirá la programación. string

GalleryImageReference

Name Description Value
offer Oferta de la imagen de la galería. string
osType Tipo de sistema operativo de la imagen de la galería. string
publisher Publicador de la imagen de la galería. string
sku SKU de la imagen de la galería. string
version Versión de la imagen de la galería. string

HourDetails

Name Description Value
minute Minutos de la hora en que se ejecutará la programación. int

InboundNatRule

Name Description Value
backendPort Puerto al que se redirigirá el tráfico externo. int
frontendPort Puerto de punto de conexión externo de la conexión entrante. Los valores posibles oscilan entre 1 y 65535, ambos incluidos. Si no se especifica, se asignará automáticamente un valor. int
transportProtocol Protocolo de transporte para el punto de conexión. 'Tcp'
'Udp'

LabVirtualMachineProperties

Name Description Value
allowClaim Indica si otro usuario puede tomar posesión de la máquina virtual. bool
artifacts Artefactos que se van a instalar en la máquina virtual. ArtifactInstallProperties[]
createdDate Fecha de creación de la máquina virtual. string
customImageId Identificador de imagen personalizado de la máquina virtual. string
dataDiskParameters Discos de datos nuevos o existentes que se van a conectar a la máquina virtual después de la creación DataDiskProperties[]
disallowPublicIpAddress Indica si la máquina virtual se va a crear sin una dirección IP pública. bool
environmentId Identificador de recurso del entorno que contiene esta máquina virtual, si existe. string
expirationDate Fecha de expiración de la máquina virtual. string
galleryImageReference Referencia de imagen de Microsoft Azure Marketplace de la máquina virtual. GalleryImageReference
isAuthenticationWithSshKey Indica si esta máquina virtual usa una clave SSH para la autenticación. bool
labSubnetName Nombre de subred del laboratorio de la máquina virtual. string
labVirtualNetworkId Identificador de red virtual del laboratorio de la máquina virtual. string
networkInterface Propiedades de la interfaz de red. NetworkInterfaceProperties
notes Notas de la máquina virtual. string
ownerObjectId Identificador de objeto del propietario de la máquina virtual. string
ownerUserPrincipalName Nombre principal de usuario del propietario de la máquina virtual. string
password Contraseña del administrador de la máquina virtual. string
planId Identificador del plan asociado a la imagen de máquina virtual string
scheduleParameters Programaciones de máquina virtual que se van a crear ScheduleCreationParameter[]
size Tamaño de la máquina virtual. string
sshKey Clave SSH del administrador de la máquina virtual. string
storageType Tipo de almacenamiento que se va a usar para la máquina virtual (es decir, Estándar, Premium). string
userName Nombre de usuario de la máquina virtual. string

NetworkInterfaceProperties

Name Description Value
dnsName Nombre DNS. string
privateIpAddress Dirección IP privada. string
publicIpAddress Dirección IP pública. string
publicIpAddressId Identificador de recurso de la dirección IP pública. string
rdpAuthority La propiedad RdpAuthority es un nombre de host DNS del servidor o una dirección IP seguido del número de puerto de servicio para RDP (Protocolo de escritorio remoto). string
sharedPublicIpAddressConfiguration Configuración para compartir una dirección IP pública en varias máquinas virtuales. SharedPublicIpAddressConfiguration
sshAuthority La propiedad SshAuthority es un nombre de host DNS del servidor o una dirección IP seguido del número de puerto de servicio para SSH. string
subnetId Identificador de recurso de la subred. string
virtualNetworkId Identificador de recurso de la red virtual. string

NotificationSettings

Name Description Value
emailRecipient El destinatario del correo electrónico al que enviar notificaciones (puede ser una lista de direcciones de correo electrónico separadas por punto y coma). string
notificationLocale Configuración regional que se va a usar al enviar una notificación (la reserva de idiomas no admitidos es EN). string
status Si las notificaciones están habilitadas para esta programación (es decir, Habilitada, Deshabilitada). 'Disabled'
'Enabled'
timeInMinutes Tiempo en minutos antes del evento en el que se enviará la notificación. int
webhookUrl Dirección URL del webhook a la que se enviará la notificación. string

ResourceTags

Name Description Value

ScheduleCreationParameter

Name Description Value
name El nombre de la máquina virtual o el entorno string
properties Propiedades de la programación. ScheduleCreationParameterProperties
tags Etiquetas del recurso. ScheduleCreationParameterTags

ScheduleCreationParameterProperties

Name Description Value
dailyRecurrence Si la programación se producirá una vez cada día de la semana, especifique la periodicidad diaria. DayDetails
hourlyRecurrence Si la programación se producirá varias veces al día, especifique la periodicidad por hora. HourDetails
notificationSettings Configuración de notificaciones. NotificationSettings
status Estado de la programación (es decir, Habilitado, Deshabilitado) 'Disabled'
'Enabled'
targetResourceId Identificador de recurso al que pertenece la programación string
taskType El tipo de tarea de la programación (por ejemplo, LabVmsShutdownTask, LabVmAutoStart). string
timeZoneId El identificador de zona horaria (por ejemplo, hora estándar de China, hora estándar de Groenlandia, hora estándar del Pacífico, etc.). Los valores posibles para esta propiedad se pueden encontrar en IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) string
weeklyRecurrence Si la programación solo se producirá algunos días de la semana, especifique la periodicidad semanal. WeekDetails

ScheduleCreationParameterTags

Name Description Value

SharedPublicIpAddressConfiguration

Name Description Value
inboundNatRules Reglas NAT entrantes InboundNatRule[]

WeekDetails

Name Description Value
time Hora del día en que se producirá la programación. string
weekdays Los días de la semana para los que se establece la programación (por ejemplo, domingo, lunes, martes, etc.). string[]

Ejemplos de uso

Ejemplos de Terraform

Un ejemplo básico de implementación de una máquina virtual dentro de un laboratorio de pruebas de desarrollo.

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    = ["*"]
}