跳到主要内容
翻译页面

本页面由 AI 辅助从英文翻译而来。如两者存在差异,以英文版本为准。

exec

用于运行 StackQL 查询的命令,可以运行单条语句,也可以运行 StackQL 脚本(IQL 文件)中的一批语句。


语法​

stackql exec [query] [flags]


参数​

参数说明示例
query要执行的 StackQL 查询
或要执行的命令
"SELECT * FROM google.compute.instances
WHERE 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 退出。