Szybki start: tworzenie plików Bicep za pomocą programu Visual Studio Code

Ten przewodnik Szybki start przeprowadzi Cię przez kroki tworzenia pliku Bicep za pomocą programu Visual Studio Code. Utworzysz konto magazynu i sieć wirtualną. Dowiesz się również, jak rozszerzenie Bicep upraszcza programowanie, zapewniając bezpieczeństwo typów, walidację składni i autouzupełnianie.

Podobne środowisko tworzenia jest również obsługiwane w programie Visual Studio. Zobacz Szybki start: tworzenie plików Bicep za pomocą programu Visual Studio.

Wymagania wstępne

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Aby skonfigurować środowisko na potrzeby programowania aplikacji Bicep, zobacz Instalowanie narzędzi Bicep. Po wykonaniu tych kroków masz program Visual Studio Code i rozszerzenie Bicep. Masz również najnowszy interfejs wiersza polecenia platformy Azure lub najnowszy moduł programu Azure PowerShell.

Dodawanie fragmentu kodu zasobu

Program VS Code z rozszerzeniem Bicep upraszcza programowanie, udostępniając wstępnie zdefiniowane fragmenty kodu. W tym przewodniku Szybki start dodasz fragment kodu, który tworzy sieć wirtualną.

Uruchom program Visual Studio Code i utwórz nowy plik o nazwie main.bicep.

W pliku main.bicep wpisz vnet, a następnie wybierz pozycję res-vnet z listy, a następnie naciśnij klawisz [TAB] lub [ENTER].

Screenshot of adding snippet for virtual network.

Napiwek

Jeśli nie widzisz tych opcji funkcji IntelliSense w programie VS Code, upewnij się, że zainstalowano rozszerzenie Bicep zgodnie z wymaganiami wstępnymi. Jeśli rozszerzenie zostało zainstalowane, daj usłudze językowej Bicep trochę czasu na uruchomienie po otwarciu pliku Bicep. Zwykle rozpoczyna się szybko, ale nie masz opcji intellisense, dopóki nie zostanie uruchomiona. Powiadomienie w prawym dolnym rogu wskazuje, że usługa jest uruchamiana. Gdy to powiadomienie zniknie, usługa jest uruchomiona.

Plik Bicep zawiera teraz następujący kod:

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

W tym fragmencie kodu znajdziesz wszystkie niezbędne wartości do zdefiniowania sieci wirtualnej. Możesz zauważyć dwa podkreślenia curly. Żółty oznacza ostrzeżenie związane z nieaktualną wersją interfejsu API, a czerwone podkreślenie oznacza błąd spowodowany brakującą definicją parametru.

Usuń @2019-11-01element i zastąp go ciągiem @. Wybierz najnowszą wersję interfejsu API.

Screenshot of updating API version.

Naprawisz błąd brakującej definicji parametru w następnej sekcji.

Możesz również zmodyfikować ten kod, aby spełnić wymagania. Na przykład name nie jest to świetna nazwa dla sieci wirtualnej. Zmień właściwość na nameexamplevnet.

name: 'exampleVNet'

Dodawanie parametru

Fragment kodu dodany w ostatniej sekcji pomija definicję parametru.

W górnej części pliku dodaj:

param location

Po dodaniu miejsca po lokalizacji zwróć uwagę, że funkcja IntelliSense oferuje typy danych, które są dostępne dla parametru. Wybierz ciąg.

Screenshot of adding string type to parameter.

Nadaj parametrowi wartość domyślną:

param location string = resourceGroup().location

Aby uzyskać więcej informacji na temat funkcji używanej w wartości domyślnej, zobacz resourceGroup().

Dodaj inny parametr nazwy konta magazynu z wartością domyślną:

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

Aby uzyskać więcej informacji, zobacz Interpolacja i uniqueString().

Ten parametr działa prawidłowo, ale konta magazynu mają limity długości nazwy. Nazwa musi zawierać co najmniej trzy znaki i nie więcej niż 24 znaki. Te wymagania można określić, dodając dekoratory do parametru .

Dodaj wiersz powyżej parametru i wpisz @. Zobaczysz dostępne dekoratory. Zwróć uwagę, że istnieją dekoratory zarówno dla minLength , jak i maxLength.

Screenshot of adding decorators to parameter.

Dodaj oba dekoratory i określ limity znaków:

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

Możesz również dodać opis parametru. Dołącz informacje ułatwiające osobom wdrażającym plik Bicep zrozumieć wartość, którą należy podać.

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

