The following input variables are required:
Description: The login server for the Azure Container Registry.
Type: string
Description: The App Insights connection string.
Type: string
Description: The amount of disk space to use for app service logs.
Type: number
Description: The retention period for logs in days.
Type: number
Description: The ID of the AppServicePlan.
Type: string
Description: Name of the Function App
Type: string
Description: Name of the docker image
Type: any
Description: Tag of the docker image
Type: any
Description: The location/region where the Function App is created.
Type: string
Description: id of the log analytics workspace to send resource logging to via diagnostic settings
Type: string
Description: Controls what logs will be enabled for the function app
Type: list(string)
Description: Controls what metrics will be enabled for the function app
Type: list(string)
Description: Consolidated properties for the Function App Private Endpoint.
Type:
object({
private_dns_zone_ids = optional(list(string), [])
private_endpoint_enabled = optional(bool, false)
private_endpoint_subnet_id = optional(string, "")
private_endpoint_resource_group_name = optional(string, "")
private_service_connection_is_manual = optional(bool, false)
})Description: The name of the resource group in which to create the Function App. Changing this forces a new resource to be created.
Type: string
Description: The name of the Storage Account.
Type: string
Description: Should the Windows Function App use a 32-bit worker process. Defaults to true
Type: bool
The following input variables are optional (have default values):
Description: The Managed Identity Id for the Azure Container Registry.
Type: any
Default: null
Description: The ID of the Action Group to use for alerts.
Type: string
Default: null
Description: The threshold for 4xx errors to trigger the alert.
Type: number
Default: 10
Description: The threshold for 4xx errors to trigger the alert.
Type: number
Default: 10
Description: Enable or disable automatic mitigation of the alert when the issue is resolved.
Type: bool
Default: true
Description: The period of time that is used to monitor alert activity e.g. PT1M, PT5M, PT15M, PT30M, PT1H, PT6H, PT12H. The interval between checks is adjusted accordingly.
Type: string
Default: "PT5M"
Description: Should the Function App be always on. Override standard default.
Type: bool
Default: true
Description: Map of values for the app settings
Type: map
Default: {}
Description: The list of User Assigned Identity IDs to assign to the Function App.
Type: list(string)
Default: []
Description: Should connections for Azure Container Registry use Managed Identity.
Type: bool
Default: false
Description: n/a
Type: list(string)
Default:
[
""
]Description: Whether monitoring and alerting is enabled for the App Service Plan.
Type: bool
Default: false
Description: n/a
Type: list(string)
Default: []
Description: Enable basic authentication for FTP. Defaults to false.
Type: bool
Default: false
Description: Enable FTPS enforcement for enhanced security. Allowed values = AllAllowed (i.e. FTP & FTPS), FtpsOnly and Disabled (i.e. no FTP/FTPS access). Defaults to AllAllowed.
Type: string
Default: "Disabled"
Description: function app slots
Type:
list(object({
function_app_slots_name = optional(string, "staging")
function_app_slot_enabled = optional(bool, false)
}))Default: []
Description: The time in minutes a node can be unhealthy before being removed from the load balancer.
Type: number
Default: null
Description: The path to be checked for this function app health.
Type: string
Default: null
Description: Specifies whether or not the HTTP2 protocol should be enabled. Defaults to false
Type: bool
Default: false
Description: The HTTP version to use for the function app. Override standard default.
Type: string
Default: "2.0"
Description: Can the Function App only be accessed via HTTPS? Override standard default.
Type: bool
Default: true
Description: Default action for FW rules
Type: string
Default: "Deny"
Description: n/a
Type:
map(object({
headers = optional(list(object({
x_azure_fdid = optional(list(string))
x_fd_health_probe = optional(list(string))
x_forwarded_for = optional(list(string))
x_forwarded_host = optional(list(string))
})), [])
ip_address = optional(string)
name = optional(string)
priority = optional(number)
action = optional(string, "Deny")
service_tag = optional(string)
virtual_network_subnet_id = optional(string)
}))Default: {}
Description: n/a
Type: string
Default: "1.2"
Description: Should the Function App be accessible from the public network. Override standard default.
Type: bool
Default: false
Description: Map of RBAC role assignments by region
Type:
list(object({
role_definition_name = string
scope = string
}))Default: []
Description: The name of the resource group in which to create the Monitoring resources for the App Service Plan. Changing this forces a new resource to be created.
Type: string
Default: null
Description: Severity of the alert. 0 = Critical, 1 = Error, 2 = Warning, 3 = Informational, 4 = Verbose. Default is 3.
Type: number
Default: 3
Description: The Storage Account Primary Access Key.
Type: string
Default: null
Description: Should the Storage Account use a Managed Identity. Defaults to false.
Type: bool
Default: false
Description: Resource tags to be applied throughout the deployment.
Type: map(string)
Default: {}
Description: The ID of the subnet to integrate the Function App with.
Type: string
Default: null
Description: Enable basic authentication for WebDeploy. Override standard default.
Type: bool
Default: false
The following Modules are called:
Source: ../diagnostic-settings
Version:
Source: ../function-app-slots
Version:
Source: ../private-endpoint
Version:
Source: ../rbac-assignment
Version:
The following outputs are exported:
Description: The function app endpoint name.
Description: The Principal ID of the System Assigned Managed Service Identity that is configured on this Linux Function App.
Description: The id of the Linux Function App.
Description: The name of the Linux Function App.
The following resources are used by this module:
- azuread_group_member.function_app (resource)
- azurerm_linux_function_app.function_app (resource)
- azurerm_monitor_metric_alert.function_4xx (resource)
- azurerm_monitor_metric_alert.function_5xx (resource)