Rövid útmutató: Azure Cosmos DB és tároló létrehozása a Bicep használatával

A KÖVETKEZŐRE VONATKOZIK: NoSQL

Az Azure Cosmos DB a Microsoft gyors NoSQL-adatbázisa, amely bármilyen mérethez elérhető API-kat biztosít. Az Azure Cosmos DB segítségével gyorsan hozhat létre és kérdezhet le kulcs-/értékadatbázisokat, dokumentum-adatbázisokat és gráfadatbázisokat. Hitelkártya vagy Azure-előfizetés nélkül beállíthat egy ingyenes Azure Cosmos DB-fiókot. Ez a rövid útmutató egy Bicep-fájl üzembe helyezésének folyamatával foglalkozik, amely létrehoz egy Azure Cosmos DB-adatbázist és egy tárolót az adatbázisban. Később ebben a tárolóban tárolhatja az adatokat.

Bicep is a domain-specific language (DSL) that uses declarative syntax to deploy Azure resources. Tömör szintaxist és megbízható típusbiztonságot kínál, valamint biztosítja a kódok újrafelhasználhatóságát. A Bicep a legjobb szerzői élményt nyújtja az Azure-beli infrastruktúra-kódmegoldásokhoz.

Előfeltételek

Azure-előfizetés vagy ingyenes Azure Cosmos DB-próbafiók.

A Bicep-fájl áttekintése

Az ebben a rövid útmutatóban használt Bicep-fájl az Azure Gyorsindítási sablonokból származik.

@description('Azure Cosmos DB account name, max length 44 characters')
param accountName string = 'sql-${uniqueString(resourceGroup().id)}'

@description('Location for the Azure Cosmos DB account.')
param location string = resourceGroup().location

@description('The primary region for the Azure Cosmos DB account.')
param primaryRegion string

@description('The secondary region for the Azure Cosmos DB account.')
param secondaryRegion string

@allowed([
  'Eventual'
  'ConsistentPrefix'
  'Session'
  'BoundedStaleness'
  'Strong'
])
@description('The default consistency level of the Cosmos DB account.')
param defaultConsistencyLevel string = 'Session'

@minValue(10)
@maxValue(2147483647)
@description('Max stale requests. Required for BoundedStaleness. Valid ranges, Single Region: 10 to 2147483647. Multi Region: 100000 to 2147483647.')
param maxStalenessPrefix int = 100000

@minValue(5)
@maxValue(86400)
@description('Max lag time (minutes). Required for BoundedStaleness. Valid ranges, Single Region: 5 to 84600. Multi Region: 300 to 86400.')
param maxIntervalInSeconds int = 300

@allowed([
  true
  false
])
@description('Enable system managed failover for regions')
param systemManagedFailover bool = true

@description('The name for the database')
param databaseName string = 'myDatabase'

@description('The name for the container')
param containerName string = 'myContainer'

@minValue(400)
@maxValue(1000000)
@description('The throughput for the container')
param throughput int = 400

var consistencyPolicy = {
  Eventual: {
    defaultConsistencyLevel: 'Eventual'
  }
  ConsistentPrefix: {
    defaultConsistencyLevel: 'ConsistentPrefix'
  }
  Session: {
    defaultConsistencyLevel: 'Session'
  }
  BoundedStaleness: {
    defaultConsistencyLevel: 'BoundedStaleness'
    maxStalenessPrefix: maxStalenessPrefix
    maxIntervalInSeconds: maxIntervalInSeconds
  }
  Strong: {
    defaultConsistencyLevel: 'Strong'
  }
}
var locations = [
  {
    locationName: primaryRegion
    failoverPriority: 0
    isZoneRedundant: false
  }
  {
    locationName: secondaryRegion
    failoverPriority: 1
    isZoneRedundant: false
  }
]

resource account 'Microsoft.DocumentDB/databaseAccounts@2024-02-15-preview' = {
  name: toLower(accountName)
  location: location
  kind: 'GlobalDocumentDB'
  properties: {
    consistencyPolicy: consistencyPolicy[defaultConsistencyLevel]
    locations: locations
    databaseAccountOfferType: 'Standard'
    enableAutomaticFailover: systemManagedFailover
    disableKeyBasedMetadataWriteAccess: true
  }
}

