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
- Suscripción a Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
- Visual Studio 17.3.0, versión preliminar 3 o posterior. Consulte Visual Studio Preview.
- Extensión Bicep para Visual Studio. Consulte Visual Studio Marketplace.
- La implementación del archivo de Bicep requiere o la versión más reciente de la CLI de Azure o la versión más reciente del módulo de Azure PowerShell.
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].
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@2023-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.
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.
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.
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.
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 exampleStorage 'Microsoft.Storage/storageAccounts@2023-04-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@2023-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@2023-04-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