You need to enable JavaScript to run this app. 如何在Azure Synapse Notebook和Pipeline中读取Azure资源标签环境参数
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Synapse Notebook和Pipeline中读取Azure资源标签环境参数

完全可以实现,以下分别是Synapse Pipelines和Notebooks的具体实现思路:

1. Synapse 管道(Pipelines)读取资源标签的方法

  • 首先配置权限:给Synapse工作区的系统分配托管身份(MSI)授予对应资源/资源组的标签读取者权限,确保管道有权限调用Azure资源管理接口拉取标签。
  • 调用Azure资源管理器(ARM)接口获取标签:
    在管道中新增Web活动,按以下规则配置:
    • 请求方法选GET,URL填入对应资源的ARM查询地址,示例查询Synapse工作区本身标签的地址为:
      https://management.azure.com/subscriptions/{你的订阅ID}/resourceGroups/{你的资源组名称}/providers/Microsoft.Synapse/workspaces/{你的Synapse工作区名称}?api-version=2021-06-01
    • 身份验证选择系统分配的托管身份,资源字段固定填https://management.azure.com/
  • 活动运行后,返回结果的tags字段即为该资源的所有标签,后续活动可以直接用@activity('你的Web活动名称').output.tags.标签Key的格式引用对应标签值,实现参数配置。
  • 若需要读取其他Azure资源的标签,仅需修改Web活动的URL为对应资源的ARM查询地址即可。

2. Synapse Notebooks 读取资源标签的方法

  • 提前配置权限:确保Notebook运行使用的身份(工作区托管身份或当前登录的Azure AD账号)有对应资源的标签读取权限。
  • 以PySpark内核为例,可以通过Azure官方管理库直接拉取标签,示例代码如下:
from azure.identity import DefaultAzureCredential
from azure.mgmt.resource import ResourceManagementClient

# 初始化凭证,默认会自动调用Synapse工作区的系统托管身份鉴权
credential = DefaultAzureCredential()
subscription_id = "替换为你的订阅ID"
resource_client = ResourceManagementClient(credential, subscription_id)

# 拉取指定Synapse工作区的标签
resource = resource_client.resources.get(
    resource_group_name="替换为你的资源组名称",
    resource_provider_namespace="Microsoft.Synapse",
    parent_resource_path="",
    resource_type="workspaces",
    resource_name="替换为你的Synapse工作区名称",
    api_version="2021-06-01"
)
tags = resource.tags
# 直接读取对应标签的值,比如环境标签的Key为env时:
env = tags.get("env")
  • 拿到标签值后可以直接赋值给连接串、存储路径、接口参数等变量,实现多环境下代码无修改复用。

建议所有环境的资源标签使用统一的Key命名规则(比如统一用env表示环境类型,region表示部署区域),避免不同环境标签Key不一致导致代码运行异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 01:57:02