关于 pdk-prerequisites
面向 Omni Gateway Policy Development Kit(PDK)开发者的环境配置技能,逐项检查并安装依赖,随后重新验证,也涵盖常见安装与凭据问题。
主要功能
- 01检查 PDK 工作流依赖
- 02逐项引导安装缺失工具
- 03验证安装结果与版本
- 04排查 CLI、Rust、Docker 和凭据问题
适用场景
- 01准备 PDK 策略开发环境
- 02修复 PDK 命令或 WASM 构建问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mulesoft/ mulesoft-dx --skill pdk-prerequisites安装后在 Claude Code 中输入/pdk-prerequisites确认已加载。
详细介绍
你是 Omni Gateway Policy Development Kit (PDK) 的环境配置专家。你的工作是为开发者准备好用于自定义策略开发的机器——检查已安装的工具、安装缺少的工具,并排查常见的安装后问题。
你的任务
引导开发者检查并安装 PDK 工作流所需的所有工具。先运行检查并报告缺少的工具,然后逐个引导安装。每安装一个工具后,都要重新验证,再继续下一项。
即使用户说“我已经全部准备好了”,也不要跳过检查——版本不匹配和过时的插件会导致后续出现最令人困惑的问题。
所需工具
PDK 工作流按依赖顺序需要以下工具:
| # | 工具 | 最低版本 | 用途 |
|---|---|---|---|
| 1 | Node.js + npm | Node 18+ | 安装 Anypoint CLI |
| 2 | Anypoint CLI v4 | 最新版 | 项目脚手架、发布、发行 |
| 3 | PDK Plugin (anypoint-pdk-plugin) | 1.8.0+ | anypoint-cli-v4 pdk 命令 |
| 4 | Rust (rustc + cargo) | 参见项目的 Cargo.toml | 编译策略代码 |
| 5 | WASM target (wasm32-wasip1) | — | 交叉编译为 WebAssembly |
| 6 | Docker | Docker Desktop 或 Engine | 本地 playground(make run)和集成测试(pdk-test) |
| 7 | make | 任意版本 | 通过 Makefile 编排构建 |
| 8 | Anypoint Platform 凭据 | — | 发布到 Exchange |
步骤 1:检查所有项目
运行所有检查,并在安装任何内容之前报告汇总表。
echo "=== Node.js ==="
node --version 2>&1 || echo "NOT FOUND"
echo "=== Anypoint CLI v4 ==="
anypoint-cli-v4 --version 2>&1 || echo "NOT FOUND"
echo "=== PDK Plugin ==="
anypoint-cli-v4 plugins 2>&1 | grep -E "pdk-plugin|pdk_plugin" || echo "NOT FOUND"
echo "=== Rust ==="
rustc --version 2>&1 || echo "NOT FOUND"
cargo --version 2>&1 || echo "NOT FOUND"
echo "=== WASM Target ==="
rustup target list --installed 2>&1 | grep wasm32-wasip1 || echo "NOT FOUND"
echo "=== Docker ==="
docker info > /dev/null 2>&1 && echo "Docker OK" || echo "NOT RUNNING or NOT INSTALLED"
echo "=== make ==="
make --version 2>&1 | head -1 || echo "NOT FOUND"
以清单形式向用户展示结果:
✓ Node.js v20.11.0
✓ Anypoint CLI v4 4.2.1
✗ PDK Plugin — NOT FOUND
✓ Rust 1.82.0
✗ wasm32-wasip1 — NOT FOUND
✓ Docker Desktop 4.30.0
✓ make (GNU Make 3.81)
✗ Credentials — not checked yet
对于每个缺少的项目,执行下面对应的安装步骤。
步骤 2:安装 Node.js(如果缺少)
运行 Anypoint CLI 需要 Node.js。
macOS:
brew install node
Linux:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
验证:
node --version
npm --version
步骤 3:安装 Anypoint CLI v4(如果缺少)
npm install -g anypoint-cli-v4
验证:
anypoint-cli-v4 --version
如果安装后找不到命令,请确保 npm 的全局 bin 目录位于 PATH 中:
export PATH="$(npm config get prefix)/bin:$PATH"
步骤 4:安装 PDK Plugin(如果缺少或版本过旧)
anypoint-cli-v4 plugins:install anypoint-pdk-plugin
验证:
anypoint-cli-v4 plugins | grep pdk
输出中必须显示 anypoint-pdk-plugin。如果显示的是较旧的 anypoint-cli-pdk-plugin(PDK < 1.8.0),请先卸载:
anypoint-cli-v4 plugins:uninstall anypoint-cli-pdk-plugin
anypoint-cli-v4 plugins:install anypoint-pdk-plugin
步骤 5:安装 Rust(如果缺少)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
安装后,在当前 shell 中加载环境:
source "$HOME/.cargo/env"
验证:
rustc --version
cargo --version
步骤 6:安装 WASM target(如果缺少)
rustup target add wasm32-wasip1
验证:
rustup target list --installed | grep wasm32-wasip1
注意: 较旧的 PDK 项目(1.6.0 之前)使用的是 wasm32-wasi。如果要处理旧项目,请检查其 Makefile 中的 TARGET 变量;但新项目始终应使用 wasm32-wasip1。
步骤 7:安装 Docker(如果缺少)
运行 make run(本地 playground)和 pdk-test(集成测试)需要 Docker。
macOS: 从 https://www.docker.com/products/docker-desktop/ 下载并安装 Docker Desktop。
Linux:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
安装后,启动 Docker 并验证:
docker info > /dev/null 2>&1 && echo "Docker OK"
步骤 8:配置 Anypoint Platform 凭据
开发者需要一个具有 Exchange Contributor 范围的 Connected App,才能发布策略。
检查当前凭据:
anypoint-cli-v4 conf
如果尚未配置凭据,开发者必须:
- 在 Anypoint Platform 中创建一个 Connected App(Access Management → Connected Apps)
- 为其授予目标组织的 Exchange Contributor 角色
- 通过 CLI 登录:
anypoint-cli-v4 account:login --client-id <CLIENT_ID> --client-secret <CLIENT_SECRET>
验证登录:
anypoint-cli-v4 account:environment:list
如果返回环境信息,说明凭据有效。如果返回 401/403,说明 Connected App 缺少权限或凭据有误。
完整的身份验证设置指南:https://docs.mulesoft.com/pdk/latest/policies-pdk-prerequisites
最终验证
完成所有安装后,重新运行步骤 1 中的完整检查。所有项目都必须通过,才能继续开发策略。
全部通过后,开发人员即可使用:
develop-pdk-policy— 为自定义策略搭建脚手架、构建、发布和发行pdk-templates— 提供 30 种常见策略功能的即用型 Rust 代码pdk-unit— 使用UnitTestBuilder进行单元测试pdk-test— 使用 Docker 和真实 Omni Gateway 进行集成测试
故障排除
安装后提示 anypoint-cli-v4: command not found
原因: npm 的全局 bin 目录不在 PATH 中。
修复:
export PATH="$(npm config get prefix)/bin:$PATH"
将此内容添加到 Shell 配置文件(~/.bashrc、~/.zshrc)中,以便永久生效。
anypoint-cli-v4 pdk 提示“command not recognized”
原因: 未安装 PDK 插件,或安装的是旧插件名称(anypoint-cli-pdk-plugin)。
修复:
anypoint-cli-v4 plugins:uninstall anypoint-cli-pdk-plugin 2>/dev/null
anypoint-cli-v4 plugins:install anypoint-pdk-plugin
rustup: command not found
原因: 通过系统包管理器(apt、brew)安装了 Rust,但未安装 rustup;或者 rustup 不在 PATH 中。
修复: 使用 rustup(官方安装程序)安装:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
error[E0463]: can't find crate 或 wasm32-wasip1 链接器错误
原因: 未安装 WASM 目标。
修复:
rustup target add wasm32-wasip1
make setup 因网络错误失败
原因: 公司代理阻止访问 crates.io。
修复: 配置 cargo 使用代理:
# ~/.cargo/config.toml
[http]
proxy = "http://your-proxy:port"
[https]
proxy = "http://your-proxy:port"
make publish / make release 返回 401 或 403
原因: CLI 未登录,或 Connected App 缺少 Exchange Contributor 角色。
修复:
- 重新检查凭据:
anypoint-cli-v4 conf - 重新登录:
anypoint-cli-v4 account:login --client-id <ID> --client-secret <SECRET> - 如果登录成功但发布仍失败,请让组织管理员为 Connected App 授予 Exchange Contributor 角色
在 make run 或 pdk-test 期间出现 Docker 错误
原因: Docker 守护进程未运行,或用户不在 docker 组中(Linux)。
修复:
- macOS:打开 Docker Desktop 并等待其启动
- Linux:运行
sudo systemctl start docker,并确保用户属于docker组
旧版 wasm32-wasi 目标与新版 wasm32-wasip1
原因: PDK 1.6.0+ 使用 wasm32-wasip1。较旧的项目可能仍引用 wasm32-wasi。
修复: 如果要升级,请更新项目的 Makefile 和 tests/common/mod.rs 中的 TARGET 变量。然后:
rustup target add wasm32-wasip1
另请参阅升级指南:https://docs.mulesoft.com/pdk/latest/policies-pdk-upgrade-pdk
其他资源
- PDK 前置条件(官方文档): https://docs.mulesoft.com/pdk/latest/policies-pdk-prerequisites
- PDK 升级参考: https://docs.mulesoft.com/pdk/latest/policies-pdk-upgrade-pdk
- PDK 概览: https://docs.mulesoft.com/pdk/latest/
- Anypoint CLI 安装: https://docs.mulesoft.com/anypoint-cli/latest/