Ćwiczenie — definiowanie zasobów podrzędnych
Uwaga
Po pierwszym aktywowaniu piaskownicy i zaakceptowaniu warunków twoje konto Microsoft jest skojarzone z nowym katalogiem platformy Azure o nazwie Microsoft Learn Sandbox. Dodano cię również do specjalnej subskrypcji o nazwie Subskrypcja Concierge.
Zaczynasz pracować nad żądaniami zespołu ds. badań i badań i podejmowania decyzji o rozpoczęciu tworzenia bazy danych usługi Azure Cosmos DB na potrzeby danych testowych drona toy. W tym ćwiczeniu utworzysz konto usługi Azure Cosmos DB i dwa zasoby podrzędne, jedno przy użyciu parent
właściwości i drugiego jako zagnieżdżonego zasobu.
Podczas tego procesu wykonasz następujące czynności:
- Utwórz plik Bicep, który wdraża konto usługi Cosmos DB.
- Dodaj bazę danych i kontener, które są zasobami podrzędnym konta usługi Cosmos DB.
- Wdróż szablon i zweryfikuj wdrożenie.
W tym ćwiczeniu jest używane rozszerzenie Bicep dla programu Visual Studio Code. Pamiętaj, aby zainstalować to rozszerzenie w programie Visual Studio Code.
Tworzenie szablonu Bicep zawierającego konto usługi Azure Cosmos DB
Najpierw należy utworzyć nowy szablon Bicep przy użyciu konta usługi Azure Cosmos DB. Aby to zrobić:
Otwórz 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 nacisnąć Ctrl+S w systemie Windows (⌘+S w systemie macOS). Pamiętaj, gdzie zapisano plik. Na przykład możesz utworzyć folder scripts , aby go zapisać.
Dodaj następującą zawartość do pliku. Dobrym pomysłem jest ręczne wprowadzenie go zamiast kopiować i wklejać. Dzięki temu możesz zobaczyć, jak narzędzia ułatwiają pisanie plików Bicep.
param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}' param location string = resourceGroup().location resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-11-15' = { name: cosmosDBAccountName location: location properties: { databaseAccountOfferType: 'Standard' locations: [ { locationName: location } ] } }
Napiwek
Bicep jest ściśle o tym, gdzie umieszczasz podziały wierszy, więc pamiętaj, aby dodać podziały wierszy tylko tam, gdzie pokazano tutaj.
Ten szablon Bicep wdraża konto usługi Azure Cosmos DB, które jest zasobem nadrzędnym, na którym opierasz się w następnej sekcji.
Zapisz zmiany w pliku.
Dodawanie bazy danych
Następnie utworzysz bazę danych, która jest zasobem podrzędnym konta usługi Azure Cosmos DB.
W górnej części pliku między dwoma istniejącymi parametrami dodaj następujący parametr:
param cosmosDBDatabaseThroughput int = 400
W obszarze deklaracji parametrów dodaj następującą zmienną:
var cosmosDBDatabaseName = 'FlightTests'
Dodaj następującą definicję zasobu w dolnej części pliku poniżej definicji zasobu konta usługi Azure Cosmos DB.
resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-11-15' = { parent: cosmosDBAccount name: cosmosDBDatabaseName properties: { resource: { id: cosmosDBDatabaseName } options: { throughput: cosmosDBDatabaseThroughput } } }
Zwróć uwagę, że ten kod wdraża bazę danych, która jest zasobem podrzędnym, przy użyciu
parent
właściwości . Zwróć również uwagę, że kod używa w pełni kwalifikowanego typu zasobu z określoną jawnie wersją interfejsu API.Zapisz zmiany w pliku.
Dodawanie kontenera
Teraz dodasz kolejny zasób podrzędny. Tym razem należy dodać go jako zagnieżdżony zasób zamiast używać parent
właściwości .
W górnej części pliku poniżej
cosmosDBDatabaseName
definicji zmiennej dodaj następujące zmienne:var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId'
W dolnej części pliku w definicji zasobu bazy danych i przed zamknięciem nawiasu klamrowego (
}
) dodaj następującą definicję zagnieżdżonego zasobu:resource container 'containers' = { name: cosmosDBContainerName properties: { resource: { id: cosmosDBContainerName partitionKey: { kind: 'Hash' paths: [ cosmosDBContainerPartitionKey ] } } options: {} } }
Zwróć uwagę, że użyto krótkiego typu zasobu ,
containers
ponieważ Bicep rozumie, że należy on do typu zasobu nadrzędnego. Bicep wie, że w pełni kwalifikowany typ zasobu toMicrosoft.DocumentDB/databaseAccounts/sqlDatabases/containers
. Nie określono wersji interfejsu API, więc Bicep używa wersji z zasobu nadrzędnego.Zapisz zmiany w pliku.
Zweryfikuj plik Bicep
Po zakończeniu wszystkich powyższych zmian plik main.bicep powinien wyglądać następująco:
param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}'
param cosmosDBDatabaseThroughput int = 400
param location string = resourceGroup().location
var cosmosDBDatabaseName = 'FlightTests'
var cosmosDBContainerName = 'FlightTests'
var cosmosDBContainerPartitionKey = '/droneId'
resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-11-15' = {
name: cosmosDBAccountName
location: location
properties: {
databaseAccountOfferType: 'Standard'
locations: [
{
locationName: location
}
]
}
}
resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-11-15' = {
parent: cosmosDBAccount
name: cosmosDBDatabaseName
properties: {
resource: {
id: cosmosDBDatabaseName
}
options: {
throughput: cosmosDBDatabaseThroughput
}
}
resource container 'containers' = {
name: cosmosDBContainerName
properties: {
resource: {
id: cosmosDBContainerName
partitionKey: {
kind: 'Hash'
paths: [
cosmosDBContainerPartitionKey
]
}
}
options: {}
}
}
}
Jeśli tak nie jest, skopiuj przykład lub dostosuj szablon tak, aby był zgodny z przykładem.
Wdrażanie szablonu na platformie Azure
Aby wdrożyć ten szablon na platformie Azure, musisz zalogować się na konto platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że zainstalowano interfejs wiersza polecenia platformy Azure i pamiętaj, aby zalogować się przy użyciu tego samego konta, które zostało użyte do aktywowania piaskownicy.
W menu Terminal wybierz polecenie New Terminal (Nowy terminal). Okno terminalu zwykle otwiera się w dolnej połowie ekranu.
Jeśli w oknie terminalu jest wyświetlana powłoka bash po prawej stronie, oznacza to, że prawidłowa powłoka jest już otwarta. Alternatywnie, jeśli po prawej stronie zostanie wyświetlona ikona powłoki bash, możesz ją wybrać, aby uruchomić powłokę.
Jeśli zostanie wyświetlona powłoka inna niż powłoka bash , wybierz strzałkę listy rozwijanej powłoki, a następnie wybierz pozycję Git Bash.
W terminalu przejdź do katalogu, w którym zapisano szablon. Jeśli na przykład szablon został zapisany w folderze templates , możesz użyć następującego polecenia:
cd templates
Instalowanie aplikacji Bicep
Uruchom następujące polecenie, aby upewnić się, że masz najnowszą wersję aplikacji Bicep:
az bicep install && az bicep upgrade
Logowanie się do platformy Azure
W terminalu programu Visual Studio Code zaloguj się do platformy Azure, uruchamiając następujące polecenie:
az login
W przeglądarce, która zostanie otwarta, zaloguj się do konta platformy Azure. W terminalu programu Visual Studio Code zostanie wyświetlona lista subskrypcji skojarzonych z tym kontem. Wybierz subskrypcję o nazwie Subskrypcja Concierge.
Jeśli ostatnio użyto więcej niż jednej piaskownicy, terminal może wyświetlić więcej niż jedno wystąpienie subskrypcji Concierge. W tym przypadku użyj dwóch następnych kroków, aby ustawić jedną jako domyślną subskrypcję.
Pobierz identyfikatory subskrypcji Concierge.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Ustaw domyślną subskrypcję przy użyciu identyfikatora subskrypcji. Zastąp ciąg {your subscription ID} najnowszym identyfikatorem subskrypcji Concierge.
az account set --subscription {your subscription ID}
Ustawianie domyślnej grupy zasobów
W przypadku korzystania z interfejsu wiersza polecenia platformy Azure możesz ustawić domyślną grupę zasobów i pominąć parametr z pozostałych poleceń interfejsu wiersza polecenia platformy Azure w tym ćwiczeniu. Ustaw wartość domyślną na grupę zasobów utworzoną dla Ciebie w środowisku piaskownicy.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Wdrażanie szablonu na platformie Azure
Uruchom następujący kod z terminalu w programie Visual Studio Code, aby wdrożyć szablon Bicep na platformie Azure. Wykonanie tej operacji może potrwać minutę lub dwie, zanim zobaczysz pomyślne wdrożenie.
az deployment group create --name main --template-file main.bicep
Aby wdrożyć ten szablon na platformie Azure, zaloguj się do konta platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że zainstalowano program Azure PowerShell i zaloguj się do tego samego konta, na którym aktywowano piaskownicę.
W menu Terminal wybierz polecenie New Terminal (Nowy terminal). Okno terminalu zwykle otwiera się w dolnej połowie ekranu.
Jeśli w oknie terminalu jest wyświetlany program pwsh lub powershell po prawej stronie, oznacza to, że prawidłowa powłoka jest już otwarta. Alternatywnie, jeśli po prawej stronie zostanie wyświetlona ikona powłoki programu PowerShell, możesz ją wybrać, aby uruchomić powłokę.
Jeśli zostanie wyświetlona powłoka inna niż pwsh lub powershell , wybierz strzałkę listy rozwijanej powłoki, a następnie wybierz pozycję PowerShell.
W terminalu przejdź do katalogu, w którym zapisano szablon. Jeśli na przykład szablon został zapisany w folderze templates , możesz użyć tego polecenia:
Set-Location -Path templates
Instalowanie interfejsu wiersza polecenia Bicep
Aby użyć aplikacji Bicep z poziomu programu Azure PowerShell, zainstaluj interfejs wiersza polecenia Bicep.
Logowanie się na platformie Azure przy użyciu programu Azure PowerShell
W terminalu programu Visual Studio Code uruchom następujące polecenie:
Connect-AzAccount
Zostanie otwarta przeglądarka umożliwiająca zalogowanie się do konta platformy Azure. Przeglądarka może zostać otwarta w tle.
Po zalogowaniu się na platformie Azure w terminalu zostanie wyświetlona lista subskrypcji skojarzonych z tym kontem. Jeśli aktywowano piaskownicę, zostanie wyświetlona subskrypcja o nazwie Subskrypcja Concierge. Wybierz go w pozostałej części ćwiczenia.
Jeśli ostatnio użyto więcej niż jednej piaskownicy, terminal może wyświetlić więcej niż jedno wystąpienie subskrypcji Concierge. W tym przypadku użyj dwóch następnych kroków, aby ustawić jedną jako domyślną subskrypcję.
Uzyskaj identyfikator subskrypcji. Uruchomienie następującego polecenia zawiera listę subskrypcji i ich identyfikatorów.
Concierge Subscription
Wyszukaj ciąg , a następnie skopiuj identyfikator z drugiej kolumny. Wygląda to mniej więcej tak:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Zmień aktywną subskrypcję na Subskrypcja Concierge. Pamiętaj, aby zastąpić ciąg {Identyfikator subskrypcji} skopiowaną wartością.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Ustawianie domyślnej grupy zasobów
Możesz ustawić domyślną grupę zasobów i pominąć parametr z pozostałych poleceń programu Azure PowerShell w tym ćwiczeniu. Ustaw tę wartość domyślną na grupę zasobów utworzoną dla Ciebie w środowisku piaskownicy.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Wdrażanie szablonu na platformie Azure
Wdróż szablon na platformie Azure przy użyciu następującego polecenia programu Azure PowerShell w terminalu. Wykonanie tej operacji może potrwać minutę lub dwie, zanim zobaczysz pomyślne wdrożenie.
New-AzResourceGroupDeployment -Name main -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 stronie głównej wybierz pozycję Grupy zasobów. Zostanie wyświetlone okienko Grupy zasobów.
Wybierz pozycję
[nazwa grupy zasobów piaskownicy] .W obszarze Przegląd widać, że jedno wdrożenie zakończyło się pomyślnie.
Wybierz pozycję 1 udane, aby wyświetlić szczegóły wdrożenia.
Wybierz wdrożenie o nazwie main , aby zobaczyć, jakie zasoby zostały wdrożone, a następnie wybierz pozycję Szczegóły wdrożenia, aby je rozwinąć. W takim przypadku na liście znajduje się konto, baza danych i kontener usługi Cosmos DB.
Pozostaw stronę otwartą w przeglądarce, aby można było ponownie sprawdzić wdrożenia później.