如何从Azure Data Factory在运行的Azure Container Instance中执行命令并获取输出?
问题解决方法
为什么错误命令仍返回200状态码
这类执行命令的POST API,HTTP状态码仅代表请求是否被服务器成功接收并处理,和命令本身的执行结果无关。哪怕输入错误的bash命令,只要服务器正常接收到请求并完成了命令执行流程(哪怕执行失败),就会返回200。命令的实际执行状态、输出内容,都会放在响应体里,需要从那里判断和提取。
如何获取ls命令的执行输出
- 查看响应体结构:从Web Activity的输出里,找到存储命令执行结果的字段(通常会是
stdout、output这类命名的字段)。 - 提取输出内容:在后续的数据处理环节(比如Set Variable活动),用表达式提取对应字段的值。假设Web Activity的名称是"Execute Bash Command",且响应体里的
stdout字段存着ls的输出,就用表达式:@activity('Execute Bash Command').output.stdout - 验证执行状态:如果需要确认命令是否执行成功,要从响应体里找
exitCode这类字段(0代表执行成功,非0代表失败),不要依赖HTTP状态码判断。
内容的提问来源于stack exchange,提问作者Derik Roby
相关产品推荐
相关产品推荐

