Partilhar via


Laboratórios/máquinas virtuais Microsoft.DevTestLab

Definição de recursos do bíceps

O tipo de recurso labs/virtualmachines pode ser implantado com operações que visam:

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

Formato do recurso

Para criar um recurso Microsoft.DevTestLab/labs/virtualmachines, adicione o seguinte Bicep ao seu modelo.

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 propriedade

Microsoft.DevTestLab/labs/virtualmachines

Name Description Value
localização A localização do recurso. cadeia (de caracteres)
name O nome do recurso string (obrigatório)
elemento principal No Bicep, você pode especificar o recurso pai para um recurso filho. Você só precisa adicionar essa propriedade quando o recurso filho é declarado fora do recurso pai.

Para obter mais informações, consulte recurso filho fora do recurso pai.
Nome simbólico para recurso do tipo: labs
properties As propriedades do recurso. LabVirtualMachineProperties (obrigatório)
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Tags em modelos

ArtifactInstallProperties

Name Description Value
artifactId O identificador do artefato. cadeia (de caracteres)
artifactTitle O título do artefato. cadeia (de caracteres)
deploymentStatusMessage A mensagem de status da implantação. cadeia (de caracteres)
installTime A hora em que o artefato começa a ser instalado na máquina virtual. cadeia (de caracteres)
parameters Os parâmetros do artefato. ArtifactParameterProperties[]
estado O status do artefato. cadeia (de caracteres)
vmExtensionStatusMessage A mensagem de status da extensão da máquina virtual. cadeia (de caracteres)

ArtifactParameterProperties

Name Description Value
name O nome do parâmetro de artefato. cadeia (de caracteres)
value O valor do parâmetro artifact. cadeia (de caracteres)

AttachNewDataDiskOptions

Name Description Value
diskName O nome do disco a ser anexado. cadeia (de caracteres)
diskSizeGiB Tamanho do disco a ser anexado em Gibibytes. int
diskType O tipo de armazenamento para o disco (ou seja, Standard, Premium). 'Premium'
'Standard'
'StandardSSD'

DataDiskProperties

Name Description Value
attachNewDataDiskOptions Especifica opções para anexar um novo disco à máquina virtual. AttachNewDataDiskOptions
existingLabDiskId Especifica a ID do disco de laboratório existente a ser anexada à máquina virtual. cadeia (de caracteres)
hostCaching Opção de cache para um disco de dados (ou seja, None, ReadOnly, ReadWrite). 'None'
'ReadOnly'
'ReadWrite'

DayDetails

Name Description Value
time A hora do dia o horário ocorrerá. cadeia (de caracteres)

GalleryImageReference

Name Description Value
oferta A oferta da imagem da galeria. cadeia (de caracteres)
osType O tipo de SO da imagem da galeria. cadeia (de caracteres)
editor O editor da imagem da galeria. cadeia (de caracteres)
sku O SKU da imagem da galeria. cadeia (de caracteres)
versão A versão da imagem da galeria. cadeia (de caracteres)

HourDetails

Name Description Value
minute Minutos da hora em que o horário será executado. int

InboundNatRule

Name Description Value
backendPort A porta para a qual o tráfego externo será redirecionado. int
frontendPort A porta do ponto de extremidade externo da conexão de entrada. Os valores possíveis variam entre 1 e 65535, inclusive. Se não for especificado, um valor será alocado automaticamente. int
transportProtocol O protocolo de transporte para o ponto de extremidade. 'Tcp'
'Udp'

LabVirtualMachineProperties

