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.
- Terbaru
- 2026-06-01
- Pratinjau 2026-02-01
- 2025-09-01
- Pratinjau 2025-08-01
- 2025-07-01-preview
- pratinjau 2025-04-01
- pratinjau
2024-10-01 - 2024-07-01
- pratinjau
2024-06-01 - pratinjau
2024-03-01 - pratinjau
2024-02-15 pratinjau 11-15 - pratinjau
2023-09-15 - Pratinjau 03-03-2023
- Pratinjau 03-03-2023
Definisi sumber daya Bicep
Jenis sumber daya mongoClusters dapat disebarkan dengan operasi yang menargetkan:
- Grup sumber daya
- Lihat perintah penyebaran grup sumber daya
Untuk daftar properti yang diubah di setiap versi API, lihat mengubah log.
Contoh Penggunaan
Modul Terverifikasi Azure
Modul Terverifikasi Azure berikut dapat digunakan untuk menyebarkan jenis sumber daya ini.
| Modul | Deskripsi |
|---|---|
| Cosmos DB for MongoDB (vCore) | Modul Sumber Daya AVM untuk Cosmos DB untuk MongoDB (vCore) |
Format sumber daya
Untuk membuat sumber daya Microsoft.DocumentDB/mongoClusters, tambahkan Bicep berikut ke templat Anda.
resource symbolicname 'Microsoft.DocumentDB/mongoClusters@2026-06-01' = {
identity: {
type: 'string'
userAssignedIdentities: {
{customized property}: {}
}
}
location: 'string'
name: 'string'
properties: {
administrator: {
password: 'string'
userName: 'string'
}
authConfig: {
allowedModes: [
'string'
]
}
backup: {}
compute: {
tier: 'string'
}
createMode: 'string'
dataApi: {
mode: 'string'
}
encryption: {
customerManagedKeyEncryption: {
keyEncryptionKeyIdentity: {
identityType: 'string'
userAssignedIdentityResourceId: 'string'
}
keyEncryptionKeyUrl: 'string'
}
}
highAvailability: {
targetMode: 'string'
}
networkBypassMode: 'string'
previewFeatures: [
'string'
]
publicNetworkAccess: 'string'
replicaParameters: {
sourceLocation: 'string'
sourceResourceId: 'string'
}
restoreParameters: {
pointInTimeUTC: 'string'
sourceResourceId: 'string'
}
serverVersion: 'string'
sharding: {
shardCount: int
}
storage: {
sizeGb: int
type: 'string'
}
}
tags: {
{customized property}: 'string'
}
}
Nilai Properti
Microsoft.DocumentDB/mongoClusters
| Nama | Deskripsi | Nilai |
|---|---|---|
| identitas | Identitas layanan terkelola yang ditetapkan ke sumber daya ini. | managedServiceIdentity |
| lokasi | Lokasi geografis tempat sumber daya berada | string (diperlukan) |
| Nama | Nama sumber daya | tali Kendala: Panjang min = 3 Panjang maksimum = 40 Pola = ^[a-z0-9]+(-[a-z0-9]+)* (diperlukan) |
| Properti | Properti khusus sumber daya untuk sumber daya ini. | mongoClusterProperties |
| Tags | Tag sumber daya | Kamus nama dan nilai tag. Lihat Tag dalam templat |
Properti Administrator
| Nama | Deskripsi | Nilai |
|---|---|---|
| kata sandi | Kata sandi administrator. | tali Kendala: Nilai sensitif. Teruskan sebagai parameter aman. |
| userName | Nama pengguna administrator. | string |
AuthConfigProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| mode yang diizinkan | Mode autentikasi yang diizinkan untuk akses data pada kluster. | Array string yang berisi salah satu dari: 'MicrosoftEntraID' 'NativeAuth' |
Properti Cadangan
| Nama | Deskripsi | Nilai |
|---|
Properti Komputasi
| Nama | Deskripsi | Nilai |
|---|---|---|
| Tier | Tingkat komputasi untuk ditetapkan ke kluster, di mana setiap tingkatan memetakan ke ukuran virtual-core dan memori. Contoh nilai: 'M30', 'M40'. | string |
CustomerManagedKeyEncryptionProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| keyEncryptionKeyIdentity | Identitas yang digunakan untuk mengakses kunci enkripsi kunci. | KeyEncryptionKeyIdentity |
| keyEncryptionKeyUrl | URI kunci brankas kunci yang digunakan untuk enkripsi. | string |
DataApiProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| modus | Mode untuk menunjukkan apakah API Data Mongo diaktifkan untuk kluster. | 'Dinonaktifkan' 'Diaktifkan' |
EncryptionProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| customerManagedKeyEncryption | Pengaturan enkripsi kunci yang dikelola pelanggan. | CustomerManagedKeyEncryptionProperties |
Ketersediaan TinggiProperti
| Nama | Deskripsi | Nilai |
|---|---|---|
| Mode target | Mode ketersediaan tinggi target yang diminta untuk kluster. | 'Dinonaktifkan' 'Zona yang Sama' 'ZonaRedundantLebih Disukai' |
KeyEncryptionKeyIdentity
| Nama | Deskripsi | Nilai |
|---|---|---|
| identitasType | Jenis identitas. Hanya 'UserAssignedIdentity' yang didukung. | 'Identitas yang Ditetapkan Pengguna' |
| userAssignedIdentityResourceId | Pengguna menetapkan id sumber daya identitas. | string |
Identitas Layanan Terkelola
| Nama | Deskripsi | Nilai |
|---|---|---|
| jenis | Jenis identitas layanan terkelola (di mana jenis SystemAssigned dan UserAssigned diizinkan). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (wajib) |
| identitasYangDitetapkanPengguna | Kumpulan identitas yang ditetapkan pengguna yang terkait dengan sumber daya. Kunci kamus userAssignedIdentities akan menjadi id sumber daya ARM dalam formulir: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Nilai kamus dapat berupa objek kosong ({}) dalam permintaan. | UserAssignedIdentities |
MongoClusterProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| administrator | Properti administrator lokal untuk kluster mongo. | |
| authConfig | Konfigurasi autentikasi untuk kluster. | AuthConfigProperties |
| cadangan | Properti cadangan kluster mongo. | |
| komputasi | Properti komputasi kluster mongo. | |
| createMode | Mode untuk membuat kluster mongo. | Bawaan 'GeoReplica' 'PointInTimeRestore' 'Replika' |
| dataApi | Properti API Data dari kluster mongo. | DataApiProperties |
| enkripsi | Konfigurasi enkripsi untuk kluster. Tergantung pada identitas yang sedang dikonfigurasi. | |
| Ketersediaan tinggi | Properti ketersediaan tinggi dari kluster mongo. | Ketersediaan TinggiProperti |
| jaringanMode Bypass | Mode bypass jaringan untuk kluster. Pengaturan ke 'AzureCosmosDB' memungkinkan layanan Azure Cosmos DB untuk melewati batasan jaringan. | 'AzureCosmosDB' 'None' |
| pratinjauFitur | Daftar koneksi titik akhir privat. | Array string yang berisi salah satu dari: 'Replika Geografis' |
| publikAkses Jaringan | Apakah akses titik akhir publik diizinkan untuk kluster mongo ini atau tidak. | 'Dinonaktifkan' 'Diaktifkan' |
| Parameter replika | Parameter untuk membuat kluster mongo replika. | MongoClusterReplicaParameters |
| memulihkanParameter | Parameter untuk membuat kluster mongo pemulihan titik waktu. | MongoClusterRestoreParameters |
| serverVersi | Versi server Mongo DB. Default ke versi terbaru yang tersedia jika tidak ditentukan. | string |
| sharding (pembagian data) | Properti sharding kluster mongo. | Properti Sharding |
| penyimpanan | Properti penyimpanan kluster mongo. | |
MongoClusterReplicaParameters
| Nama | Deskripsi | Nilai |
|---|---|---|
| lokasi sumber | Lokasi kluster sumber | string (diperlukan) |
| sourceResourceId | Id kluster sumber replikasi. | string (diperlukan) |
MongoClusterRestoreParameters
| Nama | Deskripsi | Nilai |
|---|---|---|
| pointInTimeUTC | Titik waktu UTC untuk memulihkan kluster mongo | string |
| sourceResourceId | ID sumber daya untuk menemukan kluster sumber yang akan dipulihkan | string |
Properti Sharding
| Nama | Deskripsi | Nilai |
|---|---|---|
| Hitungan pecahan | Jumlah pecahan yang akan disediakan pada kluster. | Int |
Properti Penyimpanan
| Nama | Deskripsi | Nilai |
|---|---|---|
| ukuranGb | Ukuran disk data yang ditetapkan untuk setiap server. | Int |
| jenis | Jenis penyimpanan untuk menyediakan server kluster. | 'SSD Premium' 'PremiumSSDv2' |
TrackedResourceTags
| Nama | Deskripsi | Nilai |
|---|
UserAssignedIdentities
| Nama | Deskripsi | Nilai |
|---|
IdentitasDitugaskanPengguna
| Nama | Deskripsi | Nilai |
|---|
Definisi sumber daya templat ARM
Jenis sumber daya mongoClusters dapat disebarkan dengan operasi yang menargetkan:
- Grup sumber daya - Lihat perintah penyebaran grup sumber daya Untuk daftar properti yang diubah di setiap versi API, lihat log perubahan.
Contoh Penggunaan
Format sumber daya
Untuk membuat sumber daya Microsoft.DocumentDB/mongoClusters, tambahkan JSON berikut ke templat Anda.
{
"type": "Microsoft.DocumentDB/mongoClusters",
"apiVersion": "2026-06-01",
"name": "string",
"identity": {
"type": "string",
"userAssignedIdentities": {
"{customized property}": {
}
}
},
"location": "string",
"properties": {
"administrator": {
"password": "string",
"userName": "string"
},
"authConfig": {
"allowedModes": [ "string" ]
},
"backup": {
},
"compute": {
"tier": "string"
},
"createMode": "string",
"dataApi": {
"mode": "string"
},
"encryption": {
"customerManagedKeyEncryption": {
"keyEncryptionKeyIdentity": {
"identityType": "string",
"userAssignedIdentityResourceId": "string"
},
"keyEncryptionKeyUrl": "string"
}
},
"highAvailability": {
"targetMode": "string"
},
"networkBypassMode": "string",
"previewFeatures": [ "string" ],
"publicNetworkAccess": "string",
"replicaParameters": {
"sourceLocation": "string",
"sourceResourceId": "string"
},
"restoreParameters": {
"pointInTimeUTC": "string",
"sourceResourceId": "string"
},
"serverVersion": "string",
"sharding": {
"shardCount": "int"
},
"storage": {
"sizeGb": "int",
"type": "string"
}
},
"tags": {
"{customized property}": "string"
}
}
Nilai Properti
Microsoft.DocumentDB/mongoClusters
| Nama | Deskripsi | Nilai |
|---|---|---|
| apiVersi | Versi api | '2026-06-01' |
| identitas | Identitas layanan terkelola yang ditetapkan ke sumber daya ini. | managedServiceIdentity |
| lokasi | Lokasi geografis tempat sumber daya berada | string (diperlukan) |
| Nama | Nama sumber daya | tali Kendala: Panjang min = 3 Panjang maksimum = 40 Pola = ^[a-z0-9]+(-[a-z0-9]+)* (diperlukan) |
| Properti | Properti khusus sumber daya untuk sumber daya ini. | mongoClusterProperties |
| Tags | Tag sumber daya | Kamus nama dan nilai tag. Lihat Tag dalam templat |
| jenis | Jenis sumber daya | 'Microsoft.DocumentDB/mongoClusters' |
Properti Administrator
| Nama | Deskripsi | Nilai |
|---|---|---|
| kata sandi | Kata sandi administrator. | tali Kendala: Nilai sensitif. Teruskan sebagai parameter aman. |
| userName | Nama pengguna administrator. | string |
AuthConfigProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| mode yang diizinkan | Mode autentikasi yang diizinkan untuk akses data pada kluster. | Array string yang berisi salah satu dari: 'MicrosoftEntraID' 'NativeAuth' |
Properti Cadangan
| Nama | Deskripsi | Nilai |
|---|
Properti Komputasi
| Nama | Deskripsi | Nilai |
|---|---|---|
| Tier | Tingkat komputasi untuk ditetapkan ke kluster, di mana setiap tingkatan memetakan ke ukuran virtual-core dan memori. Contoh nilai: 'M30', 'M40'. | string |
CustomerManagedKeyEncryptionProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| keyEncryptionKeyIdentity | Identitas yang digunakan untuk mengakses kunci enkripsi kunci. | KeyEncryptionKeyIdentity |
| keyEncryptionKeyUrl | URI kunci brankas kunci yang digunakan untuk enkripsi. | string |
DataApiProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| modus | Mode untuk menunjukkan apakah API Data Mongo diaktifkan untuk kluster. | 'Dinonaktifkan' 'Diaktifkan' |
EncryptionProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| customerManagedKeyEncryption | Pengaturan enkripsi kunci yang dikelola pelanggan. | CustomerManagedKeyEncryptionProperties |
Ketersediaan TinggiProperti
| Nama | Deskripsi | Nilai |
|---|---|---|
| Mode target | Mode ketersediaan tinggi target yang diminta untuk kluster. | 'Dinonaktifkan' 'Zona yang Sama' 'ZonaRedundantLebih Disukai' |
KeyEncryptionKeyIdentity
| Nama | Deskripsi | Nilai |
|---|---|---|
| identitasType | Jenis identitas. Hanya 'UserAssignedIdentity' yang didukung. | 'Identitas yang Ditetapkan Pengguna' |
| userAssignedIdentityResourceId | Pengguna menetapkan id sumber daya identitas. | string |
Identitas Layanan Terkelola
| Nama | Deskripsi | Nilai |
|---|---|---|
| jenis | Jenis identitas layanan terkelola (di mana jenis SystemAssigned dan UserAssigned diizinkan). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (wajib) |
| identitasYangDitetapkanPengguna | Kumpulan identitas yang ditetapkan pengguna yang terkait dengan sumber daya. Kunci kamus userAssignedIdentities akan menjadi id sumber daya ARM dalam formulir: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Nilai kamus dapat berupa objek kosong ({}) dalam permintaan. | UserAssignedIdentities |
MongoClusterProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| administrator | Properti administrator lokal untuk kluster mongo. | |
| authConfig | Konfigurasi autentikasi untuk kluster. | AuthConfigProperties |
| cadangan | Properti cadangan kluster mongo. | |
| komputasi | Properti komputasi kluster mongo. | |
| createMode | Mode untuk membuat kluster mongo. | Bawaan 'GeoReplica' 'PointInTimeRestore' 'Replika' |
| dataApi | Properti API Data dari kluster mongo. | DataApiProperties |
| enkripsi | Konfigurasi enkripsi untuk kluster. Tergantung pada identitas yang sedang dikonfigurasi. | |
| Ketersediaan tinggi | Properti ketersediaan tinggi dari kluster mongo. | Ketersediaan TinggiProperti |
| jaringanMode Bypass | Mode bypass jaringan untuk kluster. Pengaturan ke 'AzureCosmosDB' memungkinkan layanan Azure Cosmos DB untuk melewati batasan jaringan. | 'AzureCosmosDB' 'None' |
| pratinjauFitur | Daftar koneksi titik akhir privat. | Array string yang berisi salah satu dari: 'Replika Geografis' |
| publikAkses Jaringan | Apakah akses titik akhir publik diizinkan untuk kluster mongo ini atau tidak. | 'Dinonaktifkan' 'Diaktifkan' |
| Parameter replika | Parameter untuk membuat kluster mongo replika. | MongoClusterReplicaParameters |
| memulihkanParameter | Parameter untuk membuat kluster mongo pemulihan titik waktu. | MongoClusterRestoreParameters |
| serverVersi | Versi server Mongo DB. Default ke versi terbaru yang tersedia jika tidak ditentukan. | string |
| sharding (pembagian data) | Properti sharding kluster mongo. | Properti Sharding |
| penyimpanan | Properti penyimpanan kluster mongo. | |
MongoClusterReplicaParameters
| Nama | Deskripsi | Nilai |
|---|---|---|
| lokasi sumber | Lokasi kluster sumber | string (diperlukan) |
| sourceResourceId | Id kluster sumber replikasi. | string (diperlukan) |
MongoClusterRestoreParameters
| Nama | Deskripsi | Nilai |
|---|---|---|
| pointInTimeUTC | Titik waktu UTC untuk memulihkan kluster mongo | string |
| sourceResourceId | ID sumber daya untuk menemukan kluster sumber yang akan dipulihkan | string |
Properti Sharding
| Nama | Deskripsi | Nilai |
|---|---|---|
| Hitungan pecahan | Jumlah pecahan yang akan disediakan pada kluster. | Int |
Properti Penyimpanan
| Nama | Deskripsi | Nilai |
|---|---|---|
| ukuranGb | Ukuran disk data yang ditetapkan untuk setiap server. | Int |
| jenis | Jenis penyimpanan untuk menyediakan server kluster. | 'SSD Premium' 'PremiumSSDv2' |
TrackedResourceTags
| Nama | Deskripsi | Nilai |
|---|
UserAssignedIdentities
| Nama | Deskripsi | Nilai |
|---|
IdentitasDitugaskanPengguna
| Nama | Deskripsi | Nilai |
|---|
Definisi sumber daya Terraform (penyedia AzAPI)
Jenis sumber daya mongoClusters dapat disebarkan dengan operasi yang menargetkan:
- Grup sumber daya Untuk daftar properti yang diubah di setiap versi API, lihat log perubahan.
Contoh Penggunaan
Sampel Terraform
Contoh dasar penyebaran Azure Cosmos DB untuk MongoDB (vCore).
terraform {
required_providers {
azapi = {
source = "Azure/azapi"
}
time = {
source = "hashicorp/time"
}
}
}
provider "azapi" {
skip_provider_registration = false
}
variable "resource_name" {
type = string
default = "acctest0001"
}
variable "location" {
type = string
default = "westus3"
}
variable "replica_location" {
type = string
default = "centralus"
}
variable "mongo_admin_username" {
type = string
default = "mongoAdmin"
}
variable "mongo_admin_password" {
type = string
description = "The administrator password for the MongoDB cluster"
sensitive = true
}
variable "mongo_restore_admin_password" {
type = string
description = "The administrator password for the restored MongoDB cluster"
sensitive = true
}
resource "azapi_resource" "resourceGroup" {
type = "Microsoft.Resources/resourceGroups@2020-06-01"
name = var.resource_name
location = var.location
}
resource "azapi_resource" "userAssignedIdentity" {
type = "Microsoft.ManagedIdentity/userAssignedIdentities@2023-01-31"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
schema_validation_enabled = false
response_export_values = ["*"]
}
data "azapi_client_config" "current" {}
resource "azapi_resource" "vault" {
type = "Microsoft.KeyVault/vaults@2023-02-01"
parent_id = azapi_resource.resourceGroup.id
name = "${var.resource_name}-kv"
location = var.location
body = {
properties = {
createMode = "default"
enablePurgeProtection = true
enableSoftDelete = true
enableRbacAuthorization = true
enabledForDeployment = true
enabledForDiskEncryption = true
enabledForTemplateDeployment = true
publicNetworkAccess = "Enabled"
accessPolicies = []
sku = {
family = "A"
name = "standard"
}
tenantId = data.azapi_client_config.current.tenant_id
}
}
}
data "azapi_resource_list" "kvCertificatesOfficerRoleDefinition" {
type = "Microsoft.Authorization/roleDefinitions@2022-04-01"
parent_id = azapi_resource.vault.id
response_export_values = {
definition_id = "value[?properties.roleName == 'Key Vault Crypto Officer'].id | [0]"
}
}
resource "azapi_resource" "kvRoleAssignmentTf" {
type = "Microsoft.Authorization/roleAssignments@2022-04-01"
parent_id = azapi_resource.vault.id
name = uuid()
body = {
properties = {
principalId = data.azapi_client_config.current.object_id
roleDefinitionId = data.azapi_resource_list.kvCertificatesOfficerRoleDefinition.output.definition_id
}
}
lifecycle {
ignore_changes = [name]
}
}
data "azapi_resource_list" "kvCertificatesUserRoleDefinition" {
type = "Microsoft.Authorization/roleDefinitions@2022-04-01"
parent_id = azapi_resource.vault.id
response_export_values = {
definition_id = "value[?properties.roleName == 'Key Vault Crypto Service Encryption User'].id | [0]"
}
}
resource "azapi_resource" "kvRoleAssignmentIdentity" {
type = "Microsoft.Authorization/roleAssignments@2022-04-01"
parent_id = azapi_resource.vault.id
name = uuid()
body = {
properties = {
principalId = azapi_resource.userAssignedIdentity.output.properties.principalId
roleDefinitionId = data.azapi_resource_list.kvCertificatesUserRoleDefinition.output.definition_id
}
}
lifecycle {
ignore_changes = [name]
}
}
data "azapi_resource_id" "key" {
type = "Microsoft.KeyVault/vaults/keys@2023-02-01"
parent_id = azapi_resource.vault.id
name = var.resource_name
}
resource "azapi_resource_action" "key" {
type = "Microsoft.KeyVault/vaults/keys@2023-02-01"
resource_id = data.azapi_resource_id.key.id
method = "PUT"
body = {
properties = {
keySize = 2048
kty = "RSA"
keyOps = ["encrypt", "decrypt", "sign", "verify", "wrapKey", "unwrapKey"]
}
}
response_export_values = ["*"]
depends_on = [
azapi_resource.kvRoleAssignmentTf,
azapi_resource.kvRoleAssignmentIdentity,
]
}
# replica key vault
resource "azapi_resource" "vault_replica" {
type = "Microsoft.KeyVault/vaults@2023-02-01"
parent_id = azapi_resource.resourceGroup.id
name = "${var.resource_name}-kv-replica"
location = var.replica_location
body = {
properties = {
createMode = "default"
enablePurgeProtection = true
enableSoftDelete = true
enableRbacAuthorization = true
enabledForDeployment = true
enabledForDiskEncryption = true
enabledForTemplateDeployment = true
publicNetworkAccess = "Enabled"
accessPolicies = []
sku = {
family = "A"
name = "standard"
}
tenantId = data.azapi_client_config.current.tenant_id
}
}
}
data "azapi_resource_list" "kvCertificatesOfficerRoleDefinition_replica" {
type = "Microsoft.Authorization/roleDefinitions@2022-04-01"
parent_id = azapi_resource.vault_replica.id
response_export_values = {
definition_id = "value[?properties.roleName == 'Key Vault Crypto Officer'].id | [0]"
}
}
resource "azapi_resource" "kvRoleAssignmentTf_replica" {
type = "Microsoft.Authorization/roleAssignments@2022-04-01"
parent_id = azapi_resource.vault_replica.id
name = uuid()
body = {
properties = {
principalId = data.azapi_client_config.current.object_id
roleDefinitionId = data.azapi_resource_list.kvCertificatesOfficerRoleDefinition.output.definition_id
}
}
lifecycle {
ignore_changes = [name]
}
}
data "azapi_resource_list" "kvCertificatesUserRoleDefinition_replica" {
type = "Microsoft.Authorization/roleDefinitions@2022-04-01"
parent_id = azapi_resource.vault_replica.id
response_export_values = {
definition_id = "value[?properties.roleName == 'Key Vault Crypto Service Encryption User'].id | [0]"
}
}
resource "azapi_resource" "kvRoleAssignmentIdentity_replica" {
type = "Microsoft.Authorization/roleAssignments@2022-04-01"
parent_id = azapi_resource.vault_replica.id
name = uuid()
body = {
properties = {
principalId = azapi_resource.userAssignedIdentity.output.properties.principalId
roleDefinitionId = data.azapi_resource_list.kvCertificatesUserRoleDefinition.output.definition_id
}
}
lifecycle {
ignore_changes = [name]
}
}
data "azapi_resource_id" "key_replica" {
type = "Microsoft.KeyVault/vaults/keys@2023-02-01"
parent_id = azapi_resource.vault_replica.id
name = var.resource_name
}
resource "azapi_resource_action" "key_replica" {
type = "Microsoft.KeyVault/vaults/keys@2023-02-01"
resource_id = data.azapi_resource_id.key_replica.id
method = "PUT"
body = {
properties = {
keySize = 2048
kty = "RSA"
keyOps = ["encrypt", "decrypt", "sign", "verify", "wrapKey", "unwrapKey"]
}
}
response_export_values = ["*"]
depends_on = [
azapi_resource.kvRoleAssignmentTf_replica,
azapi_resource.kvRoleAssignmentIdentity_replica,
]
}
resource "azapi_resource" "mongoCluster" {
type = "Microsoft.DocumentDB/mongoClusters@2025-09-01"
parent_id = azapi_resource.resourceGroup.id
name = var.resource_name
location = var.location
identity {
type = "UserAssigned"
identity_ids = [azapi_resource.userAssignedIdentity.id]
}
body = {
properties = {
administrator = {
userName = var.mongo_admin_username
}
authConfig = {
allowedModes = ["MicrosoftEntraID", "NativeAuth"]
}
compute = {
tier = "M30"
}
encryption = {
customerManagedKeyEncryption = {
keyEncryptionKeyIdentity = {
identityType = "UserAssignedIdentity"
userAssignedIdentityResourceId = azapi_resource.userAssignedIdentity.id
}
keyEncryptionKeyUrl = azapi_resource_action.key.output.properties.keyUri
}
}
highAvailability = {
targetMode = "Disabled"
}
previewFeatures = [
"ShardRebalancer"
]
publicNetworkAccess = "Enabled"
serverVersion = "5.0"
sharding = {
shardCount = 1
}
storage = {
sizeGb = 32
}
}
}
sensitive_body = {
properties = {
administrator = {
password = var.mongo_admin_password
}
}
}
tags = {
Environment = "Test"
}
schema_validation_enabled = false
response_export_values = ["*"]
}
# Wait for the MongoDB cluster to have backup capability available
resource "time_sleep" "wait_for_backup_ready" {
depends_on = [azapi_resource.mongoCluster]
# Wait 5 minutes for backup to be available - MongoDB clusters typically need time to enable backup
create_duration = "300s"
}
# Data source to get the updated cluster info with backup details
data "azapi_resource" "mongoCluster_backup_check" {
type = "Microsoft.DocumentDB/mongoClusters@2025-09-01"
resource_id = azapi_resource.mongoCluster.id
response_export_values = ["properties.backup.earliestRestoreTime"]
depends_on = [time_sleep.wait_for_backup_ready]
}
resource "azapi_resource" "mongoCluster_PointInTimeRestore" {
type = "Microsoft.DocumentDB/mongoClusters@2025-09-01"
parent_id = azapi_resource.resourceGroup.id
name = "${var.resource_name}-restore"
location = var.location
identity {
type = "UserAssigned"
identity_ids = [azapi_resource.userAssignedIdentity.id]
}
body = {
properties = {
createMode = "PointInTimeRestore"
administrator = {
userName = var.mongo_admin_username
}
encryption = {
customerManagedKeyEncryption = {
keyEncryptionKeyIdentity = {
identityType = "UserAssignedIdentity"
userAssignedIdentityResourceId = azapi_resource.userAssignedIdentity.id
}
keyEncryptionKeyUrl = azapi_resource_action.key.output.properties.keyUri
}
}
restoreParameters = {
pointInTimeUTC = data.azapi_resource.mongoCluster_backup_check.output.properties.backup.earliestRestoreTime
sourceResourceId = azapi_resource.mongoCluster.id
}
}
}
sensitive_body = {
properties = {
administrator = {
password = var.mongo_restore_admin_password
}
}
}
schema_validation_enabled = false
ignore_casing = false
ignore_missing_property = false
depends_on = [
data.azapi_resource.mongoCluster_backup_check
]
}
resource "azapi_resource" "mongoCluster_GeoReplica" {
type = "Microsoft.DocumentDB/mongoClusters@2025-09-01"
parent_id = azapi_resource.resourceGroup.id
name = "${var.resource_name}-repl"
location = var.replica_location
identity {
type = "UserAssigned"
identity_ids = [azapi_resource.userAssignedIdentity.id]
}
body = {
properties = {
createMode = "GeoReplica"
encryption = {
customerManagedKeyEncryption = {
keyEncryptionKeyIdentity = {
identityType = "UserAssignedIdentity"
userAssignedIdentityResourceId = azapi_resource.userAssignedIdentity.id
}
keyEncryptionKeyUrl = azapi_resource_action.key_replica.output.properties.keyUri
}
}
replicaParameters = {
sourceLocation = var.location # Source location matches the primary cluster
sourceResourceId = azapi_resource.mongoCluster.id
}
}
}
schema_validation_enabled = false
response_export_values = ["*"]
}
Modul Terverifikasi Azure
Modul Terverifikasi Azure berikut dapat digunakan untuk menyebarkan jenis sumber daya ini.
| Modul | Deskripsi |
|---|---|
| Cosmos DB for MongoDB (vCore) | Modul Sumber Daya AVM untuk Cosmos DB untuk MongoDB (vCore) |
Format sumber daya
Untuk membuat sumber daya Microsoft.DocumentDB/mongoClusters, tambahkan Terraform berikut ke templat Anda.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.DocumentDB/mongoClusters@2026-06-01"
name = "string"
parent_id = "string"
identity {
type = "string"
identity_ids = [
"string"
]
}
location = "string"
tags = {
{customized property} = "string"
}
body = {
properties = {
administrator = {
password = "string"
userName = "string"
}
authConfig = {
allowedModes = [
"string"
]
}
backup = {
}
compute = {
tier = "string"
}
createMode = "string"
dataApi = {
mode = "string"
}
encryption = {
customerManagedKeyEncryption = {
keyEncryptionKeyIdentity = {
identityType = "string"
userAssignedIdentityResourceId = "string"
}
keyEncryptionKeyUrl = "string"
}
}
highAvailability = {
targetMode = "string"
}
networkBypassMode = "string"
previewFeatures = [
"string"
]
publicNetworkAccess = "string"
replicaParameters = {
sourceLocation = "string"
sourceResourceId = "string"
}
restoreParameters = {
pointInTimeUTC = "string"
sourceResourceId = "string"
}
serverVersion = "string"
sharding = {
shardCount = int
}
storage = {
sizeGb = int
type = "string"
}
}
}
}
Nilai Properti
Microsoft.DocumentDB/mongoClusters
| Nama | Deskripsi | Nilai |
|---|---|---|
| identitas | Identitas layanan terkelola yang ditetapkan ke sumber daya ini. | managedServiceIdentity |
| lokasi | Lokasi geografis tempat sumber daya berada | string (diperlukan) |
| Nama | Nama sumber daya | tali Kendala: Panjang min = 3 Panjang maksimum = 40 Pola = ^[a-z0-9]+(-[a-z0-9]+)* (diperlukan) |
| Properti | Properti khusus sumber daya untuk sumber daya ini. | mongoClusterProperties |
| Tags | Tag sumber daya | Kamus nama dan nilai tag. |
| jenis | Jenis sumber daya | "Microsoft. DocumentDB/mongoClusters@2026-06-01" |
Properti Administrator
| Nama | Deskripsi | Nilai |
|---|---|---|
| kata sandi | Kata sandi administrator. | tali Kendala: Nilai sensitif. Teruskan sebagai parameter aman. |
| userName | Nama pengguna administrator. | string |
AuthConfigProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| mode yang diizinkan | Mode autentikasi yang diizinkan untuk akses data pada kluster. | Array string yang berisi salah satu dari: 'MicrosoftEntraID' 'NativeAuth' |
Properti Cadangan
| Nama | Deskripsi | Nilai |
|---|
Properti Komputasi
| Nama | Deskripsi | Nilai |
|---|---|---|
| Tier | Tingkat komputasi untuk ditetapkan ke kluster, di mana setiap tingkatan memetakan ke ukuran virtual-core dan memori. Contoh nilai: 'M30', 'M40'. | string |
CustomerManagedKeyEncryptionProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| keyEncryptionKeyIdentity | Identitas yang digunakan untuk mengakses kunci enkripsi kunci. | KeyEncryptionKeyIdentity |
| keyEncryptionKeyUrl | URI kunci brankas kunci yang digunakan untuk enkripsi. | string |
DataApiProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| modus | Mode untuk menunjukkan apakah API Data Mongo diaktifkan untuk kluster. | 'Dinonaktifkan' 'Diaktifkan' |
EncryptionProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| customerManagedKeyEncryption | Pengaturan enkripsi kunci yang dikelola pelanggan. | CustomerManagedKeyEncryptionProperties |
Ketersediaan TinggiProperti
| Nama | Deskripsi | Nilai |
|---|---|---|
| Mode target | Mode ketersediaan tinggi target yang diminta untuk kluster. | 'Dinonaktifkan' 'Zona yang Sama' 'ZonaRedundantLebih Disukai' |
KeyEncryptionKeyIdentity
| Nama | Deskripsi | Nilai |
|---|---|---|
| identitasType | Jenis identitas. Hanya 'UserAssignedIdentity' yang didukung. | 'Identitas yang Ditetapkan Pengguna' |
| userAssignedIdentityResourceId | Pengguna menetapkan id sumber daya identitas. | string |
Identitas Layanan Terkelola
| Nama | Deskripsi | Nilai |
|---|---|---|
| jenis | Jenis identitas layanan terkelola (di mana jenis SystemAssigned dan UserAssigned diizinkan). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (wajib) |
| identitasYangDitetapkanPengguna | Kumpulan identitas yang ditetapkan pengguna yang terkait dengan sumber daya. Kunci kamus userAssignedIdentities akan menjadi id sumber daya ARM dalam formulir: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Nilai kamus dapat berupa objek kosong ({}) dalam permintaan. | UserAssignedIdentities |
MongoClusterProperties
| Nama | Deskripsi | Nilai |
|---|---|---|
| administrator | Properti administrator lokal untuk kluster mongo. | |
| authConfig | Konfigurasi autentikasi untuk kluster. | AuthConfigProperties |
| cadangan | Properti cadangan kluster mongo. | |
| komputasi | Properti komputasi kluster mongo. | |
| createMode | Mode untuk membuat kluster mongo. | Bawaan 'GeoReplica' 'PointInTimeRestore' 'Replika' |
| dataApi | Properti API Data dari kluster mongo. | DataApiProperties |
| enkripsi | Konfigurasi enkripsi untuk kluster. Tergantung pada identitas yang sedang dikonfigurasi. | |
| Ketersediaan tinggi | Properti ketersediaan tinggi dari kluster mongo. | Ketersediaan TinggiProperti |
| jaringanMode Bypass | Mode bypass jaringan untuk kluster. Pengaturan ke 'AzureCosmosDB' memungkinkan layanan Azure Cosmos DB untuk melewati batasan jaringan. | 'AzureCosmosDB' 'None' |
| pratinjauFitur | Daftar koneksi titik akhir privat. | Array string yang berisi salah satu dari: 'Replika Geografis' |
| publikAkses Jaringan | Apakah akses titik akhir publik diizinkan untuk kluster mongo ini atau tidak. | 'Dinonaktifkan' 'Diaktifkan' |
| Parameter replika | Parameter untuk membuat kluster mongo replika. | MongoClusterReplicaParameters |
| memulihkanParameter | Parameter untuk membuat kluster mongo pemulihan titik waktu. | MongoClusterRestoreParameters |
| serverVersi | Versi server Mongo DB. Default ke versi terbaru yang tersedia jika tidak ditentukan. | string |
| sharding (pembagian data) | Properti sharding kluster mongo. | Properti Sharding |
| penyimpanan | Properti penyimpanan kluster mongo. | |
MongoClusterReplicaParameters
| Nama | Deskripsi | Nilai |
|---|---|---|
| lokasi sumber | Lokasi kluster sumber | string (diperlukan) |
| sourceResourceId | Id kluster sumber replikasi. | string (diperlukan) |
MongoClusterRestoreParameters
| Nama | Deskripsi | Nilai |
|---|---|---|
| pointInTimeUTC | Titik waktu UTC untuk memulihkan kluster mongo | string |
| sourceResourceId | ID sumber daya untuk menemukan kluster sumber yang akan dipulihkan | string |
Properti Sharding
| Nama | Deskripsi | Nilai |
|---|---|---|
| Hitungan pecahan | Jumlah pecahan yang akan disediakan pada kluster. | Int |
Properti Penyimpanan
| Nama | Deskripsi | Nilai |
|---|---|---|
| ukuranGb | Ukuran disk data yang ditetapkan untuk setiap server. | Int |
| jenis | Jenis penyimpanan untuk menyediakan server kluster. | 'SSD Premium' 'PremiumSSDv2' |
TrackedResourceTags
| Nama | Deskripsi | Nilai |
|---|
UserAssignedIdentities
| Nama | Deskripsi | Nilai |
|---|
IdentitasDitugaskanPengguna
| Nama | Deskripsi | Nilai |
|---|