如何在ADF管道中获取Blob存储链接服务的服务端点URL?
在ADF管道中获取Blob存储链接服务的Service Endpoint URL
没办法通过你期望的@("LS_BlobStorage".serviceendpoint.url)这种直接表达式获取,但可以通过以下两种方式实现需求:
方法1:调用ADF管理API动态获取链接服务属性
适合链接服务配置可能变更的场景:
- 确保执行管道的身份(托管标识或服务主体)拥有数据工厂链接服务的读取权限。
- 在管道中添加一个
Web活动,配置如下:- 请求方法:
GET - 请求URL:
所有占位符可用动态内容替换,比如链接服务名称用https://management.azure.com/subscriptions/{你的订阅ID}/resourceGroups/{资源组名称}/providers/Microsoft.DataFactory/factories/{数据工厂名称}/linkedservices/{管道传入的链接服务名称参数}?api-version=2018-06-01@pipeline().parameters.LinkedServiceName。 - 身份验证:若使用托管标识,选择
Managed Service Identity,资源填写https://management.azure.com/;若使用服务主体,需先获取访问令牌,在请求头添加Authorization: Bearer {令牌}。
- 请求方法:
- 执行Web活动后,可通过以下表达式提取service endpoint URL:
@activity('Web活动的名称').output.properties.typeProperties.serviceEndpoint
方法2:预先配置为管道参数/变量
如果链接服务的Service Endpoint URL不会频繁变更,这种方式更简单高效:
- 在管道中添加一个参数(比如
BlobServiceEndpoint),将目标Blob存储的service endpoint URL直接填入参数值。 - 在管道需要使用该URL的地方,直接引用
@pipeline().parameters.BlobServiceEndpoint即可。 - 优点是无需调用API,性能更好;缺点是如果链接服务的endpoint更新,需要同步修改管道参数。
内容的提问来源于stack exchange,提问作者developer
相关产品推荐
相关产品推荐

