Skip to content

Commit 2181dfd

Browse files
Enhance Bicep templates and Python scripts: add private endpoint configurations for DFS and streamline deployment script parameters
1 parent 80a1221 commit 2181dfd

File tree

4 files changed

+43
-28
lines changed

4 files changed

+43
-28
lines changed

infra/main.bicep

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ var privateDnsZones = [
301301
'privatelink${environment().suffixes.sqlServerHostname}'
302302
'privatelink.azurewebsites.net'
303303
'privatelink.search.windows.net'
304+
'privatelink.dfs.${environment().suffixes.storage}'
304305
]
305306
// DNS Zone Index Constants
306307
var dnsZoneIndex = {
@@ -320,6 +321,7 @@ var dnsZoneIndex = {
320321
sqlServer: 13
321322
appService: 14
322323
search: 15
324+
storageDfs: 16
323325
}
324326
@batchSize(5)
325327
module avmPrivateDnsZones 'br/public:avm/res/network/private-dns-zone:0.7.1' = [
@@ -956,6 +958,32 @@ module avmStorageAccount 'br/public:avm/res/storage/storage-account:0.20.0' = {
956958
]
957959
}
958960
}
961+
{
962+
name: 'pep-file-${solutionSuffix}'
963+
service: 'file'
964+
subnetResourceId: network!.outputs.subnetPrivateEndpointsResourceId
965+
privateDnsZoneGroup: {
966+
privateDnsZoneGroupConfigs: [
967+
{
968+
name: 'storage-dns-zone-group-file'
969+
privateDnsZoneResourceId: avmPrivateDnsZones[dnsZoneIndex.storageFile]!.outputs.resourceId
970+
}
971+
]
972+
}
973+
}
974+
{
975+
name: 'pep-dfs-${solutionSuffix}'
976+
service: 'dfs'
977+
subnetResourceId: network!.outputs.subnetPrivateEndpointsResourceId
978+
privateDnsZoneGroup: {
979+
privateDnsZoneGroupConfigs: [
980+
{
981+
name: 'storage-dns-zone-group-dfs'
982+
privateDnsZoneResourceId: avmPrivateDnsZones[dnsZoneIndex.storageDfs]!.outputs.resourceId
983+
}
984+
]
985+
}
986+
}
959987
] : []
960988