Name Description Value
allowClaim Indica se outro usuário pode assumir a propriedade da máquina virtual bool
artifacts Os artefatos a serem instalados na máquina virtual. ArtifactInstallProperties[]
createdDate A data de criação da máquina virtual. cadeia (de caracteres)
customImageId O identificador de imagem personalizado da máquina virtual. cadeia (de caracteres)
dataDiskParameters Discos de dados novos ou existentes para anexar à máquina virtual após a criação DataDiskProperties[]
disallowPublicIpAddress Indica se a máquina virtual deve ser criada sem um endereço IP público. bool
environmentId A ID do recurso do ambiente que contém essa máquina virtual, se houver. cadeia (de caracteres)
expirationDate A data de expiração da VM. cadeia (de caracteres)
galleryImageReference A referência de imagem do Microsoft Azure Marketplace da máquina virtual. GalleryImageReference
isAuthenticationWithSshKey Indica se essa máquina virtual usa uma chave SSH para autenticação. bool
labSubnetName O nome da sub-rede de laboratório da máquina virtual. cadeia (de caracteres)
labVirtualNetworkId O identificador de rede virtual de laboratório da máquina virtual. cadeia (de caracteres)
networkInterface As propriedades da interface de rede. NetworkInterfaceProperties
notes As notas da máquina virtual. cadeia (de caracteres)
ownerObjectId O identificador de objeto do proprietário da máquina virtual. cadeia (de caracteres)
ownerUserPrincipalName O nome principal do usuário do proprietário da máquina virtual. cadeia (de caracteres)
palavra-passe A senha do administrador da máquina virtual. cadeia (de caracteres)
planId A id do plano associado à imagem da máquina virtual cadeia (de caracteres)
scheduleParameters Agendamentos de máquinas virtuais a serem criados ScheduleCreationParameter[]
size O tamanho da máquina virtual. cadeia (de caracteres)
sshKey A chave SSH do administrador da máquina virtual. cadeia (de caracteres)
storageType Tipo de armazenamento a ser usado para máquina virtual (ou seja, Standard, Premium). cadeia (de caracteres)
userName O nome de usuário da máquina virtual. cadeia (de caracteres)

NetworkInterfaceProperties

Name Description Value
dnsName O nome DNS. cadeia (de caracteres)
privateIpAddress O endereço IP privado. cadeia (de caracteres)
publicIpAddress O endereço IP público. cadeia (de caracteres)
publicIpAddressId O ID do recurso do endereço IP público. cadeia (de caracteres)
rdpAuthority A propriedade RdpAuthority é um nome de host DNS do servidor ou endereço IP seguido pelo número da porta de serviço para RDP (Protocolo de Área de Trabalho Remota). cadeia (de caracteres)
sharedPublicIpAddressConfiguration A configuração para compartilhar um endereço IP público em várias máquinas virtuais. SharedPublicIpAddressConfiguration
sshAuthority A propriedade SshAuthority é um nome de host DNS do servidor ou endereço IP seguido pelo número da porta de serviço para SSH. cadeia (de caracteres)
subnetId O ID do recurso da sub-rede. cadeia (de caracteres)
virtualNetworkId O ID do recurso da rede virtual. cadeia (de caracteres)

NotificationSettings

Name Description Value
emailRecipient O destinatário do e-mail para o qual enviar notificações (pode ser uma lista de endereços de e-mail separados por ponto-e-vírgula). cadeia (de caracteres)
notificationLocale A localidade a ser usada ao enviar uma notificação (fallback para idiomas não suportados é EN). cadeia (de caracteres)
estado Se as notificações estiverem habilitadas para esse agendamento (ou seja, Habilitado, Desativado). 'Disabled'
'Enabled'
timeInMinutes Tempo em minutos antes do evento em que a notificação será enviada. int
webhookUrl O URL do webhook para o qual a notificação será enviada. cadeia (de caracteres)

ResourceTags

Name Description Value

ScheduleCreationParameter

Name Description Value
name O nome da máquina virtual ou do ambiente cadeia (de caracteres)
properties As propriedades da agenda. ScheduleCreationParameterProperties
tags As tags do recurso. ScheduleCreationParameterTags

ScheduleCreationParameterProperties