resource database 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases@2024-02-15-preview' = {
  parent: account
  name: databaseName
  properties: {
    resource: {
      id: databaseName
    }
  }
}

resource container 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers@2024-02-15-preview' = {
  parent: database
  name: containerName
  properties: {
    resource: {
      id: containerName
      partitionKey: {
        paths: [
          '/myPartitionKey'
        ]
        kind: 'Hash'
      }
      indexingPolicy: {
        indexingMode: 'consistent'
        includedPaths: [
          {
            path: '/*'
          }
        ]
        excludedPaths: [
          {
            path: '/myPathToNotIndex/*'
          }
          {
            path: '/_etag/?'
          }
        ]
        compositeIndexes: [
          [
            {
              path: '/name'
              order: 'ascending'
            }
            {
              path: '/age'
              order: 'descending'
            }
          ]
        ]
        spatialIndexes: [
          {
            path: '/location/*'
            types: [
              'Point'
              'Polygon'
              'MultiPolygon'
              'LineString'
            ]
          }
        ]
      }
      defaultTtl: 86400
      uniqueKeyPolicy: {
        uniqueKeys: [
          {
            paths: [
              '/phoneNumber'
            ]
          }
        ]
      }
    }
    options: {
      throughput: throughput
    }
  }
}

output location string = location
output name string = database.name
output resourceGroupName string = resourceGroup().name
output resourceId string = database.id

A Bicep-fájlban három Azure-erőforrás van definiálva:

A Bicep-fájl üzembe helyezése

  1. Mentse a Bicep-fájlt main.bicep néven a helyi számítógépre.

  2. Telepítse a Bicep-fájlt az Azure CLI vagy az Azure PowerShell használatával.

    az group create --name exampleRG --location eastus
    az deployment group create --resource-group exampleRG --template-file main.bicep --parameters primaryRegion=<primary-region> secondaryRegion=<secondary-region>
    

    Megjegyzés:

    Cserélje le az elsődleges régiót> az Azure Cosmos DB-fiók elsődleges replikarégiójára, például a WestUS-ra.< Cserélje le a másodlagos régiót> az Azure Cosmos DB-fiók másodlagos replikarégiójára, például az EastUS-ra.<

    Amikor az üzembe helyezés befejeződött, egy üzenetnek kell megjelennie, amely jelzi, hogy az üzembe helyezés sikeres volt.

Az üzembe helyezés ellenőrzése

Az Azure Portal, az Azure CLI vagy az Azure PowerShell használatával listázhatja az erőforráscsoportban üzembe helyezett erőforrásokat.

az resource list --resource-group exampleRG

Clean up resources

Ha további rövid útmutatókkal és oktatóanyagokkal szeretne dolgozni, érdemes lehet ezeket az erőforrásokat a helyén hagyni. Ha már nincs rá szükség, az Azure Portal, az Azure CLI vagy az Azure PowerShell használatával törölheti az erőforráscsoportot és annak erőforrásait.

az group delete --name exampleRG

Következő lépések

Ebben a rövid útmutatóban létrehozott egy Azure Cosmos DB-fiókot, egy adatbázist és egy tárolót egy Bicep-fájl használatával, és érvényesítette az üzembe helyezést. Ha többet szeretne megtudni az Azure Cosmos DB-ről és a Bicep-ről, folytassa az alábbi cikkekkel.

  • Olvassa el az Azure Cosmos DB áttekintését.
  • További információ a Bicepről.
  • Kapacitástervezést szeretne végezni az Azure Cosmos DB-be való migráláshoz? A kapacitástervezéshez használhatja a meglévő adatbázisfürt adatait.
    • Ha csak a meglévő adatbázisfürt virtuális magjainak és kiszolgálóinak számát ismeri, olvassa el a kérelemegységek becslését virtuális magok vagy vCPU-k használatával.
    • Ha ismeri az aktuális adatbázis számítási feladataira vonatkozó tipikus kérelmek arányát, olvassa el a kérelemegységek becslését az Azure Cosmos DB kapacitástervezővel.