961989
// ✅ Blob service config (simplified, script-friendly)
@@ -1149,44 +1177,35 @@ module sqlDBModule 'br/public:avm/res/sql/server:0.20.1' = {
11491177

11501178
//========== AVM WAF ========== //
11511179
//========== Deployment script to upload data ========== //
1152-
module uploadFiles 'br/public:avm/res/resources/deployment-script:0.5.1' = if(!enablePrivateNetworking) {
1180+
module uploadFiles 'br/public:avm/res/resources/deployment-script:0.5.1' = {
11531181
name: 'deploymentScriptForUploadFiles'
11541182
params: {
11551183
kind: 'AzureCLI'
11561184
name: 'copy_demo_Data'
11571185
azCliVersion: '2.52.0'
11581186
cleanupPreference: 'Always'
1159-
location: solutionLocation // same as VNet
1187+
location: solutionLocation
11601188
managedIdentities: {
11611189
userAssignedResourceIds: [
11621190
userAssignedIdentity.outputs.resourceId
11631191
]
11641192
}
11651193
retentionInterval: 'P1D'
11661194
runOnce: true
1167-
1168-
// ✅ Script + arguments
11691195
primaryScriptUri: '${baseUrl}infra/scripts/copy_kb_files.sh'
11701196
arguments: '${avmStorageAccount.outputs.name} data ${baseUrl} ${userAssignedIdentity.outputs.clientId}'
1171-
1172-
// ✅ Explicit storage account + subnet for private networking
11731197
storageAccountResourceId: avmStorageAccount.outputs.resourceId
1174-
// subnetResourceIds: enablePrivateNetworking ? [
1175-
// network!.outputs.subnetDeploymentScriptsResourceId
1176-
// ] : null
1177-
1198+
subnetResourceIds: enablePrivateNetworking ? [
1199+
network!.outputs.subnetDeploymentScriptsResourceId
1200+
] : null
11781201
tags: tags
11791202
timeout: 'PT1H'
11801203
}
1181-
dependsOn: [
1182-
avmStorageAccount
1183-
network
1184-
]
11851204
}
11861205

11871206
//========== AVM WAF ========== //
11881207
//========== Deployment script to create index ========== //
1189-
module createIndex 'br/public:avm/res/resources/deployment-script:0.5.1' = if(!enablePrivateNetworking) {
1208+
module createIndex 'br/public:avm/res/resources/deployment-script:0.5.1' = {
11901209
name: 'deploymentScriptForCreateIndex'
11911210
params: {
11921211
// Required parameters
@@ -1207,6 +1226,10 @@ module createIndex 'br/public:avm/res/resources/deployment-script:0.5.1' = if(!e
12071226
timeout: 'PT1H'
12081227
retentionInterval: 'P1D'
12091228
cleanupPreference: 'OnSuccess'
1229+
storageAccountResourceId: avmStorageAccount.outputs.resourceId
1230+
subnetResourceIds: enablePrivateNetworking ? [
1231+
network!.outputs.subnetDeploymentScriptsResourceId
1232+
] : null
12101233
}
12111234
dependsOn:[sqlDBModule,uploadFiles]
12121235
}

infra/modules/network.bicep

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ module network 'network/main.bicep' = {
141141
securityRules: []
142142
}
143143
delegation: 'Microsoft.ContainerInstance/containerGroups'
144-
serviceEndpoints: ['Microsoft.Storage','Microsoft.KeyVault']
144+
serviceEndpoints: ['Microsoft.Storage']
145145
}
146146
]
147147
bastionConfiguration: {

infra/scripts/index_scripts/02_create_cu_template_audio.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
ANALYZER_ID = "ckm-audio"
1616
ANALYZER_TEMPLATE_FILE = 'ckm-analyzer_config_audio.json'
1717

18-
print("02_create_cu_template_audio.py: Started")
18+
1919
# === Helper Functions ===
2020
def get_secrets_from_kv(secret_name: str, vault_name: str) -> str:
2121
"""
@@ -40,8 +40,6 @@ def get_secrets_from_kv(secret_name: str, vault_name: str) -> str:
4040
# Fetch endpoint from Key Vault
4141
endpoint = get_secrets_from_kv("AZURE-OPENAI-CU-ENDPOINT", KEY_VAULT_NAME)
4242

43-
print("02_create_cu_template_audio.py: Inprogress")
44-
4543
credential = get_azure_credential(client_id=MANAGED_IDENTITY_CLIENT_ID)
4644
# Initialize Content Understanding Client
4745
token_provider = get_bearer_token_provider(credential, "https://cognitiveservices.azure.com/.default")
@@ -53,6 +51,4 @@ def get_secrets_from_kv(secret_name: str, vault_name: str) -> str:
5351

5452
# Create Analyzer
5553
response = client.begin_create_analyzer(ANALYZER_ID, analyzer_template_path=ANALYZER_TEMPLATE_FILE)
56-
result = client.poll_result(response)
57-
58-
print("02_create_cu_template_audio.py: Completed")
54+
result = client.poll_result(response)

infra/scripts/index_scripts/02_create_cu_template_text.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
ANALYZER_ID = "ckm-json"
1616
ANALYZER_TEMPLATE_FILE = 'ckm-analyzer_config_text.json'
1717

18-
print("02_create_cu_template_text.py: Started")
18+
1919
# === Helper Functions ===
2020
def get_secret(secret_name: str, vault_name: str) -> str:
2121
"""
@@ -32,8 +32,6 @@ def get_secret(secret_name: str, vault_name: str) -> str:
3232
endpoint = get_secret("AZURE-OPENAI-CU-ENDPOINT", KEY_VAULT_NAME)
3333

3434
credential = get_azure_credential(client_id=MANAGED_IDENTITY_CLIENT_ID)
35-
36-
print("02_create_cu_template_text.py: Inprogress")
3735
# Initialize Content Understanding Client
3836
token_provider = get_bearer_token_provider(credential, "https://cognitiveservices.azure.com/.default")
3937
client = AzureContentUnderstandingClient(
@@ -44,6 +42,4 @@ def get_secret(secret_name: str, vault_name: str) -> str:
4442

4543
# Create Analyzer
4644
response = client.begin_create_analyzer(ANALYZER_ID, analyzer_template_path=ANALYZER_TEMPLATE_FILE)
47-
result = client.poll_result(response)
48-
49-
print("02_create_cu_template_text.py: Completed")
45+
result = client.poll_result(response)

0 commit comments

Comments
 (0)