Name Description Value
dailyRecurrence Se o horário ocorrer uma vez em cada dia da semana, especifique a recorrência diária. DayDetails
hourlyRecurrence Se o agendamento ocorrer várias vezes ao dia, especifique a recorrência horária. HourDetails
notificationSettings Configurações de notificação. NotificationSettings
estado O status da agenda (ou seja, Habilitado, Desativado) 'Disabled'
'Enabled'
targetResourceId O ID do recurso ao qual a agenda pertence cadeia (de caracteres)
taskType O tipo de tarefa do cronograma (por exemplo, LabVmsShutdownTask, LabVmAutoStart). cadeia (de caracteres)
timeZoneId O ID do fuso horário (por exemplo, Hora Padrão da China, Hora Padrão da Groenlândia, Hora Padrão do Pacífico, etc.). Os valores possíveis para esta propriedade podem ser encontrados em IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) cadeia (de caracteres)
weeklyRecurrence Se o horário ocorrer apenas alguns dias da semana, especifique a recorrência semanal. WeekDetails

ScheduleCreationParameterTags

Name Description Value

SharedPublicIpAddressConfiguration

Name Description Value
inboundNatRules As novas regras NAT InboundNatRule[]

WeekDetails

Name Description Value
time A hora do dia em que ocorrerá o agendamento. cadeia (de caracteres)
weekdays Os dias da semana para os quais o horário está definido (por exemplo, domingo, segunda-feira, terça-feira, etc.). string[]

Exemplos de uso

Exemplos de início rápido do Azure

Os seguintes modelos início rápido do Azure contêm exemplos de Bicep para implantar esse tipo de recurso.

Arquivo Bicep Description
Cria um laboratório no Azure DevTest Labs com uma VM declarada Este modelo cria uma nova instância do DevTest Lab/DTL com uma VM de Datacenter do Windows Server 2019 declarada. Mais modelos de início rápido do Azure Resource Manager para o Azure DevTest Labs disponíveis em https://github.com/Azure/azure-devtestlab/tree/master/ARMTemplates

Definição de recurso de modelo ARM

O tipo de recurso labs/virtualmachines pode ser implantado com operações que visam:

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

Formato do recurso

Para criar um recurso Microsoft.DevTestLab/labs/virtualmachines, adicione o seguinte JSON ao seu modelo.

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

Microsoft.DevTestLab/labs/virtualmachines

Name Description Value
apiVersion A versão api '2018-09-15'
localização A localização do recurso. cadeia (de caracteres)
name O nome do recurso string (obrigatório)
properties As propriedades do recurso. LabVirtualMachineProperties (obrigatório)
tags Etiquetas de recursos Dicionário de nomes e valores de tags. Consulte Tags em modelos
tipo O tipo de recurso 'Microsoft.DevTestLab/labs/virtualmachines'

ArtifactInstallProperties

Name Description Value
artifactId O identificador do artefato. cadeia (de caracteres)
artifactTitle O título do artefato. cadeia (de caracteres)
deploymentStatusMessage A mensagem de status da implantação. cadeia (de caracteres)
installTime A hora em que o artefato começa a ser instalado na máquina virtual. cadeia (de caracteres)
parameters Os parâmetros do artefato. ArtifactParameterProperties[]
estado O status do artefato. cadeia (de caracteres)
vmExtensionStatusMessage A mensagem de status da extensão da máquina virtual. cadeia (de caracteres)

ArtifactParameterProperties

Name Description Value
name O nome do parâmetro de artefato. cadeia (de caracteres)
value O valor do parâmetro artifact. cadeia (de caracteres)

AttachNewDataDiskOptions

Name Description Value
diskName O nome do disco a ser anexado. cadeia (de caracteres)
diskSizeGiB Tamanho do disco a ser anexado em Gibibytes. int
diskType O tipo de armazenamento para o disco (ou seja, Standard, Premium). 'Premium'
'Standard'
'StandardSSD'

DataDiskProperties

Name Description Value
attachNewDataDiskOptions Especifica opções para anexar um novo disco à máquina virtual. AttachNewDataDiskOptions
existingLabDiskId Especifica a ID do disco de laboratório existente a ser anexada à máquina virtual. cadeia (de caracteres)
hostCaching Opção de cache para um disco de dados (ou seja, None, ReadOnly, ReadWrite). 'None'
'ReadOnly'
'ReadWrite'

DayDetails

Name Description Value
time A hora do dia o horário ocorrerá. cadeia (de caracteres)

GalleryImageReference

