使用AZ CLI查询ADF管道运行状态,如何仅获取名称、状态及时间?
解决AZ CLI查询ADF管道运行状态的字段筛选与格式化问题
你之前用--query参数无结果的原因是:ADF管道运行查询的返回数据中,所有运行记录都嵌套在value数组内,直接指定字段名无法定位到目标数据。以下是符合你需求的解决方法:
完整命令(输出指定格式)
az datafactory pipeline-run query-by-factory \ --factory-name "adfname" \ --filters operand="Status" operator="Equals" values="Failed" \ --last-updated-after "2023-01-17T00:00:00.3345758Z" \ --last-updated-before "2023-01-17T11:59:59.3686473Z" \ --resource-group "rgname" \ --query "value[].{PipelineName:pipelineName, Status:status, RunTime:lastUpdated}" \ --output tsv | awk '{split($3, d, "-"); printf "%-20s -- %-10s -- %s/%s/%s %s\n", $1, $2, d[3], d[2], substr(d[1],3,2), substr($4,0,8)}'
各部分说明
--query参数调整:
通过value[]遍历所有运行记录,提取你需要的三个字段:pipelineName(管道名)、status(运行状态)、lastUpdated(最后更新时间,若需运行开始时间可替换为runStart),并给字段定义别名方便后续处理。--output tsv:
将查询结果以制表符分隔格式输出,避免JSON结构干扰,方便后续格式化处理。awk命令格式化:
拆分ISO格式的日期字符串,将YYYY-MM-DD转换为DD/MM/YY格式,同时截取时间部分,通过printf实现字段对齐,最终输出你要求的格式。
可选:简化表格输出
如果不需要自定义分隔格式,仅需清晰展示字段,可改用表格输出:
az datafactory pipeline-run query-by-factory \ --factory-name "adfname" \ --filters operand="Status" operator="Equals" values="Failed" \ --last-updated-after "2023-01-17T00:00:00.3345758Z" \ --last-updated-before "2023-01-17T11:59:59.3686473Z" \ --resource-group "rgname" \ --query "value[].{PipelineName:pipelineName, Status:status, RunTime:lastUpdated}" \ --output table
内容的提问来源于stack exchange,提问作者Meetkumar Patel
相关产品推荐
相关产品推荐

