mcpField
P
pdk-prerequisites

pdk-prerequisites

github.com/mulesoft开发14218 次安装今天更新
代码仓库

关于 pdk-prerequisites

面向 Omni Gateway Policy Development Kit(PDK)开发者的环境配置技能,逐项检查并安装依赖,随后重新验证,也涵盖常见安装与凭据问题。

主要功能

  1. 01检查 PDK 工作流依赖
  2. 02逐项引导安装缺失工具
  3. 03验证安装结果与版本
  4. 04排查 CLI、Rust、Docker 和凭据问题

适用场景

  1. 01准备 PDK 策略开发环境
  2. 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 工作流按依赖顺序需要以下工具:

#工具最低版本用途
1Node.js + npmNode 18+安装 Anypoint CLI
2Anypoint CLI v4最新版项目脚手架、发布、发行
3PDK Plugin (anypoint-pdk-plugin)1.8.0+anypoint-cli-v4 pdk 命令
4Rust (rustc + cargo)参见项目的 Cargo.toml编译策略代码
5WASM target (wasm32-wasip1)—交叉编译为 WebAssembly
6DockerDocker Desktop 或 Engine本地 playground(make run)和集成测试(pdk-test)
7make任意版本通过 Makefile 编排构建
8Anypoint 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

如果尚未配置凭据,开发者必须:

  1. 在 Anypoint Platform 中创建一个 Connected App(Access Management → Connected Apps)
  2. 为其授予目标组织的 Exchange Contributor 角色
  3. 通过 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 角色。

修复:

  1. 重新检查凭据:anypoint-cli-v4 conf
  2. 重新登录:anypoint-cli-v4 account:login --client-id <ID> --client-secret <SECRET>
  3. 如果登录成功但发布仍失败,请让组织管理员为 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


其他资源

评论

支持 Markdown