Inicio rápido: Creación de plantillas de archivos de Bicep con Visual Studio Code
En este inicio rápido se explica cómo usar Visual Studio Code para crear un archivo Bicep. Cree una cuenta de almacenamiento y una red virtual. También aprenderá cómo la extensión de Bicep proporciona seguridad de tipos, validación de sintaxis y autocompletar para simplificar el desarrollo.
Visual Studio admite una experiencia de creación similar. Consulte Inicio rápido: Creación de archivos de Bicep con Visual Studio para obtener más información.
Requisitos previos
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
A fin de configurar el entorno para el desarrollo de Bicep, consulte Instalación de las herramientas de Bicep. Después de completar esos pasos, tiene Visual Studio Code y la Extensión de Bicep instalado. También tiene la versión más reciente CLI de Azure o Módulo de Azure PowerShell.
Adición del fragmento de código de un recurso
Visual Studio Code con la extensión Bicep proporciona fragmentos predefinidos para simplificar el desarrollo. En este inicio rápido, agregará un fragmento de código que crea una red virtual.
Inicie Visual Studio Code y cree un nuevo archivo denominado main.bicep. En main.bicep, escriba vnet, seleccione res-vnet en la lista y presione TAB o ENTRAR.
Sugerencia
Si no ve esas opciones de IntelliSense en Visual Studio Code, asegúrese de que ha instalado la extensión de 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 y no tendrá opciones de IntelliSense hasta que se inicie. Una notificación en la esquina inferior derecha le indica que el servicio se está iniciando. Cuando esa notificación desaparece, quiere decir que el servicio se está ejecutando.
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'
}
}
]
}
}
Dentro de este fragmento de código, encontrará todos los valores necesarios para definir una red virtual. Es posible que observe dos subrayados curdos. Un amarillo denota una advertencia relacionada con una versión obsoleta de la API, mientras que un subrayado rojo señala un error causado por una definición de parámetro que falta. La herramienta linter de Bicep comprueba los archivos de Bicep en busca de errores de sintaxis e infracciones de procedimientos recomendados. Mantenga el cursor sobre @2019-11-01
, un panel emergente muestra Usar la versión de API más reciente para "Microsoft.Network/virtualNetworks". Seleccione Corrección rápida en el panel emergente y, después, seleccione Reemplazar con 2024-05-01 para actualizar la versión de la API.
Como alternativa, quite @2019-11-01
y reemplácelo por @
. Seleccione la versión más reciente de la API.
Corregirá el error de definición de parámetro que falta en la sección siguiente.
También puede modificarlo para que cumpla sus requisitos. Por ejemplo, dado name
que no es un nombre claro para la red virtual, puede cambiar la name
propiedad a exampleVnet
:
name: 'exampleVNet'
Adición del parámetro
En el fragmento de código que ha añadido en la última sección falta la definición de un parámetro, location
, como indica el subrayado rojo. En la parte superior del archivo, agregue:
param location
Al agregar un espacio después de ubicación, observe que IntelliSense ofrece los tipos de datos que están disponibles para el parámetro. Seleccione string.
Asigne al parámetro un valor predeterminado:
param location string = resourceGroup().location
La línea anterior asigna la ubicación del grupo de recursos al recurso de red virtual. Para obtener más información sobre la función usada en el valor predeterminado, consulteresourceGroup()
.
En la parte superior del archivo, agregue otro parámetro para el nombre de la cuenta de almacenamiento (que se crea más adelante en el inicio rápido) con un valor predeterminado:
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
Para obtener más información,consulte Interpolación y uniqueString()
.
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 y no más de 24 caracteres. Puede especificar estos requisitos agregando 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.
Agregue ambos decoradores y especifique los límites de caracteres (por ejemplo, 3 y 24 siguientes):
@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
También puede agregar una descripción para el parámetro. Incluya información que ayude a los usuarios a implementar el archivo de Bicep para comprender qué valor proporcionar:
@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
Los parámetros están listos para usarse.
Agregar recurso
En lugar de usar un fragmento de código para definir la cuenta de almacenamiento, se usa IntelliSense para establecer los valores. Gracias a IntelliSense, este paso es más sencillo que tener que escribir manualmente los valores.
Para definir un recurso, use la palabra clave resource
. Debajo de la red virtual, escriba resource storageAccount:
resource storageAccount
storageAccount 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 storageacc hasta que pueda seleccionarla en las opciones disponibles.
Después de seleccionar Microsoft.Storage/storageAccounts, se muestran las versiones de API disponibles. Seleccione la versión más reciente. Para la captura de pantalla siguiente, es 2023-05-01.
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.
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 storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name:
location:
sku: {
name:
}
kind:
}
Casi ha terminado y el siguiente paso es proporcionar valores para esas propiedades.
De nuevo, IntelliSense le puede ayudar. Defina name
como storageAccountName
, que es el parámetro que contiene un nombre para la cuenta de almacenamiento. Para location
, establézcalo enlocation
, que es un parámetro que ha creado anteriormente. Al agregar sku.name
y kind
, IntelliSense presenta las opciones válidas.
Para agregar propiedades opcionales junto con las propiedades necesarias, coloque el cursor en la ubicación deseada y presione Ctrl+Espacio. En la captura de pantalla siguiente se muestra cómo IntelliSense sugiere las propiedades disponibles:
Cuando haya terminado, tiene lo siguiente:
@minLength(3)
@maxLength(24)
@description('Provide a name for the storage account. Use only lowercase letters and numbers. The name must be unique across Azure.')
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param location string = resourceGroup().location
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-05-01' = {
name: 'exampleVNet'
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 storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: storageAccountName
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
Para obtener más información sobre la sintaxis de Bicep, consulte Estructura de archivos de Bicep y sintaxis.
Visualización de recursos
Bicep Visualizer muestra una representación gráfica de los recursos del archivo.
Seleccione el botón Visualizador de Bicep en la esquina superior derecha para abrir la herramienta:
Este visualizador muestra los recursos definidos en el archivo de Bicep y los conectores entre sus dependencias. Los dos recursos definidos en este inicio rápido no tienen una relación dependiente, por lo que no hay un conector entre ellos:
Implementación del archivo de Bicep
Haga clic con el botón derecho en el archivo de Bicep dentro de Visual Studio Code y seleccione Implementar archivo de Bicep.
En el cuadro de texto Escriba el nombre de la implementación, escriba deployStorageAndVNety presione ENTRAR.
En el cuadro de lista Seleccionar grupo de recursos de la parte superior, seleccione Crear nuevo grupo de recursos.
Escriba exampleRG como nombre del grupo de recursos y presione ENTRAR.
Seleccione una ubicación para el grupo de recursos, seleccione Centro de EE. UU o una ubicación de su elección y presione ENTRAR.
En Seleccionar un archivo de parámetros, seleccione Ninguno.
La creación del recurso tarda algunos minutos. Para obtener más información, consulte Implementación de archivos de Bicep con Visual Studio Code.
También puede usar la CLI de Azure o Azure PowerShell para implementar el archivo de Bicep:
az group create --name exampleRG --location eastus
az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageAccountName=uniquename
Cuando finalice la implementación, debería ver un mensaje que describa 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
Explore los módulos de Learn para Bicep.