Definição de recurso do Bicep
O tipo de recurso labs/virtualmachines pode ser implantado com operações direcionadas:
Para obter uma lista de propriedades alteradas em cada versão da API, consulte de log de alterações.
Exemplos de uso
Exemplos do Bicep
Um exemplo básico de implantação da Máquina Virtual em um Laboratório de Teste de Desenvolvimento.
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'
}
}
Exemplos de Início Rápido do Azure
Os modelos de Início Rápido do Azure a seguir contêm exemplos de Bicep para implantar esse tipo de recurso.
Para criar um recurso Microsoft.DevTestLab/labs/virtualmachines, adicione o Bicep a seguir 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 |
| local |
A localização geográfica onde o recurso reside |
cadeia |
| name |
O nome do recurso |
cadeia de caracteres (obrigatório) |
| pai |
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: laboratórios |
| properties |
As propriedades do recurso. |
LabVirtualMachineProperties (obrigatório) |
| tags |
Etiquetas de recursos |
Dicionário de nomes e valores de marca. Consulte Marcas em modelos |
ArtifactInstallProperties
| Name |
Description |
Value |
| artifactId |
O identificador do artefato. |
cadeia |
| artifactTitle |
O título do artefato. |
cadeia |
| deploymentStatusMessage |
A mensagem de status da implantação. |
cadeia |
| installTime |
A hora em que o artefato começa a ser instalado na máquina virtual. |
cadeia |
| parameters |
Os parâmetros do artefato. |
ArtifactParameterProperties[] |
| status |
O status do artefato. |
cadeia |
| vmExtensionStatusMessage |
A mensagem de status da extensão da máquina virtual. |
cadeia |
ArtifactParameterProperties
| Name |
Description |
Value |
| name |
O nome do parâmetro de artefato. |
cadeia |
| value |
O valor do parâmetro de artefato. |
cadeia |
AttachNewDataDiskOptions
| Name |
Description |
Value |
| diskName |
O nome do disco a ser anexado. |
cadeia |
| diskSizeGiB |
Tamanho do disco a ser anexado em Gibibytes. |
int |
| diskType |
O tipo de armazenamento do disco (ou seja, Standard, Premium). |
'Premium' 'Standard' 'StandardSSD' |
DataDiskProperties
| Name |
Description |
Value |
| attachNewDataDiskOptions |
Especifica as opções para anexar um novo disco à máquina virtual. |
AttachNewDataDiskOptions |
| existingLabDiskId |
Especifica a ID de disco de laboratório existente a ser anexada à máquina virtual. |
cadeia |
| 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 em que a agenda ocorrerá. |
cadeia |
GalleryImageReference
| Name |
Description |
Value |
| oferta |
A oferta da imagem da galeria. |
cadeia |
| osType |
O tipo de sistema operacional da imagem da galeria. |
cadeia |
| desenvolvedor |
O editor da imagem da galeria. |
cadeia |
| sku |
A SKU da imagem da galeria. |
cadeia |
| versão |
A versão da imagem da galeria. |
cadeia |
HourDetails
| Name |
Description |
Value |
| minute |
Minutos da hora em que o agendamento 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 |
| customImageId |
O identificador de imagem personalizado da máquina virtual. |
cadeia |
| 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 |
| expirationDate |
A data de validade da VM. |
cadeia |
| 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 do laboratório da máquina virtual. |
cadeia |
| labVirtualNetworkId |
O identificador de rede virtual do laboratório da máquina virtual. |
cadeia |
| networkInterface |
As propriedades do adaptador de rede. |
NetworkInterfaceProperties |
| notes |
As anotações da máquina virtual. |
cadeia |
| ownerObjectId |
O identificador de objeto do proprietário da máquina virtual. |
cadeia |
| ownerUserPrincipalName |
O nome principal do usuário do proprietário da máquina virtual. |
cadeia |
| senha |
A senha do administrador da máquina virtual. |
cadeia |
| planId |
A ID do plano associado à imagem da máquina virtual |
cadeia |
| scheduleParameters |
Agendamentos da Máquina Virtual a serem criados |
ScheduleCreationParameter[] |
| size |
O tamanho da máquina virtual. |
cadeia |
| sshKey |
A chave SSH do administrador da máquina virtual. |
cadeia |
| storageType |
Tipo de armazenamento a ser usado para máquina virtual (ou seja, Standard, Premium). |
cadeia |
| userName |
O nome de usuário da máquina virtual. |
cadeia |
NetworkInterfaceProperties
| Name |
Description |
Value |
| dnsName |
O nome DNS. |
cadeia |
| privateIpAddress |
O endereço IP privado. |
cadeia |
| publicIpAddress |
O endereço IP público. |
cadeia |
| publicIpAddressId |
A ID do recurso do endereço IP público. |
cadeia |
| 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 |
| 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 |
| subnetId |
A ID do recurso da sub-rede. |
cadeia |
| virtualNetworkId |
A ID do recurso da rede virtual. |
cadeia |
NotificationSettings
| Name |
Description |
Value |
| emailRecipient |
O destinatário de email para o qual enviar notificações (pode ser uma lista de endereços de email separados por ponto e vírgula). |
cadeia |
| notificationLocale |
A localidade a ser usada ao enviar uma notificação (o fallback para idiomas sem suporte é EN). |
cadeia |
| status |
Se as notificações estiverem habilitadas para esse agendamento (ou seja, Habilitado, Desabilitado). |
'Disabled' 'Enabled' |
| timeInMinutes |
Tempo em minutos antes do evento em que a notificação será enviada. |
int |
| webhookUrl |
A URL do webhook para a qual a notificação será enviada. |
cadeia |
ScheduleCreationParameter
ScheduleCreationParameterProperties
| Name |
Description |
Value |
| dailyRecurrence |
Se o agendamento ocorrer uma vez a cada dia da semana, especifique a recorrência diária. |
DayDetails |
| hourlyRecurrence |
Se o agendamento ocorrer várias vezes por dia, especifique a recorrência por hora. |
HourDetails |
| notificationSettings |
Configurações de notificação. |
NotificationSettings |
| status |
O status do agendamento (ou seja, Habilitado, Desabilitado) |
'Disabled' 'Enabled' |
| targetResourceId |
A ID do recurso à qual o agendamento pertence |
cadeia |
| taskType |
O tipo de tarefa do agendamento (por exemplo, LabVmsShutdownTask, LabVmAutoStart). |
cadeia |
| timeZoneId |
A 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 essa propriedade podem ser encontrados em IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) |
cadeia |
| weeklyRecurrence |
Se o agendamento ocorrer apenas alguns dias da semana, especifique a recorrência semanal. |
WeekDetails |
SharedPublicIpAddressConfiguration
| Name |
Description |
Value |
| inboundNatRules |
As regras NAT de entrada |
InboundNatRule[] |
WeekDetails
| Name |
Description |
Value |
| time |
A hora do dia em que a agenda ocorrerá. |
cadeia |
| weekdays |
Os dias da semana para os quais a agenda está definida (por exemplo, domingo, segunda, terça,etc.). |
string[] |
Definição de recurso de modelo do ARM
O tipo de recurso labs/virtualmachines pode ser implantado com operações direcionadas:
Exemplos de uso
Modelos de Início Rápido do Azure
Os modelos de Início Rápido do Azure a seguir implantar esse tipo de recurso.
Para criar um recurso Microsoft.DevTestLab/labs/virtualmachines, adicione o JSON a seguir ao 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 da API |
'2018-09-15' |
| local |
A localização geográfica onde o recurso reside |
cadeia |
| name |
O nome do recurso |
cadeia de caracteres (obrigatório) |
| properties |
As propriedades do recurso. |
LabVirtualMachineProperties (obrigatório) |
| tags |
Etiquetas de recursos |
Dicionário de nomes e valores de marca. Consulte Marcas em modelos |
| tipo |
O tipo de recurso |
'Microsoft.DevTestLab/labs/virtualmachines' |
ArtifactInstallProperties
| Name |
Description |
Value |
| artifactId |
O identificador do artefato. |
cadeia |
| artifactTitle |
O título do artefato. |
cadeia |
| deploymentStatusMessage |
A mensagem de status da implantação. |
cadeia |
| installTime |
A hora em que o artefato começa a ser instalado na máquina virtual. |
cadeia |
| parameters |
Os parâmetros do artefato. |
ArtifactParameterProperties[] |
| status |
O status do artefato. |
cadeia |
| vmExtensionStatusMessage |
A mensagem de status da extensão da máquina virtual. |
cadeia |
ArtifactParameterProperties
| Name |
Description |
Value |
| name |
O nome do parâmetro de artefato. |
cadeia |
| value |
O valor do parâmetro de artefato. |
cadeia |
AttachNewDataDiskOptions
| Name |
Description |
Value |
| diskName |
O nome do disco a ser anexado. |
cadeia |
| diskSizeGiB |
Tamanho do disco a ser anexado em Gibibytes. |
int |
| diskType |
O tipo de armazenamento do disco (ou seja, Standard, Premium). |
'Premium' 'Standard' 'StandardSSD' |
DataDiskProperties
| Name |
Description |
Value |
| attachNewDataDiskOptions |
Especifica as opções para anexar um novo disco à máquina virtual. |
AttachNewDataDiskOptions |
| existingLabDiskId |
Especifica a ID de disco de laboratório existente a ser anexada à máquina virtual. |
cadeia |
| 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 em que a agenda ocorrerá. |
cadeia |
GalleryImageReference
| Name |
Description |
Value |
| oferta |
A oferta da imagem da galeria. |
cadeia |
| osType |
O tipo de sistema operacional da imagem da galeria. |
cadeia |
| desenvolvedor |
O editor da imagem da galeria. |
cadeia |
| sku |
A SKU da imagem da galeria. |
cadeia |
| versão |
A versão da imagem da galeria. |
cadeia |
HourDetails
| Name |
Description |
Value |
| minute |
Minutos da hora em que o agendamento 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 |
| customImageId |
O identificador de imagem personalizado da máquina virtual. |
cadeia |
| 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 |
| expirationDate |
A data de validade da VM. |
cadeia |
| 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 do laboratório da máquina virtual. |
cadeia |
| labVirtualNetworkId |
O identificador de rede virtual do laboratório da máquina virtual. |
cadeia |
| networkInterface |
As propriedades do adaptador de rede. |
NetworkInterfaceProperties |
| notes |
As anotações da máquina virtual. |
cadeia |
| ownerObjectId |
O identificador de objeto do proprietário da máquina virtual. |
cadeia |
| ownerUserPrincipalName |
O nome principal do usuário do proprietário da máquina virtual. |
cadeia |
| senha |
A senha do administrador da máquina virtual. |
cadeia |
| planId |
A ID do plano associado à imagem da máquina virtual |
cadeia |
| scheduleParameters |
Agendamentos da Máquina Virtual a serem criados |
ScheduleCreationParameter[] |
| size |
O tamanho da máquina virtual. |
cadeia |
| sshKey |
A chave SSH do administrador da máquina virtual. |
cadeia |
| storageType |
Tipo de armazenamento a ser usado para máquina virtual (ou seja, Standard, Premium). |
cadeia |
| userName |
O nome de usuário da máquina virtual. |
cadeia |
NetworkInterfaceProperties
| Name |
Description |
Value |
| dnsName |
O nome DNS. |
cadeia |
| privateIpAddress |
O endereço IP privado. |
cadeia |
| publicIpAddress |
O endereço IP público. |
cadeia |
| publicIpAddressId |
A ID do recurso do endereço IP público. |
cadeia |
| 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 |
| 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 |
| subnetId |
A ID do recurso da sub-rede. |
cadeia |
| virtualNetworkId |
A ID do recurso da rede virtual. |
cadeia |
NotificationSettings
| Name |
Description |
Value |
| emailRecipient |
O destinatário de email para o qual enviar notificações (pode ser uma lista de endereços de email separados por ponto e vírgula). |
cadeia |
| notificationLocale |
A localidade a ser usada ao enviar uma notificação (o fallback para idiomas sem suporte é EN). |
cadeia |
| status |
Se as notificações estiverem habilitadas para esse agendamento (ou seja, Habilitado, Desabilitado). |
'Disabled' 'Enabled' |
| timeInMinutes |
Tempo em minutos antes do evento em que a notificação será enviada. |
int |
| webhookUrl |
A URL do webhook para a qual a notificação será enviada. |
cadeia |
ScheduleCreationParameter
ScheduleCreationParameterProperties
| Name |
Description |
Value |
| dailyRecurrence |
Se o agendamento ocorrer uma vez a cada dia da semana, especifique a recorrência diária. |
DayDetails |
| hourlyRecurrence |
Se o agendamento ocorrer várias vezes por dia, especifique a recorrência por hora. |
HourDetails |
| notificationSettings |
Configurações de notificação. |
NotificationSettings |
| status |
O status do agendamento (ou seja, Habilitado, Desabilitado) |
'Disabled' 'Enabled' |
| targetResourceId |
A ID do recurso à qual o agendamento pertence |
cadeia |
| taskType |
O tipo de tarefa do agendamento (por exemplo, LabVmsShutdownTask, LabVmAutoStart). |
cadeia |
| timeZoneId |
A 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 essa propriedade podem ser encontrados em IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) |
cadeia |
| weeklyRecurrence |
Se o agendamento ocorrer apenas alguns dias da semana, especifique a recorrência semanal. |
WeekDetails |
SharedPublicIpAddressConfiguration
| Name |
Description |
Value |
| inboundNatRules |
As regras NAT de entrada |
InboundNatRule[] |
WeekDetails
| Name |
Description |
Value |
| time |
A hora do dia em que a agenda ocorrerá. |
cadeia |
| weekdays |
Os dias da semana para os quais a agenda está definida (por exemplo, domingo, segunda, terça,etc.). |
string[] |
O tipo de recurso labs/virtualmachines pode ser implantado com operações direcionadas:
Exemplos de uso
Um exemplo básico de implantação da 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 = ["*"]
}
Para criar um recurso Microsoft.DevTestLab/labs/virtualmachines, adicione o Terraform a seguir 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 |
| local |
A localização geográfica onde o recurso reside |
cadeia |
| name |
O nome do recurso |
cadeia de caracteres (obrigatório) |
| parent_id |
A ID do recurso que é o pai desse 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 marca. |
| tipo |
O tipo de recurso |
"Microsoft.DevTestLab/labs/virtualmachines@2018-09-15" |
ArtifactInstallProperties
| Name |
Description |
Value |
| artifactId |
O identificador do artefato. |
cadeia |
| artifactTitle |
O título do artefato. |
cadeia |
| deploymentStatusMessage |
A mensagem de status da implantação. |
cadeia |
| installTime |
A hora em que o artefato começa a ser instalado na máquina virtual. |
cadeia |
| parameters |
Os parâmetros do artefato. |
ArtifactParameterProperties[] |
| status |
O status do artefato. |
cadeia |
| vmExtensionStatusMessage |
A mensagem de status da extensão da máquina virtual. |
cadeia |
ArtifactParameterProperties
| Name |
Description |
Value |
| name |
O nome do parâmetro de artefato. |
cadeia |
| value |
O valor do parâmetro de artefato. |
cadeia |
AttachNewDataDiskOptions
| Name |
Description |
Value |
| diskName |
O nome do disco a ser anexado. |
cadeia |
| diskSizeGiB |
Tamanho do disco a ser anexado em Gibibytes. |
int |
| diskType |
O tipo de armazenamento do disco (ou seja, Standard, Premium). |
'Premium' 'Standard' 'StandardSSD' |
DataDiskProperties
| Name |
Description |
Value |
| attachNewDataDiskOptions |
Especifica as opções para anexar um novo disco à máquina virtual. |
AttachNewDataDiskOptions |
| existingLabDiskId |
Especifica a ID de disco de laboratório existente a ser anexada à máquina virtual. |
cadeia |
| 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 em que a agenda ocorrerá. |
cadeia |
GalleryImageReference
| Name |
Description |
Value |
| oferta |
A oferta da imagem da galeria. |
cadeia |
| osType |
O tipo de sistema operacional da imagem da galeria. |
cadeia |
| desenvolvedor |
O editor da imagem da galeria. |
cadeia |
| sku |
A SKU da imagem da galeria. |
cadeia |
| versão |
A versão da imagem da galeria. |
cadeia |
HourDetails
| Name |
Description |
Value |
| minute |
Minutos da hora em que o agendamento 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 |
| customImageId |
O identificador de imagem personalizado da máquina virtual. |
cadeia |
| 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 |
| expirationDate |
A data de validade da VM. |
cadeia |
| 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 do laboratório da máquina virtual. |
cadeia |
| labVirtualNetworkId |
O identificador de rede virtual do laboratório da máquina virtual. |
cadeia |
| networkInterface |
As propriedades do adaptador de rede. |
NetworkInterfaceProperties |
| notes |
As anotações da máquina virtual. |
cadeia |
| ownerObjectId |
O identificador de objeto do proprietário da máquina virtual. |
cadeia |
| ownerUserPrincipalName |
O nome principal do usuário do proprietário da máquina virtual. |
cadeia |
| senha |
A senha do administrador da máquina virtual. |
cadeia |
| planId |
A ID do plano associado à imagem da máquina virtual |
cadeia |
| scheduleParameters |
Agendamentos da Máquina Virtual a serem criados |
ScheduleCreationParameter[] |
| size |
O tamanho da máquina virtual. |
cadeia |
| sshKey |
A chave SSH do administrador da máquina virtual. |
cadeia |
| storageType |
Tipo de armazenamento a ser usado para máquina virtual (ou seja, Standard, Premium). |
cadeia |
| userName |
O nome de usuário da máquina virtual. |
cadeia |
NetworkInterfaceProperties
| Name |
Description |
Value |
| dnsName |
O nome DNS. |
cadeia |
| privateIpAddress |
O endereço IP privado. |
cadeia |
| publicIpAddress |
O endereço IP público. |
cadeia |
| publicIpAddressId |
A ID do recurso do endereço IP público. |
cadeia |
| 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 |
| 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 |
| subnetId |
A ID do recurso da sub-rede. |
cadeia |
| virtualNetworkId |
A ID do recurso da rede virtual. |
cadeia |
NotificationSettings
| Name |
Description |
Value |
| emailRecipient |
O destinatário de email para o qual enviar notificações (pode ser uma lista de endereços de email separados por ponto e vírgula). |
cadeia |
| notificationLocale |
A localidade a ser usada ao enviar uma notificação (o fallback para idiomas sem suporte é EN). |
cadeia |
| status |
Se as notificações estiverem habilitadas para esse agendamento (ou seja, Habilitado, Desabilitado). |
'Disabled' 'Enabled' |
| timeInMinutes |
Tempo em minutos antes do evento em que a notificação será enviada. |
int |
| webhookUrl |
A URL do webhook para a qual a notificação será enviada. |
cadeia |
ScheduleCreationParameter
ScheduleCreationParameterProperties
| Name |
Description |
Value |
| dailyRecurrence |
Se o agendamento ocorrer uma vez a cada dia da semana, especifique a recorrência diária. |
DayDetails |
| hourlyRecurrence |
Se o agendamento ocorrer várias vezes por dia, especifique a recorrência por hora. |
HourDetails |
| notificationSettings |
Configurações de notificação. |
NotificationSettings |
| status |
O status do agendamento (ou seja, Habilitado, Desabilitado) |
'Disabled' 'Enabled' |
| targetResourceId |
A ID do recurso à qual o agendamento pertence |
cadeia |
| taskType |
O tipo de tarefa do agendamento (por exemplo, LabVmsShutdownTask, LabVmAutoStart). |
cadeia |
| timeZoneId |
A 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 essa propriedade podem ser encontrados em IReadOnlyCollection<string> TimeZoneConverter.TZConvert.KnownWindowsTimeZoneIds (https://github.com/mattjohnsonpint/TimeZoneConverter/blob/main/README.md) |
cadeia |
| weeklyRecurrence |
Se o agendamento ocorrer apenas alguns dias da semana, especifique a recorrência semanal. |
WeekDetails |
SharedPublicIpAddressConfiguration
| Name |
Description |
Value |
| inboundNatRules |
As regras NAT de entrada |
InboundNatRule[] |
WeekDetails
| Name |
Description |
Value |
| time |
A hora do dia em que a agenda ocorrerá. |
cadeia |
| weekdays |
Os dias da semana para os quais a agenda está definida (por exemplo, domingo, segunda, terça,etc.). |
string[] |