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.
A Bicep tartományspecifikus nyelv (DSL), amely deklaratív szintaxist használ az Azure-erőforrások üzembe helyezéséhez. 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.
- Ha nem rendelkezik Azure-előfizetéssel, első lépésként hozzon létre egy ingyenes Azure-fiókot.
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:
Microsoft.DocumentDB/databaseAccounts: Azure Cosmos DB-fiók létrehozása.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Azure Cosmos DB-adatbázis létrehozása.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Azure Cosmos DB-tároló létrehozása.
Fontos
Az Azure Resource Manager-szolgáltató Microsoft.DocumentDB/databaseAccounts
már évek óta ugyanazt a nevet viseli. Ez biztosítja, hogy az évekkel ezelőtt írt sablonok továbbra is kompatibilisek legyenek ugyanazzal a szolgáltatóval, még akkor is, ha a szolgáltatás és az alszolgáltatások neve fejlődik.
A Bicep-fájl üzembe helyezése
Mentse a Bicep-fájlt main.bicep néven a helyi számítógépre.
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>
Feljegyzé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
Az erőforrások eltávolítása
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.