如何使用Terraform创建Azure Synapse Pipeline?
能否用Terraform创建Azure Synapse Pipeline解答
可以实现,AzureRM Provider已原生支持azurerm_synapse_pipeline资源,以下是具体操作指南:
前置要求
- 已安装Terraform CLI 1.0及以上版本
- 已配置好Azure账号认证权限,权限需要包含Synapse工作区的编辑权限
- AzureRM Provider版本要求≥3.0
完整配置示例
terraform { required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } } } provider "azurerm" { features {} } # 引用已存在的Synapse工作区 data "azurerm_synapse_workspace" "target_ws" { name = "你的Synapse工作区名称" resource_group_name = "工作区所属资源组名称" } # 创建Synapse Pipeline resource "azurerm_synapse_pipeline" "demo_pipeline" { name = "demo-etl-pipeline" synapse_workspace_id = data.azurerm_synapse_workspace.target_ws.id # 可选:定义Pipeline运行参数 parameters = { "input_file_path" = "string" "output_table_name" = "string" } # 核心参数:Pipeline活动定义 activities_json = jsonencode([ { "name": "文件到表同步", "type": "Copy", "inputs": [], "outputs": [], "typeProperties": { "source": { "type": "BlobSource" }, "sink": { "type": "AzureSqlSink" } } } ]) # 可选:指定Pipeline在Synapse工作区的存放目录 folder = "业务数据同步Pipeline" }
核心参数说明
name:Synapse Pipeline的名称,要求在目标Synapse工作区内全局唯一synapse_workspace_id:目标Synapse工作区的资源ID,可通过资源引用或者硬编码填写parameters:可选参数,定义Pipeline运行时的入参,格式为键值对,值为参数类型activities_json:核心必填参数,Pipeline的活动逻辑定义,直接填入JSON格式的活动配置即可folder:可选参数,用于对Pipeline进行目录分类管理
部署操作步骤
编写完配置文件后,依次执行以下命令完成部署:
terraform init:初始化工作目录,下载对应版本的AzureRM Providerterraform plan:预览资源变更内容,确认配置无误后再执行后续操作terraform apply:提交配置,在目标Synapse工作区中创建对应的Pipeline
小提示:如果已有在Synapse Studio中调试完成的Pipeline,可以直接导出Pipeline的完整JSON,将活动部分的内容直接赋值给
activities_json参数即可,无需手动改写活动配置,大幅降低配置出错概率。
内容的提问来源于stack exchange,提问作者Karthik
相关产品推荐
相关产品推荐

