Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: support function app flex consumption plan #3390

Merged
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion avm/res/web/site/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ This module deploys a Web or Function App.
| `Microsoft.Web/sites/config` | [2022-09-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/sites) |
| `Microsoft.Web/sites/extensions` | [2023-12-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/sites/extensions) |
| `Microsoft.Web/sites/hybridConnectionNamespaces/relays` | [2022-09-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/2022-09-01/sites/hybridConnectionNamespaces/relays) |
| `Microsoft.Web/sites/slots` | [2022-09-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/2022-09-01/sites/slots) |
| `Microsoft.Web/sites/slots` | [2023-12-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/sites/slots) |
| `Microsoft.Web/sites/slots/basicPublishingCredentialsPolicies` | [2022-09-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/sites) |
| `Microsoft.Web/sites/slots/config` | [2022-09-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/sites) |
| `Microsoft.Web/sites/slots/hybridConnectionNamespaces/relays` | [2022-09-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/2022-09-01/sites/slots/hybridConnectionNamespaces/relays) |
Expand Down Expand Up @@ -2179,6 +2179,7 @@ module site 'br/public:avm/res/web/site:<version>' = {
| [`diagnosticSettings`](#parameter-diagnosticsettings) | array | The diagnostic settings of the service. |
| [`enabled`](#parameter-enabled) | bool | Setting this value to false disables the app (takes the app offline). |
| [`enableTelemetry`](#parameter-enabletelemetry) | bool | Enable/Disable usage telemetry for module. |
| [`functionAppConfig`](#parameter-functionappconfig) | object | The Function App configuration object. |
| [`hostNameSslStates`](#parameter-hostnamesslstates) | array | Hostname SSL states are used to manage the SSL bindings for app's hostnames. |
| [`httpsOnly`](#parameter-httpsonly) | bool | Configures a site to accept only HTTPS requests. Issues redirect for HTTP requests. |
| [`hybridConnectionRelays`](#parameter-hybridconnectionrelays) | array | Names of hybrid connection relays to connect app with. |
Expand Down Expand Up @@ -2508,6 +2509,13 @@ Enable/Disable usage telemetry for module.
- Type: bool
- Default: `True`

### Parameter: `functionAppConfig`

The Function App configuration object.

- Required: No
- Type: object

### Parameter: `hostNameSslStates`

Hostname SSL states are used to manage the SSL bindings for app's hostnames.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "5861139703409371797"
"version": "0.30.23.60470",
"templateHash": "2961784489694025029"
},
"name": "Web Site Basic Publishing Credentials Policies",
"description": "This module deploys a Web Site Basic Publishing Credentials Policy.",
Expand Down
4 changes: 2 additions & 2 deletions avm/res/web/site/config--appsettings/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "3998275265127709875"
"version": "0.30.23.60470",
"templateHash": "10845600494881775271"
},
"name": "Site App Settings",
"description": "This module deploys a Site App Setting.",
Expand Down
4 changes: 2 additions & 2 deletions avm/res/web/site/config--authsettingsv2/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "15126303852151434516"
"version": "0.30.23.60470",
"templateHash": "9901606105705730734"
},
"name": "Site Auth Settings V2 Config",
"description": "This module deploys a Site Auth Settings V2 Configuration.",
Expand Down
4 changes: 2 additions & 2 deletions avm/res/web/site/config--logs/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "1719886395722436280"
"version": "0.30.23.60470",
"templateHash": "5314244939846396394"
},
"name": "Site logs Config",
"description": "This module deploys a Site logs Configuration.",
Expand Down
4 changes: 2 additions & 2 deletions avm/res/web/site/config--web/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "7195763436259190781"
"version": "0.30.23.60470",
"templateHash": "4796843420829841335"
},
"name": "Site Api Management Config",
"description": "This module deploys a Site Api Management Configuration.",
Expand Down
4 changes: 2 additions & 2 deletions avm/res/web/site/extensions--msdeploy/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "2006653133597094766"
"version": "0.30.23.60470",
"templateHash": "8769701913978391000"
},
"name": "Site Deployment Extension ",
"description": "This module deploys a Site extension for MSDeploy.",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "7661794789768148013"
"version": "0.30.23.60470",
"templateHash": "1833159536134902561"
},
"name": "Web/Function Apps Hybrid Connection Relay",
"description": "This module deploys a Site Hybrid Connection Namespace Relay.",
Expand Down
5 changes: 5 additions & 0 deletions avm/res/web/site/main.bicep
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ param siteConfig object = {
alwaysOn: true
}

@description('Optional. The Function App configuration object.')
param functionAppConfig object?

@description('Optional. Required if app of kind functionapp. Resource ID of the storage account to manage triggers and logging function executions.')
param storageAccountResourceId string?

Expand Down Expand Up @@ -265,6 +268,7 @@ resource app 'Microsoft.Web/sites@2023-12-01' = {
keyVaultReferenceIdentity: keyVaultAccessIdentityResourceId
virtualNetworkSubnetId: virtualNetworkSubnetId
siteConfig: siteConfig
functionAppConfig: functionAppConfig
clientCertEnabled: clientCertEnabled
clientCertExclusionPaths: clientCertExclusionPaths
clientCertMode: clientCertMode
Expand Down Expand Up @@ -352,6 +356,7 @@ module app_slots 'slot/main.bicep' = [
storageAccountRequired: slot.?storageAccountRequired ?? storageAccountRequired
virtualNetworkSubnetId: slot.?virtualNetworkSubnetId ?? virtualNetworkSubnetId
siteConfig: slot.?siteConfig ?? siteConfig
functionAppConfig: slot.?functionAppConfig ?? functionAppConfig
storageAccountResourceId: slot.?storageAccountResourceId ?? storageAccountResourceId
storageAccountUseIdentityAuthentication: slot.?storageAccountUseIdentityAuthentication ?? storageAccountUseIdentityAuthentication
appInsightResourceId: slot.?appInsightResourceId ?? appInsightResourceId
Expand Down
81 changes: 50 additions & 31 deletions avm/res/web/site/main.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "4626438010490721609"
"version": "0.30.23.60470",
"templateHash": "12115053115954215642"
},
"name": "Web/Function Apps",
"description": "This module deploys a Web or Function App.",
Expand Down Expand Up @@ -607,6 +607,13 @@
"description": "Optional. The site config object."
}
},
"functionAppConfig": {
"type": "object",
"nullable": true,
"metadata": {
"description": "Optional. The Function App configuration object."
}
},
"storageAccountResourceId": {
"type": "string",
"nullable": true,
Expand Down Expand Up @@ -876,6 +883,7 @@
"keyVaultReferenceIdentity": "[parameters('keyVaultAccessIdentityResourceId')]",
"virtualNetworkSubnetId": "[parameters('virtualNetworkSubnetId')]",
"siteConfig": "[parameters('siteConfig')]",
"functionAppConfig": "[parameters('functionAppConfig')]",
"clientCertEnabled": "[parameters('clientCertEnabled')]",
"clientCertExclusionPaths": "[parameters('clientCertExclusionPaths')]",
"clientCertMode": "[parameters('clientCertMode')]",
Expand Down Expand Up @@ -1008,8 +1016,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "3998275265127709875"
"version": "0.30.23.60470",
"templateHash": "10845600494881775271"
},
"name": "Site App Settings",
"description": "This module deploys a Site App Setting.",
Expand Down Expand Up @@ -1172,8 +1180,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "15126303852151434516"
"version": "0.30.23.60470",
"templateHash": "9901606105705730734"
},
"name": "Site Auth Settings V2 Config",
"description": "This module deploys a Site Auth Settings V2 Configuration.",
Expand Down Expand Up @@ -1276,8 +1284,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "1719886395722436280"
"version": "0.30.23.60470",
"templateHash": "5314244939846396394"
},
"name": "Site logs Config",
"description": "This module deploys a Site logs Configuration.",
Expand Down Expand Up @@ -1371,8 +1379,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "7195763436259190781"
"version": "0.30.23.60470",
"templateHash": "4796843420829841335"
},
"name": "Site Api Management Config",
"description": "This module deploys a Site Api Management Configuration.",
Expand Down Expand Up @@ -1465,8 +1473,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "2006653133597094766"
"version": "0.30.23.60470",
"templateHash": "8769701913978391000"
},
"name": "Site Deployment Extension ",
"description": "This module deploys a Site extension for MSDeploy.",
Expand Down Expand Up @@ -1589,6 +1597,9 @@
"siteConfig": {
"value": "[coalesce(tryGet(coalesce(parameters('slots'), createArray())[copyIndex()], 'siteConfig'), parameters('siteConfig'))]"
},
"functionAppConfig": {
"value": "[coalesce(tryGet(coalesce(parameters('slots'), createArray())[copyIndex()], 'functionAppConfig'), parameters('functionAppConfig'))]"
},
"storageAccountResourceId": {
"value": "[coalesce(tryGet(coalesce(parameters('slots'), createArray())[copyIndex()], 'storageAccountResourceId'), parameters('storageAccountResourceId'))]"
},
Expand Down Expand Up @@ -1684,8 +1695,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "13282951347078727812"
"version": "0.30.23.60470",
"templateHash": "16398712095816733590"
},
"name": "Web/Function App Deployment Slots",
"description": "This module deploys a Web or Function App Deployment Slot.",
Expand Down Expand Up @@ -2258,6 +2269,13 @@
"description": "Optional. The site config object."
}
},
"functionAppConfig": {
"type": "object",
"nullable": true,
"metadata": {
"description": "Optional. The Function App config object."
}
},
"storageAccountResourceId": {
"type": "string",
"nullable": true,
Expand Down Expand Up @@ -2504,7 +2522,7 @@
},
"slot": {
"type": "Microsoft.Web/sites/slots",
"apiVersion": "2022-09-01",
"apiVersion": "2023-12-01",
"name": "[format('{0}/{1}', parameters('appName'), parameters('name'))]",
"location": "[parameters('location')]",
"kind": "[parameters('kind')]",
Expand All @@ -2519,6 +2537,7 @@
"keyVaultReferenceIdentity": "[parameters('keyVaultAccessIdentityResourceId')]",
"virtualNetworkSubnetId": "[parameters('virtualNetworkSubnetId')]",
"siteConfig": "[parameters('siteConfig')]",
"functionAppConfig": "[parameters('functionAppConfig')]",
"clientCertEnabled": "[parameters('clientCertEnabled')]",
"clientCertExclusionPaths": "[parameters('clientCertExclusionPaths')]",
"clientCertMode": "[parameters('clientCertMode')]",
Expand Down Expand Up @@ -2657,8 +2676,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "9363357518124041583"
"version": "0.30.23.60470",
"templateHash": "4751023237415156564"
},
"name": "Site Slot App Settings",
"description": "This module deploys a Site Slot App Setting.",
Expand Down Expand Up @@ -2840,8 +2859,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "3412962465179136371"
"version": "0.30.23.60470",
"templateHash": "12145671704242923554"
},
"name": "Site Slot Auth Settings V2 Config",
"description": "This module deploys a Site Auth Settings V2 Configuration.",
Expand Down Expand Up @@ -2962,8 +2981,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "6875784212879192632"
"version": "0.30.23.60470",
"templateHash": "9837227282603977030"
},
"name": "Web Site Slot Basic Publishing Credentials Policies",
"description": "This module deploys a Web Site Slot Basic Publishing Credentials Policy.",
Expand Down Expand Up @@ -3088,8 +3107,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "4120073340411344208"
"version": "0.30.23.60470",
"templateHash": "1330320751784094185"
},
"name": "Web/Function Apps Slot Hybrid Connection Relay",
"description": "This module deploys a Site Slot Hybrid Connection Namespace Relay.",
Expand Down Expand Up @@ -3194,8 +3213,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "2006653133597094766"
"version": "0.30.23.60470",
"templateHash": "8769701913978391000"
},
"name": "Site Deployment Extension ",
"description": "This module deploys a Site extension for MSDeploy.",
Expand Down Expand Up @@ -4058,14 +4077,14 @@
"metadata": {
"description": "The principal ID of the system assigned identity."
},
"value": "[coalesce(tryGet(tryGet(reference('slot', '2022-09-01', 'full'), 'identity'), 'principalId'), '')]"
"value": "[coalesce(tryGet(tryGet(reference('slot', '2023-12-01', 'full'), 'identity'), 'principalId'), '')]"
},
"location": {
"type": "string",
"metadata": {
"description": "The location the resource was deployed into."
},
"value": "[reference('slot', '2022-09-01', 'full').location]"
"value": "[reference('slot', '2023-12-01', 'full').location]"
},
"privateEndpoints": {
"type": "array",
Expand Down Expand Up @@ -4123,8 +4142,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "5861139703409371797"
"version": "0.30.23.60470",
"templateHash": "2961784489694025029"
},
"name": "Web Site Basic Publishing Credentials Policies",
"description": "This module deploys a Web Site Basic Publishing Credentials Policy.",
Expand Down Expand Up @@ -4239,8 +4258,8 @@
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.29.47.4906",
"templateHash": "7661794789768148013"
"version": "0.30.23.60470",
"templateHash": "1833159536134902561"
},
"name": "Web/Function Apps Hybrid Connection Relay",
"description": "This module deploys a Site Hybrid Connection Namespace Relay.",
Expand Down
10 changes: 9 additions & 1 deletion avm/res/web/site/slot/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ This module deploys a Web or Function App Deployment Slot.
| `Microsoft.Network/privateEndpoints` | [2023-11-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Network/2023-11-01/privateEndpoints) |
| `Microsoft.Network/privateEndpoints/privateDnsZoneGroups` | [2023-11-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Network/2023-11-01/privateEndpoints/privateDnsZoneGroups) |
| `Microsoft.Web/sites/extensions` | [2023-12-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/sites/extensions) |
| `Microsoft.Web/sites/slots` | [2022-09-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/2022-09-01/sites/slots) |
| `Microsoft.Web/sites/slots` | [2023-12-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/sites/slots) |
| `Microsoft.Web/sites/slots/basicPublishingCredentialsPolicies` | [2022-09-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/sites) |
| `Microsoft.Web/sites/slots/config` | [2022-09-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/sites) |
| `Microsoft.Web/sites/slots/hybridConnectionNamespaces/relays` | [2022-09-01](https://learn.microsoft.com/en-us/azure/templates/Microsoft.Web/2022-09-01/sites/slots/hybridConnectionNamespaces/relays) |
Expand Down Expand Up @@ -61,6 +61,7 @@ This module deploys a Web or Function App Deployment Slot.
| [`diagnosticSettings`](#parameter-diagnosticsettings) | array | The diagnostic settings of the service. |
| [`enabled`](#parameter-enabled) | bool | Setting this value to false disables the app (takes the app offline). |
| [`enableTelemetry`](#parameter-enabletelemetry) | bool | Enable/Disable usage telemetry for module. |
| [`functionAppConfig`](#parameter-functionappconfig) | object | The Function App config object. |
| [`hostNameSslStates`](#parameter-hostnamesslstates) | array | Hostname SSL states are used to manage the SSL bindings for app's hostnames. |
| [`httpsOnly`](#parameter-httpsonly) | bool | Configures a slot to accept only HTTPS requests. Issues redirect for HTTP requests. |
| [`hybridConnectionRelays`](#parameter-hybridconnectionrelays) | array | Names of hybrid connection relays to connect app with. |
Expand Down Expand Up @@ -387,6 +388,13 @@ Enable/Disable usage telemetry for module.
- Type: bool
- Default: `True`

### Parameter: `functionAppConfig`

The Function App config object.

- Required: No
- Type: object

### Parameter: `hostNameSslStates`

Hostname SSL states are used to manage the SSL bindings for app's hostnames.
Expand Down
Loading