Flex Gateway新着情報
Governance新着情報
Monitoring API Manager| サードパーティライブラリを使用するポリシープロジェクトの例は、 「Crypto Policy Example (暗号化ポリシーの例)」を参照してください。 |
Proxy Wasm は、低レベルのバイナリアプリケーションインターフェース (abi) を定義し、ライブラリが実行できるシステムコールを制限します。ポリシーに含まれるすべてのサードパーティライブラリは、wasm32-wasi Rust コンパイルターゲットと互換性がある必要があります。
serde_urlencoded などのライブラリを定義するには、cargo.toml の連動関係リストに追加します。
[dependencies]
...
serde_urlencoded = "0.7.0"
ライブラリを定義すると、lib.rs にある以下のような関数を使用できるようになります。
serde_urlencoded::to_string([("token", "myToken")])
データベースのような外部サービスとやりとりするライブラリや、ファイルの読み取りのようなシステムコールを実行するライブラリは、通常は wasm32-wasi ターゲットとの互換性がありません。
ポリシーが外部サービスとやりとりする場合は、Flex Gateway で提供されている HttpClient を使用してください。HTTP コールの実行に関する詳細は、policy-pdk-configure-features-http-request.adocを参照してください。
一部のライブラリは wasm32-wasi ターゲットに適切にコンパイルできても、Flex Gateway にデプロイすると適切に動作しないことがあります。次のようなエラーがあります。
Failed to load Wasm module due to a missing import: … (インポートが欠落しているため Wasm モジュールの読み込みに失敗しました: …)
Wasm VM failed to initialize Wasm code (Wasm VM が Wasm コードの初期化に失敗しました)
Plugin configured to fail closed failed to load (フェールクローズに設定されたプラグインの読み込みに失敗しました)
これらのエラーが発生した場合には、サードパーティライブラリのオーナーに問い合わせるか、別のライブラリを使用してください。