Condividi tramite


Guida introduttiva: Creare file Bicep con Visual Studio Code

Questa guida introduttiva illustra come usare Visual Studio Code per creare un file Bicep. Vengono creati un account di archiviazione e una rete virtuale. Si apprenderà anche come l'estensione Bicep fornisce sicurezza dei tipi, convalida della sintassi e completamento automatico per semplificare lo sviluppo.

Visual Studio supporta un'esperienza di creazione simile. Per altre informazioni, vedere Avvio rapido: Creare file Bicep con Visual Studio .

Prerequisiti

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Per configurare l'ambiente per lo sviluppo Bicep, vedere Installare gli strumenti Bicep. Dopo aver completato questi passaggi, è installato Visual Studio Code e l'estensione Bicep. È disponibile anche la versione più recente dell'interfaccia della riga di comando di Azure o il modulo Azure PowerShell.

Aggiungere un frammento di risorsa

Visual Studio Code con l'estensione Bicep fornisce frammenti predefiniti per semplificare lo sviluppo. In questa guida di avviamento rapido viene aggiunto un frammento di codice che crea una rete virtuale.

Avviare Visual Studio Code e creare un nuovo file denominato main.bicep. In main.bicep digitare vnet, selezionare res-vnet nell'elenco e quindi premere TAB o INVIO.

Screenshot dell'aggiunta del frammento di codice per la rete virtuale.

Suggerimento

Se queste opzioni di IntelliSense non vengono visualizzate in Visual Studio Code, assicurarsi di aver installato l'estensione Bicep come specificato in Prerequisiti. Se l'estensione è stata installata, concedere al servizio di linguaggio Bicep un po' di tempo per avviarsi dopo aver aperto il file Bicep. Viene in genere avviato rapidamente e non sono disponibili opzioni di IntelliSense fino all'avvio. Una notifica nell'angolo in basso a destra indica che il servizio è in fase di avvio. Quando la notifica scompare, il servizio è in esecuzione.

Il file Bicep contiene ora il codice seguente:

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'
        }
      }
    ]
  }
}

All'interno di questo frammento di codice sono disponibili tutti i valori necessari per la definizione di una rete virtuale. Si potrebbero notare due sottolineature curvi. Una gialla indica un avviso correlato a una versione obsoleta dell'API, mentre una sottolineatura rossa segnala un errore causato da una definizione di parametro mancante. Il linter Bicep controlla i file Bicep per individuare errori di sintassi e violazioni delle procedure consigliate. Passare il cursore su @2019-11-01, un riquadro popup mostra Usa la versione più recente dell'API per 'Microsoft.Network/virtualNetworks'. Selezionare Correzione rapida nel riquadro popup e quindi selezionare Sostituisci con 2024-05-01 per aggiornare la versione dell'API.

In alternativa, rimuovere @2019-11-01e sostituirlo con @. Selezionare la versione più recente dell'API.

Screenshot dell'aggiornamento della versione dell'API.

Nella sezione successiva verrà corretto l'errore di definizione del parametro mancante.

È anche possibile modificare questo codice per soddisfare i requisiti. Ad esempio, poiché name non è un nome chiaro per la rete virtuale, è possibile modificare la name proprietà in exampleVnet:

name: 'exampleVNet'

Aggiungi parametro

Il frammento di codice aggiunto nell'ultima sezione non contiene una definizione di parametro, location, come indicato dalla sottolineatura rossa. Nella parte superiore del file aggiungere:

param location

IntelliSense propone i tipi di dati disponibili per il parametro quando si aggiunge uno spazio dopo percorso. Selezionare stringa.

Screenshot dell'aggiunta del tipo stringa al parametro.

Assegnare al parametro un valore predefinito:

param location string = resourceGroup().location

La riga precedente assegna il percorso del gruppo di risorse alla risorsa di rete virtuale. Per altre informazioni sulla funzione usata nel valore predefinito, vedere resourceGroup().

Nella parte superiore del file aggiungere un altro parametro per il nome dell'account di archiviazione (creato più avanti nella guida introduttiva) con un valore predefinito:

param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'

Per altre informazioni, vedere Interpolazione e uniqueString().

Questo parametro funziona correttamente, ma gli account di archiviazione hanno limiti sulla lunghezza del nome. Il nome deve contenere almeno 3 e non più di 24 caratteri. È possibile specificare questi requisiti aggiungendo elementi Decorator al parametro .

Aggiungere una riga sopra il parametro e digitare @. Gli elementi Decorator disponibili vengono visualizzati. Si noti che sono presenti elementi Decorator sia per minLength che per maxLength.

Screenshot dell'aggiunta di elementi al parametro.

Aggiungere entrambi gli elementi decorator e specificare i limiti dei caratteri (ad esempio, 3 e 24 di seguito):

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

