Gyakorlat – Bővítményerőforrások üzembe helyezése és meglévő erőforrások használata

Befejeződött

Most, hogy befejezte az adatbázis létrehozását az R&D-csapat számára, meg kell győződnie arról, hogy az adatbázishoz való hozzáférés naplózva van. Van egy meglévő Log Analytics-munkaterülete, ahová el szeretné küldeni ezeket a naplókat. A naplókat az R&D-csapat tárfiókjából is el kell küldenie ugyanahhoz a Log Analytics-munkaterülethez. Ebben a gyakorlatban frissítenie kell a Bicep-fájlt, hogy megfeleljen ezeknek a követelményeknek.

A folyamat során a következőt fogja elvégezni:

  • Egy Log Analytics-munkaterület létrehozása.
  • Frissítse a Bicep-fájlt, hogy diagnosztikai beállításokat adjon hozzá Cosmos DB-fiókjához.
  • Create a storage account.
  • A Bicep-fájlban frissítse a tárfiók diagnosztikai beállításait.
  • Helyezze üzembe a sablont, és ellenőrizze az eredményt.

Log Analytics-munkaterület létrehozása

Hozzon létre egy Log Analytics-munkaterületet, amellyel szimulálhatja, hogy már létrehozott egyet a szervezetében. Használja az Azure CLI-t a Bicep helyett.

A terminálban futtassa a következő Azure CLI-parancsot:

az monitor log-analytics workspace create \
  --workspace-name ToyLogs \
  --location eastus

Hozzon létre egy Log Analytics-munkaterületet, amellyel szimulálhatja, hogy már létrehozott egyet a szervezetében. Használja az Azure PowerShellt a Bicep helyett.

A terminálon futtassa a következő Azure PowerShell-parancsot:

New-AzOperationalInsightsWorkspace `
  -Name ToyLogs `
  -Location eastus

Megjegyzés:

Ebben a példában a Log Analytics-munkaterületet ugyanabban az előfizetésben és erőforráscsoportban helyezi üzembe, mint a többi erőforrást. A Log Analytics-munkaterületeket sok esetben olyan erőforráscsoportokban fogja tárolni, amelyek nem azonosak az alkalmazás erőforrásaival. Bicep továbbra is hivatkozhat rájuk.

Diagnosztikai beállítások hozzáadása az Azure Cosmos DB-hez

Az R&D-csapatnak minden kérést naplóznia kell az Azure Cosmos DB-fiókba. Úgy dönt, hogy az Azure Cosmos DB Azure Monitor-integrációja használatával gyűjti össze a DataPlaneRequests naplót, amely az Azure Cosmos DB-nek küldött kérésekkel kapcsolatos információkat tartalmazza.

Most, hogy létrehozta a szimulált, már meglévő Log Analytics-munkaterületet, hivatkozhat rá a Bicep-sablonból meglévő erőforrásként. Használhatja az Azure Cosmos DB-naplók célhelyeként.

Diagnosztikai beállítások hozzáadásához kövesse az alábbi lépéseket:

  1. A Visual Studio Code-ban nyissa meg a main.bicep fájlt a szerkesztőben, majd a meglévő változódefiníciók alatt adja hozzá a következő kódot:

    var logAnalyticsWorkspaceName = 'ToyLogs'
    var cosmosDBAccountDiagnosticSettingsName = 'route-logs-to-log-analytics'
    
  2. A fájl alján, az erőforrás-definíciók alatt adja hozzá a következő kódot:

    resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2020-03-01-preview' existing = {
      name: logAnalyticsWorkspaceName
    }
    

    Figyelje meg, hogy ez az erőforrásdefiníció a kulcsszót existing használja, és szándékosan kihagy más tulajdonságokat, amelyeket általában meg szeretne adni, ha a Log Analytics-munkaterületet ezen a Bicep-sablonon keresztül telepíti.

  3. Az imént hozzáadott kód alatt adja hozzá a következő kódot:

    resource cosmosDBAccountDiagnostics 'Microsoft.Insights/diagnosticSettings@2017-05-01-preview' = {
      scope: cosmosDBAccount
      name: cosmosDBAccountDiagnosticSettingsName
      properties: {
        workspaceId: logAnalyticsWorkspace.id
        logs: [
          {
            category: 'DataPlaneRequests'
            enabled: true
          }
        ]
      }
    }
    

    Figyelje meg, hogy ez a kód egy bővítményerőforrást helyez üzembe. A kulcsszó használatával közli a scope Bicep-et, hogy az erőforrást az Azure Cosmos DB-fiókhoz kell csatolni. A kód a id meglévő erőforrás tulajdonságát is használja, hogy az logAnalyticsWorkspace Azure megértse, hol küldje el az Azure Cosmos DB-naplókat.