Parametry są gotowe do użycia.

Dodaj zasób

Zamiast używać fragmentu kodu do zdefiniowania konta magazynu, należy użyć funkcji IntelliSense do ustawienia wartości. Funkcja IntelliSense ułatwia ten krok niż ręczne wpisywanie wartości.

Aby zdefiniować zasób, użyj słowa kluczowego resource . Poniżej sieci wirtualnej wpisz przykład zasobuStorage:

resource exampleStorage

exampleStorage to symboliczna nazwa wdrażanego zasobu. Możesz użyć tej nazwy, aby odwołać się do zasobu w innych częściach pliku Bicep.

Po dodaniu spacji po nazwie symbolicznej zostanie wyświetlona lista typów zasobów. Kontynuuj wpisywanie pliku storageacc , dopóki nie będzie można wybrać go z dostępnych opcji.

Screenshot of selecting storage accounts for resource type.

Po wybraniu pozycji Microsoft.Storage/storageAccounts zostaną wyświetlone dostępne wersje interfejsu API. Wybierz najnowszą wersję. Na poniższym zrzucie ekranu znajduje się 2023-01-01.

Screenshot of select API version for resource type.

Po pojedynczym cudzysłowie dla typu zasobu dodaj = i spację. Zostaną wyświetlone opcje dodawania właściwości do zasobu. Wybierz pozycję required-properties(wymagane właściwości).

Screenshot of adding required properties.

Ta opcja dodaje wszystkie właściwości typu zasobu, które są wymagane do wdrożenia. Po wybraniu tej opcji konto magazynu ma następujące właściwości:

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

To już prawie koniec. Wystarczy podać wartości dla tych właściwości.

Ponownie funkcja IntelliSense pomaga. Ustaw name wartość storageAccountName, czyli parametr zawierający nazwę konta magazynu. Dla locationparametru ustaw wartość location, która jest wcześniej utworzonym parametrem. Podczas dodawania sku.name funkcji i kindfunkcja IntelliSense przedstawia prawidłowe opcje.

Po zakończeniu masz:

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

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2019-11-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@2021-02-01' = {
  name: storageAccountName
  location: 'eastus'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
}

Aby uzyskać więcej informacji na temat składni Bicep, zobacz Bicep structure (Struktura Bicep).

Wizualizowanie zasobów

Możesz wyświetlić reprezentację zasobów w pliku.

W prawym górnym rogu wybierz przycisk wizualizatora, aby otworzyć wizualizator Bicep Visualizer.

Screenshot of Bicep Visualizer.

Wizualizator pokazuje zasoby zdefiniowane w pliku Bicep z informacjami o zależności zasobów. Dwa zasoby zdefiniowane w tym przewodniku Szybki start nie mają relacji zależności, więc nie widzisz łącznika między dwoma zasobami.

Screenshot of Bicep Visualizer diagram.

Wdrażanie pliku Bicep

  1. Kliknij prawym przyciskiem myszy plik Bicep wewnątrz programu VS Code, a następnie wybierz polecenie Wdróż plik Bicep.

    Screenshot of Deploy Bicep file.

  2. W polu tekstowym Wprowadź nazwę wdrożenia wpisz deployStorageAndVNet, a następnie naciśnij klawisz [ENTER].

  3. W polu listy Wybierz grupę zasobów u góry wybierz pozycję Utwórz nową grupę zasobów.

  4. Wprowadź exampleRG jako nazwę grupy zasobów, a następnie naciśnij klawisz [ENTER].

  5. Wybierz lokalizację dla grupy zasobów, wybierz pozycję Środkowe stany USA lub wybraną lokalizację, a następnie naciśnij klawisz [ENTER].

  6. W obszarze Wybierz plik parametrów wybierz pozycję Brak.

    Screenshot of Select parameter file.

Utworzenie zasobów może potrwać kilka minut. Aby uzyskać więcej informacji, zobacz Wdrażanie plików Bicep za pomocą programu Visual Studio Code.

Możesz również wdrożyć plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell:

az group create --name exampleRG --location eastus

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

Po zakończeniu wdrażania powinien zostać wyświetlony komunikat informujący o pomyślnym wdrożeniu.

Czyszczenie zasobów

Gdy zasoby platformy Azure nie są już potrzebne, użyj interfejsu wiersza polecenia platformy Azure lub modułu Azure PowerShell, aby usunąć grupę zasobów szybkiego startu.

az group delete --name exampleRG

Następne kroki