新規プロジェクトの作成

Flex Gateway ポリシー開発キット (PDK) を使用して新しいカスタムポリシーの開発を開始するには、新しいカスタムポリシープロジェクトを生成します。

新しいプロジェクトを作成するには、次のタスクを完了します。

始める前に

カスタムポリシープロジェクトを作成する前に、すべての ​PDK 前提条件​がインストール済みであることを確認してください。

新しいポリシープロジェクトを作成する

カスタムポリシープロジェクトを作成するには、PDK CLI ​create​ コマンドを実行します。​<my-custom-policy>​ には新しいポリシー名を指定してください

anypoint-cli-v4 pdk policy-project create --name <my-custom-policy>
グループ ID が要求された場合は、​「グループ ID のトラブルシューティング」​を参照してください。

create​ コマンドを実行すると指定した名前でカスタムポリシープロジェクトが作成されます。プロジェクトは、ポリシーと同じ名前の新しいディレクトリか、または ​--output-dir​ フラグで指定したディレクトリに保存されます。以下のチュートリアルでは、このディレクトリをプロジェクトのルートディレクトリと呼びます。

新しいポリシーの ​assetID​ は、ポリシーの名前を小文字にしてスペースを ​-​ に置き換えた文字列になります。たとえば、​My Header Injection Policy​ という名前のポリシーの ​assetID​ は、​my-header-injection-policy​ になります。

新しいポリシーの ​groupID​ は、Anypoint CLI で設定した組織の ID です。

create​ コマンドは、次のフラグをサポートします。

フラグ デフォルト値 必須 説明

--name=<value>​ または ​-n

なし

はい

新しいポリシーの名前。

--description=<value>​ または ​-d

なし

いいえ

新しいポリシーの説明。

--output-dir=<value>​ または ​-o

assetID

いいえ

新しいポリシーが作成されるディレクトリ。
指定したディレクトリが存在しない場合は新たに作成されます。ディレクトリが指定されていない場合は、ポリシーの ​assetID​ がディレクトリ名になります。

--version=<value>

1.0.0

いいえ

新しいポリシーのバージョン。
バージョンの形式は ​<major-release>.<minor-release>.<patch-release>​ です。

--group-id=<value>

なし

いいえ

ポリシーを所有する組織の組織 ID。
このフラグの詳細は、​「グループ ID のトラブルシューティング」​を参照してください。

PDK ビルド環境のセットアップ

新しいポリシープロジェクトを作成​したら、​make setup​ コマンドを実行して、追加のソフトウェア連動関係をダウンロードする必要があります。

make setup

プロジェクト構造

make setup​ コマンドを実行すると、ポリシーのルートディレクトリに、次のディレクトリツリーに示すディレクトリとファイルが作成されます。

├─ definition/  # Contains the files that describe the policy Definition
│  ├── target/  # Contains the build definition asset files
│  └── gcl.yaml # GCL file managed by the developer that describes the policy Definition
├─ target/      # Contains the implementation asset files and the output of the policy build
├─ src/         # Contains the implementation source code
├─ playground/  # Contains the artifacts required for running the policy locally
├─ tests/        # Contains the source and configuration files to write and run integration tests
├─ Makefile     # Provides all the callable actions required during the policy development lifecycle
├─ Cargo.toml   # Rust language standard file that contains the metadata required to build the policy
└─.project.yaml # Project manifest used by PDK

target/ および definition/target/

2 つの別々の​ターゲット​ディレクトリです。

  • definition/target/​: Exchange にパブリッシュされたポリシーアセット定義が保存されます。

  • target/​: ポリシーの Exchange アセット実装用のファイルとプロジェクトビルドの出力が保存されます。

両方のターゲットディレクトリとそのコンテンツは ​.gitignore​ ファイルに保存されます。​make build​ コマンドを使用して、各デバイス上でターゲットをコンパイルする必要があります。たとえば、チームでポリシーを開発する場合は、チームとしてポリシーとソースコードをリモートリポジトリにパブリッシュできますが、各チームメンバーがポリシーの作業に取り掛かるためには、自分のデバイス上でターゲットをビルドする必要があります。

definition/

definition​ ディレクトリには、ポリシーのメタデータと設定プロパティを定義する ​gcl.yaml​ ファイルが保存されます。

gcl.yaml​ の設定については、policy-pdk-create-schema-definition.adocを参照してください。

Cargo.toml

Flex Gateway のカスタムポリシーは Rust プログラミング言語で開発され、WebAssembly バイナリにコンパイルされます。

Cargo.toml​ は、Rust プロジェクトのマニフェストファイルです。​[package]​ セクションには、ポリシーの実装に関する基本情報が含まれています。​Cargo.toml​ で指定されたバージョンは、ポリシーアセットのバージョンと一致します。ポリシーのバージョンは、​Cargo.toml​ のバージョン番号を編集することで管理できます。バージョンの形式は ​<major-version>.<minor-version>.<patch-version>​ です。

src/

src​ ディレクトリにはポリシーのソースコードが保存されます。

  • lib.rs​: ポリシーの動作を実装するメソッドのセットが保存されます。PDK は、これらのメソッドをインクルードしてカスタムポリシーの動作を実装します。これらのメソッドについての詳細は、​Rust でのカスタムポリシー機能の実装. For complete policy examples, see カスタムポリシーの例​を参照してください。

  • generated/config.rs​ および ​generated/mod.rs​: gcl.yaml​ で定義されているポリシーの設定を、​lib.rs​ やポリシーのソースファイルで使用できるようにする自動生成モジュールです。

Makefile

Makefile には、​make​ コマンドなど、ポリシー開発のライフサイクルに必要な呼び出し可能なアクションがすべて含まれています。すべての ​make​ コマンドは、カスタムポリシーディレクトリのルートレベルで実行します。

  • make setup​: Makefile の残りのゴールに必要な PDK の内部連動関係をインストールします。

    プロジェクトの設定についての詳細は、​PDK ビルド環境のセットアップ​を参照してください。

  • make build-asset-files​: ポリシーのビルド、実行、パブリッシュに必要なすべてのポリシーアセットファイルを生成します。このコマンドは、​gcl.yaml​ ファイルで定義されている最新の設定で ​config.rs​ ソースコードファイルを更新します。

    ポリシーのコンパイルの詳細については、カスタムポリシーのコンパイルを参照してください。

  • make build​: make build-asset-files​ コマンドを実行して、ポリシーの WebAssembly バイナリをコンパイルします。

    ポリシーのコンパイルの詳細については、カスタムポリシーのコンパイルを参照してください。

  • make run​: コンテナ化された Docker 環境でポリシーの現在のビルドを簡単に実行する方法を提供します。

    ポリシーの実行とデバッグの詳細については、PDK デバッグプレイグラウンドでのカスタムポリシーのデバッグを参照してください。

  • make test​: PDK が提供するテストフレームワークを使用して、​tests/​ に保存されているテストを実行します。

    ポリシーのテストの詳細については、インテグレーションテストの作成を参照してください。

  • make publish​: ポリシーアセットを Exchange でパブリッシュします。

    Exchange でのポリシーのパブリッシュについての詳細は、Exchange へのカスタムポリシーのアップロードを参照してください。

  • make release​: ポリシーアセットを Exchange でリリースします。

    Exchange でのポリシーのリリースについての詳細は、Exchange へのカスタムポリシーのアップロードを参照してください。

  • make help​: PDK が提供するすべての ​make​ コマンドをリスト表示します。