如何使用 Terraform 输出 Azure 应用服务的 URL?

Raf*_*Biz 1 azure terraform

我已经使用 Terraform 在 Azure 应用服务上部署了一个 NodeJS 应用程序。

现在我想输出此应用程序服务的 URL。但我在数据源中找不到这个属性。我该怎么做?例如:

output "url" {
    value = azurerm_app_service.example.url
}
Run Code Online (Sandbox Code Playgroud)

这是更新后的main.tf文件:

terraform {
  required_version = ">= 1.1.0"
  required_providers {
    azurerm = {
      source  = "hashicorp/azurerm"
      version = "~> 2.91"
    }
  }
}

provider "azurerm" {
  features {}
}

variable "location" {
  type    = string
  default = "brazilsouth"
}

resource "azurerm_resource_group" "resource_group_demo" {
  name     = "terraform-webapp-demo"
  location = var.location
}

resource "azurerm_app_service_plan" "service_plan_demo" {
  name                = "webapp-demo"
  location            = azurerm_resource_group.resource_group_demo.location
  resource_group_name = azurerm_resource_group.resource_group_demo.name
  kind                = "Linux"
  reserved            = true

  sku {
    tier = "Standard"
    size = "S1"
  }
}

resource "azurerm_app_service" "example" {
  name                = "rbbnodejshelloworld"
  location            = azurerm_resource_group.resource_group_demo.location
  resource_group_name = azurerm_resource_group.resource_group_demo.name
  app_service_plan_id = azurerm_app_service_plan.service_plan_demo.id

  site_config {
    always_on        = false
    linux_fx_version = "node|14-lts"
  }

  app_settings = {
    "SOME_KEY" = "some-value"
  }
  
  https_only = true
}
Run Code Online (Sandbox Code Playgroud)

谢谢你!

Erv*_*gyi 6

没有这样的属性,可能是因为应用程序的默认 URL 将具有以下格式:<app-name>.azurewebsites.net。您可以创建一个输出,您可以使用字符串插值自行构建 URL:

output "url" {
    value = "${azurerm_app_service.example.name}.azurewebsites.net"
}
Run Code Online (Sandbox Code Playgroud)