Compartir a través de


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

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

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

Prerrequisitos

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 Bicep. También tendrá 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

VS Code con la extensión de Bicep simplifica el desarrollo proporcionando fragmentos predefinidos. 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 y 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 VS Code, 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 tiene opciones de IntelliSense hasta que se inicia. 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.

Quite @2019-11-01y reemplácelo por @. Seleccione la versión más reciente de la API.

Recorte de pantalla de la actualización de la versión 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, name no es un buen nombre para la red virtual. Cambie la propiedad name a examplevnet.

name: 'exampleVNet'

Adición del parámetro

El fragmento de código que ha agregado en la última sección pierde una definición de parámetro.

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.

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

Asigne al parámetro un valor predeterminado:

param location string = resourceGroup().location

Para obtener más información acerca de la función usada en el valor predeterminado, consulte resourceGroup().

Agregue otro parámetro para el nombre de la cuenta de almacenamiento 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 tres caracteres y no más de 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:

@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 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 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 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 storageacc hasta que pueda seleccionarla en 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 la versión más reciente. Para la captura de pantalla siguiente, es 2023-05-01.

Recorte de pantalla de 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@2023-05-01' = {
  name:
  location:
  sku: {
    name:
  }
  kind:
}

Casi ha terminado. Solo tiene que 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 a las obligatorias, sitúe el cursor en la ubicación deseada y pulse Ctrl+Espacio. IntelliSense sugiere las propiedades no usadas como se muestra en el siguiente recorte de pantalla:

Recorte de pantalla de la adición de propiedades adicionales.

Cuando haya terminado, tiene lo siguiente:

@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param location string = resourceGroup().location

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-01-01' = {
  name: 'exampleVNet'
  location: resourceGroup().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-05-01' = {
  name: storageAccountName
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

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

Visualización de recursos

Puede ver una representación de los recursos en el archivo.

En la esquina superior derecha, seleccione el botón del visualizador para abrir el visualizador de Bicep.

Recorte de pantalla del visualizador de Bicep.

El visualizador muestra los recursos definidos en el archivo Bicep con la información sobre las dependencias entre recursos. Los dos recursos que se definieron en este inicio rápido no tienen una relación de dependencia, por lo que no verá un conector entre ellos.

Recorte de pantalla del diagrama del visualizador de Bicep.

Implementación del archivo de Bicep

  1. Haga clic con el botón derecho en el archivo de Bicep dentro de VS Code y seleccione Implementar archivo de Bicep.

    Captura de pantalla de Implementar archivo de Bicep.

  2. En el cuadro de texto Escriba el nombre de la implementación, escriba deployStorageAndVNety presione [ENTRAR].

  3. En el cuadro de lista Seleccionar grupo de recursos de la parte superior, seleccione Crear nuevo grupo de recursos.

  4. Escriba exampleRG como nombre del grupo de recursos y presione [ENTRAR].

  5. 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].

  6. En Seleccionar un archivo de parámetros, seleccione Ninguno.

    Captura de pantalla de Seleccionar archivo de parámetros.

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 Bicep:

az group create --name exampleRG --location eastus

az deployment group create --resource-group exampleRG --template-file main.bicep --parameters storageAccountName=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