CloudQuery plugin install 命令全解析:从配置文件批量安装源、目标与转换器插件
发布时间:2026/10/8 1:46:13 作者:尧图编辑部 阅读量:1,286

数据集成数据工程数据分析【免费下载链接】cloudqueryData pipelines for cloud config and security data. Build cloud asset inventory, CSPM, FinOps, and vulnerability management solutions. Extract from AWS, Azure, GCP, and 70 cloud and SaaS sources.项目地址https://gitcode.com/gh_mirrors/cl/cloudquery点击查看免费下载cloudquery plugin install是 CloudQuery CLI 提供的插件预安装命令它不执行数据同步而是根据你在 YAML 配置文件中声明的插件清单提前把对应版本的插件二进制下载到本地。本指南以官方命令参考 cli/docs/reference/cloudquery_plugin_install.md 为主线结合仓库源码逐层拆解其参数、执行流程、配置解析规则与常见报错处理读完即可熟练用它在同步前完成插件环境的搭建。命令定位安装插件而不是运行同步CloudQuery 的数据管道由三类插件协作完成source源插件负责从 AWS、Azure、GCP 等云端拉取数据destination目标插件负责把数据写入 PostgreSQL、SQLite、S3 等存储transformer转换器插件负责对数据流做变换。这些插件以独立进程形式运行需要在执行cloudquery sync之前被下载到本地。cloudquery plugin install解决的就是这个前置准备环节它读取你的配置文件中声明的插件名称、版本与注册表信息把插件镜像下载到本地目录但不会真正开始拉取或写入数据。这在 CI/CD 流水线、容器镜像预热、离线环境准备等场景下尤其有用——你可以把下载插件和运行同步拆成两个独立阶段让同步阶段无需联网或缩短启动时间。从命令注册代码可见它挂在plugin子命令组下cli/cmd/root.go#L168-L195同时 CLI 也保留了旧版顶层命令cloudquery installcli/cmd/root.go#L216其行为与cloudquery plugin install完全一致只是被标记为 deprecated官方提示统一改用cloudquery plugin install。语法与基本用法命令的完整语法为cloudquery plugin install [files or directories] [flags]它至少需要一个参数源码中通过cobra.MinimumNArgs(1)强制校验见 cli/cmd/install.go#L30参数可以是配置文件路径或目录路径也支持同时混用多个# 安装指定目录中所有 .yml/.yaml 配置声明的插件 cloudquery plugin install ./directory # 安装一个目录和多个配置文件声明的插件 cloudquery plugin install ./directory ./aws.yml ./pg.yml当参数是目录时CLI 会遍历目录下所有以.yml或.yaml结尾、且不以.开头的文件并逐个解析见 cli/internal/specs/v0/spec_reader.go#L193-L207。参数中同时出现目录和文件时会被统一收集进 paths 列表后按顺序加载cli/internal/specs/v0/spec_reader.go#L365-L389。执行时 CLI 会先打印一行Loading spec(s) from 参数列表然后进入解析流程cli/cmd/install.go#L46-L47。命令行选项命令自身选项选项说明-h, --help显示install命令的帮助信息从父命令继承的全局选项以下选项对所有 cloudquery 命令通用定义于根命令的持久化参数中cli/cmd/root.go#L139-L165选项默认值说明--cq-dir string.cq存放 cloudquery 文件的目录例如下载后的插件二进制。传给managedplugin.WithDirectory决定插件落地位置cli/cmd/install.go#L77-L79--invocation-id uuid每次运行生成新随机 UUID配合 OpenTelemetry 集成做链路追踪与日志关联时使用可跨服务关联日志与 trace--log-consolefalse启用控制台日志输出启用时同时会关闭下载进度条WithNoProgress见 cli/cmd/install.go#L74-L76--log-file-name stringcloudquery.log日志文件名--log-file-overwritefalse每次运行覆盖日志文件而非追加。适用于文件系统不支持追加写的场景如 FUSE 挂载的云存储--log-format stringtext日志格式可选json或textcli/cmd/root.go#L45--log-level stringinfo日志级别可选trace、debug、info、warn、error--no-log-filefalse完全禁用文件日志--telemetry-level stringall遥测级别可选none、errors、stats、all两个与遥测相关的细节值得注意旧环境变量CQ_NO_TELEMETRY仍被兼容但官方推荐改用CQ_TELEMETRY_LEVELnone而--invocation-id每次运行默认为全新随机 UUID便于在分布式日志系统中区分不同批次操作cli/cmd/root.go#L53-L70、cli/cmd/root.go#L164-L165。配置文件中如何声明需要安装的插件plugin install的输入是标准的 CloudQuery 配置spec文件。配置文件是一个或多个以---分隔的 YAML 文档每个文档包含kindsource/destination/transformer和spec两部分。仓库测试数据给出了一个典型的多源多目标示例cli/cmd/testdata/multiple-sources.ymlkind: source spec: name: test path: cloudquery/test destinations: [test] version: v4.5.1 # latest version of source test plugin tables: [*] --- kind: source spec: name: test2 path: cloudquery/test destinations: [test] version: v4.5.1 # latest version of source test plugin tables: [*] --- kind: destination spec: name: test path: cloudquery/test version: v2.5.1 # latest version of destination test plugin其中与安装哪个插件直接相关的字段定义在Metadata结构体中cli/internal/specs/v0/metadata.go#L14-L37字段是否必填说明name必填插件名称配置中全局唯一重名会导致解析失败duplicate source nameversion视注册表而定插件版本必须以v开头如v4.5.1。仅当注册表为cloudquery或github时需要path必填插件在注册表中的规范路径cloudquery注册表下形如team/name如cloudquery/awslocal下为本地二进制路径grpc下为host:portgithub下为org/reporegistry可选注册表类型默认cloudquery。可取值见下文docker_registry_auth_token可选访问私有 Docker 注册表时的认证令牌最终传给managedplugin.Config.DockerAuthcli/cmd/install.go#L92一个常见的易错点如果你省略path且插件是官方插件如aws、postgresql等校验器会提示try setting path to cloudquery/ cli/internal/specs/v0/metadata.go#L62-L80。执行流程从配置文件到本地插件cloudquery plugin install的完整调用链写在 cli/cmd/install.go#L39-L133可以拆成五个阶段解析配置调用specs.NewRelaxedSpecReader(args)读取所有文件/目录。这里使用的是宽松模式校验——不要求每个 source 都声明 destinationcli/internal/specs/v0/spec_reader.go#L338-L349因为 install 阶段关心的是插件本身而非数据流完整性。解析过程中的变量展开读取每个 YAML 文档时CLI 会依次做注释剥离、${file:...}文件变量、${time:...}时间变量、${ENV_VAR}环境变量展开cli/internal/specs/v0/spec_reader.go#L99-L127因此你可以在配置中动态引用密钥文件或环境变量。鉴权准备auth.GetAuthTokenIfNeeded读取登录令牌auth.GetTeamForToken获取当前团队名。下载私有插件时令牌与团队名会随managedplugin.Option传给插件客户端cli/cmd/install.go#L56-L73。版本检查specs.WarnOnOutdatedVersions会对照插件中心检查声明的版本是否为过期版本并在日志中给出警告cli/cmd/install.go#L65-L66。创建插件客户端并下载分别把 source、destination、transformer 三类配置转换成managedplugin.Config然后调用managedplugin.NewClients。关键在于这里的选项包含managedplugin.WithNoExec()cli/cmd/install.go#L69——它告诉插件管理器只下载插件文件不要拉起插件进程这正是 install 与 sync 的本质区别。下载完成后插件落在--cq-dir指定的目录默认.cq下。从安装测试用例可以印证这一行为测试断言plugins/source、plugins/destination、plugins/transformer三类目录下分别生成了与配置数量一致的文件cli/cmd/install_test.go#L68-L83。注册表registry插件从哪里来注册表决定插件镜像的下载来源其枚举定义在 cli/internal/specs/v0/registry.go#L11-L31值说明cloudquery默认值。从 CloudQuery 官方插件中心下载path形如team/name需要version。配置中不写registry字段时自动采用此值cli/internal/specs/v0/metadata.go#L122-L127github已废弃。从 GitHub 仓库发布物下载path为org/repo解析配置时 CLI 会打印registry: github is deprecated will be removed in future releases警告cli/internal/specs/v0/spec_reader.go#L142-L147local使用本地二进制path为二进制文件路径不需要versiongrpc连接远程 gRPC 插件服务器path为host:port不需要versiondocker从 Docker 注册表拉取path为镜像名可用docker_registry_auth_token认证空值等同于未设置默认收敛为cloudquery同时标记registryInferred供错误提示使用版本字段与注册表的联动规则值得注意只有github和cloudquery注册表需要version且版本号必须以v开头对于local、grpc、docker即使写了version也会在校验时被清空以免误导cli/internal/specs/v0/metadata.go#L83-L92。常见报错与排查提示installPlugin在创建插件客户端失败时会调用enrichClientError给错误附加可操作的提示cli/cmd/install.go#L135-L161ErrLoginRequired需要登录提示必须先执行cloudquery login或使用在 CloudQuery 平台生成的 API Key。ErrTeamRequired需要团队提示用cloudquery switch切换到正确的团队。插件not found且注册表是推断出的此时配置中未显式写registry默认收敛到了cloudquery。错误信息会提示两种处理方式——要么去插件中心确认并使用最新版本要么保持旧版本但在配置中显式加上registry: githubcli/cmd/install.go#L160。另外如果目录里没有.yml/.yaml文件或文件里既没有 source 也没有 destination宽松校验会直接报 expecting at least one source or destinationcli/internal/specs/v0/spec_reader.go#L248-L251。关联命令与下一步查看plugin命令组及其全部子命令install、publish、docs、uiassetscloudquery plugin 命令参考插件装好后即可运行 cloudquery sync 执行真正的数据管道版本管理方面官方文档还建议开发者理解插件版本管理机制以及各 source 集成的最新可用版本以配合WarnOnOutdatedVersions的提示保持插件更新。小结cloudquery plugin install是一个轻量但关键的运维命令它只做按配置下载插件这一件事却把复杂的插件解析、鉴权、版本检查、注册表适配都封装在了背后。理解它的参数继承关系--cq-dir决定落盘位置、配置解析规则宽松校验 变量展开 注册表默认收敛以及错误提示逻辑能帮你更可靠地把 CloudQuery 的插件准备阶段自动化无论是本地开发还是 CI/CD 流水线都能受益。赞分享数据集成数据工程数据分析【免费下载链接】cloudqueryData pipelines for cloud config and security data. Build cloud asset inventory, CSPM, FinOps, and vulnerability management solutions. Extract from AWS, Azure, GCP, and 70 cloud and SaaS sources.项目地址https://gitcode.com/gh_mirrors/cl/cloudquery点击查看免费下载相关推荐Serverless Framework plugin install 命令完全指南安装插件并自动写入 plugins 配置Serverless Framework plugin install 命令完全指南安装插件并自动写入 plugins 配置 导读 serverless pl开发工具CLI云原生后端vim-airline文件编码批量转换命令命令vim airline文件编码批量转换命令命令 你是否还在为Vim编辑器中文件编码转换的繁琐操作而烦恼当需要处理多个不同编码的文件时手动逐个修改不仅耗时还开发工具UI组件CloudQuery ClickHouse 目标插件 Apache Arrow 类型转换全指南CloudQuery ClickHouse 目标插件 Apache Arrow 类型转换全指南 本篇指南聚焦 CloudQuery ClickHouse 目标插数据集成数据工程数据分析上一篇魔兽争霸3兼容性修复终极指南让你的经典游戏在现代电脑上焕发新生下一篇直播录制新选择一个工具搞定40平台让精彩直播不再错过创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考