Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Definicja zasobu Bicep
Typ zasobu mongoClusters można wdrożyć przy użyciu operacji docelowych:
Aby uzyskać listę zmienionych właściwości w każdej wersji interfejsu API, zobacz dziennika zmian.
Format zasobu
Aby utworzyć zasób Microsoft.DocumentDB/mongoClusters, dodaj następujący kod Bicep do szablonu.
resource symbolicname 'Microsoft.DocumentDB/mongoClusters@2024-06-01-preview' = {
scope: resourceSymbolicName or scope
location: 'string'
name: 'string'
properties: {
administratorLogin: 'string'
administratorLoginPassword: 'string'
createMode: 'string'
nodeGroupSpecs: [
{
diskSizeGB: int
enableHa: bool
kind: 'string'
nodeCount: int
sku: 'string'
}
]
previewFeatures: [
'string'
]
publicNetworkAccess: 'string'
replicaParameters: {
sourceLocation: 'string'
sourceResourceId: 'string'
}
restoreParameters: {
pointInTimeUTC: 'string'
sourceResourceId: 'string'
}
serverVersion: 'string'
}
tags: {
{customized property}: 'string'
}
}
Wartości właściwości
Microsoft.DocumentDB/mongoClusters
| Nazwa | Opis | Wartość |
|---|---|---|
| lokalizacja | Lokalizacja geograficzna, w której znajduje się zasób | ciąg (wymagany) |
| nazwa | Nazwa zasobu | struna Ograniczenia: Minimalna długość = 3 Maksymalna długość = 40 Wzorzec = ^[a-z0-9]+(-[a-z0-9]+)* (wymagane) |
| Właściwości | Właściwości specyficzne dla zasobu dla tego zasobu. | MongoClusterProperties |
| zakres | Użyj polecenia podczas tworzenia zasobu w zakresie innym niż zakres wdrożenia. | Ustaw tę właściwość na symboliczną nazwę zasobu, aby zastosować zasób rozszerzenia. |
| Tagi | Tagi zasobów | Słownik nazw tagów i wartości. Zobacz tagi w szablonach |
MongoClusterProperties
| Nazwa | Opis | Wartość |
|---|---|---|
| administratorZaloguj się | Identyfikator logowania administratora dla klastra mongo. | ciąg |
| administratorLoginPassword | Hasło logowania administratora. | struna Ograniczenia: Wartość wrażliwa. Przekaż jako bezpieczny parametr. |
| createMode (tryb tworzenia) | Tryb tworzenia klastra mongo. | "Wartość domyślna" "GeoReplica" "PointInTimeRestore" "Replika" |
| Specyfikacja grupy węzłów | Lista specyfikacji grupy węzłów w klastrze. | Specyfikacja grupy węzłów[] |
| Funkcje w wersji zapoznawczej | Lista połączeń prywatnych punktów końcowych. | Tablica ciągów zawierająca dowolną z: "GeoReplicas" |
| publicNetworkAccess | Określa, czy dostęp do publicznego punktu końcowego jest dozwolony dla tego klastra mongo. | "Wyłączone" "Włączone" |
| replicaParameters (parametry repliki) | Parametry do utworzenia repliki klastra mongo. | MongoClusterReplicaParameters (Parametry repliki) |
| restoreParameters (parametry przywracania) | Parametry do utworzenia klastra mongo przywracania do punktu w czasie. | MongoClusterRestoreParameters |
| wersja serwera | Wersja serwera Mongo DB. Wartość domyślna to najnowsza dostępna wersja, jeśli nie zostanie określona. | ciąg |
MongoClusterReplicaParameters (Parametry repliki)
| Nazwa | Opis | Wartość |
|---|---|---|
| lokalizacja źródłowa | Lokalizacja klastra źródłowego | ciąg (wymagany) |
| sourceResourceId (identyfikator źródłowy) | Identyfikator klastra źródłowego replikacji. | ciąg (wymagany) |
MongoClusterRestoreParameters
| Nazwa | Opis | Wartość |
|---|---|---|
| pointInTimeUTC (punkt w czasie) | Punkt CZASU UTC w celu przywrócenia klastra mongo | ciąg |
| sourceResourceId (identyfikator źródłowy) | Identyfikator zasobu do zlokalizowania klastra źródłowego do przywrócenia | ciąg |
Specyfikacja grupy węzłów
| Nazwa | Opis | Wartość |
|---|---|---|
| diskSizeGB (rozmiar dysku) | Rozmiar magazynu dysku dla grupy węzłów w GB. Przykładowe wartości: 128, 256, 512, 1024. | Int |
| włączyćHa | Określa, czy w grupie węzłów jest włączona wysoka dostępność. | Bool |
| rodzaj | Typ węzła wdrożony w grupie węzłów. | "Fragment" |
| nodeCount (liczba_węzłów) | Liczba węzłów w grupie węzłów. | Int |
| Numer jednostki magazynowej | Jednostka SKU zasobów dla grupy węzłów. Definiuje to rozmiar procesora CPU i pamięci, który jest aprowizowany dla każdego węzła. Przykładowe wartości: "M30", "M40". | ciąg |
Śledzone tagi zasobów
| Nazwa | Opis | Wartość |
|---|
Przykłady użycia
Moduły zweryfikowane na platformie Azure
Następujące moduły zweryfikowane platformy Azure mogą służyć do wdrażania tego typu zasobu.
| Moduł | Opis |
|---|---|
| Cosmos DB for MongoDB (rdzeń wirtualny) | Moduł zasobów AVM dla usługi Cosmos DB dla bazy danych MongoDB (rdzeń wirtualny) |
Definicja zasobu szablonu usługi ARM
Typ zasobu mongoClusters można wdrożyć przy użyciu operacji docelowych:
Aby uzyskać listę zmienionych właściwości w każdej wersji interfejsu API, zobacz dziennika zmian.
Format zasobu
Aby utworzyć zasób Microsoft.DocumentDB/mongoClusters, dodaj następujący kod JSON do szablonu.
{
"type": "Microsoft.DocumentDB/mongoClusters",
"apiVersion": "2024-06-01-preview",
"name": "string",
"location": "string",
"properties": {
"administratorLogin": "string",
"administratorLoginPassword": "string",
"createMode": "string",
"nodeGroupSpecs": [
{
"diskSizeGB": "int",
"enableHa": "bool",
"kind": "string",
"nodeCount": "int",
"sku": "string"
}
],
"previewFeatures": [ "string" ],
"publicNetworkAccess": "string",
"replicaParameters": {
"sourceLocation": "string",
"sourceResourceId": "string"
},
"restoreParameters": {
"pointInTimeUTC": "string",
"sourceResourceId": "string"
},
"serverVersion": "string"
},
"tags": {
"{customized property}": "string"
}
}
Wartości właściwości
Microsoft.DocumentDB/mongoClusters
| Nazwa | Opis | Wartość |
|---|---|---|
| apiVersion (wersja interfejsu api) | Wersja interfejsu API | "2024-06-01-preview" |
| lokalizacja | Lokalizacja geograficzna, w której znajduje się zasób | ciąg (wymagany) |
| nazwa | Nazwa zasobu | struna Ograniczenia: Minimalna długość = 3 Maksymalna długość = 40 Wzorzec = ^[a-z0-9]+(-[a-z0-9]+)* (wymagane) |
| Właściwości | Właściwości specyficzne dla zasobu dla tego zasobu. | MongoClusterProperties |
| Tagi | Tagi zasobów | Słownik nazw tagów i wartości. Zobacz tagi w szablonach |
| typ | Typ zasobu | "Microsoft.DocumentDB/mongoClusters" |
MongoClusterProperties
| Nazwa | Opis | Wartość |
|---|---|---|
| administratorZaloguj się | Identyfikator logowania administratora dla klastra mongo. | ciąg |
| administratorLoginPassword | Hasło logowania administratora. | struna Ograniczenia: Wartość wrażliwa. Przekaż jako bezpieczny parametr. |
| createMode (tryb tworzenia) | Tryb tworzenia klastra mongo. | "Wartość domyślna" "GeoReplica" "PointInTimeRestore" "Replika" |
| Specyfikacja grupy węzłów | Lista specyfikacji grupy węzłów w klastrze. | Specyfikacja grupy węzłów[] |
| Funkcje w wersji zapoznawczej | Lista połączeń prywatnych punktów końcowych. | Tablica ciągów zawierająca dowolną z: "GeoReplicas" |
| publicNetworkAccess | Określa, czy dostęp do publicznego punktu końcowego jest dozwolony dla tego klastra mongo. | "Wyłączone" "Włączone" |
| replicaParameters (parametry repliki) | Parametry do utworzenia repliki klastra mongo. | MongoClusterReplicaParameters (Parametry repliki) |
| restoreParameters (parametry przywracania) | Parametry do utworzenia klastra mongo przywracania do punktu w czasie. | MongoClusterRestoreParameters |
| wersja serwera | Wersja serwera Mongo DB. Wartość domyślna to najnowsza dostępna wersja, jeśli nie zostanie określona. | ciąg |
MongoClusterReplicaParameters (Parametry repliki)
| Nazwa | Opis | Wartość |
|---|---|---|
| lokalizacja źródłowa | Lokalizacja klastra źródłowego | ciąg (wymagany) |
| sourceResourceId (identyfikator źródłowy) | Identyfikator klastra źródłowego replikacji. | ciąg (wymagany) |
MongoClusterRestoreParameters
| Nazwa | Opis | Wartość |
|---|---|---|
| pointInTimeUTC (punkt w czasie) | Punkt CZASU UTC w celu przywrócenia klastra mongo | ciąg |
| sourceResourceId (identyfikator źródłowy) | Identyfikator zasobu do zlokalizowania klastra źródłowego do przywrócenia | ciąg |
Specyfikacja grupy węzłów
| Nazwa | Opis | Wartość |
|---|---|---|
| diskSizeGB (rozmiar dysku) | Rozmiar magazynu dysku dla grupy węzłów w GB. Przykładowe wartości: 128, 256, 512, 1024. | Int |
| włączyćHa | Określa, czy w grupie węzłów jest włączona wysoka dostępność. | Bool |
| rodzaj | Typ węzła wdrożony w grupie węzłów. | "Fragment" |
| nodeCount (liczba_węzłów) | Liczba węzłów w grupie węzłów. | Int |
| Numer jednostki magazynowej | Jednostka SKU zasobów dla grupy węzłów. Definiuje to rozmiar procesora CPU i pamięci, który jest aprowizowany dla każdego węzła. Przykładowe wartości: "M30", "M40". | ciąg |
Śledzone tagi zasobów
| Nazwa | Opis | Wartość |
|---|
Przykłady użycia
Definicja zasobu narzędzia Terraform (dostawcy AzAPI)
Typ zasobu mongoClusters można wdrożyć przy użyciu operacji docelowych:
Aby uzyskać listę zmienionych właściwości w każdej wersji interfejsu API, zobacz dziennika zmian.
Format zasobu
Aby utworzyć zasób Microsoft.DocumentDB/mongoClusters, dodaj następujący program Terraform do szablonu.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.DocumentDB/mongoClusters@2024-06-01-preview"
name = "string"
parent_id = "string"
location = "string"
tags = {
{customized property} = "string"
}
body = {
properties = {
administratorLogin = "string"
administratorLoginPassword = "string"
createMode = "string"
nodeGroupSpecs = [
{
diskSizeGB = int
enableHa = bool
kind = "string"
nodeCount = int
sku = "string"
}
]
previewFeatures = [
"string"
]
publicNetworkAccess = "string"
replicaParameters = {
sourceLocation = "string"
sourceResourceId = "string"
}
restoreParameters = {
pointInTimeUTC = "string"
sourceResourceId = "string"
}
serverVersion = "string"
}
}
}
Wartości właściwości
Microsoft.DocumentDB/mongoClusters
MongoClusterProperties
| Nazwa | Opis | Wartość |
|---|---|---|
| administratorZaloguj się | Identyfikator logowania administratora dla klastra mongo. | ciąg |
| administratorLoginPassword | Hasło logowania administratora. | struna Ograniczenia: Wartość wrażliwa. Przekaż jako bezpieczny parametr. |
| createMode (tryb tworzenia) | Tryb tworzenia klastra mongo. | "Wartość domyślna" "GeoReplica" "PointInTimeRestore" "Replika" |
| Specyfikacja grupy węzłów | Lista specyfikacji grupy węzłów w klastrze. | Specyfikacja grupy węzłów[] |
| Funkcje w wersji zapoznawczej | Lista połączeń prywatnych punktów końcowych. | Tablica ciągów zawierająca dowolną z: "GeoReplicas" |
| publicNetworkAccess | Określa, czy dostęp do publicznego punktu końcowego jest dozwolony dla tego klastra mongo. | "Wyłączone" "Włączone" |
| replicaParameters (parametry repliki) | Parametry do utworzenia repliki klastra mongo. | MongoClusterReplicaParameters (Parametry repliki) |
| restoreParameters (parametry przywracania) | Parametry do utworzenia klastra mongo przywracania do punktu w czasie. | MongoClusterRestoreParameters |
| wersja serwera | Wersja serwera Mongo DB. Wartość domyślna to najnowsza dostępna wersja, jeśli nie zostanie określona. | ciąg |
MongoClusterReplicaParameters (Parametry repliki)
| Nazwa | Opis | Wartość |
|---|---|---|
| lokalizacja źródłowa | Lokalizacja klastra źródłowego | ciąg (wymagany) |
| sourceResourceId (identyfikator źródłowy) | Identyfikator klastra źródłowego replikacji. | ciąg (wymagany) |
MongoClusterRestoreParameters
| Nazwa | Opis | Wartość |
|---|---|---|
| pointInTimeUTC (punkt w czasie) | Punkt CZASU UTC w celu przywrócenia klastra mongo | ciąg |
| sourceResourceId (identyfikator źródłowy) | Identyfikator zasobu do zlokalizowania klastra źródłowego do przywrócenia | ciąg |
Specyfikacja grupy węzłów
| Nazwa | Opis | Wartość |
|---|---|---|
| diskSizeGB (rozmiar dysku) | Rozmiar magazynu dysku dla grupy węzłów w GB. Przykładowe wartości: 128, 256, 512, 1024. | Int |
| włączyćHa | Określa, czy w grupie węzłów jest włączona wysoka dostępność. | Bool |
| rodzaj | Typ węzła wdrożony w grupie węzłów. | "Fragment" |
| nodeCount (liczba_węzłów) | Liczba węzłów w grupie węzłów. | Int |
| Numer jednostki magazynowej | Jednostka SKU zasobów dla grupy węzłów. Definiuje to rozmiar procesora CPU i pamięci, który jest aprowizowany dla każdego węzła. Przykładowe wartości: "M30", "M40". | ciąg |
Śledzone tagi zasobów
| Nazwa | Opis | Wartość |
|---|
Przykłady użycia
Przykłady programu Terraform
Podstawowy przykład wdrażania Azure Cosmos DB dla 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 = ["*"]
}