Name Description Value
oferta A oferta da imagem da galeria. cadeia (de caracteres)
osType O tipo de SO da imagem da galeria. cadeia (de caracteres)
editor O editor da imagem da galeria. cadeia (de caracteres)
sku O SKU da imagem da galeria. cadeia (de caracteres)
versão A versão da imagem da galeria. cadeia (de caracteres)

HourDetails

Name Description Value
minute Minutos da hora em que o horário será executado. int

InboundNatRule

Name Description Value
backendPort A porta para a qual o tráfego externo será redirecionado. int
frontendPort A porta do ponto de extremidade externo da conexão de entrada. Os valores possíveis variam entre 1 e 65535, inclusive. Se não for especificado, um valor será alocado automaticamente. int
transportProtocol O protocolo de transporte para o ponto de extremidade. 'Tcp'
'Udp'

LabVirtualMachineProperties

Name Description Value
allowClaim Indica se outro usuário pode assumir a propriedade da máquina virtual bool
artifacts Os artefatos a serem instalados na máquina virtual. ArtifactInstallProperties[]
createdDate A data de criação da máquina virtual. cadeia (de caracteres)
customImageId O identificador de imagem personalizado da máquina virtual. cadeia (de caracteres)
dataDiskParameters Discos de dados novos ou existentes para anexar à máquina virtual após a criação DataDiskProperties[]
disallowPublicIpAddress Indica se a máquina virtual deve ser criada sem um endereço IP público. bool
environmentId A ID do recurso do ambiente que contém essa máquina virtual, se houver. cadeia (de caracteres)
expirationDate A data de expiração da VM. cadeia (de caracteres)
galleryImageReference A referência de imagem do Microsoft Azure Marketplace da máquina virtual. GalleryImageReference
isAuthenticationWithSshKey Indica se essa máquina virtual usa uma chave SSH para autenticação. bool
labSubnetName O nome da sub-rede de laboratório da máquina virtual. cadeia (de caracteres)
labVirtualNetworkId O identificador de rede virtual de laboratório da máquina virtual. cadeia (de caracteres)
networkInterface As propriedades da interface de rede. NetworkInterfaceProperties
notes As notas da máquina virtual. cadeia (de caracteres)
ownerObjectId O identificador de objeto do proprietário da máquina virtual. cadeia (de caracteres)
ownerUserPrincipalName O nome principal do usuário do proprietário da máquina virtual. cadeia (de caracteres)
palavra-passe A senha do administrador da máquina virtual. cadeia (de caracteres)
planId A id do plano associado à imagem da máquina virtual cadeia (de caracteres)
scheduleParameters Agendamentos de máquinas virtuais a serem criados ScheduleCreationParameter[]
size O tamanho da máquina virtual. cadeia (de caracteres)
sshKey A chave SSH do administrador da máquina virtual. cadeia (de caracteres)
storageType Tipo de armazenamento a ser usado para máquina virtual (ou seja, Standard, Premium). cadeia (de caracteres)
userName O nome de usuário da máquina virtual. cadeia (de caracteres)

NetworkInterfaceProperties

Name Description Value
dnsName O nome DNS. cadeia (de caracteres)
privateIpAddress O endereço IP privado. cadeia (de caracteres)
publicIpAddress O endereço IP público. cadeia (de caracteres)
publicIpAddressId O ID do recurso do endereço IP público. cadeia (de caracteres)
rdpAuthority A propriedade RdpAuthority é um nome de host DNS do servidor ou endereço IP seguido pelo número da porta de serviço para RDP (Protocolo de Área de Trabalho Remota). cadeia (de caracteres)
sharedPublicIpAddressConfiguration A configuração para compartilhar um endereço IP público em várias máquinas virtuais. SharedPublicIpAddressConfiguration
sshAuthority A propriedade SshAuthority é um nome de host DNS do servidor ou endereço IP seguido pelo número da porta de serviço para SSH. cadeia (de caracteres)
subnetId O ID do recurso da sub-rede. cadeia (de caracteres)
virtualNetworkId O ID do recurso da rede virtual. cadeia (de caracteres)

