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
- Sottoscrizione di Azure. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.
- Visual Studio versione 17.3.0 preview 3 o successiva. Vedi Visual Studio Preview.
- Estensione Bicep di Visual Studio. Vedi Visual Studio Marketplace.
- La distribuzione di file Bicep richiede l'interfaccia della riga di comando di Azure più recente o il modulo PowerShell di Azure più recente.
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].
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@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'
}
}
]
}
}
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.
È 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.
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.
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.
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-04-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@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'
}
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