简体   繁体   中英

Update exsiting Azure App Service in Terraform

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?

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

    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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM