Упражнение. Развертывание ресурсов расширения и использование существующих ресурсов
После завершения создания базы данных для используемой команды R&D необходимо убедиться, что доступ к базе данных регистрируется. У вас есть рабочая область Log Analytics, куда должны отправляться эти журналы. Кроме того, в ту же рабочую область Log Analytics необходимо отправлять журналы из учетной записи хранения команды исследований и разработки. В этом упражнении вы обновите файл Bicep в соответствии с этими требованиями.
В процессе вы:
- Создадите рабочую область Log Analytics.
- Обновите файл Bicep, чтобы добавить диагностики в свою учетную запись Cosmos DB.
- Создание учетной записи хранения.
- В файле Bicep обновите параметры диагностики для учетной записи хранения.
- Разверните свой шаблон и проверьте результат.
Создание рабочей области Log Analytics
Создайте рабочую область Log Analytics, чтобы имитировать рабочую область в своей организации. Используйте Azure CLI вместо Bicep.
В терминале выполните приведенную ниже команду Azure CLI:
az monitor log-analytics workspace create \
--workspace-name ToyLogs \
--location eastus
Создайте рабочую область Log Analytics, чтобы имитировать рабочую область в своей организации. Используйте Azure PowerShell вместо Bicep.
В терминале выполните приведенную ниже команду Azure PowerShell.
New-AzOperationalInsightsWorkspace `
-Name ToyLogs `
-Location eastus
Примечание.
В этом примере выполняется развертывание рабочей области Log Analytics в тех же подписке и группе ресурсов, что и другие ресурсы. Во многих ситуациях рабочие области Log Analytics хранятся не в тех же группах ресурсов, что и ресурсы приложений. Bicep дает возможность ссылаться и на них.
Добавление параметров диагностики для Azure Cosmos DB
Ваша команда исследований и разработки должна вести журнал всех запросов к учетной записи Azure Cosmos DB. Вы решили использовать интеграцию Azure Monitor для Azure Cosmos DB, чтобы собирать данные журнала DataPlaneRequests, содержащего сведения о запросах к Azure Cosmos DB.
Теперь, когда вы создали имитированную ранее рабочая область Log Analytics, вы можете ссылаться на нее из шаблона Bicep в качестве существующего ресурса. Ее можно использовать в качестве назначения для журналов Azure Cosmos DB.
Чтобы добавить параметры диагностика, выполните следующие действия.
В Visual Studio Code откройте файл main.bicep в редакторе, а затем под определениями переменных добавьте следующий код:
var logAnalyticsWorkspaceName = 'ToyLogs' var cosmosDBAccountDiagnosticSettingsName = 'route-logs-to-log-analytics'
В конце файла, под определениями ресурсов, добавьте следующий код:
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2023-09-01' existing = { name: logAnalyticsWorkspaceName }
Обратите внимание на то, что это определение ресурса содержит ключевое слово
existing
, и вы намеренно пропускаете другие свойства, которые обычно указываются при развертывании рабочей области Log Analytics с помощью этого шаблона Bicep.Под только что добавленным кодом добавьте следующий код:
resource cosmosDBAccountDiagnostics 'Microsoft.Insights/diagnosticSettings@2021-05-01-preview' = { scope: cosmosDBAccount name: cosmosDBAccountDiagnosticSettingsName properties: { workspaceId: logAnalyticsWorkspace.id logs: [ { category: 'DataPlaneRequests' enabled: true } ] } }
Обратите внимание на то, что этот код развертывает ресурс расширения. Он использует ключевое слово
scope
, чтобы сообщить Bicep о том, что ресурс должен быть подключен к учетной записи Azure Cosmos DB. Код также использует свойствоid
существующего ресурсаlogAnalyticsWorkspace
, чтобы указать платформе Azure, куда отправлять журналы Azure Cosmos DB.
Создание учетной записи хранения для проектных документов по игрушке
Создайте учетную запись хранения Azure, чтобы смоделировать созданную в организации учетную запись для команды исследований и разработки. Используйте Azure CLI вместо Bicep.
В терминале выполните приведенную ниже команду Azure CLI: Замените {storageaccountname}
именем, которое, скорее всего, должно быть уникальным. Это имя должно включать только строчные буквы, содержать не более 24 символов без пробелов и специальных символов. Запишите указанное имя для дальнейшего использования.
az storage account create \
--name {storageaccountname} \
--location eastus
Создайте учетную запись хранения Azure, чтобы смоделировать созданную в организации учетную запись для команды исследований и разработки. Используйте Azure PowerShell вместо Bicep.
В терминале выполните приведенную ниже команду Azure PowerShell: Замените {storageaccountname}
именем, которое, скорее всего, должно быть уникальным. Это имя должно включать только строчные буквы, содержать не более 24 символов без пробелов и специальных символов.
New-AzStorageAccount `
-Name {storageaccountname} `
-Location eastus `
-SkuName Standard_LRS
Добавление параметров диагностики для учетной записи хранения
Ваша команда R&D хочет, чтобы вы записывали все успешные запросы в созданную учетную запись хранения. Вы решили использовать интеграцию служба хранилища Azure с журналами Azure Monitor для достижения этой цели. Вы решили вести журнал всех действий чтения, записи и удаления в хранилище BLOB-объектов в учетной записи хранения команды исследований и разработки.
Необходимо обновить шаблон Bicep, чтобы добавить в него ссылку на учетную запись хранения, созданную на предыдущем шаге.
В начале файла main.bicep, под определениями параметров, добавьте следующее определение параметра:
param storageAccountName string
Под определениями переменных добавьте следующее определение переменной:
var storageAccountBlobDiagnosticSettingsName = 'route-logs-to-log-analytics'
В нижней части файла в определениях ресурсов добавьте следующее определение:
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' existing = { name: storageAccountName resource blobService 'blobServices' existing = { name: 'default' } }
Обратите внимание на то, что оба этих ресурса используют ключевое слово
existing
.В нижней части файла под определением учетной записи хранения, добавленной на предыдущем шаге, добавьте следующий код:
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 } ] } }
Обратите внимание на то, что в свойстве
scope
этого ресурса задан имеющийся вложенный ресурс. Bicep определяет, что необходимо подключить ресурс расширения к дочернему ресурсуblobServices
.По завершении полный шаблон Bicep должен выглядеть так:
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 } ] } }
Сохраните изменения в файле.
Развертывание шаблона в Azure
В терминале выполните приведенную ниже команду Azure CLI: Замените {storageaccountname}
именем учетной записи хранения, созданной в ранее в этом упражнении.
az deployment group create \
--template-file main.bicep \
--parameters storageAccountName={storageaccountname}
В терминале выполните приведенную ниже команду Azure PowerShell: Замените {storageaccountname}
именем учетной записи хранения, созданной в ранее в этом упражнении.
New-AzResourceGroupDeployment `
-TemplateFile main.bicep `
-storageAccountName {storageaccountname}
Проверка развертывания
В своем браузере вернитесь на портал Azure. Перейдите к группе ресурсов. Вы по-прежнему видите одно успешное развертывание, так как развертывание использовало то же имя, что и первое развертывание.
Выберите ссылку 1 Выполнено.
Выберите развертывание с именем main, а затем нажмите Сведения о развертывании, чтобы развернуть список развернутых ресурсов.
Обратите внимание, что в списке есть два ресурса с типом
Microsoft.Insights/diagnosticSettings
. Эти ресурсы — это развернутые ресурсы расширения. Один из ресурсов был подключен к учетной записи хранения, а другой — к учетной записи Azure Cosmos DB. Теперь можно проверить правильность настройки параметров диагностики Azure Cosmos DB.Выберите ресурс учетной записи Azure Cosmos DB. Откроется портал для учетной записи Azure Cosmos DB.
В поле Поиск в левом верхнем углу введите Параметры диагностики и выберите пункт Параметры диагностики из меню.
Портал Azure может предложить включить поддержку полнотекстового запроса для ведения журнала. Она не требуется для этого упражнения, поэтому выберите Не сейчас.
Обратите внимание, что есть параметр диагностики с именем route-logs-to-log-analytics, который настроен для маршрутизации журналов в рабочую область ToyLogs .
При необходимости также проверьте, что в учетной записи хранения аналогичный параметр включен для хранилища BLOB-объектов.