azurerm_function_app
Manages a Function App.
Example Usage (with App Service Plan)
resource "azurerm_resource_group" "test" {
name = "azure-functions-test-rg"
location = "westus2"
}
resource "azurerm_storage_account" "test" {
name = "functionsapptestsa"
resource_group_name = "${azurerm_resource_group.test.name}"
location = "${azurerm_resource_group.test.location}"
account_tier = "Standard"
account_replication_type = "LRS"
}
resource "azurerm_app_service_plan" "test" {
name = "azure-functions-test-service-plan"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
sku {
tier = "Standard"
size = "S1"
}
}
resource "azurerm_function_app" "test" {
name = "test-azure-functions"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
app_service_plan_id = "${azurerm_app_service_plan.test.id}"
storage_connection_string = "${azurerm_storage_account.test.primary_connection_string}"
}
Example Usage (in a Consumption Plan)
resource "azurerm_resource_group" "test" {
name = "azure-functions-cptest-rg"
location = "westus2"
}
resource "azurerm_storage_account" "test" {
name = "functionsapptestsa"
resource_group_name = "${azurerm_resource_group.test.name}"
location = "${azurerm_resource_group.test.location}"
account_tier = "Standard"
account_replication_type = "LRS"
}
resource "azurerm_app_service_plan" "test" {
name = "azure-functions-test-service-plan"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
kind = "FunctionApp"
sku {
tier = "Dynamic"
size = "Y1"
}
}
resource "azurerm_function_app" "test" {
name = "test-azure-functions"
location = "${azurerm_resource_group.test.location}"
resource_group_name = "${azurerm_resource_group.test.name}"
app_service_plan_id = "${azurerm_app_service_plan.test.id}"
storage_connection_string = "${azurerm_storage_account.test.primary_connection_string}"
}
Argument Reference
The following arguments are supported:
-
name- (Required) Specifies the name of the Function App. Changing this forces a new resource to be created. -
resource_group_name- (Required) The name of the resource group in which to create the Function App. -
location- (Required) Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created. -
app_service_plan_id- (Required) The ID of the App Service Plan within which to create this Function App. Changing this forces a new resource to be created. -
storage_connection_string- (Required) The connection string of the backend storage account which will be used by this Function App (such as the dashboard, logs). -
app_settings- (Optional) A key-value pair of App Settings. -
connection_string- (Optional) Anconnection_stringblock as defined below. -
client_affinity_enabled- (Optional) Should the Function App send session affinity cookies, which route client requests in the same session to the same instance? -
enabled- (Optional) Is the Function App enabled? -
https_only- (Optional) Can the Function App only be accessed via HTTPS? Defaults tofalse. -
version- (Optional) The runtime version associated with the Function App. Possible values are~1andbeta. Defaults to~1. -
site_config- (Optional) Asite_configobject as defined below. -
identity- (Optional) Anidentityblock as defined below. -
tags- (Optional) A mapping of tags to assign to the resource.
connection_string supports the following:
-
name- (Required) The name of the Connection String. -
type- (Required) The type of the Connection String. Possible values areAPIHub,Custom,DocDb,EventHub,MySQL,NotificationHub,PostgreSQL,RedisCache,ServiceBus,SQLAzureandSQLServer. -
value- (Required) The value for the Connection String.
site_config supports the following:
-
always_on- (Optional) Should the Function App be loaded at all times? Defaults tofalse. -
use_32_bit_worker_process- (Optional) Should the Function App run in 32 bit mode, rather than 64 bit mode? Defaults totrue.
Note: when using an App Service Plan in the
FreeorSharedTiersuse_32_bit_worker_processmust be set totrue.
-
websockets_enabled- (Optional) Should WebSockets be enabled?
identity supports the following:
-
type- (Required) Specifies the identity type of the App Service. At this time the only allowed value isSystemAssigned.
Attributes Reference
The following attributes are exported:
-
id- The ID of the Function App -
default_hostname- The default hostname associated with the Function App - such asmysite.azurewebsites.net -
outbound_ip_addresses- A comma separated list of outbound IP addresses - such as52.23.25.3,52.143.43.12 -
identity- Anidentityblock as defined below, which contains the Managed Service Identity information for this App Service.
identity exports the following:
-
principal_id- The Principal ID for the Service Principal associated with the Managed Service Identity of this App Service. -
tenant_id- The Tenant ID for the Service Principal associated with the Managed Service Identity of this App Service.
Import
Function Apps can be imported using the resource id, e.g.
terraform import azurerm_function_app.functionapp1 /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Web/sites/functionapp1
© 2018 HashiCorpLicensed under the MPL 2.0 License.
https://www.terraform.io/docs/providers/azurerm/r/function_app.html