Guida introduttiva: Creare file Bicep con Visual Studio Code
Questa guida di avvio rapido illustra i passaggi per creare un file Bicep con Visual Studio Code. Vengono creati un account di archiviazione e una rete virtuale. Si apprende 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. Vedere Guida introduttiva: 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, si dispone di Visual Studio Code e dell'estensione Bicep. È disponibile anche la versione più recente dell'interfaccia della riga di comando di Azure o la versione più recente modulo di Azure PowerShell.
Aggiungere un frammento di risorsa
Visual Studio Code con l'estensione Bicep semplifica lo sviluppo fornendo frammenti predefiniti. 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, quindi selezionare res-vnet dall'elenco e quindi premere [TAB] o [INVIO].
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. In genere si avvia rapidamente, tuttavia le opzioni IntelliSense non sono disponibili prima dell'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 possono notare due sottolineature curve. 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.
Rimuovere @2019-11-01
, e sostituirlo con @
. Selezionare la versione più recente 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, name
non è un nome ottimale per la rete virtuale. Modificare la proprietà name
in examplevnet
.
name: 'exampleVNet'
Aggiungi parametro
Il frammento di codice aggiunto nell'ultima sezione non contiene una definizione di parametro.
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.
Assegnare al parametro un valore predefinito:
param location string = resourceGroup().location
Per altre informazioni sulla funzione usata nel valore predefinito, vedere resourceGroup().
Aggiungere un altro parametro per il nome dell'account di archiviazione 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 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.
Aggiungere entrambi gli elementi Decorator e specificare i limiti dei caratteri:
@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
È 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 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 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 storageacc fino a quando non è possibile selezionarlo nelle opzioni disponibili.
Dopo aver selezionato Microsoft.Storage/storageAccounts, vengono visualizzate le versioni API disponibili. Selezionare la versione più recente. Per lo screenshot seguente, è 2023-05-01.
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).
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@2023-05-01' = {
name:
location:
sku: {
name:
}
kind:
}
La procedura è quasi terminata. Specificare solo i 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. IntelliSense suggerisce proprietà inutilizzate, come illustrato nello screenshot seguente:
Al termine, si dispone di:
@minLength(3)
@maxLength(24)
param storageAccountName string = 'store${uniqueString(resourceGroup().id)}'
param location string = resourceGroup().location
resource virtualNetwork 'Microsoft.Network/virtualNetworks@2024-03-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'
}
Per ulteriori informazioni sulla sintassi Bicep, vedere Struttura Bicep.
Visualizzare le risorse
È possibile visualizzare una rappresentazione delle risorse nel file.
Nell'angolo in alto a destra selezionare il pulsante del visualizzatore per aprire il visualizzatore Bicep.
Il visualizzatore mostra le risorse definite nel file Bicep con le informazioni sulle dipendenze delle risorse. Le due risorse definite in questa guida introduttiva non hanno una relazione di dipendenza, quindi non viene visualizzato un connettore tra le due risorse.
Distribuire il file Bicep
Fare clic con il pulsante destro del mouse sul file Bicep all'interno di VS Code e quindi scegliere Distribuisci file Bicep.
Nella casella di testo Immettere il nome per la distribuzione, digitare deployStorageAndVNete quindi premere [INVIO].
Nella casella di riepilogo nella parte superiore Selezionare gruppo di risorse, selezionare Crea nuovo gruppo di risorse.
Immettere exampleRG come nome del gruppo di risorse e quindi premere [INVIO].
Selezionare una località per il gruppo di risorse, selezionare Stati Uniti centrali o una località di propria scelta e quindi premere [INVIO].
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.
È possibile distribuire il file Bicep anche 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 storageAccountName=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
Esplorare i moduli Learn per Bicep.