Inicio rápido: Creación de archivos de Bicep con Visual Studio

Este inicio rápido le guiará por los pasos necesarios para crear un archivo Bicep con Visual Studio. Creará una cuenta de almacenamiento y una red virtual. También aprenderá cómo la extensión Bicep simplifica el desarrollo al proporcionar seguridad de tipos, validación de sintaxis y autocompletado.

También se admite una experiencia de creación similar en Visual Studio Code. Consulte Inicio rápido: Creación de archivos de Bicep con Visual Studio Code.

Prerrequisitos

Adición del fragmento de código de un recurso

Inicie Visual Studio y cree un archivo denominado main.bicep.

Visual Studio con la extensión Bicep simplifica el desarrollo con fragmentos de código predefinidos. En este inicio rápido, agregará un fragmento de código para crear una red virtual.

En el archivo main.bicep, escriba vnet. Seleccione res-vnet en la lista y presione [TAB] o [Entrar].

Captura de pantalla de la adición de un fragmento de código para la red virtual.

Sugerencia

Si no ve esas opciones de IntelliSense en Visual Studio, asegúrese de que ha instalado la extensión Bicep tal como se especifica en Requisitos previos. Si ya ha instalado la extensión, dé un tiempo al servicio de lenguaje Bicep para que se inicie después de abrir el archivo Bicep. Normalmente se inicia rápidamente, pero no tendrá opciones de IntelliSense hasta que se inicie.

El archivo Bicep ahora contiene el código siguiente:

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: 'name'
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

Este fragmento de código contiene todos los valores que necesita para definir una red virtual. Sin embargo, puede modificarlo para que cumpla sus requisitos. Por ejemplo, name no es un buen nombre para la red virtual. Cambie la propiedad name a exampleVnet.

name: 'exampleVnet'

Tenga en cuenta que la ubicación tiene un subrayado curvilíneo rojo. Esto indica un problema. Mantenga el cursor sobre la ubicación. El mensaje de error es: El nombre "location" no existe en el contexto actual. Crearemos un parámetro de ubicación en la sección siguiente.

Incorporación de parámetros

Ahora, agregaremos dos parámetros para el nombre de la cuenta de almacenamiento y la ubicación. En la parte superior del archivo, agregue:

param storageName

Al agregar un espacio después de storageName, observe que IntelliSense muestra los tipos de datos disponibles para el parámetro. Seleccione string.

Captura de pantalla de la adición del tipo de cadena al parámetro.

Ahora tiene el siguiente parámetro:

param storageName string

Este parámetro funciona bien, pero las cuentas de almacenamiento tienen límites para la longitud del nombre. El nombre debe tener al menos 3 caracteres y no debe superar los 24 caracteres. Para especificar esos requisitos, puede agregar decoradores al parámetro.

Agregue una línea arriba del parámetro y escriba @ . Se mostrarán los decoradores disponibles. Observe que hay decoradores para minLength y maxLength.

Captura de pantalla de la adición de decoradores al parámetro.

Agregue ambos decoradores y especifique los límites de caracteres, como se muestra a continuación:

@minLength(3)
@maxLength(24)
param storageName string

También puede agregar una descripción para el parámetro. Incluya información para que las personas que implementarán el archivo Bicep comprendan el valor que se debe especificar.

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageName string

El parámetro de nombre de la cuenta de almacenamiento está listo para usarse.

Agregue otro parámetro de ubicación:

param location string = resourceGroup().location

Agregar recurso

En lugar de usar un fragmento de código para definir la cuenta de almacenamiento, usaremos IntelliSense para configurar los valores. Con IntelliSense, este paso es mucho más fácil que cuando los valores se tienen que escribir manualmente.

Para definir un recurso, use la palabra clave resource. Debajo de la red virtual, escriba resource exampleStorage:

resource exampleStorage

exampleStorage es un nombre simbólico para el recurso que se va a implementar. Puede usar el nombre para hacer referencia al recurso en otras partes del archivo de Bicep.

Al agregar un espacio después del nombre simbólico, se muestra una lista de tipos de recursos. Siga escribiendo storage hasta que pueda seleccionarlo entre las opciones disponibles.

Captura de pantalla de la selección de las cuentas de almacenamiento para el tipo de recurso.

Después de seleccionar Microsoft.Storage/storageAccounts, se muestran las versiones de API disponibles. Seleccione 2021-09-01 o la versión más reciente de la API. Se recomienda usar la versión más reciente de la API.

Captura de pantalla de la selección de la versión de la API para el tipo de recurso.

Después de la comilla simple del tipo de recurso, agregue = y un espacio. Se mostrarán las opciones para agregar propiedades al recurso. Seleccione required-properties.

Captura de pantalla de la adición de las propiedades necesarias.

Esta opción agrega todas las propiedades del tipo de recurso que son obligatorias para la implementación. Después de seleccionar esta opción, la cuenta de almacenamiento tendrá las siguientes propiedades:

resource exampleStorage 'Microsoft.Storage/storageAccounts@2021-09-01' = {
	name: 1
	location: 2
	sku: {
		name: 3
	}
	kind: 4
}

Hay cuatro marcadores de posición en el código. Use [TAB] para recorrerlos y escribir los valores. De nuevo, IntelliSense le puede ayudar. Defina name en storageName, que es el parámetro que contiene un nombre para la cuenta de almacenamiento. En el caso de location, establezca el valor en location. Al agregar el nombre y el tipo de SKU, IntelliSense presentará las opciones válidas.

Cuando haya terminado, tendrá lo siguiente:

@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lower case letters and numbers. The name must be unique across Azure.')
param storageName string
param location string = resourceGroup().location

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-01' = {
  name: storageName
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '10.0.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'Subnet-1'
        properties: {
          addressPrefix: '10.0.0.0/24'
        }
      }
      {
        name: 'Subnet-2'
        properties: {
          addressPrefix: '10.0.1.0/24'
        }
      }
    ]
  }
}

resource exampleStorage 'Microsoft.Storage/storageAccounts@2021-09-01' = {
  name: storageName
  location: location
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Para obtener más información sobre la sintaxis de Bicep, consulte Estructura de Bicep.

Implementación del archivo de Bicep

Todavía no se puede realizar la implementación de archivos de Bicep desde Visual Studio. Para implementar el archivo de Bicep, use la CLI de Azure o Azure PowerShell:

az group create --name exampleRG --location eastus

az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageName=uniquename

Una vez finalizada la implementación, debería mostrarse un mensaje indicando que la implementación se realizó correctamente.

Limpieza de recursos

Cuando los recursos de Azure dejen de ser necesarios, use la CLI de Azure o el módulo de Azure PowerShell para eliminar el grupo de recursos y el recurso del servidor del inicio rápido.

az group delete --name exampleRG

Pasos siguientes