modules/container-app-job/main.tf (77 lines of code) (raw):

resource "azapi_resource" "job" { type = "Microsoft.App/jobs@2023-05-01" body = { properties = { environmentId = var.container_app_environment_id configuration = { replicaRetryLimit = var.replica_retry_limit replicaTimeout = var.replica_timeout registries = local.container_registies eventTriggerConfig = { parallelism = 1 replicaCompletionCount = 1 scale = { minExecutions = var.min_execution_count maxExecutions = var.max_execution_count pollingInterval = var.polling_interval_seconds rules = [local.keda_rule] } } secrets = local.secrets triggerType = "Event" } template = { containers = [local.container_job] } } } location = var.location name = local.job_name parent_id = var.resource_group_id tags = var.tags identity { type = "UserAssigned" identity_ids = [var.user_assigned_managed_identity_id] } } resource "azapi_resource" "placeholder" { count = var.placeholder_job_creation_enabled ? 1 : 0 type = "Microsoft.App/jobs@2023-05-01" body = { properties = { environmentId = var.container_app_environment_id configuration = { replicaRetryLimit = var.placeholder_replica_retry_limit replicaTimeout = var.placeholder_replica_timeout registries = local.container_registies manualTriggerConfig = { parallelism = 1 replicaCompletionCount = 1 } secrets = local.secrets triggerType = "Manual" } template = { containers = [local.container_placeholder] } } } location = var.location name = local.placeholder_job_name parent_id = var.resource_group_id tags = null identity { type = "UserAssigned" identity_ids = [var.user_assigned_managed_identity_id] } } resource "azapi_resource_action" "placeholder_trigger" { count = var.placeholder_job_creation_enabled ? 1 : 0 resource_id = azapi_resource.placeholder[0].id type = "Microsoft.App/jobs@2024-03-01" action = "start" body = {} lifecycle { replace_triggered_by = [azapi_resource.placeholder] } }