Ćwiczenie — używanie modułów z rejestru
W poprzednim ćwiczeniu opublikowano moduły CDN i witryny internetowej w rejestrze firmy. Teraz chcesz pokazać zespołowi, który opracowuje pies toy, jak używać modułów do własnego wdrożenia.
W tym ćwiczeniu wykonasz następujące czynności:
- Utwórz plik Bicep zawierający moduły z rejestru prywatnego.
- Dodaj odwołania do modułów w rejestrze.
- Skompiluj i sprawdź plik Bicep, aby dowiedzieć się, jak działa proces przywracania modułu.
- Przejdź do korzystania z aliasu rejestru.
- Wdróż plik Bicep na platformie Azure.
Tworzenie pliku Bicep
W programie Visual Studio Code utwórz nowy plik o nazwie main.bicep.
Zapisz pusty plik, aby program Visual Studio Code ładował narzędzia Bicep.
Możesz wybrać pozycję Plik>Zapisz jako lub wybrać Ctrl+S w systemie Windows (⌘+S w systemie macOS). Pamiętaj, gdzie zapisujesz plik. Na przykład możesz utworzyć folder szablonów , aby go zapisać.
Dodawanie modułów do pliku Bicep
W pliku main.bicep dodaj następujące parametry i zmienne:
@description('The Azure region into which the resources should be deployed.') param location string = 'westus3' @description('The name of the App Service app.') param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}' @description('The name of the App Service plan SKU.') param appServicePlanSkuName string = 'F1' var appServicePlanName = 'toy-dog-plan'
Poniżej parametrów i zmiennych użyj następującego kodu, aby dodać moduł witryny internetowej z rejestru. Zastąp
YOUR_CONTAINER_REGISTRY_NAME
ciąg nazwą rejestru prywatnego.module website 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/website:v1' = { name: 'toy-dog-website' params: { appServiceAppName: appServiceAppName appServicePlanName: appServicePlanName appServicePlanSkuName: appServicePlanSkuName location: location } }
Zwróć uwagę, że Bicep pokazuje czerwone linie z faliste pod identyfikatorem modułu po rozpoczęciu pisania, ale następnie linie ziewiające odejdą. Dzieje się tak, ponieważ rozszerzenie Bicep dla programu Visual Studio Code odczytuje moduł z rejestru i zapisuje go w lokalnym systemie plików.
Poniżej utworzonego modułu użyj następującego kodu, aby dodać moduł CDN z rejestru. Zastąp
YOUR_CONTAINER_REGISTRY_NAME
ciąg nazwą rejestru prywatnego.module cdn 'br:YOUR_CONTAINER_REGISTRY_NAME.azurecr.io/cdn:v1' = { name: 'toy-dog-cdn' params: { httpsOnly: true originHostName: website.outputs.appServiceAppHostName } }
Zapisz plik.
Kompilowanie i inspekcja pliku Bicep
W tym miejscu skompilujesz plik Bicep do szablonu usługi ARM w formacie JSON. Zwykle nie trzeba wykonywać kompilacji, ale jest to przydatne, gdy uczysz się, jak działają moduły.
W terminalu programu Visual Studio Code uruchom następujące polecenie, aby skompilować plik Bicep do pliku JSON:
az bicep build --file main.bicep
Bicep tworzy plik o nazwie main.json w tym samym folderze co plik main.bicep .
Otwórz plik main.json.
Zwróć uwagę, że w
resources
sekcji szablonu JSON ARM, począwszy od około wiersza 134, niektóre zasoby mają typMicrosoft.Resources/deployments
. Te zasoby reprezentują wdrożenia modułów zdefiniowane w module dodanym z rejestru.
W terminalu programu Visual Studio Code uruchom następujące polecenie, aby skompilować plik Bicep do pliku JSON:
bicep build main.bicep
Bicep tworzy plik o nazwie main.json w tym samym folderze co plik main.bicep .
Otwórz plik main.json.
Zwróć uwagę, że w
resources
sekcji szablonu JSON ARM, począwszy od około wiersza 134, niektóre zasoby mają typMicrosoft.Resources/deployments
. Te zasoby reprezentują wdrożenia modułów zdefiniowane w module dodanym z rejestru.
Tworzenie aliasu rejestru
Decydujesz się utworzyć alias rejestru zamiast osadzać adres URL rejestru w pliku Bicep. Takie podejście ułatwia odczytywanie pliku Bicep.
W programie Visual Studio Code utwórz nowy plik o nazwie bicepconfig.json. Utwórz go w tym samym folderze co plik main.bicep .
Wklej następujący kod do pliku bicepconfig.json . Zastąp
YOUR_CONTAINER_REGISTRY_NAME
ciąg nazwą rejestru prywatnego.{ "moduleAliases": { "br": { "ToyCompanyRegistry": { "registry": "YOUR_CONTAINER_REGISTRY_NAME.azurecr.io" } } } }
Zapisz plik.
Używanie aliasu rejestru
W tym miejscu zaktualizujesz plik Bicep, aby użyć aliasu rejestru zamiast odwoływać się bezpośrednio do rejestru.
Otwórz plik main.bicep.
Znajdź definicję modułu
website
i zmień definicję, aby zawierała alias rejestru:module website 'br/ToyCompanyRegistry:website:v1' = { name: 'toy-dog-website' params: { appServiceAppName: appServiceAppName appServicePlanName: appServicePlanName appServicePlanSkuName: appServicePlanSkuName location: location } }
Napiwek
Pamiętaj, aby zmienić początek ścieżki modułu z
br:
nabr/
. Ponadto poToyCompanyRegistry
znaku zmień ukośnik (/
) na dwukropek (:
).Wprowadź podobną zmianę w
cdn
module:module cdn 'br/ToyCompanyRegistry:cdn:v1' = { name: 'toy-dog-cdn' params: { httpsOnly: true originHostName: website.outputs.appServiceAppHostName } }
Zapisz plik.
Weryfikowanie pliku Bicep
Po zakończeniu wszystkich powyższych zmian plik main.bicep powinien wyglądać następująco:
@description('The Azure region into which the resources should be deployed.')
param location string = 'westus3'
@description('The name of the App Service app.')
param appServiceAppName string = 'toy-${uniqueString(resourceGroup().id)}'
@description('The name of the App Service plan SKU.')
param appServicePlanSkuName string = 'F1'
var appServicePlanName = 'toy-dog-plan'
module website 'br/ToyCompanyRegistry:website:v1' = {
name: 'toy-dog-website'
params: {
appServiceAppName: appServiceAppName
appServicePlanName: appServicePlanName
appServicePlanSkuName: appServicePlanSkuName
location: location
}
}
module cdn 'br/ToyCompanyRegistry:cdn:v1' = {
name: 'toy-dog-cdn'
params: {
httpsOnly: true
originHostName: website.outputs.appServiceAppHostName
}
}
Jeśli plik nie jest zgodny, skopiuj przykład lub dostosuj szablon, aby był zgodny z przykładem.
Wdróż na platformie Azure
W terminalu programu Visual Studio Code wdróż szablon na platformie Azure, uruchamiając następujące polecenie. Ukończenie pomyślnego wdrożenia może potrwać kilka minut.
az deployment group create \
--template-file main.bicep
New-AzResourceGroupDeployment -TemplateFile main.bicep
Weryfikowanie wdrożenia
Przejdź do witryny Azure Portal i upewnij się, że jesteś w subskrypcji piaskownicy:
- Wybierz swój awatar w prawym górnym rogu strony.
- Wybierz pozycję Przełącz katalog. Z listy wybierz katalog Microsoft Learn Sandbox.
Na panelu po lewej stronie wybierz pozycję Grupy zasobów.
Wybierz pozycję
[nazwa grupy zasobów piaskownicy] .W menu po lewej stronie wybierz pozycję Wdrożenia.
Zwróć uwagę, że na liście znajdują się trzy wdrożenia:
- main reprezentuje wdrożenie nadrzędnego pliku Bicep.
- toy-dog-cdn i toy-dog-website reprezentują moduły zawarte w pliku main.bicep .
Wybierz główne wdrożenie i rozwiń węzeł Szczegóły wdrożenia.
Zwróć uwagę, że oba moduły są wymienione na liście i że ich typy są wyświetlane jako
Microsoft.Resources/deployments
. Modułtoy-dog-website
jest wymieniony dwa razy, ponieważ jego dane wyjściowe również znajdują się w szablonie.Wybierz wdrożenia toy-dog-cdn i toy-dog-website i przejrzyj zasoby wdrożone w każdym z nich. Zwróć uwagę, że odpowiadają zasobom zdefiniowanym w odpowiednich modułach.