NotificationSettings

Name Description Value
emailRecipient O destinatário do e-mail para o qual enviar notificações (pode ser uma lista de endereços de e-mail separados por ponto-e-vírgula). cadeia (de caracteres)
notificationLocale A localidade a ser usada ao enviar uma notificação (fallback para idiomas não suportados é EN). cadeia (de caracteres)
estado Se as notificações estiverem habilitadas para esse agendamento (ou seja, Habilitado, Desativado). 'Disabled'
'Enabled'
timeInMinutes Tempo em minutos antes do evento em que a notificação será enviada. int
webhookUrl O URL do webhook para o qual a notificação será enviada. cadeia (de caracteres)

ResourceTags

Name Description Value

ScheduleCreationParameter

Name Description Value
name O nome da máquina virtual ou do ambiente cadeia (de caracteres)
properties As propriedades da agenda. ScheduleCreationParameterProperties
tags As tags do recurso. ScheduleCreationParameterTags

ScheduleCreationParameterProperties

Name Description Value
dailyRecurrence Se o horário ocorrer uma vez em cada dia da semana, especifique a recorrência diária. DayDetails
hourlyRecurrence Se o agendamento ocorrer várias vezes ao dia, especifique a recorrência horária. HourDetails
notificationSettings Configurações de notificação. NotificationSettings
estado O status da agenda (ou seja, Habilitado, Desativado) 'Disabled'
'Enabled'
targetResourceId O ID do recurso ao qual a agenda pertence cadeia (de caracteres)
taskType O tipo de tarefa do cronograma (por exemplo, LabVmsShutdownTask, LabVmAutoStart). cadeia (de caracteres)
timeZoneId O ID do fuso horário (por exemplo, Hora Padrão da China, Hora Padrão da Groenlândia, Hora Padrão do Pacífico, etc.). Os valores possíveis para esta propriedade podem ser encontrados em IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) cadeia (de caracteres)
weeklyRecurrence Se o horário ocorrer apenas alguns dias da semana, especifique a recorrência semanal. WeekDetails

ScheduleCreationParameterTags

Name Description Value

SharedPublicIpAddressConfiguration

Name Description Value
inboundNatRules As novas regras NAT InboundNatRule[]

WeekDetails

Name Description Value
time A hora do dia em que ocorrerá o agendamento. cadeia (de caracteres)
weekdays Os dias da semana para os quais o horário está definido (por exemplo, domingo, segunda-feira, terça-feira, etc.). string[]

Exemplos de uso

Modelos de início rápido do Azure

Os seguintes modelos de início rápido do Azure implantar esse tipo de recurso.

Template Description
Cria um laboratório no Azure DevTest Labs com uma VM declarada

Implantar no Azure
Este modelo cria uma nova instância do DevTest Lab/DTL com uma VM de Datacenter do Windows Server 2019 declarada. Mais modelos de início rápido do Azure Resource Manager para o Azure DevTest Labs disponíveis em https://github.com/Azure/azure-devtestlab/tree/master/ARMTemplates

Definição de recursos Terraform (provedor AzAPI)

O tipo de recurso labs/virtualmachines pode ser implantado com operações que visam:

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

Formato do recurso

Para criar um recurso Microsoft.DevTestLab/labs/virtualmachines, adicione o seguinte Terraform ao seu modelo.

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 propriedade

Microsoft.DevTestLab/labs/virtualmachines

Name Description Value
localização A localização do recurso. cadeia (de caracteres)
name O nome do recurso string (obrigatório)
parent_id A ID do recurso que é o pai para este recurso. ID do recurso do tipo: laboratórios
properties As propriedades do recurso. LabVirtualMachineProperties (obrigatório)
tags Etiquetas de recursos Dicionário de nomes e valores de tags.
tipo O tipo de recurso "Microsoft.DevTestLab/labs/virtualmachines@2018-09-15"

ArtifactInstallProperties