È anche possibile aggiungere una descrizione per il parametro . Includere informazioni che consentono agli utenti di distribuire il file Bicep per comprendere quale valore fornire:

@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)}'

I parametri sono pronti per l'uso.

Aggiungere la risorsa

Anziché usare un frammento di codice per definire l'account di archiviazione, si usa IntelliSense per impostare i valori. Grazie a IntelliSense tale passaggio è più semplice, poiché non è necessario digitare manualmente i valori.

Per definire una risorsa, usare la parola chiave resource. Sotto la rete virtuale digitare resource storageAccount:

resource storageAccount

storageAccount è un nome simbolico per la risorsa che si sta distribuendo. È possibile usare questo nome per fare riferimento alla risorsa in altre parti del file Bicep.

Quando si aggiunge uno spazio dopo il nome simbolico, viene visualizzato un elenco di tipi di risorse. Continuare a digitare storageacc fino a quando non è possibile selezionarlo nelle opzioni disponibili.

Screenshot della selezione degli account di archiviazione per il tipo di risorsa.

Dopo aver selezionato Microsoft.Storage/storageAccounts, vengono visualizzate le versioni API disponibili. Selezionare la versione più recente. Per lo screenshot seguente, è 2023-05-01.

Screenshot della selezione della versione dell'API per il tipo di risorsa.

Dopo l’offerta singola per il tipo di risorsa, aggiungere = e uno spazio. Vengono visualizzate le opzioni per l'aggiunta di proprietà alla risorsa. Selezionare required-properties (Proprietà obbligatorie).

Screenshot dell'aggiunta di proprietà obbligatorie.

Questa opzione aggiunge tutte le proprietà per il tipo di risorsa che sono necessarie per la distribuzione. Dopo aver selezionato questa opzione, l'account di archiviazione ha le proprietà seguenti:

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name:
  location:
  sku: {
    name:
  }
  kind:
}

Il passaggio successivo consiste nel fornire valori per tali proprietà.

Anche in questo caso, IntelliSense si rivela utile. Impostare name su storageAccountName, ovvero il parametro che contiene un nome per l'account di archiviazione. Per location, impostarlo su location, ovvero un parametro creato in precedenza. Quando si aggiungono sku.name e kind, IntelliSense mostra le opzioni valide.

Per aggiungere proprietà facoltative insieme alle proprietà necessarie, posizionare il cursore nella posizione desiderata e premere CTRL+SPAZIO. Lo screenshot seguente mostra come IntelliSense suggerisce le proprietà disponibili:

Screenshot dell'aggiunta di proprietà aggiuntive.

Al termine, si dispone di:

@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'
}

Per altre informazioni sulla sintassi Bicep, vedere Struttura e sintassi dei file Bicep.

Visualizzare le risorse

Bicep Visualizer mostra una rappresentazione grafica delle risorse nel file.

Selezionare il pulsante Bicep Visualizer nell'angolo superiore destro per aprire lo strumento:

Screenshot dello strumento Visualizzatore Bicep.

Questo visualizzatore mostra le risorse definite nel file Bicep e i connettori tra le relative dipendenze. Le due risorse definite in questa guida introduttiva non hanno una relazione dipendente, quindi non esiste un connettore tra di essi:

Screenshot del diagramma del visualizzatore Bicep.

Distribuire il file Bicep

  1. Fare clic con il pulsante destro del mouse sul file Bicep all'interno di Visual Studio Code e quindi scegliere Deploy Bicep file (Distribuisci file Bicep).

    Screenshot dell'opzione Deploy Bicep File (Distribuisci file Bicep).

  2. Nella casella di testo Immettere il nome per la distribuzione digitare deployStorageAndVNet e quindi premere INVIO.

    Screenshot dell'immissione del nome della distribuzione.

  3. Nella casella di riepilogo nella parte superiore Selezionare gruppo di risorse, selezionare Crea nuovo gruppo di risorse.

  4. Immettere exampleRG come nome del gruppo di risorse e quindi premere INVIO.

  5. Selezionare un percorso per il gruppo di risorse, selezionare Stati Uniti centrali o una località di propria scelta e quindi premere INVIO.

  6. In Selezionare un file di parametri selezionare Nessuno.

La creazione delle risorse richiede alcuni minuti. Per altre informazioni, vedere Distribuire file Bicep con Visual Studio Code.

È anche possibile usare l'interfaccia della riga di comando di Azure o Azure PowerShell per distribuire il file Bicep:

az group create --name exampleRG --location eastus

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

Al termine della distribuzione, verrà visualizzato un messaggio che descrive che la distribuzione è riuscita.

Pulire le risorse

Quando le risorse non sono più necessarie, usare l'interfaccia della riga di comando di Azure o il modulo di Azure PowerShell per eliminare il gruppo di risorse dell'argomento di avvio rapido.

az group delete --name exampleRG

Passaggi successivi

Esplorare i moduli Learn per Bicep.