翻译页面
本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。
exec
用于运行 StackQL 查询的命令,可以运行单条语句,也可以运行 StackQL 脚本(IQL 文件)中的一批语句。
语法
stackql exec [query] [flags]
参数
| 参数 | 说明 | 示例 |
|---|---|---|
query | 要执行的 StackQL 查询 或要执行的命令 | "SELECT * FROM google.compute.instancesWHERE project = 'myproject' AND zone = 'us-east1-a'"注意,查询必须用单引号或双引号括起来 |
标志
| 标志 | 说明 |
|---|---|
-o--output | 输出模式,有效值包括:table(默认)、json、jsonl(换行分隔的 JSON,也接受别名 ndjson)、csv、text 和 otel(OpenTelemetry 日志记录,参阅输出模式),示例:--output jsonl |
-i--infile | 需要时从指定文件运行查询,指定后将忽略作为参数提供的任何查询,示例:--infile myquery.iql |
-q--iqldata | 通过 json 或 jsonnet 文件为命令提供源数据,示例:--iqldata vars.jsonnet |
--dryrun | 试运行标志;只运行预处理器并返回输出 |
--var | 外部变量(可以是环境变量或机密),由通过 --iqldata 标志指定的 jsonnet 文件读取,示例 --var region=${AWS_REGION} |
-f--outfile | 需要时用于输出结果的文件(默认行为是只将结果输出到控制台),示例 --outfile myoutput.csv |
-H--help | 打印帮助信息 |
-v--verbose | 以详细模式运行查询,并将额外输出发送到 stdout,如果选择了 -f 选项,这些额外的日志信息将与查询结果一起写入输出文件 |
更多选项参阅全局标志
示例
以表格格式将查询结果输出到控制台:
stackql exec "SHOW services IN google"
以 json 格式将查询结果输出到控制台:
stackql exec "SHOW services IN google" -o json
以 json 格式将查询结果输出到文件:
stackql exec "SHOW services IN google" -o json -f services.json
从输入文件(IQL 文件)执行查询,并以 json 格式将结果输出到文件:
stackql exec -i getservices.iql -o json -f services.json
退出状态
输入处理完成后,exec 以状态 0 退出;单条语句的错误会写入控制台,因此脚本应检查输出。从 v1.0 起,当 SET 或 UNSET 配置语句失败时,当访问管理已启用且某条语句被拒绝时,或者当预览版 IaC 运行报告某个资源失败时,它以状态 1 退出。