Name Description Value
artifactId O identificador do artefato. cadeia (de caracteres)
artifactTitle O título do artefato. cadeia (de caracteres)
deploymentStatusMessage A mensagem de status da implantação. cadeia (de caracteres)
installTime A hora em que o artefato começa a ser instalado na máquina virtual. cadeia (de caracteres)
parameters Os parâmetros do artefato. ArtifactParameterProperties[]
estado O status do artefato. cadeia (de caracteres)
vmExtensionStatusMessage A mensagem de status da extensão da máquina virtual. cadeia (de caracteres)

ArtifactParameterProperties

Name Description Value
name O nome do parâmetro de artefato. cadeia (de caracteres)
value O valor do parâmetro artifact. cadeia (de caracteres)

AttachNewDataDiskOptions

Name Description Value
diskName O nome do disco a ser anexado. cadeia (de caracteres)
diskSizeGiB Tamanho do disco a ser anexado em Gibibytes. int
diskType O tipo de armazenamento para o disco (ou seja, Standard, Premium). 'Premium'
'Standard'
'StandardSSD'

DataDiskProperties

Name Description Value
attachNewDataDiskOptions Especifica opções para anexar um novo disco à máquina virtual. AttachNewDataDiskOptions
existingLabDiskId Especifica a ID do disco de laboratório existente a ser anexada à máquina virtual. cadeia (de caracteres)
hostCaching Opção de cache para um disco de dados (ou seja, None, ReadOnly, ReadWrite). 'None'
'ReadOnly'
'ReadWrite'

DayDetails

Name Description Value
time A hora do dia o horário ocorrerá. cadeia (de caracteres)

GalleryImageReference

Name Description Value
oferta A oferta da imagem da galeria. cadeia (de caracteres)
osType O tipo de SO da imagem da galeria. cadeia (de caracteres)
editor O editor da imagem da galeria. cadeia (de caracteres)
sku O SKU da imagem da galeria. cadeia (de caracteres)
versão A versão da imagem da galeria. cadeia (de caracteres)

HourDetails

Name Description Value
minute Minutos da hora em que o horário será executado. int

InboundNatRule

Name Description Value
backendPort A porta para a qual o tráfego externo será redirecionado. int
frontendPort A porta do ponto de extremidade externo da conexão de entrada. Os valores possíveis variam entre 1 e 65535, inclusive. Se não for especificado, um valor será alocado automaticamente. int
transportProtocol O protocolo de transporte para o ponto de extremidade. 'Tcp'
'Udp'

LabVirtualMachineProperties

Name Description Value
allowClaim Indica se outro usuário pode assumir a propriedade da máquina virtual bool
artifacts Os artefatos a serem instalados na máquina virtual. ArtifactInstallProperties[]
createdDate A data de criação da máquina virtual. cadeia (de caracteres)
customImageId O identificador de imagem personalizado da máquina virtual. cadeia (de caracteres)
dataDiskParameters Discos de dados novos ou existentes para anexar à máquina virtual após a criação DataDiskProperties[]
disallowPublicIpAddress Indica se a máquina virtual deve ser criada sem um endereço IP público. bool
environmentId A ID do recurso do ambiente que contém essa máquina virtual, se houver. cadeia (de caracteres)
expirationDate A data de expiração da VM. cadeia (de caracteres)
galleryImageReference A referência de imagem do Microsoft Azure Marketplace da máquina virtual. GalleryImageReference
isAuthenticationWithSshKey Indica se essa máquina virtual usa uma chave SSH para autenticação. bool
labSubnetName O nome da sub-rede de laboratório da máquina virtual. cadeia (de caracteres)
labVirtualNetworkId O identificador de rede virtual de laboratório da máquina virtual. cadeia (de caracteres)
networkInterface As propriedades da interface de rede. NetworkInterfaceProperties
notes As notas da máquina virtual. cadeia (de caracteres)
ownerObjectId O identificador de objeto do proprietário da máquina virtual. cadeia (de caracteres)
ownerUserPrincipalName O nome principal do usuário do proprietário da máquina virtual. cadeia (de caracteres)
palavra-passe A senha do administrador da máquina virtual. cadeia (de caracteres)
planId A id do plano associado à imagem da máquina virtual cadeia (de caracteres)
scheduleParameters Agendamentos de máquinas virtuais a serem criados ScheduleCreationParameter[]
size O tamanho da máquina virtual. cadeia (de caracteres)
sshKey A chave SSH do administrador da máquina virtual. cadeia (de caracteres)
storageType Tipo de armazenamento a ser usado para máquina virtual (ou seja, Standard, Premium). cadeia (de caracteres)
userName O nome de usuário da máquina virtual. cadeia (de caracteres)

