==================================================================================== === Импортировать ресурсы Azure в Terraform (обязательно проверять текстовые данные, типа Resource ID, полученные из Azure. "serverFarms" и "serverfarms" для Terraform не одно и то же): ==================================================================================== # Resource group: terraform import azurerm_resource_group.$YOUR_RG_NAME /subscriptions/$YOUR_SUBSCRIPTION_ID/resourceGroups/$YOUR_RG_NAME Webapp: terraform import azurerm_app_service.$YOUR_RG_NAME-webapp-win1 /subscriptions/$YOUR_SUBSCRIPTION_ID/resourceGroups/$YOUR_RG_NAME/providers/Microsoft.Web/sites/$YOUR_RG_NAME-webapp-win1 App Service Plan: terraform import azurerm_app_service_plan.$YOUR_RG_NAME-asp-win1 /subscriptions/$YOUR_SUBSCRIPTION_ID/resourceGroups/$YOUR_RG_NAME/providers/Microsoft.Web/serverfarms/$YOUR_RG_NAME-asp-win1 ==================================================================================== === Дать доступ к ресурсу в Azure из других ресурсов Azure: ==================================================================================== # == В настройках файерволла нужно указывать "start_ip_address" и "end_ip_address" как 0.0.0.0. ==================================================================================== === Как описать в output ресурсы, созданные через "count": ==================================================================================== # resource "azurerm_app_service_plan" "asp-win3" { count = 1 name = "${var.environment}-asp-win${count.index}" } output "app_service_plan_id" { value = ["${azurerm_app_service_plan.asp-win.*}"] } ==================================================================================== === Обновить конкретный модуль (например, если нужно обновить содержимое вайтлиста sql-сервера в конкретном *.tf): ==================================================================================== # terraform plan --target=module.mssqlserver terraform apply --target=module.mssqlserver == После этого можно запускать "terraform plan && terraform apply" снова. ==================================================================================== === Собрать eventhub-compatible connection string для Azure IotHub: ==================================================================================== # == Строка имеет вид: Endpoint=sb://device.servicebus.windows.net/;SharedAccessKeyName=iothubowner;SharedAccessKey=dfgrt45іdgfdfzD3=;EntityPath=azure-iothub-name output "iothub1_event_hub_endpoint" { value = join("", ["Endpoint=",azurerm_iothub.iothub1.event_hub_events_endpoint, ";SharedAccessKeyName=", data.azurerm_iothub_shared_access_policy.iothub1.name, ";SharedAccessKey=", data.azurerm_iothub_shared_access_policy.iothub1.primary_key, ";EntityPath=", data.azurerm_iothub_shared_access_policy.iothub1.iothub_name]) } ==================================================================================== === Удалить из стейта данные конкретного модуля: ==================================================================================== # terraform state rm 'module.storage_account'