Gyakorlat – Erőforrások feltételes üzembe helyezése
Feljegyzés
Amikor első alkalommal aktivál egy tesztkörnyezetet, és elfogadja a feltételeket, a Microsoft-fiókja egy új, Microsoft Learn Sandbox nevű Azure-címtárhoz lesz társítva. Emellett hozzá lesz adva egy Concierge-előfizetés nevű speciális előfizetéshez is.
A toy cég erőforrásait számos környezetben kell üzembe helyeznie, és paraméterekkel és feltételekkel szeretné szabályozni, hogy mi legyen üzembe helyezve az egyes környezetekben.
Ebben a gyakorlatban létre fog hozni egy Azure SQL logikai kiszolgálót és egy adatbázist. Ezután hozzáadja a naplózási beállításokat, hogy a naplózás engedélyezve legyen, de azt csak éles környezetben való üzembe helyezéskor szeretné engedélyezni. Naplózási célból rendelkeznie kell egy tárfiókot, amelyet csak akkor fog üzembe helyezni, ha erőforrásokat helyez üzembe egy éles környezetben.
A folyamat során a következőt fogja elvégezni:
- Hozzon létre egy Bicep-fájlt, amely egy adatbázissal rendelkező logikai kiszolgálót határoz meg.
- Adjon hozzá egy tárfiókot és egy SQL-naplózási beállítást, amelyek mindegyike egy feltétellel van üzembe helyezve.
- Állítson be egy infrastruktúrát a fejlesztési környezethez, majd ellenőrizze az eredményt.
- Helyezze üzembe újra az infrastruktúrát az éles környezetben, majd tekintse meg a változásokat.
Ez a gyakorlat a Visual Studio Code Bicep-bővítményét használja. Telepítse ezt a bővítményt a Visual Studio Code-ban.
Bicep-sablon létrehozása logikai kiszolgálóval és adatbázissal
Nyissa meg a Visual Studio Code-ot.
Hozzon létre egy main.bicep nevű új fájlt.
Mentse az üres fájlt, hogy a Visual Studio Code betöltse a Bicep-eszközt.
Választhatja a Fájlmentés>másként lehetőséget, vagy a Ctrl+S billentyűkombinációt a Windowsban (⌘+S macOS rendszeren). Ne feledje, hogy hová mentette a fájlt. Létrehozhat például egy sablonmappát, amelybe mentheti.
Logikai kiszolgáló és adatbázis definiálásához adja hozzá a következő tartalmat a fájlhoz, valamint az erőforrásokhoz szükséges paramétereket és változókat. Írja be a tartalmat saját maga másolás és beillesztés helyett, így láthatja, hogy az eszköz hogyan segíti a Bicep-fájlok írását.
@description('The Azure region into which the resources should be deployed.') param location string @secure() @description('The administrator login username for the SQL server.') param sqlServerAdministratorLogin string @secure() @description('The administrator login password for the SQL server.') param sqlServerAdministratorLoginPassword string @description('The name and tier of the SQL database SKU.') param sqlDatabaseSku object = { name: 'Standard' tier: 'Standard' } var sqlServerName = 'teddy${location}${uniqueString(resourceGroup().id)}' var sqlDatabaseName = 'TeddyBear' resource sqlServer 'Microsoft.Sql/servers@2021-11-01-preview' = { name: sqlServerName location: location properties: { administratorLogin: sqlServerAdministratorLogin administratorLoginPassword: sqlServerAdministratorLoginPassword } } resource sqlDatabase 'Microsoft.Sql/servers/databases@2021-11-01-preview' = { parent: sqlServer name: sqlDatabaseName location: location sku: sqlDatabaseSku }
Figyelje meg, hogy az összes paraméter tartalmaz
@description
dekorátorokat, amelyek megkönnyítik a munkát. Azt is figyelje meg, hogy asqlServerAdministratorLogin
dekoratőr éssqlServerAdministratorLoginPassword
a@secure
paraméterek alkalmazva vannak rájuk. Ez azt jelzi a Bicep-nek, hogy ezek a paraméterértékek érzékenyek. Az Azure nem nyomtat bizalmas értékeket a naplókba.
Tárfiók hozzáadása
A logikai kiszolgálók naplózási beállításai között meg kell adnia egy tárfiókot a naplózási adatok tárolásához. A Bicep-fájlt úgy fogja frissíteni, hogy létrehozza ezt a tárfiókot, de csak akkor, ha a naplózás engedélyezve lesz.
A paraméterdeklarációk alatt adja hozzá a következő paramétereket:
@description('The name of the environment. This must be Development or Production.') @allowed([ 'Development' 'Production' ]) param environmentName string = 'Development' @description('The name of the audit storage account SKU.') param auditStorageAccountSkuName string = 'Standard_LRS'
A változódeklarációk alatt adja hozzá a következő változókat:
var auditingEnabled = environmentName == 'Production' var auditStorageAccountName = take('bearaudit${location}${uniqueString(resourceGroup().id)}', 24)
Figyelje meg, hogy létrehoz egy úgynevezett
auditingEnabled
változót, amelyet a naplózási erőforrások üzembe helyezésének feltételeként fog használni. Ha ilyen változót hoz létre, a Bicep-kód egyértelműbbé és könnyebben olvashatóvá válik. Bárki, aki megvizsgálja az erőforrások feltételeit, megérti, hogy mi történik.Azt is figyelje meg, hogy a
auditStorageAccountName
változó egy úgynevezetttake()
függvényt használ. A tárfiókok neve legfeljebb 24 karakter hosszúságú lehet, ezért ez a függvény levágja a sztring végét, hogy a név érvényes legyen.A fájl alján, az erőforrások alatt adja hozzá a tárfiók következő erőforrásdefinícióját:
resource auditStorageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = if (auditingEnabled) { name: auditStorageAccountName location: location sku: { name: auditStorageAccountSkuName } kind: 'StorageV2' }
Figyelje meg, hogy a tárfiók definíciói tartalmazzák a
if
kulcsszót, amely egy üzembe helyezési feltételt határoz meg.
Naplózási beállítások hozzáadása
Az imént hozzáadott tárfiók-erőforrás alatt adja hozzá a következőket:
resource sqlServerAudit 'Microsoft.Sql/servers/auditingSettings@2021-11-01-preview' = if (auditingEnabled) { parent: sqlServer name: 'default' properties: { state: 'Enabled' storageEndpoint: environmentName == 'Production' ? auditStorageAccount.properties.primaryEndpoints.blob : '' storageAccountAccessKey: environmentName == 'Production' ? listKeys(auditStorageAccount.id, auditStorageAccount.apiVersion).keys[0].value : '' } }
Figyelje meg, hogy a definíció ugyanazt
if
a feltételt tartalmazza, mint a tárfiók. Emellett astorageEndpoint
tulajdonságok astorageAccountAccessKey
kérdőjel (?
) ternáris operátor használatával biztosítják, hogy az értékek mindig érvényesek legyenek. Ha ezt nem teszi meg, az Azure Resource Manager kiértékeli a kifejezési értékeket, mielőtt kiértékeli az erőforrás üzembe helyezésének feltételét, és hibát ad vissza, mert a tárfiók nem található.Mentse a fájl módosításait.
A Bicep-fájl ellenőrzése
Miután elvégezte az összes fenti módosítást, a Bicep-fájlnak az alábbi példához hasonlóan kell kinéznie:
@description('The Azure region into which the resources should be deployed.')
param location string
@secure()
@description('The administrator login username for the SQL server.')
param sqlServerAdministratorLogin string
@secure()
@description('The administrator login password for the SQL server.')
param sqlServerAdministratorLoginPassword string
@description('The name and tier of the SQL database SKU.')
param sqlDatabaseSku object = {
name: 'Standard'
tier: 'Standard'
}
@description('The name of the environment. This must be Development or Production.')
@allowed([
'Development'
'Production'
])
param environmentName string = 'Development'
@description('The name of the audit storage account SKU.')
param auditStorageAccountSkuName string = 'Standard_LRS'
var sqlServerName = 'teddy${location}${uniqueString(resourceGroup().id)}'
var sqlDatabaseName = 'TeddyBear'
var auditingEnabled = environmentName == 'Production'
var auditStorageAccountName = take('bearaudit${location}${uniqueString(resourceGroup().id)}', 24)
resource sqlServer 'Microsoft.Sql/servers@2021-11-01-preview' = {
name: sqlServerName
location: location
properties: {
administratorLogin: sqlServerAdministratorLogin
administratorLoginPassword: sqlServerAdministratorLoginPassword
}
}
resource sqlDatabase 'Microsoft.Sql/servers/databases@2021-11-01-preview' = {
parent: sqlServer
name: sqlDatabaseName
location: location
sku: sqlDatabaseSku
}
resource auditStorageAccount 'Microsoft.Storage/storageAccounts@2021-09-01' = if (auditingEnabled) {
name: auditStorageAccountName
location: location
sku: {
name: auditStorageAccountSkuName
}
kind: 'StorageV2'
}
resource sqlServerAudit 'Microsoft.Sql/servers/auditingSettings@2021-11-01-preview' = if (auditingEnabled) {
parent: sqlServer
name: 'default'
properties: {
state: 'Enabled'
storageEndpoint: environmentName == 'Production' ? auditStorageAccount.properties.primaryEndpoints.blob : ''
storageAccountAccessKey: environmentName == 'Production' ? listKeys(auditStorageAccount.id, auditStorageAccount.apiVersion).keys[0].value : ''
}
}
Ha nem, másolja ki a példát, vagy módosítsa a sablont a példának megfelelően.
A Bicep-sablon üzembe helyezése az Azure-ban
Ha a sablont az Azure-ban szeretné üzembe helyezni, be kell jelentkeznie az Azure-fiókjába a Visual Studio Code termináljában. Győződjön meg arról, hogy telepítette az Azure CLI-t, és ne felejtsen el ugyanazzal a fiókkal bejelentkezni, mint a tesztkörnyezet aktiválásához.
Válassza a Terminál menü Új terminál pontját. A terminálablak általában a képernyő alsó felében nyílik meg.
Ha a terminálablak jobb oldalán látható rendszerhéj bash, a megfelelő rendszerhéj nyitva van, és a következő szakaszra ugorhat.
Ha nem bash-rendszerhéjjelenik meg, válassza a rendszerhéj legördülő nyilat, majd válassza a Git Bash lehetőséget.
A terminálhéjak listájában válassza a bash lehetőséget.
A terminálban lépjen arra a könyvtárra, ahová a sablont mentette. Ha például a sablont a sablonok mappájába mentette, használhatja ezt a parancsot:
cd templates
A Bicep telepítése
Futtassa a következő parancsot a Bicep legújabb verziójának biztosításához:
az bicep install && az bicep upgrade
Bejelentkezés az Azure-ba
A Visual Studio Code terminálon jelentkezzen be az Azure-ba a következő parancs futtatásával:
az login
A megnyíló böngészőben jelentkezzen be az Azure-fiókjába.
A Visual Studio Code terminál megjeleníti a fiókhoz társított előfizetések listáját.
Állítsa be az alapértelmezett előfizetést az ebben a munkamenetben futtatott összes Azure CLI-parancshoz.
az account set --subscription "Concierge Subscription"
Feljegyzés
Ha a közelmúltban több tesztkörnyezetet is használt, előfordulhat, hogy a terminál több Concierge-előfizetés-példányt is megjelenít. Ebben az esetben a következő két lépéssel állítsa be az egyiket alapértelmezett előfizetésként. Ha az előző parancs sikeres volt, és csak egy Concierge-előfizetés szerepel a listában, hagyja ki a következő két lépést.
Kérje le a Concierge-előfizetések azonosítóit.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Az előfizetés azonosítójának segítségével állítsa be az alapértelmezett előfizetést. Cserélje a {your subscription ID} értékét a legutóbbi Concierge-előfizetés azonosítójára.
az account set --subscription {your subscription ID}
Az alapértelmezett erőforráscsoport beállítása
Az Azure CLI használatakor beállíthatja az alapértelmezett erőforráscsoportot, és kihagyhatja a paramétert a gyakorlat többi Azure CLI-parancsából. Állítsa be az alapértelmezett értéket a tesztkörnyezetben létrehozott erőforráscsoportra.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
A sablon üzembe helyezése az Azure-ban az Azure CLI használatával
A Visual Studio Code terminálon helyezze üzembe a Bicep-sablont az Azure-ban az alábbi kód futtatásával. Figyelje meg, hogy a paramétert westus3
kifejezetten erre állítja location
be.
az deployment group create --template-file main.bicep --parameters location=westus3
A sablon Azure-ban való üzembe helyezéséhez jelentkezzen be az Azure-fiókjába a Visual Studio Code terminálból. Győződjön meg arról, hogy telepítette az Azure PowerShellt, és jelentkezzen be ugyanarra a fiókra, amely aktiválta a tesztkörnyezetet.
Válassza a Terminál menü Új terminál pontját. A terminálablak általában a képernyő alsó felében nyílik meg.
Ha a terminálablak jobb oldalán látható rendszerhéj PowerShell vagy pwsh, a megfelelő rendszerhéj nyitva van, és a következő szakaszra ugorhat.
Ha nem PowerShell vagy pwsh rendszerhéj jelenik meg, válassza a rendszerhéj legördülő nyilat, majd válassza a PowerShellt.
A terminálhéjak listájában válassza a PowerShellt vagy a pwsh-t.
A terminálban lépjen arra a könyvtárra, ahová a sablont mentette. Ha például a sablont a sablonok mappájába mentette, használhatja ezt a parancsot:
Set-Location -Path templates
A Bicep parancssori felület telepítése
A Bicep Azure PowerShellből való használatához telepítse a Bicep CLI-t.
Bejelentkezés az Azure-ba az Azure PowerShell használatával
A Visual Studio Code terminálon futtassa a következő parancsot:
Connect-AzAccount
Megnyílik egy böngésző, amellyel bejelentkezhet az Azure-fiókjába.
Miután bejelentkezett az Azure-ba, a terminál megjeleníti a fiókhoz társított előfizetések listáját.
Ha aktiválta a tesztkörnyezetet, megjelenik egy Concierge-előfizetés nevű előfizetés. Használja a gyakorlat hátralévő részében.
Állítsa be az alapértelmezett előfizetést az ebben a munkamenetben futtatott összes Azure PowerShell-parancshoz.
$context = Get-AzSubscription -SubscriptionName 'Concierge Subscription' Set-AzContext $context
Feljegyzés
Ha a közelmúltban több tesztkörnyezetet is használt, előfordulhat, hogy a terminál több Concierge-előfizetés-példányt is megjelenít. Ebben az esetben a következő két lépéssel állítsa be az egyiket alapértelmezett előfizetésként. Ha az előző parancs sikeres volt, és csak egy Concierge-előfizetés szerepel a listában, hagyja ki a következő két lépést.
Kérje le az előfizetés azonosítóját. Az alábbi parancs futtatásával listázhatja az előfizetéseit és azonosítóit. Keresse meg
Concierge Subscription
, majd másolja ki az azonosítót a második oszlopból. Úgy néz ki, mintcf49fbbc-217c-4eb6-9eb5-a6a6c68295a0
.Get-AzSubscription
Módosítsa az aktív előfizetését Concierge-előfizetésre. Mindenképpen cserélje le {Az előfizetés azonosítója} elemet a másoltra.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Az alapértelmezett erőforráscsoport beállítása
Beállíthatja az alapértelmezett erőforráscsoportot, és kihagyhatja a paramétert a gyakorlat többi Azure PowerShell-parancsából. Állítsa be ezt az alapértelmezett beállítást a tesztkörnyezetben önnek létrehozott erőforráscsoportra.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
A sablon üzembe helyezése az Azure-ban az Azure PowerShell használatával
A Visual Studio Code terminálon helyezze üzembe a sablont az Azure-ban az alábbi Azure PowerShell-parancs futtatásával. Ez a folyamat eltarthat néhány percig, majd sikeres üzembe helyezéssel fog rendelkezni.
New-AzResourceGroupDeployment -TemplateFile main.bicep -location westus3
Az üzembe helyezés végrehajtásakor a rendszer kéri, hogy adja meg az értékek és sqlServerAdministratorLoginPassword
paraméterek értékétsqlServerAdministratorLogin
.
Tipp.
A biztonságos paraméterek megadásakor a választott értékeknek bizonyos szabályokat kell követnie:
sqlServerAdministratorLogin
nem lehet könnyen kitalálható bejelentkezési név, példáuladmin
vagyroot
. Csak alfanumerikus karaktereket tartalmazhat, és betűvel kell kezdődnie.sqlServerAdministratorLoginPassword
Legalább nyolc karakter hosszúnak kell lennie, és kisbetűket, nagybetűket, számokat és szimbólumokat kell tartalmaznia. A jelszó összetettségéről további információt az SQL Azure jelszószabályzatában talál.
Ha a paraméterértékek nem felelnek meg a követelményeknek, az Azure SQL nem fogja üzembe helyezni a logikai kiszolgálót.
Ügyeljen arra is, hogy jegyezze fel a megadott bejelentkezést és jelszót. Hamarosan újra használni fogja őket.
Mivel nem adott meg értéket a environmentName
paraméterhez, a rendszer az alapértelmezett értéket Development
használja.
Várjon, amíg az üzembe helyezés befejeződik. Ha az üzembe helyezés meghiúsul egy üzenettel, amely szerint egy hely nem fogadja el az új Windows Azure SQL Database-kiszolgálók létrehozását, válasszon egy másik régiót, például eastus
vagy eastus2
.
Az üzemelő példány ellenőrzése
Az Azure Portal használatával vizsgálja meg az üzembe helyezett erőforrásokat, és vizsgálja meg az egyes üzemelő példányok eredményeit.
Nyissa meg az Azure Portalt, és győződjön meg arról, hogy a tesztkörnyezet-előfizetésben van az alábbi módon:
a. Válassza ki az avatart a jobb felső sarokban.
b. Válassza a Címtár váltása lehetőséget. A listában válassza a Microsoft Learn-tesztkörnyezet címtárat.A bal oldali panelen válassza az Erőforráscsoportok lehetőséget.
Válassza a
[tesztkörnyezeti erőforráscsoport neve] nevű erőforráscsoportot.Az Áttekintés szakaszban láthatja, hogy egy üzembe helyezés sikeres volt. Azt is láthatja, hogy egy logikai kiszolgáló és egy SQL-adatbázis van üzembe helyezve, de a naplózáshoz használt tárfiók nincs üzembe helyezve.
Feljegyzés
A névvel kezdődő
cloudshell
tárfiók nem kapcsolódik az üzemelő példányhoz, és a Learn tesztkörnyezet hozta létre.Az Üzemelő példányok mellett válassza az 1 Sikeres elemet az üzembe helyezés részleteinek megtekintéséhez.
Válassza ki a főként hívott üzembe helyezést, hogy lássa, mely erőforrások lettek üzembe helyezve, majd válassza az Üzembe helyezés részleteit a kibontásához.
Ebben az esetben egy logikai kiszolgáló és egy SQL-adatbázis lesz üzembe helyezve. Figyelje meg, hogy a tárfiók és a naplózási beállítások nem szerepelnek az erőforrások listáján.
Hagyja nyitva a lapot a böngészőben. Később még ellenőriznie kell az üzembe helyezéseket.
Az éles környezet ismételt üzembe helyezése
Az előző üzembe helyezés során a paraméter alapértelmezett értéke environmentName
lett használva, ami azt jelentette, hogy a paraméter értéke Development
.
Most explicit módon beállítja a paraméter értékét a következőre Production
: . A módosítás elvégzésével a naplózási célú tárfiók üzembe lesz helyezve, és a naplózás engedélyezve lesz a logikai kiszolgálón.
A sablon üzembe helyezése az éles környezethez
A Visual Studio Code terminálon telepítse a Bicep-sablont az Azure-ban az alábbi kód futtatásával:
az deployment group create --template-file main.bicep --parameters environmentName=Production location=westus3
A Visual Studio Code terminálon telepítse a sablont az Azure-ban az alábbi Azure PowerShell-parancs futtatásával:
New-AzResourceGroupDeployment -TemplateFile main.bicep -environmentName Production -location westus3
Figyelem
Ügyeljen arra, hogy ugyanazt a bejelentkezési és jelszót használja, amelyet korábban használt, vagy az üzembe helyezés nem fejeződik be sikeresen.
Egy-két perc elteltével az üzembe helyezésnek sikeresen le kell fejeződnie.
Az újbóli üzembe helyezés ellenőrzése
A gyakorlat elvégzéséhez ellenőrizze, hogy az ismételt üzembe helyezés sikeresen befejeződött-e, és hogy engedélyezve lett-e a naplózás.
Térjen vissza az Azure Portalra, és lépjen az erőforráscsoportra. Ha már meg van nyitva az erőforráscsoport, válassza a Frissítés lehetőséget.
Látnia kell, hogy egy további tárfiók lett üzembe helyezve naplózási célokra.
Válassza ki a logikai kiszolgálót (keresse meg az SQL Server típusú erőforrást).
A keresőmezőbe írja be a Naplózás kifejezést. A Biztonság területen válassza a Naplózás lehetőséget.
Ellenőrizze, hogy a naplózás engedélyezve van-e ehhez a logikai kiszolgálóhoz.