Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bicep kaynak tanımı
mongoClusters kaynak türü, aşağıdakileri hedefleyen işlemlerle dağıtılabilir:
Her API sürümünde değiştirilen özelliklerin listesi için bkz. değişiklik günlüğü.
Kaynak biçimi
Microsoft.DocumentDB/mongoClusters kaynağı oluşturmak için şablonunuza aşağıdaki Bicep'i ekleyin.
resource symbolicname 'Microsoft.DocumentDB/mongoClusters@2025-09-01' = {
scope: resourceSymbolicName or scope
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'
}
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'
}
}
Özellik Değerleri
Microsoft.DocumentDB/mongoClusters
| Ad | Açıklama | Değer |
|---|---|---|
| kimlik | Bu kaynağa atanan yönetilen hizmet kimlikleri. | ManagedServiceIdentity |
| yer | Kaynağın bulunduğu coğrafi konum | dize (gerekli) |
| ad | Kaynak adı | dizgi Kısıtlama -ları: En az uzunluk = 3 Maksimum uzunluk = 40 Desen = ^[a-z0-9]+(-[a-z0-9]+)* (gerekli) |
| Özellikler | Bu kaynağın kaynağa özgü özellikleri. | MongoClusterProperties |
| kapsam | Dağıtım kapsamından farklı bir kapsamda kaynak oluştururken kullanın. | Uzantı kaynağını uygulamak için bu özelliği kaynağın sembolik adı olarak ayarlayın. |
| Etiketler | Kaynak etiketleri | Etiket adları ve değerleri sözlüğü. Bkz. şablonlardaki Etiketleri |
Yönetici Özellikleri
| Ad | Açıklama | Değer |
|---|---|---|
| parola | Yönetici parolası. | dizgi Kısıtlama -ları: Hassas değer. Güvenli parametre olarak geçirin. |
| kullanıcı adı | Yönetici kullanıcı adı. | dizgi |
AuthConfigProperties
| Ad | Açıklama | Değer |
|---|---|---|
| izin verilen Modlar | Kümedeki veri erişimi için izin verilen kimlik doğrulama modları. | Herhangi birini içeren dize dizisi: 'MicrosoftEntraID' (Microsoft EntraID) 'Yerel Kimlik Doğrulaması' |
Yedekleme Özellikleri
| Ad | Açıklama | Değer |
|---|
ComputeProperties (İşlem Özellikleri)
| Ad | Açıklama | Değer |
|---|---|---|
| Katmanı | Her katmanın bir sanal çekirdek ve bellek boyutuyla eşlendiği kümeye atanacak işlem katmanı. Örnek değerler: 'M30', 'M40'. | dizgi |
CustomerManagedKeyEncryptionProperties
| Ad | Açıklama | Değer |
|---|---|---|
| keyEncryptionKeyIdentity | Anahtar şifreleme anahtarına erişmek için kullanılan kimlik. | KeyEncryptionKeyIdentity |
| keyEncryptionKeyUrl | Şifreleme için kullanılan anahtar kasası anahtarının URI'si. | dizgi |
DataApiProperties
| Ad | Açıklama | Değer |
|---|---|---|
| mod | Mongo Veri API'sinin bir küme için etkinleştirilip etkinleştirilmediğini gösteren mod. | 'Devre Dışı' 'Etkin' |
EncryptionProperties
| Ad | Açıklama | Değer |
|---|---|---|
| customerManagedKeyEncryption | Müşteri tarafından yönetilen anahtar şifreleme ayarları. | customerManagedKeyEncryptionProperties |
HighAvailabilityProperties
| Ad | Açıklama | Değer |
|---|---|---|
| hedef Modu | Küme için istenen hedef yüksek kullanılabilirlik modu. | 'Devre Dışı' 'Aynı Bölge' 'ZoneRedundantPreferred' |
KeyEncryptionKeyIdentity
| Ad | Açıklama | Değer |
|---|---|---|
| kimlikTürü | Kimlik türü. Yalnızca 'UserAssignedIdentity' desteklenir. | 'UserAssignedIdentity' |
| userAssignedIdentityResourceId | Kullanıcı tarafından atanan kimlik kaynağı kimliği. | dizgi |
ManagedServiceIdentity (Yönetilen Servis Kimliği)
| Ad | Açıklama | Değer |
|---|---|---|
| tür | Yönetilen hizmet kimliği türü (hem SystemAssigned hem de UserAssigned türlerine izin verilir). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (gerekli) |
| kullanıcı tarafından atanan kimlikler | Kaynakla ilişkili kullanıcı tarafından atanan kimlik kümesi. userAssignedIdentities sözlük anahtarları şu formda ARM kaynak kimlikleri olacaktır: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Sözlük değerleri, isteklerdeki boş nesneler ({}) olabilir. | UserAssignedIdentities |
MongoClusterProperties
| Ad | Açıklama | Değer |
|---|---|---|
| Yönetici | Mongo kümesinin yerel yönetici özellikleri. | Yönetici Özellikleri |
| authConfig (Kimlik Doğrulaması) | Küme için kimlik doğrulama yapılandırması. | AuthConfigProperties |
| yedek | Mongo kümesinin yedekleme özellikleri. | BackupProperties |
| hesaplamak | Mongo kümesinin işlem özellikleri. | computeProperties |
| createMode (Oluştur Modu | Mongo kümesi oluşturma modu. | 'Varsayılan' 'Coğrafi Çoğaltma' 'PointInTimeRestore' 'Çoğaltma' |
| veri API'si | mongo kümesinin Veri API'sinin özellikleri. | DataApiProperties |
| şifreleme | Küme için şifreleme yapılandırması. Yapılandırılan kimliğe bağlıdır. | Şifreleme Özellikleri |
| highAvailability (Yüksek Kullanılabilirlik) | Mongo kümesinin yüksek kullanılabilirlik özellikleri. | HighAvailabilityProperties |
| önizlemeÖzellikler | Özel uç nokta bağlantılarının listesi. | Herhangi birini içeren dize dizisi: 'Coğrafi Kopyalar' |
| publicNetworkAccess | Bu mongo kümesi için genel uç nokta erişimine izin verilip verilmeyeceği. | 'Devre Dışı' 'Etkin' |
| replicaParameters | Çoğaltma mongo kümesi oluşturma parametreleri. | MongoClusterReplicaParameters |
| restoreParameters | Belirli bir noktaya geri yükleme mongo kümesi oluşturmaya yönelik parametreler. | MongoClusterRestoreParameters |
| sunucuSürümü | Mongo DB sunucu sürümü. Belirtilmezse varsayılan olarak en son kullanılabilir sürümü kullanır. | dizgi |
| parçalama | Mongo kümesinin parçalama özellikleri. | ShardingProperties (Parçalama Özellikleri) |
| depolama | Mongo kümesinin depolama özellikleri. | Depolama Özellikleri |
MongoClusterReplicaParameters
| Ad | Açıklama | Değer |
|---|---|---|
| kaynakKonum | Kaynak kümenin konumu | dize (gerekli) |
| sourceResourceId | Çoğaltma kaynak kümesinin kimliği. | dize (gerekli) |
MongoClusterRestoreParameters
| Ad | Açıklama | Değer |
|---|---|---|
| pointInTimeUTC | Mongo kümesini geri yüklemek için UTC noktası | dizgi |
| sourceResourceId | Geri yükleneceği kaynak kümeyi bulmak için kaynak kimliği | dizgi |
ShardingProperties (Parçalama Özellikleri)
| Ad | Açıklama | Değer |
|---|---|---|
| shardCount | Kümede sağlanacak parça sayısı. | Int |
Depolama Özellikleri
| Ad | Açıklama | Değer |
|---|---|---|
| boyutGB | Her sunucuya atanan veri diskinin boyutu. | Int |
| tür | Küme sunucularının sağlanacağı depolama alanı türü. | 'PremiumSSD' 'PremiumSSDv2' |
TrackedResourceTags
| Ad | Açıklama | Değer |
|---|
UserAssignedIdentities
| Ad | Açıklama | Değer |
|---|
Kullanıcı Atanmış Kimlik
| Ad | Açıklama | Değer |
|---|
Kullanım Örnekleri
Azure Doğrulanmış Modülleri
Aşağıdaki Azure Doğrulanmış Modüller bu kaynak türünü dağıtmak için kullanılabilir.
ARM şablonu kaynak tanımı
mongoClusters kaynak türü, aşağıdakileri hedefleyen işlemlerle dağıtılabilir:
Her API sürümünde değiştirilen özelliklerin listesi için bkz. değişiklik günlüğü.
Kaynak biçimi
Microsoft.DocumentDB/mongoClusters kaynağı oluşturmak için şablonunuza aşağıdaki JSON dosyasını ekleyin.
{
"type": "Microsoft.DocumentDB/mongoClusters",
"apiVersion": "2025-09-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"
},
"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"
}
}
Özellik Değerleri
Microsoft.DocumentDB/mongoClusters
| Ad | Açıklama | Değer |
|---|---|---|
| apiVersiyonu | API sürümü | '2025-09-01' |
| kimlik | Bu kaynağa atanan yönetilen hizmet kimlikleri. | ManagedServiceIdentity |
| yer | Kaynağın bulunduğu coğrafi konum | dize (gerekli) |
| ad | Kaynak adı | dizgi Kısıtlama -ları: En az uzunluk = 3 Maksimum uzunluk = 40 Desen = ^[a-z0-9]+(-[a-z0-9]+)* (gerekli) |
| Özellikler | Bu kaynağın kaynağa özgü özellikleri. | MongoClusterProperties |
| Etiketler | Kaynak etiketleri | Etiket adları ve değerleri sözlüğü. Bkz. şablonlardaki Etiketleri |
| tür | Kaynak türü | 'Microsoft.DocumentDB/mongoClusters' |
Yönetici Özellikleri
| Ad | Açıklama | Değer |
|---|---|---|
| parola | Yönetici parolası. | dizgi Kısıtlama -ları: Hassas değer. Güvenli parametre olarak geçirin. |
| kullanıcı adı | Yönetici kullanıcı adı. | dizgi |
AuthConfigProperties
| Ad | Açıklama | Değer |
|---|---|---|
| izin verilen Modlar | Kümedeki veri erişimi için izin verilen kimlik doğrulama modları. | Herhangi birini içeren dize dizisi: 'MicrosoftEntraID' (Microsoft EntraID) 'Yerel Kimlik Doğrulaması' |
Yedekleme Özellikleri
| Ad | Açıklama | Değer |
|---|
ComputeProperties (İşlem Özellikleri)
| Ad | Açıklama | Değer |
|---|---|---|
| Katmanı | Her katmanın bir sanal çekirdek ve bellek boyutuyla eşlendiği kümeye atanacak işlem katmanı. Örnek değerler: 'M30', 'M40'. | dizgi |
CustomerManagedKeyEncryptionProperties
| Ad | Açıklama | Değer |
|---|---|---|
| keyEncryptionKeyIdentity | Anahtar şifreleme anahtarına erişmek için kullanılan kimlik. | KeyEncryptionKeyIdentity |
| keyEncryptionKeyUrl | Şifreleme için kullanılan anahtar kasası anahtarının URI'si. | dizgi |
DataApiProperties
| Ad | Açıklama | Değer |
|---|---|---|
| mod | Mongo Veri API'sinin bir küme için etkinleştirilip etkinleştirilmediğini gösteren mod. | 'Devre Dışı' 'Etkin' |
EncryptionProperties
| Ad | Açıklama | Değer |
|---|---|---|
| customerManagedKeyEncryption | Müşteri tarafından yönetilen anahtar şifreleme ayarları. | customerManagedKeyEncryptionProperties |
HighAvailabilityProperties
| Ad | Açıklama | Değer |
|---|---|---|
| hedef Modu | Küme için istenen hedef yüksek kullanılabilirlik modu. | 'Devre Dışı' 'Aynı Bölge' 'ZoneRedundantPreferred' |
KeyEncryptionKeyIdentity
| Ad | Açıklama | Değer |
|---|---|---|
| kimlikTürü | Kimlik türü. Yalnızca 'UserAssignedIdentity' desteklenir. | 'UserAssignedIdentity' |
| userAssignedIdentityResourceId | Kullanıcı tarafından atanan kimlik kaynağı kimliği. | dizgi |
ManagedServiceIdentity (Yönetilen Servis Kimliği)
| Ad | Açıklama | Değer |
|---|---|---|
| tür | Yönetilen hizmet kimliği türü (hem SystemAssigned hem de UserAssigned türlerine izin verilir). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (gerekli) |
| kullanıcı tarafından atanan kimlikler | Kaynakla ilişkili kullanıcı tarafından atanan kimlik kümesi. userAssignedIdentities sözlük anahtarları şu formda ARM kaynak kimlikleri olacaktır: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Sözlük değerleri, isteklerdeki boş nesneler ({}) olabilir. | UserAssignedIdentities |
MongoClusterProperties
| Ad | Açıklama | Değer |
|---|---|---|
| Yönetici | Mongo kümesinin yerel yönetici özellikleri. | Yönetici Özellikleri |
| authConfig (Kimlik Doğrulaması) | Küme için kimlik doğrulama yapılandırması. | AuthConfigProperties |
| yedek | Mongo kümesinin yedekleme özellikleri. | BackupProperties |
| hesaplamak | Mongo kümesinin işlem özellikleri. | computeProperties |
| createMode (Oluştur Modu | Mongo kümesi oluşturma modu. | 'Varsayılan' 'Coğrafi Çoğaltma' 'PointInTimeRestore' 'Çoğaltma' |
| veri API'si | mongo kümesinin Veri API'sinin özellikleri. | DataApiProperties |
| şifreleme | Küme için şifreleme yapılandırması. Yapılandırılan kimliğe bağlıdır. | Şifreleme Özellikleri |
| highAvailability (Yüksek Kullanılabilirlik) | Mongo kümesinin yüksek kullanılabilirlik özellikleri. | HighAvailabilityProperties |
| önizlemeÖzellikler | Özel uç nokta bağlantılarının listesi. | Herhangi birini içeren dize dizisi: 'Coğrafi Kopyalar' |
| publicNetworkAccess | Bu mongo kümesi için genel uç nokta erişimine izin verilip verilmeyeceği. | 'Devre Dışı' 'Etkin' |
| replicaParameters | Çoğaltma mongo kümesi oluşturma parametreleri. | MongoClusterReplicaParameters |
| restoreParameters | Belirli bir noktaya geri yükleme mongo kümesi oluşturmaya yönelik parametreler. | MongoClusterRestoreParameters |
| sunucuSürümü | Mongo DB sunucu sürümü. Belirtilmezse varsayılan olarak en son kullanılabilir sürümü kullanır. | dizgi |
| parçalama | Mongo kümesinin parçalama özellikleri. | ShardingProperties (Parçalama Özellikleri) |
| depolama | Mongo kümesinin depolama özellikleri. | Depolama Özellikleri |
MongoClusterReplicaParameters
| Ad | Açıklama | Değer |
|---|---|---|
| kaynakKonum | Kaynak kümenin konumu | dize (gerekli) |
| sourceResourceId | Çoğaltma kaynak kümesinin kimliği. | dize (gerekli) |
MongoClusterRestoreParameters
| Ad | Açıklama | Değer |
|---|---|---|
| pointInTimeUTC | Mongo kümesini geri yüklemek için UTC noktası | dizgi |
| sourceResourceId | Geri yükleneceği kaynak kümeyi bulmak için kaynak kimliği | dizgi |
ShardingProperties (Parçalama Özellikleri)
| Ad | Açıklama | Değer |
|---|---|---|
| shardCount | Kümede sağlanacak parça sayısı. | Int |
Depolama Özellikleri
| Ad | Açıklama | Değer |
|---|---|---|
| boyutGB | Her sunucuya atanan veri diskinin boyutu. | Int |
| tür | Küme sunucularının sağlanacağı depolama alanı türü. | 'PremiumSSD' 'PremiumSSDv2' |
TrackedResourceTags
| Ad | Açıklama | Değer |
|---|
UserAssignedIdentities
| Ad | Açıklama | Değer |
|---|
Kullanıcı Atanmış Kimlik
| Ad | Açıklama | Değer |
|---|
Kullanım Örnekleri
Terraform (AzAPI sağlayıcısı) kaynak tanımı
mongoClusters kaynak türü, aşağıdakileri hedefleyen işlemlerle dağıtılabilir:
Her API sürümünde değiştirilen özelliklerin listesi için bkz. değişiklik günlüğü.
Kaynak biçimi
Microsoft.DocumentDB/mongoClusters kaynağı oluşturmak için şablonunuza aşağıdaki Terraform'u ekleyin.
resource "azapi_resource" "symbolicname" {
type = "Microsoft.DocumentDB/mongoClusters@2025-09-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"
}
previewFeatures = [
"string"
]
publicNetworkAccess = "string"
replicaParameters = {
sourceLocation = "string"
sourceResourceId = "string"
}
restoreParameters = {
pointInTimeUTC = "string"
sourceResourceId = "string"
}
serverVersion = "string"
sharding = {
shardCount = int
}
storage = {
sizeGb = int
type = "string"
}
}
}
}
Özellik Değerleri
Microsoft.DocumentDB/mongoClusters
| Ad | Açıklama | Değer |
|---|---|---|
| kimlik | Bu kaynağa atanan yönetilen hizmet kimlikleri. | ManagedServiceIdentity |
| yer | Kaynağın bulunduğu coğrafi konum | dize (gerekli) |
| ad | Kaynak adı | dizgi Kısıtlama -ları: En az uzunluk = 3 Maksimum uzunluk = 40 Desen = ^[a-z0-9]+(-[a-z0-9]+)* (gerekli) |
| parent_id | Bu uzantı kaynağının uygulanacağı kaynağın kimliği. | dize (gerekli) |
| Özellikler | Bu kaynağın kaynağa özgü özellikleri. | MongoClusterProperties |
| Etiketler | Kaynak etiketleri | Etiket adları ve değerleri sözlüğü. |
| tür | Kaynak türü | "Microsoft.DocumentDB/mongoClusters@2025-09-01" |
Yönetici Özellikleri
| Ad | Açıklama | Değer |
|---|---|---|
| parola | Yönetici parolası. | dizgi Kısıtlama -ları: Hassas değer. Güvenli parametre olarak geçirin. |
| kullanıcı adı | Yönetici kullanıcı adı. | dizgi |
AuthConfigProperties
| Ad | Açıklama | Değer |
|---|---|---|
| izin verilen Modlar | Kümedeki veri erişimi için izin verilen kimlik doğrulama modları. | Herhangi birini içeren dize dizisi: 'MicrosoftEntraID' (Microsoft EntraID) 'Yerel Kimlik Doğrulaması' |
Yedekleme Özellikleri
| Ad | Açıklama | Değer |
|---|
ComputeProperties (İşlem Özellikleri)
| Ad | Açıklama | Değer |
|---|---|---|
| Katmanı | Her katmanın bir sanal çekirdek ve bellek boyutuyla eşlendiği kümeye atanacak işlem katmanı. Örnek değerler: 'M30', 'M40'. | dizgi |
CustomerManagedKeyEncryptionProperties
| Ad | Açıklama | Değer |
|---|---|---|
| keyEncryptionKeyIdentity | Anahtar şifreleme anahtarına erişmek için kullanılan kimlik. | KeyEncryptionKeyIdentity |
| keyEncryptionKeyUrl | Şifreleme için kullanılan anahtar kasası anahtarının URI'si. | dizgi |
DataApiProperties
| Ad | Açıklama | Değer |
|---|---|---|
| mod | Mongo Veri API'sinin bir küme için etkinleştirilip etkinleştirilmediğini gösteren mod. | 'Devre Dışı' 'Etkin' |
EncryptionProperties
| Ad | Açıklama | Değer |
|---|---|---|
| customerManagedKeyEncryption | Müşteri tarafından yönetilen anahtar şifreleme ayarları. | customerManagedKeyEncryptionProperties |
HighAvailabilityProperties
| Ad | Açıklama | Değer |
|---|---|---|
| hedef Modu | Küme için istenen hedef yüksek kullanılabilirlik modu. | 'Devre Dışı' 'Aynı Bölge' 'ZoneRedundantPreferred' |
KeyEncryptionKeyIdentity
| Ad | Açıklama | Değer |
|---|---|---|
| kimlikTürü | Kimlik türü. Yalnızca 'UserAssignedIdentity' desteklenir. | 'UserAssignedIdentity' |
| userAssignedIdentityResourceId | Kullanıcı tarafından atanan kimlik kaynağı kimliği. | dizgi |
ManagedServiceIdentity (Yönetilen Servis Kimliği)
| Ad | Açıklama | Değer |
|---|---|---|
| tür | Yönetilen hizmet kimliği türü (hem SystemAssigned hem de UserAssigned türlerine izin verilir). | 'None' 'SystemAssigned' 'SystemAssigned,UserAssigned' 'UserAssigned' (gerekli) |
| kullanıcı tarafından atanan kimlikler | Kaynakla ilişkili kullanıcı tarafından atanan kimlik kümesi. userAssignedIdentities sözlük anahtarları şu formda ARM kaynak kimlikleri olacaktır: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}. Sözlük değerleri, isteklerdeki boş nesneler ({}) olabilir. | UserAssignedIdentities |
MongoClusterProperties
| Ad | Açıklama | Değer |
|---|---|---|
| Yönetici | Mongo kümesinin yerel yönetici özellikleri. | Yönetici Özellikleri |
| authConfig (Kimlik Doğrulaması) | Küme için kimlik doğrulama yapılandırması. | AuthConfigProperties |
| yedek | Mongo kümesinin yedekleme özellikleri. | BackupProperties |
| hesaplamak | Mongo kümesinin işlem özellikleri. | computeProperties |
| createMode (Oluştur Modu | Mongo kümesi oluşturma modu. | 'Varsayılan' 'Coğrafi Çoğaltma' 'PointInTimeRestore' 'Çoğaltma' |
| veri API'si | mongo kümesinin Veri API'sinin özellikleri. | DataApiProperties |
| şifreleme | Küme için şifreleme yapılandırması. Yapılandırılan kimliğe bağlıdır. | Şifreleme Özellikleri |
| highAvailability (Yüksek Kullanılabilirlik) | Mongo kümesinin yüksek kullanılabilirlik özellikleri. | HighAvailabilityProperties |
| önizlemeÖzellikler | Özel uç nokta bağlantılarının listesi. | Herhangi birini içeren dize dizisi: 'Coğrafi Kopyalar' |
| publicNetworkAccess | Bu mongo kümesi için genel uç nokta erişimine izin verilip verilmeyeceği. | 'Devre Dışı' 'Etkin' |
| replicaParameters | Çoğaltma mongo kümesi oluşturma parametreleri. | MongoClusterReplicaParameters |
| restoreParameters | Belirli bir noktaya geri yükleme mongo kümesi oluşturmaya yönelik parametreler. | MongoClusterRestoreParameters |
| sunucuSürümü | Mongo DB sunucu sürümü. Belirtilmezse varsayılan olarak en son kullanılabilir sürümü kullanır. | dizgi |
| parçalama | Mongo kümesinin parçalama özellikleri. | ShardingProperties (Parçalama Özellikleri) |
| depolama | Mongo kümesinin depolama özellikleri. | Depolama Özellikleri |
MongoClusterReplicaParameters
| Ad | Açıklama | Değer |
|---|---|---|
| kaynakKonum | Kaynak kümenin konumu | dize (gerekli) |
| sourceResourceId | Çoğaltma kaynak kümesinin kimliği. | dize (gerekli) |
MongoClusterRestoreParameters
| Ad | Açıklama | Değer |
|---|---|---|
| pointInTimeUTC | Mongo kümesini geri yüklemek için UTC noktası | dizgi |
| sourceResourceId | Geri yükleneceği kaynak kümeyi bulmak için kaynak kimliği | dizgi |
ShardingProperties (Parçalama Özellikleri)
| Ad | Açıklama | Değer |
|---|---|---|
| shardCount | Kümede sağlanacak parça sayısı. | Int |
Depolama Özellikleri
| Ad | Açıklama | Değer |
|---|---|---|
| boyutGB | Her sunucuya atanan veri diskinin boyutu. | Int |
| tür | Küme sunucularının sağlanacağı depolama alanı türü. | 'PremiumSSD' 'PremiumSSDv2' |
TrackedResourceTags
| Ad | Açıklama | Değer |
|---|
UserAssignedIdentities
| Ad | Açıklama | Değer |
|---|
Kullanıcı Atanmış Kimlik
| Ad | Açıklama | Değer |
|---|
Kullanım Örnekleri
Terraform Örnekleri
MongoDB (vCore) için Azure Cosmos DB dağıtımına temel bir örnek.
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 = ["*"]
}