skip to Main Content

I would like to update my exsiting Azure App Service in Terraform by adding a Backup to this App Service.
For now it looks like this:

data "azurerm_app_service_plan" "example" {
  name                = "MyUniqueServicePlan"
  resource_group_name = "example-resources"
}


resource "azurerm_app_service" "example" {
  name                = "MyUniqueWebAppName"
  location            = "West Europe"
  resource_group_name = "example-resources"
  app_service_plan_id = data.azurerm_app_service_plan.example.id


  connection_string {
    name  = "myConectionString"
    type  = "SQLServer"
    value = "Server=tcp:mysqlservername123.database.windows.net,1433;Initial Catalog=MyDatabaseName;Persist Security Info=False;User ID=xxx;Password=xxxxxx;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
  }
  backup {
    name                = "MyBackupName"
    enabled             = true
    storage_account_url = "https://storageaccountnameqwetih.blob.core.windows.net/mycontainer?sp=r&st=2022-08-31T09:49:17Z&se=2022-08-31T17:49:17Z&spr=https&sv=2021-06-08&sr=c&sig=2JwQ%xx%2B%2xxB5xxxxFZxxVyAadjxxV8%3D"
    schedule {
      frequency_interval       = 30
      frequency_unit           = "Day"
      keep_at_least_one_backup = true
      retention_period_in_days = 10
      start_time               = "2022-08-31T07:11:56.52Z"
    }
  }
}

But when I run it i got a error A resource with the ID ........ /MyUniqueWebAppName" already exists - to be managed via Terraform this resource needs to be imported into the State.
How in terraform can I point to an existing Azure APP Service and add a backup with the same schedule as I did in my template?

2

Answers


  1. Before you can modify your existing resources with TF, you must import into the terraform state. For this you use import command.

    Login or Signup to reply.
  2.     data "azurerm_resource_group" "example" {
             name = "<give rg name existing one>"
    }
    
        data "azurerm_app_service_plan" "example" {
          name                = "MyUniqueServicePlan"
          resource_group_name = data.azurerm_resource_group.example.name
        }
        
        
       data "azurerm_app_service" "example" {
          name                = "MyUniqueWebAppName"
          location            = data.azurerm_resource_group.example.location
          resource_group_name = data.azurerm_resource_group.example.name
          app_service_plan_id = data.azurerm_app_service_plan.example.id
        
        
          connection_string {
            name  = "myConectionString"
            type  = "SQLServer"
            value = "Server=tcp:mysqlservername123.database.windows.net,1433;Initial Catalog=MyDatabaseName;Persist Security Info=False;User ID=xxx;Password=xxxxxx;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
          }
          backup {
            name                = "MyBackupName"
            enabled             = true
            storage_account_url = "https://storageaccountnameqwetih.blob.core.windows.net/mycontainer?sp=r&st=2022-08-31T09:49:17Z&se=2022-08-31T17:49:17Z&spr=https&sv=2021-06-08&sr=c&sig=2JwQ%xx%2B%2xxB5xxxxFZxxVyAadjxxV8%3D"
            schedule {
              frequency_interval       = 30
              frequency_unit           = "Day"
              keep_at_least_one_backup = true
              retention_period_in_days = 10
              start_time               = "2022-08-31T07:11:56.52Z"
            }
          }
        }
    

    No need to use import command , use this code for your reference
    just give rg name existing one in resources group block

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search