Cvičení – přidání prostředků do zásobníku nasazení
Jste ve sprintu 3 pro novou aplikaci pro vklady. V poslední době požádal tým o změny některých služeb Azure, které se používají. Požádali také o vytvoření dalších služeb potřebných k podpoře aplikace.
V tomto cvičení vytvoříte zásobník nasazení s vymezeným oborem na skupinu prostředků, která odkazuje na soubor Bicep. Soubor definuje plán služby App Service, službu App Service a databázi Azure SQL. Pak upravíte skladovou položku plánu služby App Service a aktualizujete zásobník nasazení. Nakonec přidáte existující pracovní prostor služby Log Analytics a novou instanci Application Insights, která podporuje monitorování aplikace.
Během tohoto procesu:
- Vytvoření souboru Bicep, který definuje vaši počáteční architekturu
- Vytvořte zásobník nasazení vymezený na skupinu prostředků pomocí souboru Bicep.
- Úprava vlastností existujícího spravovaného prostředku
- Aktualizujte soubor Bicep tak, aby zahrnoval existující pracovní prostor služby Log Analytics a novou instanci Application Insights.
- Aktualizace zásobníku nasazení pro nasazení spravovaných prostředků
- Ověřte spravované prostředky zásobníku nasazení.
V tomto cvičení se používá rozšíření Bicep pro Visual Studio Code. Nezapomeňte toto rozšíření do Visual Studio Codu nainstalovat.
Vytvoření souboru Bicep
Prvním krokem je vytvoření souboru Bicep, který definuje naše prostředky, které se mají použít se zásobníkem nasazení.
Otevřete Visual Studio Code.
Vytvořte nový soubor s názvem main.bicep.
Uložte prázdný soubor tak, aby Visual Studio Code načítal nástroje Bicep.
Můžete vybrat možnost Uložit jako soubor>nebo vybrat Kombinaci kláves Ctrl+S ve Windows (⌘+S v systému macOS). Nezapomeňte si zapamatovat, kam jste soubor uložili. Můžete například chtít vytvořit složku šablon , do které chcete soubor uložit.
Do souboru přidejte následující kód Bicep. Šablonu nasadíte brzy.
// Parameters @description('The location for all resources.') param location string = 'eastus' @description('The name of the SQL database.') param sqlDatabaseName string = 'sqldb-${uniqueString(resourceGroup().id)}' @description('The password of the admin user.') param sqlServerAdminUserName string @description('The name of the admin user.') @secure() param sqlServerAdminPassword string @description('The name of the SQL server.') param sqlServerName string = 'sql-${uniqueString(resourceGroup().id)}' @description('The name of the web application.') param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}' // Variables @description('The name of the app service plan.') var appServicePlanName = 'plan-deposits' // Resource - App Service Plan resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = { name: appServicePlanName location: location sku: { name: 'F1' capacity: 1 } } // Resource - Web App resource webApplication 'Microsoft.Web/sites@2023-12-01' = { name: webApplicationName location: location properties: { serverFarmId: appServicePlan.id } } // Resource - SQL Server resource sqlServer 'Microsoft.Sql/servers@2021-11-01' ={ name: sqlServerName location: location properties: { administratorLogin: sqlServerAdminUserName administratorLoginPassword: sqlServerAdminPassword } } // Resource - SQL Database resource sqlServerDatabase 'Microsoft.Sql/servers/databases@2021-11-01' = { parent: sqlServer name: sqlDatabaseName location: location sku: { name: 'Standard' tier: 'Standard' } }
Všimněte si, že používáte výrazy, které obsahují interpolaci řetězců a
uniqueString()
funkci k definování výchozích hodnot parametrů. Někdo, kdo tuto šablonu nasazuje, může přepsat výchozí hodnoty parametrů zadáním hodnot v době nasazení, ale nemůže přepsat hodnoty proměnných.Všimněte si také, že pro název plánu služby App Service používáte proměnnou, ale pro ostatní názvy používáte parametry. Účty úložiště a aplikace App Service potřebují globálně jedinečné názvy, ale názvy plánů služby App Service musí být jedinečné jenom v rámci skupiny prostředků. Tento rozdíl znamená, že se nejedná o použití stejného názvu plánu služby App Service v různých nasazeních, pokud se všechna nasazení nacházejí v různých skupinách prostředků.
Uložte změny souboru.
Vytvoření zásobníku nasazení a nasazení prostředků do Azure
Pokud chcete tuto šablonu nasadit do Azure, musíte se přihlásit ke svému účtu Azure z terminálu editoru Visual Studio Code. Ujistěte se, že jste nainstalovali nástroje Azure CLI .
V nabídce Terminal (Terminál) vyberte New Terminal (Nový terminál). Okno terminálu se obvykle otevře v dolní polovině obrazovky.
Pokud se v okně terminálu zobrazí bash na pravé straně, znamená to, že správné prostředí je už otevřené. Pokud se na pravé straně zobrazí ikona prostředí Bash, můžete ho vybrat a spustit prostředí.
Pokud se zobrazí jiné prostředí než Bash, vyberte šipku rozevíracího seznamu prostředí a pak vyberte Git Bash.
V terminálu přejděte do adresáře, do kterého jste šablonu uložili. Pokud jste například šablonu uložili do složky templates , můžete použít tento příkaz:
cd templates
Instalace Bicep
Spuštěním následujícího příkazu se ujistěte, že máte nejnovější verzi Bicep:
az bicep install && az bicep upgrade
Přihlášení k Azure pomocí Azure CLI
V terminálu editoru Visual Studio Code se přihlaste k Azure spuštěním následujícího příkazu:
az login
V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.
V terminálu editoru Visual Studio Code se zobrazí seznam předplatných přidružených k tomuto účtu.
V seznamu vyhledejte předplatné, které chcete použít pro toto cvičení.
Pokud jste zmeškali seznam z přihlášení, můžete pomocí následujícího fragmentu kódu znovu zobrazit seznam předplatných.
az account list --output table
Nastavte výchozí předplatné pro všechny příkazy Azure CLI, které spustíte v této relaci.
az account set --subscription "Your Subscription Name or ID"
Vytvoření skupiny zdrojů
Potřebujeme vytvořit skupinu prostředků pro náš zásobník nasazení a spravované prostředky. Pokud chcete vytvořit skupinu prostředků, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
az group create \
--name rg-depositsApplication \
--location eastus
Pokud chcete tuto šablonu nasadit do Azure, přihlaste se ke svému účtu Azure z terminálu editoru Visual Studio Code. Ujistěte se, že jste nainstalovali Azure PowerShell.
V nabídce Terminal (Terminál) vyberte New Terminal (Nový terminál). Okno terminálu se obvykle otevře v dolní polovině obrazovky.
Pokud se v okně terminálu na pravé straně zobrazí pwsh nebo PowerShell , znamená to, že správné prostředí je už otevřené. Pokud se na pravé straně zobrazí ikona prostředí PowerShell, můžete ho vybrat a spustit prostředí.
Pokud se zobrazí jiné prostředí než pwsh nebo PowerShell, vyberte šipku rozevíracího seznamu prostředí a pak vyberte PowerShell.
V terminálu přejděte do adresáře, do kterého jste šablonu uložili. Pokud jste například šablonu uložili do složky templates , můžete použít tento příkaz:
Set-Location -Path templates
Instalace rozhraní příkazového řádku Bicep
Pokud chcete použít Bicep z Azure PowerShellu, nainstalujte rozhraní příkazového řádku Bicep.
Přihlášení k Azure přes Azure PowerShell
V terminálu editoru Visual Studio Code se přihlaste k Azure spuštěním následujícího příkazu:
Connect-AzAccount
V prohlížeči, který se otevře, se přihlaste ke svému účtu Azure.
Spuštěním následujícího příkazu získejte ID předplatného, které chcete použít pro toto cvičení:
Get-AzSubscription
ID předplatného najdete ve druhém sloupci. Zkopírujte druhý sloupec. Vypadá nějak takto: aaaa0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e4e.
Nastavte výchozí předplatné pro všechny příkazy Azure PowerShellu, které spustíte v této relaci.
Set-AzContext -SubscriptionId {Your subscription ID}
Vytvoření skupiny zdrojů
Potřebujeme vytvořit skupinu prostředků pro náš zásobník nasazení a spravované prostředky. Pokud chcete vytvořit skupinu prostředků, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
New-AzResourceGroup `
-Name rg-depositsApplication `
-Location eastus
Vytvoření zásobníku nasazení
Dále musíme vytvořit zásobník nasazení s vymezeným oborem pro naši nedávno vytvořenou skupinu prostředků. Pokud chcete vytvořit zásobník nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
Pokud chcete vytvořit zásobník nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
az stack group create \ --name stack-deposits \ --resource-group rg-depositsApplication \ --template-file ./main.bicep \ --action-on-unmanage detachAll \ --deny-settings-mode none
Zobrazí výzvu k zadání hodnoty .
sqlServerAdminUserName
Vytvořte název správce SQL Serveru a potom enter.Zobrazí výzvu k zadání hodnoty .
sqlServerAdminPassword
Vytvořte složité heslo pro správce SQL Serveru a potom enter.Než přejdete k dalšímu úkolu, počkejte na dokončení operace aktualizace.
Pokud chcete vytvořit zásobník nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
New-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DetachAll ` -DenySettingsMode None
Zobrazí výzvu k zadání hodnoty .
sqlServerAdminUserName
Vytvořte název správce SQL Serveru a potom enter.Zobrazí výzvu k zadání hodnoty .
sqlServerAdminPassword
Vytvořte složité heslo pro správce SQL Serveru a potom enter.Než přejdete k dalšímu úkolu, počkejte na dokončení operace aktualizace.
Úprava souboru Bicep pro přidání existujícího pracovního prostoru služby Log Analytics a nové instance Application Insights
Otevřete soubor main.bicep v editoru Visual Studio Code.
Přidejte zvýrazněný kód do oddílu proměnných souboru:
// Variables @description('The name of the Application Insights instance.') var applicationInsightsName = 'appinsights-deposits' @description('The name of the app service plan.') var appServicePlanName = 'plan-deposits' @description('The name of the Log Analytics Workspace.') var logAnalyticsWorkspaceName = 'log-deposits'
Do dolní části souboru přidejte následující kód:
// Resource - Log Analytics Workspace resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' = { name: logAnalyticsWorkspaceName location: location properties: { retentionInDays: 30 sku: { name: 'PerGB2018' } } } // Resource - Application Insights resource applicationInsights 'Microsoft.Insights/components@2020-02-02' = { name: applicationInsightsName location: location kind: 'web' properties: { Application_Type: 'web' WorkspaceResourceId: logAnalyticsWorkspace.id } }
Uložte změny souboru.
Úprava souboru Bicep pro úpravu plánu služby App Service a služby App Service
Otevřete soubor main.bicep v editoru Visual Studio Code.
Změňte název skladové položky plánu služby App Service z
F1
:S1
// Resource - App Service Plan resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = { name: appServicePlanName location: location sku: { name: 'S1' capacity: 1 } }
Přidejte zvýrazněný kód pro drát v instanci Application Insights:
// Resource - Web App resource webApplication 'Microsoft.Web/sites@2023-12-01' = { name: webApplicationName location: location properties: { serverFarmId: appServicePlan.id siteConfig: { appSettings: [ { name: 'APPINSIGHTS_INSTRUMENTATIONKEY' value: applicationInsights.properties.InstrumentationKey } ] } } }
Uložte změny souboru.
Aktualizace zásobníku nasazení
Při změně souboru Bicep chceme aktualizovat zásobník nasazení tak, aby se implementovaly změny prostředků v souboru Bicep.
Pokud chcete aktualizovat zásobník nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
az stack group create \ --name stack-deposits \ --resource-group rg-depositsApplication \ --template-file ./main.bicep \ --action-on-unmanage detachAll \ --deny-settings-mode none
Zobrazí se zpráva s oznámením, že zásobník již v aktuálním předplatném existuje. Pokud se hodnota akce u nespravovaných parametrů změnila, upozornění vás upozorní na nové hodnoty. Stiskněte klávesu
y
, následovanou klávesou Enter.Zobrazí výzvu k zadání hodnoty .
sqlServerAdminUserName
Vytvořte název správce SQL Serveru a potom enter.Zobrazí výzvu k zadání hodnoty .
sqlServerAdminPassword
Vytvořte složité heslo pro správce SQL Serveru a potom enter.Než přejdete k dalšímu úkolu, počkejte na dokončení operace aktualizace.
Při změně souboru Bicep chceme aktualizovat zásobník nasazení tak, aby se implementovaly změny provedené v plánu služby App Service.
Pokud chcete aktualizovat zásobník nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
Set-AzResourceGroupDeploymentStack ` -Name stack-deposits ` -ResourceGroupName rg-depositsApplication ` -TemplateFile ./main.bicep ` -ActionOnUnmanage DetachAll ` -DenySettingsMode none
Zobrazí výzvu k zadání hodnoty .
sqlServerAdminUserName
Vytvořte název správce SQL Serveru a potom enter.Zobrazí výzvu k zadání hodnoty .
sqlServerAdminPassword
Vytvořte složité heslo pro správce SQL Serveru a potom enter.Než přejdete k dalšímu úkolu, počkejte na dokončení operace aktualizace.
Ověření aktualizace zásobníku nasazení a spravovaných prostředků
Po dokončení aktualizace chceme ověřit, že je skladová položka plánu služby App Service aktualizovaná a že zásobník nasazení spravuje existující pracovní prostor služby Log Analytics a novou instanci Application Insights.
Pokud chcete zobrazit konfiguraci plánu služby App Service, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
az appservice plan show \ --name plan-deposits --resource-group rg-depositsApplication
Všimněte si části sku sku výstupu. Plán služby App Service je teď na skladové posílce S1. Měl by se podobat následujícímu výstupu:
"sku": { "capacity": 1, "family": "S", "name": "S1", "size": "S1", "tier": "Standard" },
Pokud chcete zobrazit konfiguraci zásobníku nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
az stack group show \ --resource-group rg-depositsApplication \ --name stack-deposits
Všimněte si oddílu prostředků výstupu. Teď vidíme existující pracovní prostor služby Log Analytics a novou instanci Application Insights uvedenou jako spravované prostředky. Výsledek by se měl podobat následujícímu výstupu:
"resources": [ { "denyStatus": "none", "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm", "resourceGroup": "rg-depositsApplication", "status": "managed" }, { "denyStatus": "none", "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm/databases/sqldb-brpdm7iotbwjm", "resourceGroup": "rg-depositsApplication", "status": "managed" }, { "denyStatus": "none", "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits", "resourceGroup": "rg-depositsApplication", "status": "managed" }, { "denyStatus": "none", "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm", "resourceGroup": "rg-depositsApplication", "status": "managed" }, { "denyStatus": "none", "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././components/appinsights-deposits", "resourceGroup": "rg-depositsApplication", "status": "managed" }, { "denyStatus": "none", "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././workspaces/log-deposits", "resourceGroup": "rg-depositsApplication", "status": "managed" } ],
Pokud chcete zobrazit konfiguraci plánu služby App Service, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
$plan = Get-AzAppServicePlan ` -ResourceGroupName rg-depositsApplication ` -Name plan-deposits $sku = $plan.Sku $sku
Všimněte si výstupu. Plán služby App Service je teď na skladové posílce S1. Mělo by se podobat následujícímu:
Name : S1 Tier : Standard Size : S1 Family : S Capacity : 1
Pokud chcete zobrazit konfiguraci zásobníku nasazení, spusťte z terminálu v editoru Visual Studio Code následující příkaz.
Get-AzResourceGroupDeploymentStack ` -ResourceGroupName rg-depositsApplication ` -Name stack-deposits
Všimněte si oddílu prostředků výstupu. Teď vidíme existující pracovní prostor služby Log Analytics a novou instanci Application Insights uvedenou jako spravované prostředky. Výsledek by se měl podobat následujícímu výstupu:
Resources : /subscriptions/./resourceGroups/rg-depositsApplication/././servers/ sql-brpdm7iotbwjm /subscriptions/./resourceGroups/rg-depositsApplication/././servers/sql-brpdm7iotbwjm/databases/sqldb-brpdm7iotbwjm /subscriptions/./resourceGroups/rg-depositsApplication/././serverfarms/plan-deposits /subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-brpdm7iotbwjm /subscriptions/./resourceGroups/rg-depositsApplication/././components/appinsights-deposits /subscriptions/./resourceGroups/rg-depositsApplication/././workspaces/log-deposits