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

Terraform创建Azure Synapse Azure Function链接服务时函数密钥缺失报错

解决Azure Synapse链接服务流水线报错「Azure function activity missing function key」

问题根源

你当前配置的authentication为Anonymous,但同时传入了functionKey,这会导致Synapse链接服务无法正确存储密钥信息,进而流水线中的Azure Function Activity找不到所需密钥。匿名认证模式下Synapse不会使用传入的密钥,而流水线活动需要密钥调用函数,这是核心矛盾点。

修复方案

1. 修改认证方式为FunctionKey

将type_properties_json中的authentication字段从Anonymous改为FunctionKey,确保Synapse链接服务正确存储密钥并在流水线中正常调用。

2. 验证密钥数据源

确认data.azurerm_function_app_host_keys.FunctionName.default_function_key能正确获取Function App的默认函数密钥,该数据源是获取函数密钥的标准方式。

修改后的完整代码

resource "azurerm_synapse_linked_service" "FunctionName" {
  name                 = "FunctionName"
  synapse_workspace_id = azurerm_synapse_workspace.synapse.id
  type                 = "AzureFunction"
  type_properties_json = <<JSON
    {
      "functionAppUrl": "https://${data.azurerm_function_app.FunctionName.default_hostname}",
      "authentication": "FunctionKey",
      "functionKey": "${data.azurerm_function_app_host_keys.FunctionName.default_function_key}"
    }
  JSON
  depends_on = [
    azurerm_synapse_firewall_rule.allowAll,
    data.azurerm_function_app.FunctionName,
    data.azurerm_function_app_host_keys.FunctionName
  ]
}

额外说明

你提到azurerm_function_app没有connectionString导出项,这是正常情况——Azure Function链接服务并不依赖connectionString,仅需functionAppUrl和对应认证方式的密钥即可,该点不影响当前问题的解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 00:31:13