Skip to content

Commit e75cc10

Browse files
Merge pull request #53 from Roopan-Microsoft/PSL-US-8618
feat: Conversion of function app deployment using .sh file to bicep
2 parents db1c711 + 8451229 commit e75cc10

File tree

5 files changed

+326
-169
lines changed

5 files changed

+326
-169
lines changed
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
@description('Specifies the location for resources.')
2+
param solutionName string
3+
param solutionLocation string
4+
@secure()
5+
param azureOpenAIApiKey string
6+
param azureOpenAIApiVersion string
7+
param azureOpenAIEndpoint string
8+
@secure()
9+
param azureSearchAdminKey string
10+
param azureSearchServiceEndpoint string
11+
param azureSearchIndex string
12+
param sqlServerName string
13+
param sqlDbName string
14+
param sqlDbUser string
15+
@secure()
16+
param sqlDbPwd string
17+
param functionAppVersion string
18+
19+
var functionAppName = '${solutionName}fn'
20+
var azureOpenAIDeploymentModel = 'gpt-4'
21+
var azureOpenAIEmbeddingDeployment = 'text-embedding-ada-002'
22+
var valueOne = '1'
23+
24+
resource storageAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = {
25+
name: '${solutionName}fnstorage'
26+
location: solutionLocation
27+
sku: {
28+
name: 'Standard_LRS'
29+
}
30+
kind: 'StorageV2'
31+
properties: {
32+
allowSharedKeyAccess: false
33+
}
34+
}
35+
36+
resource logAnalyticsWorkspace 'Microsoft.OperationalInsights/workspaces@2022-10-01' = {
37+
name: 'workspace-${solutionName}'
38+
location: solutionLocation
39+
}
40+
41+
resource ApplicationInsights 'Microsoft.Insights/components@2020-02-02' = {
42+
name: functionAppName
43+
location: solutionLocation
44+
kind: 'web'
45+
properties: {
46+
Application_Type: 'web'
47+
publicNetworkAccessForIngestion: 'Enabled'
48+
publicNetworkAccessForQuery: 'Enabled'
49+
WorkspaceResourceId: logAnalyticsWorkspace.id
50+
}
51+
}
52+
53+
resource containerAppEnv 'Microsoft.App/managedEnvironments@2022-06-01-preview' = {
54+
name: '${solutionName}env'
55+
location: solutionLocation
56+
sku: {
57+
name: 'Consumption'
58+
}
59+
properties: {
60+
appLogsConfiguration: {
61+
destination: 'log-analytics'
62+
logAnalyticsConfiguration: {
63+
customerId: logAnalyticsWorkspace.properties.customerId
64+
sharedKey: logAnalyticsWorkspace.listKeys().primarySharedKey
65+
}
66+
}
67+
}
68+
}
69+
70+
resource functionApp 'Microsoft.Web/sites@2024-04-01' = {
71+
name: functionAppName
72+
location: solutionLocation
73+
kind: 'functionapp'
74+
identity: {
75+
type: 'SystemAssigned'
76+
}
77+
properties: {
78+
managedEnvironmentId: containerAppEnv.id
79+
siteConfig: {
80+
linuxFxVersion: 'DOCKER|bycwacontainerreg.azurecr.io/byc-wa-fn:${functionAppVersion}'
81+
appSettings: [
82+
{
83+
name: 'APPINSIGHTS_INSTRUMENTATIONKEY'
84+
value: reference(ApplicationInsights.id, '2015-05-01').InstrumentationKey
85+
}
86+
{
87+
name: 'AZURE_OPEN_AI_API_KEY'
88+
value: azureOpenAIApiKey
89+
}
90+
{
91+
name: 'AZURE_OPEN_AI_DEPLOYMENT_MODEL'
92+
value: azureOpenAIDeploymentModel
93+
}
94+
{
95+
name: 'AZURE_OPEN_AI_ENDPOINT'
96+
value: azureOpenAIEndpoint
97+
}
98+
{
99+
name: 'AZURE_OPENAI_EMBEDDING_DEPLOYMENT'
100+
value: azureOpenAIEmbeddingDeployment
101+
}
102+
{
103+
name: 'OPENAI_API_VERSION'
104+
value: azureOpenAIApiVersion
105+
}
106+
{
107+
name: 'AZURE_AI_SEARCH_API_KEY'
108+
value: azureSearchAdminKey
109+
}
110+
{
111+
name: 'AZURE_AI_SEARCH_ENDPOINT'
112+
value: azureSearchServiceEndpoint
113+
}
114+
{
115+
name: 'AZURE_SEARCH_INDEX'
116+
value: azureSearchIndex
117+
}
118+
{
119+
name: 'PYTHON_ENABLE_INIT_INDEXING'
120+
value: valueOne
121+
}
122+
{
123+
name: 'PYTHON_ISOLATE_WORKER_DEPENDENCIES'
124+
value: valueOne
125+
}
126+
{
127+
name: 'SQLDB_CONNECTION_STRING'
128+
value: 'TBD'
129+
}
130+
{
131+
name: 'SQLDB_SERVER'
132+
value: sqlServerName
133+
}
134+
{
135+
name: 'SQLDB_DATABASE'
136+
value: sqlDbName
137+
}
138+
{
139+
name: 'SQLDB_USERNAME'
140+
value: sqlDbUser
141+
}
142+
{
143+
name: 'SQLDB_PASSWORD'
144+
value: sqlDbPwd
145+
}
146+
]
147+
}
148+
}
149+
}

ClientAdvisor/Deployment/bicep/deploy_azure_function_script.bicep

Lines changed: 0 additions & 42 deletions
This file was deleted.

ClientAdvisor/Deployment/bicep/main.bicep

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ param cosmosLocation string
1313
// param fabricWorkspaceId string
1414

1515
var resourceGroupLocation = resourceGroup().location
16-
var resourceGroupName = resourceGroup().name
16+
// var resourceGroupName = resourceGroup().name
1717
// var subscriptionId = subscription().subscriptionId
1818

1919
var solutionLocation = resourceGroupLocation
@@ -101,12 +101,11 @@ module uploadFiles 'deploy_upload_files_script.bicep' = {
101101
dependsOn:[storageAccountModule]
102102
}
103103

104-
module azureFunctions 'deploy_azure_function_script.bicep' = {
105-
name : 'deploy_azure_function_script'
104+
module azureFunctions 'deploy_azure_function.bicep' = {
105+
name : 'deploy_azure_function'
106106
params:{
107107
solutionName: solutionPrefix
108108
solutionLocation: solutionLocation
109-
resourceGroupName:resourceGroupName
110109
azureOpenAIApiKey:azOpenAI.outputs.openAIOutput.openAPIKey
111110
azureOpenAIApiVersion:'2024-02-15-preview'
112111
azureOpenAIEndpoint:azOpenAI.outputs.openAIOutput.openAPIEndpoint
@@ -117,8 +116,6 @@ module azureFunctions 'deploy_azure_function_script.bicep' = {
117116
sqlDbName:sqlDBModule.outputs.sqlDbOutput.sqlDbName
118117
sqlDbUser:sqlDBModule.outputs.sqlDbOutput.sqlDbUser
119118
sqlDbPwd:sqlDBModule.outputs.sqlDbOutput.sqlDbPwd
120-
identity:managedIdentityModule.outputs.managedIdentityOutput.id
121-
baseUrl:baseUrl
122119
functionAppVersion: appversion
123120
}
124121
dependsOn:[storageAccountModule]

0 commit comments

Comments
 (0)