Cvičení – nasazení prostředků rozšíření a použití existujících prostředků
Teď, když jste dokončili vytváření databáze pro tým R&D, který chcete použít, musíte zajistit, aby byl přístup k databázi protokolován. Máte existující pracovní prostor služby Log Analytics, do kterého chcete tyto protokoly odesílat. Musíte také odesílat protokoly z účtu úložiště týmu R&D do stejného pracovního prostoru služby Log Analytics. V tomto cvičení aktualizujete soubor Bicep tak, aby splňoval tyto požadavky.
Během tohoto procesu:
- Vytvoříte pracovní prostor služby Log Analytics
- Aktualizujte soubor Bicep a přidejte nastavení diagnostiky do účtu služby Cosmos DB.
- Vytvořte si účet úložiště.
- V souboru Bicep aktualizujte nastavení diagnostiky pro účet úložiště.
- Nasaďte šablonu a ověřte výsledek.
Vytvoření pracovního prostoru služby Log Analytics
Vytvořte pracovní prostor služby Log Analytics, který simuluje, že už je vytvořený ve vaší organizaci. Místo Bicep použijte Azure CLI.
V terminálu spusťte následující příkaz Azure CLI:
az monitor log-analytics workspace create \
--workspace-name ToyLogs \
--location eastus
Vytvořte pracovní prostor služby Log Analytics, který simuluje, že už je vytvořený ve vaší organizaci. Místo Bicep použijte Azure PowerShell.
V terminálu spusťte následující příkaz Azure PowerShellu:
New-AzOperationalInsightsWorkspace `
-Name ToyLogs `
-Location eastus
Poznámka:
V tomto příkladu nasazujete pracovní prostor služby Log Analytics do stejného předplatného a skupiny prostředků jako ostatní prostředky. V mnoha situacích uložíte pracovní prostory služby Log Analytics do skupin prostředků, které nejsou stejné jako prostředky vaší aplikace. Bicep na ně stále může odkazovat.
Přidání nastavení diagnostiky pro službu Azure Cosmos DB
Váš tým R&D musí protokolovat všechny požadavky do účtu služby Azure Cosmos DB. Rozhodnete se použít integraci služby Azure Monitor pro službu Azure Cosmos DB ke shromažďování protokolu DataPlaneRequests , který obsahuje informace o požadavcích na službu Azure Cosmos DB.
Teď, když jste vytvořili simulovaný existující pracovní prostor služby Log Analytics, můžete na něj odkazovat z šablony Bicep jako na existující prostředek. Můžete ho použít jako cíl pro protokoly Azure Cosmos DB.
Pokud chcete přidat nastavení diagnostiky, postupujte následovně:
V editoru Visual Studio Code otevřete soubor main.bicep a pod existující definice proměnných přidejte následující kód:
var logAnalyticsWorkspaceName = 'ToyLogs' var cosmosDBAccountDiagnosticSettingsName = 'route-logs-to-log-analytics'
Do dolní části souboru pod definice prostředků přidejte následující kód:
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' existing = { name: logAnalyticsWorkspaceName }
Všimněte si, že tato definice prostředku používá
existing
klíčové slovo a že záměrně vynecháte další vlastnosti, které byste normálně určili, pokud byste pracovní prostor služby Log Analytics nasadili prostřednictvím této šablony Bicep.Pod kód, který jste právě přidali, přidejte následující kód:
resource cosmosDBAccountDiagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { scope: cosmosDBAccount name: cosmosDBAccountDiagnosticSettingsName properties: { workspaceId: logAnalyticsWorkspace.id logs: [ { category: 'DataPlaneRequests' enabled: true } ] } }
Všimněte si, že tento kód nasadí prostředek rozšíření. Pomocí klíčového
scope
slova bicep zjistí, že prostředek by měl být připojený k účtu služby Azure Cosmos DB. Kód také používáid
vlastnost existujícíhologAnalyticsWorkspace
prostředku, aby Azure rozuměl tomu, kde odesílat protokoly služby Azure Cosmos DB.
Vytvoření účtu úložiště pro dokumenty návrhu toy
Vytvořte účet úložiště Azure, který simuluje, že tým R&D už ho vytvořil ve vaší organizaci. Místo Bicep použijte Azure CLI.
V terminálu spusťte následující příkaz Azure CLI. Nahraďte {storageaccountname}
názvem, který bude pravděpodobně jedinečný. Název musí obsahovat 24 nebo méně znaků a nesmí obsahovat mezery ani speciální znaky. Poznamenejte si název pro pozdější použití.
az storage account create \
--name {storageaccountname} \
--location eastus
Vytvořte účet úložiště Azure, který simuluje, že tým R&D už ho vytvořil ve vaší organizaci. Místo Bicep použijte Azure PowerShell.
V terminálu spusťte následující příkaz Azure PowerShellu. Nahraďte {storageaccountname}
názvem, který bude pravděpodobně jedinečný. Název musí obsahovat 24 nebo méně znaků a nesmí obsahovat mezery ani speciální znaky.
New-AzStorageAccount `
-Name {storageaccountname} `
-Location eastus `
-SkuName Standard_LRS
Přidání nastavení diagnostiky pro účet úložiště
Váš tým R&D chce, abyste všechny úspěšné žádosti protokolovali do účtu úložiště, který vytvořil. K dosažení tohoto cíle se rozhodnete použít integraci služby Azure Storage s protokoly služby Azure Monitor. Rozhodnete se protokolovat všechny aktivity čtení, zápisu a odstranění v úložišti objektů blob v účtu úložiště týmu R&D.
Abyste mohli odkazovat na účet úložiště, který jste vytvořili v předchozím kroku, musíte aktualizovat šablonu Bicep.
V horní části souboru main.bicep pod definice parametrů přidejte následující definici parametru:
param storageAccountName string
Pod definice proměnných přidejte následující definici proměnné:
var storageAccountBlobDiagnosticSettingsName = 'route-logs-to-log-analytics'
V dolní části souboru pod definice prostředků přidejte následující definici:
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' existing = { name: storageAccountName resource blobService 'blobServices' existing = { name: 'default' } }
Všimněte si, že oba tyto prostředky používají
existing
klíčové slovo.V dolní části souboru pod definici účtu úložiště, kterou jste přidali v předchozím kroku, přidejte následující kód:
resource storageAccountBlobDiagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { scope: storageAccount::blobService name: storageAccountBlobDiagnosticSettingsName properties: { workspaceId: logAnalyticsWorkspace.id logs: [ { category: 'StorageRead' enabled: true } { category: 'StorageWrite' enabled: true } { category: 'StorageDelete' enabled: true } ] } }
Všimněte si, že tento prostředek rozšíření má nastavený
scope
na vnořený existující prostředek. Bicep chápe, že by měl připojit prostředek rozšíření k podřízenéhoblobServices
prostředku.Po dokončení by vaše úplná šablona Bicep měla vypadat takto:
param cosmosDBAccountName string = 'toyrnd-${uniqueString(resourceGroup().id)}' param cosmosDBDatabaseThroughput int = 400 param location string = resourceGroup().location param storageAccountName string var cosmosDBDatabaseName = 'FlightTests' var cosmosDBContainerName = 'FlightTests' var cosmosDBContainerPartitionKey = '/droneId' var logAnalyticsWorkspaceName = 'ToyLogs' var cosmosDBAccountDiagnosticSettingsName = 'route-logs-to-log-analytics' var storageAccountBlobDiagnosticSettingsName = 'route-logs-to-log-analytics' resource cosmosDBAccount 'Microsoft.DocumentDB/databaseAccounts@2024-05-15' = { name: cosmosDBAccountName location: location properties: { databaseAccountOfferType: 'Standard' locations: [ { locationName: location } ] } } resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-05-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: {} } } } resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' existing = { name: logAnalyticsWorkspaceName } resource cosmosDBAccountDiagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { scope: cosmosDBAccount name: cosmosDBAccountDiagnosticSettingsName properties: { workspaceId: logAnalyticsWorkspace.id logs: [ { category: 'DataPlaneRequests' enabled: true } ] } } resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' existing = { name: storageAccountName resource blobService 'blobServices' existing = { name: 'default' } } resource storageAccountBlobDiagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { scope: storageAccount::blobService name: storageAccountBlobDiagnosticSettingsName properties: { workspaceId: logAnalyticsWorkspace.id logs: [ { category: 'StorageRead' enabled: true } { category: 'StorageWrite' enabled: true } { category: 'StorageDelete' enabled: true } ] } }
Uložte změny souboru.
Nasazení šablony do Azure
V terminálu spusťte následující příkaz Azure CLI. Nahraďte {storageaccountname}
názvem účtu úložiště, který jste vytvořili dříve v tomto cvičení.
az deployment group create \
--template-file main.bicep \
--parameters storageAccountName={storageaccountname}
V terminálu spusťte následující příkaz Azure PowerShellu. Nahraďte {storageaccountname}
názvem účtu úložiště, který jste vytvořili dříve v tomto cvičení.
New-AzResourceGroupDeployment `
-TemplateFile main.bicep `
-storageAccountName {storageaccountname}
Kontrola nasazení
V prohlížeči se vraťte na web Azure Portal. Přejděte do skupiny prostředků. Stále se zobrazí jedno úspěšné nasazení, protože nasazení použilo stejný název jako první nasazení.
Vyberte odkaz 1 Úspěch.
Vyberte nasazení s názvem hlavní a pak výběrem podrobností o nasazení rozbalte seznam nasazených prostředků.
Všimněte si, že jsou uvedeny dva prostředky s typem
Microsoft.Insights/diagnosticSettings
. Tyto prostředky jsou prostředky rozšíření, které jste nasadili. Jeden z prostředků byl připojen k účtu úložiště a druhý byl připojen k účtu služby Azure Cosmos DB. Teď můžete ověřit, jestli jsou nastavení diagnostiky služby Azure Cosmos DB správně nakonfigurovaná.Vyberte prostředek účtu služby Azure Cosmos DB. Portál se otevře pro účet služby Azure Cosmos DB.
Do vyhledávacího pole v levém horním rohu zadejte nastavení diagnostiky a vyberte položku nabídky Nastavení diagnostiky.
Na webu Azure Portal se může zobrazit výzva, abyste povolili podporu fulltextových dotazů pro protokolování. Pro toto cvičení ho nepotřebujete, takže teď vyberte Ne.
Všimněte si, že existuje nastavení diagnostiky s názvem route-logs-to-log-analytics, které je nakonfigurované tak, aby směrovaly protokoly do pracovního prostoru ToyLogs .
Pokud chcete, můžete také ověřit, že účet úložiště má pro úložiště objektů blob povolené podobné nastavení diagnostiky.