このチュートリアルの目標は、Anypoint Flex Gateway をすばやく使い始めることです。このチュートリアルでは、Docker を使用して、接続モードで Flex Gateway をインストール、登録、実行する方法について説明します。さらに、基本認証ポリシーで保護された API をパブリッシュする方法についても説明します。
始める前に
Flex Gateway の使用を始める前に、次の準備が整っていることを確認します。
-
自分の Anypoint Platform 組織のユーザー名とパスワード。まだ Anypoint Platform 組織を持っていない場合は、Anypoint Platform で トライアル組織を作成してください。
-
x86 プロセッサーを搭載した Linux マシン。M1 および M2 プロセッサーはサポートされていません。
Flex Gateway は、以下の Long Term Support (LTS) バージョンの Linux で動作します。
-
Amazon Linux 2023
-
CentOS 8
-
Debian Bookworm
-
Red Hat Enterprise Linux (9)
-
IBM Power (ppc64le) の Red Hat Enterprise Linux (9)
-
Ubuntu Jammy
-
-
Docker のインストール。例については 「Docker Desktop」を参照してください。
Flex Gateway のダウンロード
Flex Gateway Docker イメージをダウンロードするには、ターミナルウィンドウで次のコマンドを実行します。
docker pull mulesoft/flex-gateway:latest
このコマンドの実行時にファイル権限の問題が発生した場合は、sudo を使用してください。
|
Flex Gateway を登録する
-
次のコマンドを実行して、新しいディレクトリを作成します。
mkdir flex-registration -
次のコマンドを実行して、新しいディレクトリに移動します。
cd flex-registration -
Anypoint ユーザー名とパスワードを使用して、 Anypoint Platform にログインします。
-
[Runtime Manager] を選択します。
-
サイドナビゲーションパネルで、[Flex Gateways] をクリックします。
-
[Self-managed Flex Gateways (自己管理 Flex Gateway)] をクリックします。
-
[Add Gateway (ゲートウェイを追加)] をクリックします。
-
[Docker] を選択します。
-
[Register your gateway (ゲートウェイを登録)] セクションのコードブロックをコピーします。コードブロックには、一意の組織 ID とトークンが含まれています。
次の [Add a Flex Gateway (Flex Gateway の追加)] ページのスクリーンショットでは、コピーするコードブロックが強調表示されています。
-
コピーしたコードブロックをターミナルウィンドウで実行します。最初に
<gateway-name> を my-gw などの名前に置き換えてください。このコマンドの実行時にファイル権限の問題が発生した場合は、 sudo を使用してください。 -
Runtime Manager のサイドバーナビゲーションで [Flex Gateways] を選択します。
登録した Flex Gateway がゲートウェイのリストに表示されます。
Flex Gateway を実行する
Flex Gateway を実行するには、ターミナルウィンドウで次のコマンドを実行します。
docker run --rm \
-v "$(pwd)":/usr/local/share/mulesoft/flex-gateway/conf.d \
-p 8081:8081 \
mulesoft/flex-gateway
このコマンドの実行時にファイル権限の問題が発生した場合は、sudo を使用してください。
|
新しい Flex Gateway インスタンスがターミナルウィンドウで実行されます。
| Flex Gateway インスタンスは、プロセスが停止されるかウィンドウが閉じられるまで、ターミナルウィンドウで実行を続けます。 |
シンプルな API のパブリッシュ
-
Anypoint Platform メニューから [API Manager] を選択します。
-
[Add API (API を追加)] > [Add new API (新しい API を追加)] をクリックします。
-
[Add API (API を追加)] ページから、ランタイムとして [Flex Gateway] を選択します。
-
[Select a gateway (ゲートウェイを選択)] セクションで登録済みゲートウェイを選択します。
-
[Next (次へ)] をクリックします。
-
[Create New API (新しい API を作成)] をクリックします。
-
API 参照名を指定し、アセットタイプとして [HTTP API] を選択します。
-
[Next (次へ)] をクリックします。
-
[Endpoint (エンドポイント)] ページから、[Implementation URI (実装 URI)] 項目に次の URI を入力します。
https://jsonplaceholder.typicode.com/ -
[Port (ポート)] 項目に「
8081」と入力します。 -
[Next (次へ)] をクリックします。
-
[Save & Deploy (保存してデプロイ)] をクリックします。
ゲートウェイインスタンスの Docker コンテナ内で、ポート
8081 の localhost に対して行われたすべての HTTP 要求が jsonplaceholder サービスにプロキシされるようになります。 -
API インスタンスをテストするには、新しいターミナルウィンドウで次のコマンドを実行します。
curl -s -o /dev/null -w "%{http_code}\n" --request GET 'http://localhost:8081/'このコマンドは API への
GET 要求を実行し、結果として成功を示す 200 状況コードを出力します。
基本認証ポリシーを使用して API を保護する
-
API Manager を開いたまま、サイドナビゲーションパネルから [API Administration (API 管理)] を選択します。
-
前のセクションで作成した API の名前を選択します。
-
サイドナビゲーションパネルから [Policies (ポリシー)] を選択します。
-
[Policies (ポリシー)] ページで、[Add policy (ポリシーを追加)] をクリックします。
次の [Policies (ポリシー)] ページのスクリーンショットでは、指定されたオプションが強調表示されています。
-
[Basic Authentication - Simple (基本認証 - シンプル)] ポリシーを選択します。
-
[Next (次へ)] をクリックします。
-
[User Name (ユーザー名)] に「
user」と入力します。 -
[User Password (ユーザーパスワード)] に「
password」と入力します。 -
[Apply (適用)] をクリックします。
次の [Basic Authentication - Simple policy (基本認証 - 簡易ポリシー)] ページのスクリーンショットでは、指定されたオプションが強調表示されています。
-
認証を使用しないで API インスタンスをテストするには、ターミナルウィンドウで次の
curl コマンドを実行します。curl -s -o /dev/null -w "%{http_code}\n" --request GET 'http://localhost:8081/'要求には認証コンテキストが含まれていないため、コマンドは結果として
401 (Unauthorized) 状況コードを出力します。 -
認証を使用して API インスタンスをテストするには、ターミナルウィンドウで次のコマンドを実行します。
curl -s -o /dev/null -w "%{http_code}\n" --request GET 'http://localhost:8081/' -u user:passworduser パラメーターと password パラメーターは、API Manager 経由でポリシーを適用したときに指定した内容と一致する必要があります。このコマンドは、結果として成功を示す
200 状況コードを出力します。