Tárfiók létrehozása a toy design dokumentumokhoz

Hozzon létre egy Azure Storage-fiókot annak szimulálásához, hogy az R&D-csapat már létrehozott egyet a szervezetében. Használja az Azure CLI-t a Bicep helyett.

A terminálon futtassa a következő Azure CLI-parancsot. Cserélje le {storageaccountname} egy olyan névre, amely valószínűleg egyedi. A névnek mind kisbetűsnek kell lennie, 24 vagy kevesebb karaktert kell tartalmaznia, és nem tartalmazhat szóközöket vagy speciális karaktereket. Jegyezze fel a későbbi használat nevét.

az storage account create \
  --name {storageaccountname} \
  --location eastus

Hozzon létre egy Azure Storage-fiókot annak szimulálásához, hogy az R&D-csapat már létrehozott egyet a szervezetében. Használja az Azure PowerShellt a Bicep helyett.

A terminálon futtassa a következő Azure PowerShell-parancsot. Cserélje le {storageaccountname} egy olyan névre, amely valószínűleg egyedi. A névnek mind kisbetűsnek kell lennie, 24 vagy kevesebb karaktert kell tartalmaznia, és nem tartalmazhat szóközöket vagy speciális karaktereket.

New-AzStorageAccount `
  -Name {storageaccountname} `
  -Location eastus `
  -SkuName Standard_LRS

Diagnosztikai beállítások hozzáadása tárfiókhoz

Az R&D csapata azt szeretné, hogy az összes sikeres kérést naplózza az általuk létrehozott tárfiókba. Ön úgy dönt, hogy az Azure Storage és az Azure Monitor-naplók integrálásával éri el ezt a célt. Úgy dönt, hogy naplózza az összes olvasási, írási és törlési tevékenységet a Blob Storage-on az R&D-csapat tárfiókjában.

Frissítenie kell a Bicep-sablont, hogy hivatkozzon az előző lépésben létrehozott tárfiókra.

  1. A main.bicep fájl tetején, a paraméterdefiníciók alatt adja hozzá a következő paraméterdefiníciót:

    param storageAccountName string
    
  2. A változódefiníciók alatt adja hozzá a következő változódefiníciót:

    var storageAccountBlobDiagnosticSettingsName = 'route-logs-to-log-analytics'
    
  3. A fájl alján, az erőforrás-definíciók alatt adja hozzá a következő definíciót:

    resource storageAccount 'Microsoft.Storage/storageAccounts@2019-06-01' existing = {
      name: storageAccountName
    
      resource blobService 'blobServices' existing = {
        name: 'default'
      }
    }
    

    Figyelje meg, hogy mindkét erőforrás a kulcsszót existing használja.

  4. A fájl alján, az előző lépésben hozzáadott tárfiók-definíció alatt adja hozzá a következő kódot:

    resource storageAccountBlobDiagnostics 'Microsoft.Insights/diagnosticSettings@2017-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
          }
        ]
      }
    }
    

    Figyelje meg, hogy ez a bővítményerőforrás a beágyazott meglévő erőforrásra van scope állítva. A Bicep tisztában van azzal, hogy a bővítményerőforrást a blobServices gyermekerőforráshoz kell csatolnia.

    Ha végzett, a teljes Bicep-sablonnak így kell kinéznie:

    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@2020-04-01' = {
      name: cosmosDBAccountName
      location: location
      properties: {
        databaseAccountOfferType: 'Standard'
        locations: [
          {
            locationName: location
          }
        ]
      }
    }
    
    resource cosmosDBDatabase 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2020-04-01' = {
      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@2020-03-01-preview' existing = {
      name: logAnalyticsWorkspaceName
    }
    
    resource cosmosDBAccountDiagnostics 'Microsoft.Insights/diagnosticSettings@2017-05-01-preview' = {
      scope: cosmosDBAccount
      name: cosmosDBAccountDiagnosticSettingsName
      properties: {
        workspaceId: logAnalyticsWorkspace.id
        logs: [
          {
            category: 'DataPlaneRequests'
            enabled: true
          }
        ]
      }
    }
    
    resource storageAccount 'Microsoft.Storage/storageAccounts@2019-06-01' existing = {
      name: storageAccountName
    
      resource blobService 'blobServices' existing = {
        name: 'default'
      }
    }
    
    resource storageAccountBlobDiagnostics 'Microsoft.Insights/diagnosticSettings@2017-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
          }
        ]
      }
    }
    
  5. Mentse a fájl módosításait.

A sablon üzembe helyezése az Azure-ban

A terminálon futtassa a következő Azure CLI-parancsot. Cserélje le {storageaccountname} a gyakorlat során korábban létrehozott tárfiók nevére.

az deployment group create \
  --template-file main.bicep \
  --parameters storageAccountName={storageaccountname}

A terminálon futtassa a következő Azure PowerShell-parancsot. Cserélje le {storageaccountname} a gyakorlat során korábban létrehozott tárfiók nevére.

New-AzResourceGroupDeployment `
  -TemplateFile main.bicep `
  -storageAccountName {storageaccountname}

Az üzemelő példány ellenőrzése

  1. A böngészőben lépjen vissza az Azure Portalra. Lépjen az erőforráscsoportra. Továbbra is egy sikeres üzembe helyezést lát, mert az üzembe helyezés ugyanazt a nevet használta, mint az első üzembe helyezés.

  2. Válassza az 1 sikeres hivatkozást.

  3. Válassza ki a főként hívott üzembe helyezést, majd az Üzembe helyezés részletei elemre kattintva bontsa ki az üzembe helyezett erőforrások listáját.

    Screenshot of the Azure portal interface for the specific deployment, with the Azure Cosmos DB resources as well as two resources with type Microsoft.Insights/diagnosticSettings.

    Figyelje meg, hogy két erőforrás van felsorolva egy Microsoft.Insights/diagnosticSettingstípussal. Ezek az erőforrások az üzembe helyezett bővítményerőforrások. Az egyik erőforrás a tárfiókhoz, a másik pedig az Azure Cosmos DB-fiókhoz lett csatolva. Most ellenőrizheti, hogy az Azure Cosmos DB diagnosztikai beállításai megfelelően vannak-e konfigurálva.

  4. Válassza ki az Azure Cosmos DB-fiók erőforrását. Megnyílik a portál az Azure Cosmos DB-fiókhoz.

    Screenshot of the Azure portal interface for the specific deployment, with the Azure Cosmos DB account highlighted.

  5. A bal felső keresőmezőbe írja be a diagnosztikai beállításokat, és válassza a Diagnosztikai beállítások menüpontot.

    Screenshot of the Azure portal interface for the Azure Cosmos DB account, showing the search field with 'Diagnostic settings' entered and the 'Diagnostic settings' menu item highlighted.

  6. Előfordulhat, hogy az Azure Portal kéri, hogy engedélyezze a teljes szöveges lekérdezések támogatását a naplózáshoz. Ehhez a gyakorlathoz nincs szüksége rá, ezért válassza a Nem most lehetőséget.

    Screenshot of the Azure portal interface for the Azure Cosmos DB account showing Diagnostic settings page with prompt to enable full-text query.

  7. Figyelje meg, hogy van egy route-logs-to-log-analytics nevű diagnosztikai beállítás, amely úgy van konfigurálva, hogy a naplókat a ToyLogs munkaterületre irányozza.

    Screenshot of the Azure portal interface for the Azure Cosmos DB account, showing the diagnostic settings.

    Ha szeretné, azt is ellenőrizheti, hogy a tárfiók rendelkezik-e a blobtárolóhoz hasonló diagnosztikai beállítással.