5.2. Fuse on OpenShift の Apache Camel を使用して作成された APIcast ポリシーエクステンションの設定
Fuse on OpenShift を使用した Apache Camel による変換を実装したら、3scale 管理ポータルを使用して APIcast ポリシーチェーンのポリシーエクステンションとして設定することができます。
ポリシーエクステンションにより、Camel HTTP プロキシーを使用するように 3scale プロダクトを設定することができます。このサービスを使用して HTTP プロキシー経由で 3scale トラフィックを送信し、サードパーティープロキシーでリクエスト/レスポンスの変更を実施します。ここでは、サードパーティープロキシーは Fuse on OpenShift を使用して実装された Apache Camel です。TLS を使用して Camel HTTP プロキシーサービスにセキュアに接続するように、APIcast を設定することもできます。
ポリシーエクステンションコードは Fuse on OpenShift の Apache Camel アプリケーションで実装されており、3scale から変更したり削除したりすることはできません。
前提条件
Fuse on OpenShift 7.10 および 3scale 2-saas を、同じ OpenShift クラスターにデプロイしている必要があります。インストールの詳細については、以下のドキュメントを参照してください。
- Fuse on OpenShift の Apache Camel アプリケーションを使用して、APIcast ポリシーエクステンションを実装している必要があります。「APIcast と Fuse の Apache Camel による変換のインテグレーション」を参照してください。
- OpenShift Pod に Apache Camel アプリケーションをデプロイし、それをサービスとして公開している必要があります。詳細は、Creating and Deploying Applications on Fuse on OpenShift を参照してください。
手順
- 3scale 管理ポータルで Integration > Policies の順に選択します。
- POLICIES > Add policy > Camel Service の順に選択します。
適切なフィールドに、Camel HTTP プロキシーサービスに接続するための OpenShift ルートを入力します。
https_proxy
:http
プロトコルおよび TLS ポートを使用して、Camel HTTPS プロキシーに接続します。以下に例を示します。http://camel-proxy.my-3scale-management-project.svc:8443
http_proxy
:http
プロトコルおよびポートを使用して、Camel HTTP プロキシーに接続します。以下に例を示します。http://camel-proxy.my-3scale-management-project.svc:8080
all_proxy
: プロトコルが指定されない場合に、http
プロトコルおよびポートを使用して、Camel HTTP プロキシーに接続します。以下に例を示します。http://camel-proxy.my-3scale-management-project.svc:8080
- 更新されたポリシー設定をステージング環境または実稼働環境にプロモートします。たとえば、Promote v.3 to Staging APIcast をクリックします。
3scale
curl
コマンドを使用して、APIcast ポリシーの設定をテストします。以下に例を示します。curl "https://testapi-3scale-apicast-staging.myuser.app.dev.3sca.net:443/?user_key=MY_USER_KEY" -k
APIcast は、Camel HTTP プロキシーへの接続に新しい TLS セッションを確立します。
- メッセージのコンテンツが変換されていることを確認します。この例では大文字に変換されます。
APIcast をバイパスし、TLS を使用して直接 Camel HTTP プロキシーをテストする場合は、カスタム HTTP クライアントを使用する必要があります。たとえば、
netcat
コマンドを使用することができます。$ print "GET https://mybackend.example.com HTTP/1.1\nHost: mybackend.example.com\nAccept: */*\n\n" | ncat --no-shutdown --ssl my-camel-proxy 8443
この例では、
GET
の後に完全な URL を使用して HTTP プロキシーリクエストを作成し、ncat --ssl
パラメーターを使用してポート8443
のmy-camel-proxy
ホストへの TLS 接続を指定しています。注記プロキシーは
CONNECT
メソッドを使用した HTTP トンネリングをサポートしないため、curl
またはその他の一般的な HTTP クライアントを使用して Camel HTTP プロキシーを直接テストすることはできません。CONNECT
で HTTP トンネリングを使用する場合、トランスポートはエンドツーエンドで暗号化され、Camel HTTP プロキシーはペイロードを仲介することはできません。
関連情報