NetworkInterfaceProperties

Name Description Value
dnsName O nome DNS. cadeia (de caracteres)
privateIpAddress O endereço IP privado. cadeia (de caracteres)
publicIpAddress O endereço IP público. cadeia (de caracteres)
publicIpAddressId O ID do recurso do endereço IP público. cadeia (de caracteres)
rdpAuthority A propriedade RdpAuthority é um nome de host DNS do servidor ou endereço IP seguido pelo número da porta de serviço para RDP (Protocolo de Área de Trabalho Remota). cadeia (de caracteres)
sharedPublicIpAddressConfiguration A configuração para compartilhar um endereço IP público em várias máquinas virtuais. SharedPublicIpAddressConfiguration
sshAuthority A propriedade SshAuthority é um nome de host DNS do servidor ou endereço IP seguido pelo número da porta de serviço para SSH. cadeia (de caracteres)
subnetId O ID do recurso da sub-rede. cadeia (de caracteres)
virtualNetworkId O ID do recurso da rede virtual. cadeia (de caracteres)

NotificationSettings

Name Description Value
emailRecipient O destinatário do e-mail para o qual enviar notificações (pode ser uma lista de endereços de e-mail separados por ponto-e-vírgula). cadeia (de caracteres)
notificationLocale A localidade a ser usada ao enviar uma notificação (fallback para idiomas não suportados é EN). cadeia (de caracteres)
estado Se as notificações estiverem habilitadas para esse agendamento (ou seja, Habilitado, Desativado). 'Disabled'
'Enabled'
timeInMinutes Tempo em minutos antes do evento em que a notificação será enviada. int
webhookUrl O URL do webhook para o qual a notificação será enviada. cadeia (de caracteres)

ResourceTags

Name Description Value

ScheduleCreationParameter

Name Description Value
name O nome da máquina virtual ou do ambiente cadeia (de caracteres)
properties As propriedades da agenda. ScheduleCreationParameterProperties
tags As tags do recurso. ScheduleCreationParameterTags

ScheduleCreationParameterProperties

Name Description Value
dailyRecurrence Se o horário ocorrer uma vez em cada dia da semana, especifique a recorrência diária. DayDetails
hourlyRecurrence Se o agendamento ocorrer várias vezes ao dia, especifique a recorrência horária. HourDetails
notificationSettings Configurações de notificação. NotificationSettings
estado O status da agenda (ou seja, Habilitado, Desativado) 'Disabled'
'Enabled'
targetResourceId O ID do recurso ao qual a agenda pertence cadeia (de caracteres)
taskType O tipo de tarefa do cronograma (por exemplo, LabVmsShutdownTask, LabVmAutoStart). cadeia (de caracteres)
timeZoneId O ID do fuso horário (por exemplo, Hora Padrão da China, Hora Padrão da Groenlândia, Hora Padrão do Pacífico, etc.). Os valores possíveis para esta propriedade podem ser encontrados em IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) cadeia (de caracteres)
weeklyRecurrence Se o horário ocorrer apenas alguns dias da semana, especifique a recorrência semanal. WeekDetails

ScheduleCreationParameterTags

Name Description Value

SharedPublicIpAddressConfiguration

Name Description Value
inboundNatRules As novas regras NAT InboundNatRule[]

WeekDetails

Name Description Value
time A hora do dia em que ocorrerá o agendamento. cadeia (de caracteres)
weekdays Os dias da semana para os quais o horário está definido (por exemplo, domingo, segunda-feira, terça-feira, etc.). string[]

Exemplos de uso

Amostras Terraform

Um exemplo básico de implantação de máquina virtual em um laboratório de teste de desenvolvimento.

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