スタートアップ(英語)
コミュニティ(英語)
トレーニング(英語)
チュートリアル(英語)
ドキュメント
API、AI、ツール (英語)
ローカルモードでのシンプルな API のパブリッシュ
ローカルモードで Flex Gateway の背後で実行されているシンプルな API をパブリッシュすることで、YAML 設定データを変更する方法をいくつか説明します。
-
Linux および Docker:
.yaml ファイル -
Kubernetes:
kubectl apply
下記の手順は、単独のアップストリームサービスを使用した保護されていない API のシンプルな YAML 設定を適用する方法を示しています。
Linux で Flex Gateway の背後で実行されている API のパブリッシュ
始める前に
始める前に、次の準備が整っていることを確認します。
-
Flex Gateway がインストールされていてローカルモードで実行されている。ゲートウェイのインストールと実行についての詳細は、Flex Gateway のダウンロードを参照してください。
-
アップストリームサービスの URL が用意されている。次の例では架空の
orders-api というサービスを使用していますが、metadata.name には実際の API 名、spec.services にはサービスの詳細を指定することができます。
API のパブリッシュ
-
.yaml ファイル拡張子で設定ファイルを作成します。-
ファイルにカスタム名を付けます。
-
ファイルを Flex Gateway の設定ディレクトリ
/etc/mulesoft/flex-gateway/conf.d/custom に保存します。このディレクトリには複数の設定ファイルを保存できます。
-
-
次の YAML スニペットをコピーしてファイルに貼り付け、必要な箇所を適切な値に変更します。
apiVersion: gateway.mulesoft.com/v1alpha1 kind: ApiInstance metadata: name: orders-api spec: address: http://0.0.0.0:8080 services: orders: address: https://<your orders URL>:<your port>/ routes: - rules: - path: /api/orders(/.*) -
ファイルを保存します。ゲートウェイによって設定が自動的に更新されます。
-
次のコマンドを実行してログを表示します。
journalctl -u flex-gateway-*
応答は次のようになります。
[agent][info] Generating config [agent][info] Gateway default/18b4e890fe7d: Adding ApiInstance default/animal-facts-api http://0.0.0.0:8080 [agent][info] Gateway default/18b4e890fe7d: Adding Route: &{host: path:/api/orders(/.*) methods: headerConditions:[] profile:0xc0030529f0} => {Kind:Service Name:orders-api-orders Namespace:default} [agent][info] Gateway default/18b4e890fe7d: Adding Policy default/envoy.filters.http.router [agent][info] Gateway default/18b4e890fe7d: Adding Service default/monitoring_metrics http://0.0.0.0:9881 [agent][debug] generating service monitoring_metrics.default.svc hostname: 0.0.0.0 port: 9881 [agent][info] Gateway default/18b4e890fe7d: Adding Service default/orders-api-orders https://<your orders URL>:<your port>/ [agent][debug] generating service orders-api-orders.default.svc hostname: <your orders URL> port: <your port> [agent][info] Writing envoy bootstrap configuration to /tmp/envoy.json [envoy][info] cds: add 2 cluster(s), remove 2 cluster(s) [envoy][info] cds: added/updated 1 cluster(s), skipped 1 unmodified cluster(s)
シンプルな API は Flex Gateway の背後で実行されています。
Docker コンテナで Flex Gateway の背後で実行されている API のパブリッシュ
始める前に
始める前に、次の準備が整っていることを確認します。
-
Flex Gateway がインストールされている。詳細は、Flex Gateway のダウンロードを参照してください。
-
Flex Gateway がローカルモードで登録されて実行されている。詳細は「ローカルモードでの登録と実行」を参照してください。
-
アップストリームサービスの URL が用意されている。次の例では架空の
orders-api というサービスを使用していますが、metadata.name には実際の API 名、spec.services にはサービスの詳細を指定することができます。
API のパブリッシュ
-
ターミナルを開いて、Flex Gateway 設定ファイルが保存されているディレクトリに移動します。このディレクトリは、Flex Gateway を起動したときに指定されています。
-
.yaml ファイル拡張子で設定ファイルを作成します。-
ファイルにカスタム名を付けます。
-
ファイルを保存します。
-
-
次の YAML スニペットをコピーしてファイルに貼り付け、必要な箇所を適切な値に変更します。
apiVersion: gateway.mulesoft.com/v1alpha1 kind: ApiInstance metadata: name: orders-api spec: address: http://0.0.0.0:8080 services: orders: address: https://<your orders URL>:<your port>/ routes: - rules: - path: /api/orders(/.*) -
ファイルを保存します。ゲートウェイによって設定が自動的に更新されます。
-
Docker コンテナログを表示します。内容は次のようになっています。
[agent][info] Generating config [agent][info] Gateway default/18b4e890fe7d: Adding ApiInstance default/animal-facts-api http://0.0.0.0:8080 [agent][info] Gateway default/18b4e890fe7d: Adding Route: &{host: path:/api/orders(/.*) methods: headerConditions:[] profile:0xc0030529f0} => {Kind:Service Name:orders-api-orders Namespace:default} [agent][info] Gateway default/18b4e890fe7d: Adding Policy default/envoy.filters.http.router [agent][info] Gateway default/18b4e890fe7d: Adding Service default/monitoring_metrics http://0.0.0.0:9881 [agent][debug] generating service monitoring_metrics.default.svc hostname: 0.0.0.0 port: 9881 [agent][info] Gateway default/18b4e890fe7d: Adding Service default/orders-api-orders https://<your orders URL>:<your port>/ [agent][debug] generating service orders-api-orders.default.svc hostname: <your orders URL> port: <your port> [agent][info] Writing envoy bootstrap configuration to /tmp/envoy.json [envoy][info] cds: add 2 cluster(s), remove 2 cluster(s) [envoy][info] cds: added/updated 1 cluster(s), skipped 1 unmodified cluster(s)
シンプルな API は Flex Gateway の背後で実行されています。
Kubernetes クラスターで Flex Gateway の背後で実行されている API のパブリッシュ
始める前に
始める前に、次の準備が整っていることを確認します。
-
Flex Gateway がインストールされていてローカルモードで実行されている。ゲートウェイのインストールと実行についての詳細は、Flex Gateway のダウンロードを参照してください。
-
Docker リポジトリに Docker イメージが保存されている。次の例では架空の
orders-api というアプリケーションを参照していますが、Deployment 設定リソース (spec.spec.image 内) には実際の Docker リポジトリと Docker イメージを指定することができます。
アップストリームサービスとして Kubernetes サービスを使用しているか、Kubernetes サービスに対する要求を行うポリシーを適用する場合は、service リソースで次のパラメーターを設定します。
-
spec.ports[].protocol を TCP に -
spec.ports[].name
spec.ports[].name サービスは <protocol>[-<suffix>] 構造に準拠している必要があります。 [-<suffix>] は省略可能であり、<protocol> の有効なオプションは次のとおりです。
-
HTTP
-
H2
-
HTTPS
API のパブリッシュ
-
kubectl apply コマンドを使用して、特定のリポジトリから「orders-api」という名前の Docker イメージをインストールします。次の YAML スニペットでは、
Service と Deployment という 2 つの設定リソースを定義しています。Service リソースは orders-api サービスを宣言します。Deployment リソースは、作成するレプリカ数やサイドローディングする Docker イメージなどの情報を指定することで、目的のデプロイメント状態を宣言します。cat <<EOF | kubectl apply -f - --- apiVersion: v1 kind: Service metadata: name: orders-api labels: app: orders-api service: orders-api spec: ports: - name: http port: 80 targetPort: http selector: app: orders-api --- apiVersion: apps/v1 kind: Deployment metadata: name: orders-api spec: replicas: 1 selector: matchLabels: app: orders-api version: v1 template: metadata: labels: app: orders-api version: v1 spec: containers: - image: <repository>/<dockerfile> imagePullPolicy: IfNotPresent name: orders-api ports: - name: http containerPort: 3000 resources: limits: cpu: 100m memory: 64Mi EOF -
再び
kubectl apply を使用して、トラフィックをルーティングするイングレスを作成します。次の YAML 例では、
Ingress という設定リソースを定義しています。cat <<EOF | kubectl apply -f - --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: orders-api spec: ingressClassName: ingress-http.gateway rules: - http: paths: - path: /api/orders(/.*) pathType: ImplementationSpecific backend: service: name: orders-api port: number: 80 EOF
シンプルな API は Flex Gateway の背後で実行されています。





