Create Web App for Containers (Azure App Service).
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "centralus"
}
module "web_app_container" {
# Example source URL points to Terraform Enterprise Private Module Registry
source = "app.terraform.io/multicloud/web-app-container/azurerm"
version = "2.6.1"
name = "hello-world"
resource_group_name = azurerm_resource_group.example.name
container_type = "docker"
container_image = "robpco/palacearcade:latest"
}| Name | Type | Description |
|---|---|---|
name |
string |
The name of the web app. |
resource_group_name |
string |
The name of an existing resource group to use for the web app. |
plan |
object |
App Service plan properties. This should be plan object. |
container_type |
string |
Type of container. The options are: docker, compose and kube. Default: docker. |
container_config |
string |
Configuration for the container. This should be YAML. |
container_image |
string |
Container image name. Example: innovationnorway/go-hello-world:latest. |
port |
string |
The value of the expected container port number. |
enable_storage |
bool |
Mount an SMB share to the /home/ directory. Default: false. |
start_time_limit |
string |
Configure the amount of time (in seconds) the app service will wait before it restarts the container. Default: 230. |
command |
string |
A command to be run on the container. |
app_settings |
map |
Set app settings. These are avilable as environment variables at runtime. |
secure_app_settings |
map |
Set sensitive app settings. Uses Key Vault references as values for app settings. |
key_vault_id |
string |
The ID of an existing Key Vault. Required if secure_app_settings is set. |
https_only |
bool |
Redirect all traffic made to the web app using HTTP to HTTPS. Default: true. |
ftps_state |
string |
Set the FTPS state value the web app. The options are: AllAllowed, Disabled and FtpsOnly. Default: Disabled. |
ip_restrictions |
list |
A list of IP addresses in CIDR format specifying Access Restrictions. |
custom_hostnames |
list |
List of custom hostnames to use for the web app. |
identity |
object |
Managed service identity properties. This should be identity object. |
auth |
object |
Auth settings for the web app. This should be auth object. |
docker_registry_username |
string |
The container registry username. |
docker_registry_url |
string |
The container registry url. Default: https://index.docker.io |
docker_registry_password |
string |
The container registry password. |
storage_mounts |
list |
List of storage mounts for the web app. |
tags |
map |
A mapping of tags to assign to the web app. |
The plan object accepts the following keys:
| Name | Type | Description |
|---|---|---|
id |
string |
The ID of an existing app service plan. |
name |
string |
The name of a new app service plan. |
sku_size |
string |
The SKU size of a new app service plan. The options are: F1, D1, B1, B2, B3, S1, S2, S3, P1v2, P2v2, P3v2. Default: F1. |
The sku_size parameter can be one of the following:
| Size | Tier | Description |
|---|---|---|
F1, Free |
Free | Free |
D1, Shared |
Shared | Shared |
B1, B2, B3 |
Basic | Small, Medium, Large |
S1, S2, S3 |
Standard | Small, Medium, Large |
P1v2, P2v2, P3v2 |
PremiumV2 | Small, Medium, Large |
The identity object accepts the following keys:
| Name | Type | Description |
|---|---|---|
enabled |
bool |
Whether managed service identity is enabled for the web app. Default: true. |
ids |
list |
List of user managed identity IDs. |
The storage_mounts object accepts the following keys:
| Name | Type | Description |
|---|---|---|
name |
string |
The identifier of the storage mount. |
account_name |
string |
The name of the storage account. |
share_name |
string |
The name of the file share. |
container_name |
string |
The name of the blob container. Either this or share_name should be specified, but not both. |
mount_path |
string |
The path to mount the storage within the web app. |
The auth object accepts the following keys:
| Name | Type | Description |
|---|---|---|
enabled |
bool |
Whether authentication is enabled for the web app. |
token_store_enabled |
bool |
Whether token store is enabled for the web app. |
active_directory |
object |
Azure Active Directory auth settings. This should be active_directory object. |
The active_directory object accepts the following keys:
| Name | Type | Description |
|---|---|---|
client_id |
string |
The ID of the Azure AD application. |
client_secret |
string |
The password of the Azure AD Application. |