Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Definizione di risorsa Bicep
Il tipo di risorsa mongoClusters può essere distribuito con operazioni destinate a:
Per un elenco delle proprietà modificate in ogni versione dell'API, vedere log delle modifiche.
Esempi di utilizzo
Moduli verificati di Azure
Per distribuire questo tipo di risorsa, è possibile usare moduli verificati di Azure.
| Modulo | Descrizione |
|---|---|
| Cosmos DB per MongoDB (vCore) | Modulo di risorse AVM per Cosmos DB per MongoDB (vCore) |
Formato risorsa
Per creare una risorsa Microsoft.DocumentDB/mongoClusters, aggiungere il bicep seguente al modello.
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'
}
}
Valori delle proprietà
Microsoft.DocumentDB/mongoClusters
| Nome | Descrizione | Valore |
|---|---|---|
| identità | Identità del servizio gestito assegnate a questa risorsa. | ManagedServiceIdentity |
| ubicazione | Posizione geografica in cui risiede la risorsa | stringa (obbligatorio) |
| nome | Nome della risorsa | corda Vincoli: Lunghezza minima = 3 Lunghezza massima = 40 Pattern = ^[a-z0-9]+(-[a-z0-9]+)* (obbligatorio) |
| proprietà | Proprietà specifiche della risorsa. | Proprietà MongoCluster |
| Tag | Tag delle risorse | Dizionario di nomi e valori di tag. Vedere tag nei modelli |
Proprietà dell'amministratore
| Nome | Descrizione | Valore |
|---|---|---|
| parola d’ordine | Password amministratore. | corda Vincoli: Valore sensibile. Passare come parametro sicuro. |
| nome utente | Nome utente amministratore. | corda |
AuthConfigProperties
| Nome | Descrizione | Valore |
|---|---|---|
| allowedModes | Modalità di autenticazione consentite per l'accesso ai dati nel cluster. | Matrice di stringhe contenente uno dei seguenti elementi: 'MicrosoftEntraID' 'NativeAuth' |
BackupProprietà
| Nome | Descrizione | Valore |
|---|
Proprietà di calcolo
| Nome | Descrizione | Valore |
|---|---|---|
| livello | Livello di calcolo da assegnare al cluster, in cui ogni livello esegue il mapping a una dimensione di memoria e core virtuale. Valori di esempio: 'M30', 'M40'. | corda |
CustomerManagedKeyEncryptionProperties
| Nome | Descrizione | Valore |
|---|---|---|
| keyEncryptionKeyIdentity | L'identità utilizzata per accedere alla chiave di crittografia della chiave. | KeyEncryptionKeyIdentity |
| keyEncryptionKeyUrl | URI della chiave dell'insieme di credenziali delle chiavi usata per la crittografia. | corda |
DataApiProperties
| Nome | Descrizione | Valore |
|---|---|---|
| modo | Modalità per indicare se l'API Dati Mongo è abilitata per un cluster. | 'Disabilitato' 'Abilitato' |
EncryptionProperties
| Nome | Descrizione | Valore |
|---|---|---|
| customerManagedKeyEncryption | Impostazioni di crittografia delle chiavi gestite dal cliente. | Proprietà CustomerManagedKeyEncryptionProperties |
Proprietà HighAvailabilityProperties
| Nome | Descrizione | Valore |
|---|---|---|
| targetMode | Modalità di disponibilità elevata di destinazione richiesta per il cluster. | 'Disabilitato' 'SameZone' 'Zona ridondantePreferito' |
KeyEncryptionKeyIdentity
| Nome | Descrizione | Valore |
|---|---|---|
| tipo di identità | Tipo di identità. È supportato solo 'UserAssignedIdentity'. | 'IdentitàAssegnataUtente' |
| userAssignedIdentityResourceId | ID risorsa di identità assegnato dall'utente. | corda |
Identità dei Servizi Gestiti
| Nome | Descrizione | Valore |
|---|---|---|
| digitare | Tipo di identità del servizio gestito (in cui sono consentiti sia i tipi SystemAssigned che UserAssigned). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (obbligatorio) |
| identità assegnate dall'utente | Set di identità assegnate dall'utente associate alla risorsa. Le chiavi del dizionario userAssignedIdentities saranno ID risorsa ARM nel formato : '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. I valori del dizionario possono essere oggetti vuoti ({}) nelle richieste. | UserAssignedIdentities |
Proprietà MongoCluster
| Nome | Descrizione | Valore |
|---|---|---|
| amministratore | Proprietà dell'amministratore locale per il cluster mongo. | Proprietà dell'amministratore |
| authConfig | Configurazione dell'autenticazione per il cluster. | |
| copia di sicurezza | Proprietà di backup del cluster mongo. | |
| calcolare | Proprietà di calcolo del cluster mongo. | ComputeProperties |
| createMode | Modalità per creare un cluster mongo. | Impostazione predefinita 'GeoReplica' 'PointInTimeRestore' 'Replica' |
| dataApi | Proprietà dell'API dati del cluster mongo. | DataApiProperties |
| Crittografia | Configurazione della crittografia per il cluster. Dipende dall'identità configurata. | Proprietà di crittografia |
| alta disponibilità | Proprietà a disponibilità elevata del cluster mongo. | HighAvailabilityProperties |
| networkBypassMode | La modalità bypass di rete per il cluster. Impostando su 'AzureCosmosDB' il servizio Azure Cosmos DB consente di bypassare le restrizioni di rete. | 'AzureCosmosDB' 'None' |
| anteprimaCaratteristiche | Elenco delle connessioni endpoint private. | Matrice di stringhe contenente uno dei seguenti elementi: 'Repliche geografiche' |
| pubblicoAccesso alla rete | Indica se l'accesso all'endpoint pubblico è consentito per questo cluster mongo. | 'Disabilitato' 'Abilitato' |
| replicaParameters | Parametri per creare un cluster mongo di replica. | Parametri MongoClusterReplicaReplica |
| restoreParameters | Parametri per creare un cluster mongo di ripristino temporizzato. | MongoClusterRestoreParameters |
| versioneDelServer | Versione del server Mongo DB. L'impostazione predefinita è la versione disponibile più recente, se non specificata. | corda |
| partizionamento orizzontale | Proprietà di partizionamento orizzontale del cluster mongo. | proprietà di partizionamento orizzontale |
| immagazzinamento | Proprietà di archiviazione del cluster mongo. | Proprietà di archiviazione |
Parametri MongoClusterReplicaReplica
| Nome | Descrizione | Valore |
|---|---|---|
| sourceLocation | Percorso del cluster di origine | stringa (obbligatorio) |
| sourceResourceId | ID del cluster di origine della replica. | stringa (obbligatorio) |
MongoClusterRestoreParameters
| Nome | Descrizione | Valore |
|---|---|---|
| pointInTimeUTC | Ora UTC per ripristinare un cluster mongo | corda |
| sourceResourceId | ID risorsa per individuare il cluster di origine da ripristinare | corda |
Proprietà partizionamento orizzontale
| Nome | Descrizione | Valore |
|---|---|---|
| Conteggio frammenti | Numero di partizioni di cui eseguire il provisioning nel cluster. | Int |
Proprietà di archiviazione
| Nome | Descrizione | Valore |
|---|---|---|
| dimensioneGb | Dimensioni del disco dati assegnato a ogni server. | Int |
| digitare | Tipo di archiviazione con cui eseguire il provisioning dei server cluster. | 'SSD premium' 'PremiumSSDv2' |
TrackedResourceTags
| Nome | Descrizione | Valore |
|---|
UserAssignedIdentities
| Nome | Descrizione | Valore |
|---|
Identità Assegnata dall'Utente
| Nome | Descrizione | Valore |
|---|
Definizione di risorsa del modello di Resource Manager
Il tipo di risorsa mongoClusters può essere distribuito con operazioni destinate a:
- Gruppi di risorse - Vedi comandi di distribuzione dei gruppi di risorse Per un elenco delle proprietà modificate in ciascuna versione API, vedi registro delle modifiche.
Esempi di utilizzo
Formato risorsa
Per creare una risorsa Microsoft.DocumentDB/mongoClusters, aggiungere il codice JSON seguente al modello.
{
"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"
}
}
Valori delle proprietà
Microsoft.DocumentDB/mongoClusters
| Nome | Descrizione | Valore |
|---|---|---|
| versione dell'API | Versione dell'API | '2026-06-01' |
| identità | Identità del servizio gestito assegnate a questa risorsa. | ManagedServiceIdentity |
| ubicazione | Posizione geografica in cui risiede la risorsa | stringa (obbligatorio) |
| nome | Nome della risorsa | corda Vincoli: Lunghezza minima = 3 Lunghezza massima = 40 Pattern = ^[a-z0-9]+(-[a-z0-9]+)* (obbligatorio) |
| proprietà | Proprietà specifiche della risorsa. | Proprietà MongoCluster |
| Tag | Tag delle risorse | Dizionario di nomi e valori di tag. Vedere tag nei modelli |
| digitare | Tipo di risorsa | 'Microsoft.DocumentDB/mongoClusters' |
Proprietà dell'amministratore
| Nome | Descrizione | Valore |
|---|---|---|
| parola d’ordine | Password amministratore. | corda Vincoli: Valore sensibile. Passare come parametro sicuro. |
| nome utente | Nome utente amministratore. | corda |
AuthConfigProperties
| Nome | Descrizione | Valore |
|---|---|---|
| allowedModes | Modalità di autenticazione consentite per l'accesso ai dati nel cluster. | Matrice di stringhe contenente uno dei seguenti elementi: 'MicrosoftEntraID' 'NativeAuth' |
BackupProprietà
| Nome | Descrizione | Valore |
|---|
Proprietà di calcolo
| Nome | Descrizione | Valore |
|---|---|---|
| livello | Livello di calcolo da assegnare al cluster, in cui ogni livello esegue il mapping a una dimensione di memoria e core virtuale. Valori di esempio: 'M30', 'M40'. | corda |
CustomerManagedKeyEncryptionProperties
| Nome | Descrizione | Valore |
|---|---|---|
| keyEncryptionKeyIdentity | L'identità utilizzata per accedere alla chiave di crittografia della chiave. | KeyEncryptionKeyIdentity |
| keyEncryptionKeyUrl | URI della chiave dell'insieme di credenziali delle chiavi usata per la crittografia. | corda |
DataApiProperties
| Nome | Descrizione | Valore |
|---|---|---|
| modo | Modalità per indicare se l'API Dati Mongo è abilitata per un cluster. | 'Disabilitato' 'Abilitato' |
EncryptionProperties
| Nome | Descrizione | Valore |
|---|---|---|
| customerManagedKeyEncryption | Impostazioni di crittografia delle chiavi gestite dal cliente. | Proprietà CustomerManagedKeyEncryptionProperties |
Proprietà HighAvailabilityProperties
| Nome | Descrizione | Valore |
|---|---|---|
| targetMode | Modalità di disponibilità elevata di destinazione richiesta per il cluster. | 'Disabilitato' 'SameZone' 'Zona ridondantePreferito' |
KeyEncryptionKeyIdentity
| Nome | Descrizione | Valore |
|---|---|---|
| tipo di identità | Tipo di identità. È supportato solo 'UserAssignedIdentity'. | 'IdentitàAssegnataUtente' |
| userAssignedIdentityResourceId | ID risorsa di identità assegnato dall'utente. | corda |
Identità dei Servizi Gestiti
| Nome | Descrizione | Valore |
|---|---|---|
| digitare | Tipo di identità del servizio gestito (in cui sono consentiti sia i tipi SystemAssigned che UserAssigned). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (obbligatorio) |
| identità assegnate dall'utente | Set di identità assegnate dall'utente associate alla risorsa. Le chiavi del dizionario userAssignedIdentities saranno ID risorsa ARM nel formato : '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. I valori del dizionario possono essere oggetti vuoti ({}) nelle richieste. | UserAssignedIdentities |
Proprietà MongoCluster
| Nome | Descrizione | Valore |
|---|---|---|
| amministratore | Proprietà dell'amministratore locale per il cluster mongo. | Proprietà dell'amministratore |
| authConfig | Configurazione dell'autenticazione per il cluster. | |
| copia di sicurezza | Proprietà di backup del cluster mongo. | |
| calcolare | Proprietà di calcolo del cluster mongo. | ComputeProperties |
| createMode | Modalità per creare un cluster mongo. | Impostazione predefinita 'GeoReplica' 'PointInTimeRestore' 'Replica' |
| dataApi | Proprietà dell'API dati del cluster mongo. | DataApiProperties |
| Crittografia | Configurazione della crittografia per il cluster. Dipende dall'identità configurata. | Proprietà di crittografia |
| alta disponibilità | Proprietà a disponibilità elevata del cluster mongo. | HighAvailabilityProperties |
| networkBypassMode | La modalità bypass di rete per il cluster. Impostando su 'AzureCosmosDB' il servizio Azure Cosmos DB consente di bypassare le restrizioni di rete. | 'AzureCosmosDB' 'None' |
| anteprimaCaratteristiche | Elenco delle connessioni endpoint private. | Matrice di stringhe contenente uno dei seguenti elementi: 'Repliche geografiche' |
| pubblicoAccesso alla rete | Indica se l'accesso all'endpoint pubblico è consentito per questo cluster mongo. | 'Disabilitato' 'Abilitato' |
| replicaParameters | Parametri per creare un cluster mongo di replica. | Parametri MongoClusterReplicaReplica |
| restoreParameters | Parametri per creare un cluster mongo di ripristino temporizzato. | MongoClusterRestoreParameters |
| versioneDelServer | Versione del server Mongo DB. L'impostazione predefinita è la versione disponibile più recente, se non specificata. | corda |
| partizionamento orizzontale | Proprietà di partizionamento orizzontale del cluster mongo. | proprietà di partizionamento orizzontale |
| immagazzinamento | Proprietà di archiviazione del cluster mongo. | Proprietà di archiviazione |
Parametri MongoClusterReplicaReplica
| Nome | Descrizione | Valore |
|---|---|---|
| sourceLocation | Percorso del cluster di origine | stringa (obbligatorio) |
| sourceResourceId | ID del cluster di origine della replica. | stringa (obbligatorio) |
MongoClusterRestoreParameters
| Nome | Descrizione | Valore |
|---|---|---|
| pointInTimeUTC | Ora UTC per ripristinare un cluster mongo | corda |
| sourceResourceId | ID risorsa per individuare il cluster di origine da ripristinare | corda |
Proprietà partizionamento orizzontale
| Nome | Descrizione | Valore |
|---|---|---|
| Conteggio frammenti | Numero di partizioni di cui eseguire il provisioning nel cluster. | Int |
Proprietà di archiviazione
| Nome | Descrizione | Valore |
|---|---|---|
| dimensioneGb | Dimensioni del disco dati assegnato a ogni server. | Int |
| digitare | Tipo di archiviazione con cui eseguire il provisioning dei server cluster. | 'SSD premium' 'PremiumSSDv2' |
TrackedResourceTags
| Nome | Descrizione | Valore |
|---|
UserAssignedIdentities
| Nome | Descrizione | Valore |
|---|
Identità Assegnata dall'Utente
| Nome | Descrizione | Valore |
|---|
Definizione di risorsa Terraform (provider AzAPI)
Il tipo di risorsa mongoClusters può essere distribuito con operazioni destinate a:
- Gruppi di risorse Per un elenco delle proprietà modificate in ogni versione dell'API, vedi il registro modifiche.
Esempi di utilizzo
Esempi di Terraform
Un esempio base di distribuzione di Azure Cosmos DB per 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 = ["*"]
}
Moduli verificati di Azure
Per distribuire questo tipo di risorsa, è possibile usare moduli verificati di Azure.
| Modulo | Descrizione |
|---|---|
| Cosmos DB per MongoDB (vCore) | Modulo di risorse AVM per Cosmos DB per MongoDB (vCore) |
Formato risorsa
Per creare una risorsa Microsoft.DocumentDB/mongoClusters, aggiungere il file Terraform seguente al modello.
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"
}
}
}
}
Valori delle proprietà
Microsoft.DocumentDB/mongoClusters
| Nome | Descrizione | Valore |
|---|---|---|
| identità | Identità del servizio gestito assegnate a questa risorsa. | ManagedServiceIdentity |
| ubicazione | Posizione geografica in cui risiede la risorsa | stringa (obbligatorio) |
| nome | Nome della risorsa | corda Vincoli: Lunghezza minima = 3 Lunghezza massima = 40 Pattern = ^[a-z0-9]+(-[a-z0-9]+)* (obbligatorio) |
| proprietà | Proprietà specifiche della risorsa. | Proprietà MongoCluster |
| Tag | Tag delle risorse | Dizionario di nomi e valori di tag. |
| digitare | Tipo di risorsa | "Microsoft. DocumentDB/mongoClusters@2026-06-01" |
Proprietà dell'amministratore
| Nome | Descrizione | Valore |
|---|---|---|
| parola d’ordine | Password amministratore. | corda Vincoli: Valore sensibile. Passare come parametro sicuro. |
| nome utente | Nome utente amministratore. | corda |
AuthConfigProperties
| Nome | Descrizione | Valore |
|---|---|---|
| allowedModes | Modalità di autenticazione consentite per l'accesso ai dati nel cluster. | Matrice di stringhe contenente uno dei seguenti elementi: 'MicrosoftEntraID' 'NativeAuth' |
BackupProprietà
| Nome | Descrizione | Valore |
|---|
Proprietà di calcolo
| Nome | Descrizione | Valore |
|---|---|---|
| livello | Livello di calcolo da assegnare al cluster, in cui ogni livello esegue il mapping a una dimensione di memoria e core virtuale. Valori di esempio: 'M30', 'M40'. | corda |
CustomerManagedKeyEncryptionProperties
| Nome | Descrizione | Valore |
|---|---|---|
| keyEncryptionKeyIdentity | L'identità utilizzata per accedere alla chiave di crittografia della chiave. | KeyEncryptionKeyIdentity |
| keyEncryptionKeyUrl | URI della chiave dell'insieme di credenziali delle chiavi usata per la crittografia. | corda |
DataApiProperties
| Nome | Descrizione | Valore |
|---|---|---|
| modo | Modalità per indicare se l'API Dati Mongo è abilitata per un cluster. | 'Disabilitato' 'Abilitato' |
EncryptionProperties
| Nome | Descrizione | Valore |
|---|---|---|
| customerManagedKeyEncryption | Impostazioni di crittografia delle chiavi gestite dal cliente. | Proprietà CustomerManagedKeyEncryptionProperties |
Proprietà HighAvailabilityProperties
| Nome | Descrizione | Valore |
|---|---|---|
| targetMode | Modalità di disponibilità elevata di destinazione richiesta per il cluster. | 'Disabilitato' 'SameZone' 'Zona ridondantePreferito' |
KeyEncryptionKeyIdentity
| Nome | Descrizione | Valore |
|---|---|---|
| tipo di identità | Tipo di identità. È supportato solo 'UserAssignedIdentity'. | 'IdentitàAssegnataUtente' |
| userAssignedIdentityResourceId | ID risorsa di identità assegnato dall'utente. | corda |
Identità dei Servizi Gestiti
| Nome | Descrizione | Valore |
|---|---|---|
| digitare | Tipo di identità del servizio gestito (in cui sono consentiti sia i tipi SystemAssigned che UserAssigned). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (obbligatorio) |
| identità assegnate dall'utente | Set di identità assegnate dall'utente associate alla risorsa. Le chiavi del dizionario userAssignedIdentities saranno ID risorsa ARM nel formato : '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. I valori del dizionario possono essere oggetti vuoti ({}) nelle richieste. | UserAssignedIdentities |
Proprietà MongoCluster
| Nome | Descrizione | Valore |
|---|---|---|
| amministratore | Proprietà dell'amministratore locale per il cluster mongo. | Proprietà dell'amministratore |
| authConfig | Configurazione dell'autenticazione per il cluster. | |
| copia di sicurezza | Proprietà di backup del cluster mongo. | |
| calcolare | Proprietà di calcolo del cluster mongo. | ComputeProperties |
| createMode | Modalità per creare un cluster mongo. | Impostazione predefinita 'GeoReplica' 'PointInTimeRestore' 'Replica' |
| dataApi | Proprietà dell'API dati del cluster mongo. | DataApiProperties |
| Crittografia | Configurazione della crittografia per il cluster. Dipende dall'identità configurata. | Proprietà di crittografia |
| alta disponibilità | Proprietà a disponibilità elevata del cluster mongo. | HighAvailabilityProperties |
| networkBypassMode | La modalità bypass di rete per il cluster. Impostando su 'AzureCosmosDB' il servizio Azure Cosmos DB consente di bypassare le restrizioni di rete. | 'AzureCosmosDB' 'None' |
| anteprimaCaratteristiche | Elenco delle connessioni endpoint private. | Matrice di stringhe contenente uno dei seguenti elementi: 'Repliche geografiche' |
| pubblicoAccesso alla rete | Indica se l'accesso all'endpoint pubblico è consentito per questo cluster mongo. | 'Disabilitato' 'Abilitato' |
| replicaParameters | Parametri per creare un cluster mongo di replica. | Parametri MongoClusterReplicaReplica |
| restoreParameters | Parametri per creare un cluster mongo di ripristino temporizzato. | MongoClusterRestoreParameters |
| versioneDelServer | Versione del server Mongo DB. L'impostazione predefinita è la versione disponibile più recente, se non specificata. | corda |
| partizionamento orizzontale | Proprietà di partizionamento orizzontale del cluster mongo. | proprietà di partizionamento orizzontale |
| immagazzinamento | Proprietà di archiviazione del cluster mongo. | Proprietà di archiviazione |
Parametri MongoClusterReplicaReplica
| Nome | Descrizione | Valore |
|---|---|---|
| sourceLocation | Percorso del cluster di origine | stringa (obbligatorio) |
| sourceResourceId | ID del cluster di origine della replica. | stringa (obbligatorio) |
MongoClusterRestoreParameters
| Nome | Descrizione | Valore |
|---|---|---|
| pointInTimeUTC | Ora UTC per ripristinare un cluster mongo | corda |
| sourceResourceId | ID risorsa per individuare il cluster di origine da ripristinare | corda |
Proprietà partizionamento orizzontale
| Nome | Descrizione | Valore |
|---|---|---|
| Conteggio frammenti | Numero di partizioni di cui eseguire il provisioning nel cluster. | Int |
Proprietà di archiviazione
| Nome | Descrizione | Valore |
|---|---|---|
| dimensioneGb | Dimensioni del disco dati assegnato a ogni server. | Int |
| digitare | Tipo di archiviazione con cui eseguire il provisioning dei server cluster. | 'SSD premium' 'PremiumSSDv2' |
TrackedResourceTags
| Nome | Descrizione | Valore |
|---|
UserAssignedIdentities
| Nome | Descrizione | Valore |
|---|
Identità Assegnata dall'Utente
| Nome | Descrizione | Valore |
|---|