pdk-prerequisites について
Omni Gateway Policy Development Kit(PDK)の開発環境を整えるセットアップスキルです。必要なツールを確認し、不足分の導入と再確認を順番に進め、よくある設定や認証情報の問題にも対応します。
主な機能
- 01PDKワークフローの要件確認
- 02不足ツールの導入ガイド
- 03導入済みツールとバージョンの再確認
- 04CLI、Rust、Docker、認証情報のトラブル対応
活用シーン
- 01PDKポリシー開発環境の準備
- 02PDKコマンドや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 ターゲット(wasm32-wasip1) | — | WebAssembly へのクロスコンパイル |
| 6 | Docker | Docker Desktop または Engine | ローカルプレイグラウンド(make run)と統合テスト(pdk-test) |
| 7 | make | 任意のバージョン | Makefile によるビルドのオーケストレーション |
| 8 | Anypoint Platform の認証情報 | — | Exchange への公開 |
Step 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
不足している項目ごとに、以下の該当するインストール手順に進みます。
Step 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
Step 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"
Step 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
Step 5: Rust をインストールする(未インストールの場合)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
インストール後、現在のシェルで環境を読み込みます。
source "$HOME/.cargo/env"
確認:
rustc --version
cargo --version
Step 6: WASM ターゲットをインストールする(未インストールの場合)
rustup target add wasm32-wasip1
確認:
rustup target list --installed | grep wasm32-wasip1
注: 古い PDK プロジェクト(1.6.0 より前)では、代わりに wasm32-wasi を使用していました。レガシープロジェクトで作業する場合は、Makefile の TARGET 変数を確認してください。ただし、新規プロジェクトでは必ず wasm32-wasip1 を使用します。
Step 7: Docker をインストールする(未インストールの場合)
make run(ローカルプレイグラウンド)と 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"
Step 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"
永続化するには、シェルのプロファイル(~/.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 と表示される
原因: Rust が rustup を使わずにシステムのパッケージマネージャー(apt、brew)経由でインストールされたか、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/