Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Azure Cosmos DB adalah database NoSQL cepat Microsoft dengan API terbuka untuk skala apa pun. Anda dapat menggunakan Azure Cosmos DB untuk membuat dan mengueri database kunci/nilai, dokumen, dan grafik dengan cepat. Tanpa kartu kredit atau langganan Azure, Anda dapat menyiapkan Coba akun Azure Cosmos DB gratis. Panduan cepat ini berfokus pada proses penyebaran file Bicep untuk membuat database Azure Cosmos DB dan kontainer dalam database tersebut. Anda nantinya dapat menyimpan data dalam kontainer ini.
Bicep adalah bahasa khusus domain (DSL) yang menggunakan sintaksis deklaratif untuk menyebarkan sumber daya Azure. Ini menyediakan sintaks yang ringkas, keamanan jenis yang dapat diandalkan, dan dukungan untuk penggunaan kembali kode. Bicep menawarkan pengalaman penulisan terbaik untuk solusi infrastructure-as-code di Azure.
Prerequisites
Langganan Azure atau akun uji coba Azure Cosmos DB gratis.
- Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
Meninjau file Bicep
File Bicep yang digunakan dalam quickstart ini berasal dari Azure Quickstart Templates.
@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
Tiga sumber daya Azure yang ditentukan dalam file Bicep:
Microsoft.DocumentDB/databaseAccounts: Membuat akun Azure Cosmos DB.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases: Membuat database Azure Cosmos DB.
Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers: Membuat kontainer Azure Cosmos DB.
Tabel berikut menyoroti parameter dan output utama yang paling sering Anda tinjau atau sesuaikan dalam file Bicep ini.
| Parameter atau output | Nilai bawaan atau nilai contoh | Cakupan dan catatan |
|---|---|---|
accountName |
Nama unik yang dihasilkan | Nama akun global Azure Cosmos DB. |
databaseName |
myDatabase |
Nama database SQL API. |
containerName |
myContainer |
Nama kontainer SQL API. |
throughput |
400 |
Throughput yang dialokasikan dalam RU/dtk (unit permintaan per detik). |
partitionKeyPath |
/myPartitionKey |
Jalur kunci partisi logis. |
defaultTtl |
-1 |
Waktu hidup dalam hitung detik; -1 berarti item tidak pernah kedaluwarsa. |
| Versi API | 2023-11-15 |
Versi SQL API yang digunakan; perilaku dapat berubah dengan versi yang lebih baru. |
Important
Penyedia Azure Resource Manager, Microsoft.DocumentDB/databaseAccounts, telah mempertahankan nama yang sama selama bertahun-tahun. Ini memastikan bahwa templat yang ditulis bertahun-tahun yang lalu masih kompatibel dengan penyedia yang sama meskipun nama layanan dan sub-layanan telah berubah.
Menerapkan file Bicep
Simpan file Bicep sebagai main.bicep ke penyimpanan lokal komputer Anda.
Sebarkan file Bicep menggunakan Azure CLI atau Azure PowerShell.
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>Nota
Ganti <wilayah> utama dengan wilayah replika utama untuk akun Azure Cosmos DB, seperti westus. Ganti <wilayah> sekunder dengan wilayah replika sekunder untuk akun Azure Cosmos DB, seperti eastus.
Nilai wilayah menggunakan format nama wilayah Azure (misalnya,
eastus,westus2).Setelah penyebaran selesai, Anda akan melihat pesan yang menunjukkan penyebaran berhasil.
Cuplikan berikut menunjukkan contoh nilai parameter dan cara memverifikasi penyebaran.
az deployment group create \
--resource-group exampleRG \
--template-file main.bicep \
--parameters primaryRegion=eastus secondaryRegion=westus
az cosmosdb sql database list --account-name <account-name> --resource-group exampleRG
Output yang diharapkan mencakup nama database yang Anda tentukan, seperti "name": "myDatabase".
Validasikan penggelaran
Gunakan portal Azure, Azure CLI, atau Azure PowerShell untuk mencantumkan sumber daya yang disebarkan dalam grup sumber daya.
az resource list --resource-group exampleRG
Membersihkan sumber daya
Jika Anda berencana untuk terus bekerja dengan panduan memulai cepat dan tutorial berikutnya, Anda mungkin ingin membiarkan sumber daya ini tetap ada. Jika tidak lagi diperlukan, gunakan portal Azure, Azure CLI, atau Azure PowerShell untuk menghapus grup sumber daya dan sumber dayanya.
az group delete --name exampleRG
Langkah berikutnya
Dalam mulai cepat ini, Anda membuat akun Azure Cosmos DB, database, dan kontainer dengan menggunakan file Bicep dan memvalidasi penyebaran. Untuk mempelajari lebih lanjut tentang Azure Cosmos DB dan Bicep, lanjutkan membaca artikel berikut.
- Baca Gambaran Umum Azure Cosmos DB.
- Pelajari selengkapnya tentang Bicep.
- Mencoba melakukan perencanaan kapasitas untuk migrasi ke Azure Cosmos DB? Anda dapat menggunakan informasi tentang kluster database Anda yang ada saat ini untuk membuat perencanaan kapasitas.
- Jika Anda hanya mengetahui jumlah vCore dan server di kluster database yang ada, bacalah mengenai memperkirakan unit permintaan menggunakan vCore atau vCPU.
- Jika Anda mengetahui tingkat permintaan umum untuk beban kerja database Anda saat ini, baca tentang memperkirakan unit permintaan menggunakan perencana kapasitas Azure Cosmos DB.