You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Terraform获取已部署Function App内的Function Url

Terraform 获取Function App内指定函数访问URL方案

以下是两种可直接落地的实现方式:

方案1:属性直接拼接(轻量无额外依赖)

Function的访问URL结构固定,可直接通过Function App的已有属性拼接得到:

  • 基础结构:https://<FunctionApp默认域名>/api/<函数名>
  • 若函数启用了函数级权限校验,尾部追加?code=<对应访问密钥>即可

Terraform代码示例:

# 已定义的FuncAppX资源
resource "azurerm_linux_function_app" "func_app_x" {
  name                = "FuncAppX"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  service_plan_id     = azurerm_service_plan.example.id
  # 其余配置省略
}

# 拼接得到函数访问URL,这里假设函数名为MyFunction
locals {
  my_function_url = "https://${azurerm_linux_function_app.func_app_x.default_hostname}/api/MyFunction"
  # 若需要带密钥,可结合function密钥资源拼接,例如:
  # my_function_url_with_key = "${local.my_function_url}?code=${azurerm_linux_function_app_function.my_func.function_keys["default"]}"
}

方案2:通过azurerm_function_app_function数据源/资源直接获取(结果更精准)

如果函数本身也是通过Terraform部署,或者已经提前部署到Azure中,可直接通过对应资源/数据源的invoke_url属性拿到完整访问地址:

# 若函数由Terraform部署
resource "azurerm_linux_function_app_function" "my_func" {
  name            = "MyFunction"
  function_app_id = azurerm_linux_function_app.func_app_x.id
  script_root_path = "./func_code"
  # 其余配置省略
}

# 直接取invoke_url属性即为完整访问地址
locals {
  my_function_final_url = azurerm_linux_function_app_function.my_func.invoke_url
}

# 将该值作为入参传递给另一个Function App的示例
resource "azurerm_linux_function_app" "another_func_app" {
  name                = "FuncAppY"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  service_plan_id     = azurerm_service_plan.example.id

  app_settings = {
    "FUNC_X_MYFUNCTION_URL" = local.my_function_final_url
  }
  # 其余配置省略
}

如果函数是提前部署好的,把上方的resource替换为data "azurerm_linux_function_app_function" "my_func",传入对应函数名和Function App ID即可查询到已有函数的访问地址。


内容的提问来源于stack exchange,提问作者Mukteswar Patnaik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:12:03