Azure容器实例中可通过POST REST API执行的命令有哪些
ACI REST API 可执行命令范围与无输出问题解决
可执行命令范围
Azure 容器实例的执行命令REST API没有预设的命令白名单限制,所有你构建的镜像内部存在的可执行程序、合法Shell指令都可以正常调用。你预装的azure cli、kubectl、terraform都属于可正常调用的范围。
调用其他命令无输出的根因与修复方案
你遇到的返回200但无输出的问题,属于请求格式错误导致的,不是命令不被允许,常见修复方式如下:
- 不要直接把要执行的指令填在
command字段,所有单次执行的命令都需要作为参数传给Shell,正确请求体格式示例如下:
{ "command": "/bin/bash", "args": ["-c", "你要执行的具体命令"], "terminalSize": {"rows": 20,"cols": 120} }
- 命令无输出可以添加输出重定向规则,把标准错误流合并到标准输出,避免错误信息被吞,示例:
{ "command": "/bin/bash", "args": ["-c", "az version 2>&1"], "terminalSize": {"rows": 20,"cols": 120} }
- 避免把
terminalSize的cols参数设置过小,过窄的终端宽度会导致输出被截断,出现无返回的假象。
合法调用示例
你可以直接调用以下预装工具的相关指令:
- 查看Azure CLI版本:
args字段填["-c", "az version --output table 2>&1"] - 查看Kubectl客户端版本:
args字段填["-c", "kubectl version --client 2>&1"] - 校验Terraform安装状态:
args字段填["-c", "terraform version 2>&1"]
内容的提问来源于stack exchange,提问作者Lokesh M
相关产品推荐
相关产品推荐

