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

使用Terraform通过Azure流分析托管标识访问SQL数据库

使用Terraform为Azure流分析作业的SQL引用输入配置托管标识

问题背景

可以通过Terraform的azurerm_stream_analytics_job资源的identity块为流分析作业创建托管标识,也能借助托管标识实现数据库输出连接,但暂未找到直接通过azurerm_stream_analytics_reference_input_mssql资源配置托管标识来创建SQL引用输入的方法。

明确需求

需要完成以下两项配置:

  • 将SQL引用输入的身份验证模式设置为「托管标识」
  • 在连接属性中,选择使用流分析作业的系统分配托管标识完成身份验证

解决方案

目前azurerm_stream_analytics_reference_input_mssql资源暂不直接支持Terraform层面配置托管标识认证,可通过以下两种方式实现需求:

方式1:通过Terraform调用ARM模板部署

借助ARM模板配置支持托管标识的SQL引用输入,示例代码如下:

resource "azurerm_resource_template_deployment" "sql_ref_input" {
  name                = "sql-reference-input-deploy"
  resource_group_name = azurerm_resource_group.example.name

  template_content = <<JSON
{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.StreamAnalytics/streamingjobs/inputs",
      "apiVersion": "2020-03-01",
      "name": "${azurerm_stream_analytics_job.example.name}/SqlReferenceInput",
      "properties": {
        "type": "Reference",
        "datasource": {
          "type": "Microsoft.Sql/Server/Database",
          "properties": {
            "server": "你的SQL服务器名.database.windows.net",
            "database": "你的数据库名",
            "table": "你的引用表名",
            "authenticationMode": "Msi"
          }
        }
      }
    }
  ]
}
JSON
}

方式2:Terraflow配置托管标识后,用Azure CLI补充输入配置

  1. 先通过Terraform创建带系统分配托管标识的流分析作业:
resource "azurerm_stream_analytics_job" "example" {
  name                                     = "example-stream-job"
  resource_group_name                      = azurerm_resource_group.example.name
  location                                 = azurerm_resource_group.example.location
  compatibility_level                      = "1.2"
  data_locale                              = "en-US"
  events_late_arrival_max_delay_in_seconds = 60
  events_out_of_order_max_delay_in_seconds = 5
  events_out_of_order_policy               = "Adjust"

  identity {
    type = "SystemAssigned"
  }
}
  1. 执行Azure CLI命令添加托管标识认证的SQL引用输入:
az stream-analytics input create \
  --resource-group <你的资源组名> \
  --job-name <你的流分析作业名> \
  --name SqlReferenceInput \
  --type Reference \
  --datasource '{
    "type": "Microsoft.Sql/Server/Database",
    "properties": {
      "server": "你的SQL服务器名.database.windows.net",
      "database": "你的数据库名",
      "table": "你的引用表名",
      "authenticationMode": "Msi"
    }
  }'

注意事项

  • 需为流分析作业的系统分配托管标识授予SQL数据库的db_datareader角色权限,否则无法读取引用表数据
  • 若使用用户分配托管标识,需在ARM模板或CLI命令中额外指定userAssignedIdentityResourceId属性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 09:45:36