Flex Gateway の使用開始

このチュートリアルの目標は、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 2

    • CentOS 8

    • Debian (Buster、Bullseye)

    • Red Hat Enterprise Linux (8、9)

    • Ubuntu (Bionic、Focal、Jammy)

  • Docker のインストール。例については 「Docker Desktop」​を参照してください。

Flex Gateway のダウンロード

Flex Gateway Docker イメージをダウンロードするには、ターミナルウィンドウで次のコマンドを実行します。

docker pull mulesoft/flex-gateway:1.5.0
このコマンドの実行時にファイル権限の問題が発生した場合は、​sudo​ を使用してください。

Flex Gateway を登録する

  1. 次のコマンドを実行して、新しいディレクトリを作成します。

    mkdir flex-registration
  2. 次のコマンドを実行して、新しいディレクトリに移動します。

    cd flex-registration
  3. Anypoint ユーザー名とパスワードを使用して、 Anypoint Platform​ にログインします。

  4. [Runtime Manager]​ を選択します。

  5. サイドナビゲーションパネルで,[Flex Gateways]​ タブをクリックします。

  6. [Add Gateway (ゲートウェイを追加)]​ をクリックします。

  7. [Docker]​ を選択します。

  8. [Register your gateway (ゲートウェイを登録)]​ セクションのコードブロックをコピーします。コードブロックには、一意の組織 ID とトークンが含まれています。

    次の ​[Add a Flex Gateway (Flex Gateway の追加)]​ ページのスクリーンショットでは、コピーするコードブロックが強調表示されています。

    コピーするコードブロックが選択されている [Add a Flex Gateway (Flex Gateway の追加)] ページ
  9. コピーしたコードブロックをターミナルウィンドウで実行します。最初に ​<gateway-name>​ を ​my-gw​ などの名前に置き換えてください。

    このコマンドの実行時にファイル権限の問題が発生した場合は、​sudo​ を使用してください。
  10. 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 のパブリッシュ

  1. Anypoint Platform メニューから ​[API Manager]​ を選択します。

  2. [Add API (API を追加)]​ をクリックし、​[Add new API (新しい API を追加)]​ をクリックします:

    [Add new API (新しい API を追加)] が選択されている [Add API (API を追加)] ページ
  3. [Add API (API を追加)]​ ページから、ランタイムとして ​[Flex Gateway]​ を選択します。

  4. [Select a gateway (ゲートウェイを選択)]​ セクションで登録済みゲートウェイを選択します。

  5. [次へ]​ をクリックします。

    次の ​[Add API (API を追加)]​ ページのスクリーンショットでは、指定されたオプションが強調表示されています。

    Flex Gateway ランタイムと my-gw ゲートウェイが選択されている [Add API (API を追加)]
  6. [Create New API (新しい API を作成)]​ をクリックします。

  7. API 参照名を指定し、アセットタイプとして ​[HTTP API]​ を選択します。

  8. [次へ]​ をクリックします。

  9. [Endpoint (エンドポイント)]​ ページから、​[Implementation URI (実装 URI)]​ 項目に次の URI を入力します。

    https://jsonplaceholder.typicode.com/
  10. [Port (ポート)]​ 項目に「​8081​」と入力します。

  11. [次へ]​ をクリックします。

  12. [Save & Deploy (保存してデプロイ)]​ をクリックします。

    ゲートウェイインスタンスの Docker コンテナ内で、ポート ​8081​ の ​localhost​ に対して行われたすべての HTTP 要求が ​jsonplaceholder​ サービスにプロキシされるようになります。

  13. API インスタンスをテストするには、新しいターミナルウィンドウで次のコマンドを実行します。

    curl -s -o /dev/null -w "%{http_code}\n" --request GET 'http://localhost:8081/'

    このコマンドは API への ​GET​ 要求を実行し、結果として成功を示す ​200​ 状況コードを出力します。

基本認証ポリシーを使用して API を保護する

  1. API Manager​ を開いたまま、サイドナビゲーションパネルから ​[API Administration (API 管理)]​ を選択します。

  2. 前のセクションで作成した API の名前を選択します。

  3. サイドナビゲーションパネルから ​[Policies (ポリシー)]​ を選択します。

  4. [Policies (ポリシー)]​ ページで、​[Add policy (ポリシーを追加)]​ をクリックします。

    次の ​[Policies (ポリシー)]​ ページのスクリーンショットでは、指定されたオプションが強調表示されています。

    [Add policy (ポリシーを追加)] ボタンのある [Add policy (ポリシーを追加)] ページ
  5. [Basic Authentication - Simple (基本認証 - シンプル)]​ ポリシーを選択します。

  6. [次へ]​ をクリックします。

  7. [User Name (ユーザー名)]​ に「​user​」と入力します。

  8. [User Password (ユーザーパスワード)]​ に「​password​」と入力します。

  9. [Apply (適用)]​ をクリックします。

    次の ​[Basic Authentication - Simple policy (基本認証 - 簡易ポリシー)]​ ページのスクリーンショットでは、指定されたオプションが強調表示されています。

    [User Password (ユーザーパスワード)] 項目が選択されている [Configure Basic Authentication - Simple policy (基本認証 - 簡易ポリシーを設定)] ページ
  10. 認証を​使用しないで​ API インスタンスをテストするには、ターミナルウィンドウで次の ​curl​ コマンドを実行します。

    curl -s -o /dev/null -w "%{http_code}\n" --request GET 'http://localhost:8081/'

    要求には認証コンテキストが含まれていないため、コマンドは結果として ​401 (Unauthorized)​ 状況コードを出力します。

  11. 認証を​使用して​ API インスタンスをテストするには、ターミナルウィンドウで次のコマンドを実行します。

    curl -s -o /dev/null -w "%{http_code}\n" --request GET 'http://localhost:8081/' -u user:password
    user​ パラメーターと ​password​ パラメーターは、​API Manager​ 経由でポリシーを適用したときに指定した内容と一致する必要があります。

    このコマンドは、結果として成功を示す ​200​ 状況コードを出力します。