Avvio rapido: Creare file Bicep con Visual Studio

Questa guida di avvio rapido illustra i passaggi per creare un file Bicep con Visual Studio. Verranno creati un account di archiviazione e una rete virtuale. Si apprenderà anche come l'estensione Bicep semplifica lo sviluppo fornendo sicurezza dei tipi, convalida della sintassi e completamento automatico.

Un'esperienza simile di creazione è supportata anche in Visual Studio Code. Vedi Avvio rapido: Creare file Bicep con Visual Studio Code.

Prerequisiti

Aggiungere un frammento di risorsa

Avviare Visual Studio e creare un nuovo file denominato main.bicep.

Visual Studio con l'estensione Bicep semplifica lo sviluppo fornendo frammenti predefiniti. In questa guida di avviamento rapido verrà aggiunto un frammento di codice che crea una rete virtuale.

In main.bicepdigita vnet. Seleziona res-vnet dall'elenco, quindi premi[TAB]o[ENTER].

Screenshot of adding snippet for virtual network.

Suggerimento

Se queste opzioni di IntelliSense non vengono visualizzate in Visual Studio, assicurati 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. In genere si avvia rapidamente, ma non si avranno opzioni intellisense fino all'avvio.

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

Questo frammento di codice contiene tutti i valori necessari per definire una rete virtuale. Tuttavia, è possibile modificare questo codice per soddisfare i requisiti. Ad esempio, name non è un nome ottimale per la rete virtuale. Modificare la proprietà name in exampleVnet.

name: 'exampleVnet'

L’avviso posizione ha una sottolineatura rossa. Questo indica un problema. Passare il cursore su posizione. Il messaggio di errore è : il nome "location" non esiste nel contesto corrente. Verrà creato un parametro location nella sezione successiva.

Aggiungere parametri

A questo punto, verranno aggiunti due parametri per il nome dell'account di archiviazione e della posizione. Nella parte superiore del file aggiungere:

param storageName

Si noti che, quando si aggiunge uno spazio dopo storageName, intellisense offre i tipi di dati che sono disponibili per il parametro. Selezionare string.

Screenshot of adding string type to parameter.

È disponibile il parametro seguente:

param storageName string

Questo parametro funziona correttamente, ma gli account di archiviazione hanno limiti sulla lunghezza del nome. Il nome deve avere una lunghezza compresa tra 3 e 24 caratteri. È possibile specificare tali 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 minLengthche per maxLength.

Screenshot of adding decorators to parameter.

Aggiungere entrambi gli elementi Decorator e specificare i limiti dei caratteri, come illustrato di seguito:

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

È anche possibile aggiungere una descrizione per il parametro. Includere informazioni che consentano agli utenti che distribuiscono il file Bicep di comprendere il valore da fornire.

@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

Il parametro del nome dell'account di archiviazione è pronto per l'uso.

Aggiungere un altro parametro di posizione:

param location string = resourceGroup().location

Aggiungere la risorsa

Anziché usare un frammento di codice per definire l'account di archiviazione, si userà intellisense per impostare i valori. IntelliSense rende questo passaggio molto più semplice rispetto alla necessità di digitare manualmente i valori.

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

resource exampleStorage

exampleStorage è 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 storage (risorsa di archiviazione) fino a quando non è possibile selezionarlo dalle opzioni disponibili.

Screenshot of selecting storage accounts for resource type.

Dopo aver selezionato Microsoft.Storage/storageAccounts, vengono visualizzate le versioni API disponibili. Selezionare 2021-09-01 o la versione più recente dell'API. È consigliabile usare la versione più recente dell'API.

Screenshot of selecting API version for resource type.

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 of adding required properties.

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 exampleStorage 'Microsoft.Storage/storageAccounts@2021-09-01' = {
	name: 1
	location: 2
	sku: {
		name: 3
	}
	kind: 4
}

Nel codice sono presenti quattro segnaposto. Usare [TAB] per scorrerli e immettere i valori. Anche in questo caso, intelliSense ti aiuta. Imposta name su storageName, ovvero il parametro che contiene un nome per l'account di archiviazione. Per location, impostalo su location. Quando si aggiunge il nome e il tipo di SKU, intelliSense mostra le opzioni valide.

Al termine, si dispone di:

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

Per ulteriori informazioni sulla sintassi Bicep, vedere Struttura Bicep.

Distribuire il file Bicep

La distribuzione di file Bicep non può ancora essere eseguita da Visual Studio. È possibile distribuire il file Bicep usando l'interfaccia della riga di comando di 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

Quando la distribuzione è terminata, viene visualizzato un messaggio in cui si conferma che la distribuzione è stata completata.

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