---
schema_version: "1"
id: 33efe67029cb2e069cde6607505e4cca6330025c8005c3a871647f912c1c3b94
title: ローカルモードでのシンプルな API のパブリッシュ
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/gateway/1.8/flex-local-publish-simple-api.md
canonical_url: https://docs.mulesoft.com/jp/gateway/1.8/flex-local-publish-simple-api
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 79fc2659d5ea6f5afa433d8dde8ef8dec44ab56168defcde1a47639ba0af22c0
description: MuleSoft Documentation Site
release: "1.8"
latest: false
---
# ローカルモードでのシンプルな API のパブリッシュ

ローカルモードで Flex Gateway の背後で実行されているシンプルな API をパブリッシュすることで、YAML 設定データを変更する方法をいくつか説明します。

- Linux および Docker: `.yaml`​ ファイル
- Kubernetes: `kubectl apply`

下記の手順は、単独のアップストリームサービスを使用した保護されていない API のシンプルな YAML 設定を適用する方法を示しています。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 33.3333%;">
<col style="width: 33.3334%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><span class="image"><a class="image" href="#linux"><img src="https://docs.mulesoft.com/jp/gateway/1.8/_images/install-linux-logo.png" alt="20%" width="20%"></a></span></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><span class="image"><a class="image" href="#docker"><img src="https://docs.mulesoft.com/jp/gateway/1.8/_images/install-docker-logo.png" alt="25%" width="25%"></a></span></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><span class="image"><a class="image" href="#kubernetes"><img src="https://docs.mulesoft.com/jp/gateway/1.8/_images/install-kubernetes-logo.png" alt="20%" width="20%"></a></span></p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="#linux">Linux で Flex Gateway の背後で実行されている API のパブリッシュ</a></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="#docker">Docker コンテナで Flex Gateway の背後で実行されている API のパブリッシュ</a></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><a href="#kubernetes">Kubernetes クラスターで Flex Gateway の背後で実行されている API のパブリッシュ</a></p>
</div></div></td>
</tr>
</tbody>
</table>

## [](#linux)Linux で Flex Gateway の背後で実行されている API のパブリッシュ

### [](#始める前に)始める前に

始める前に、次の準備が整っていることを確認します。

- Flex Gateway がインストールされていてローカルモードで実行されている。ゲートウェイのインストールと実行についての詳細は、[Flex Gateway のダウンロード](https://docs.mulesoft.com/jp/gateway/1.8/flex-install)を参照してください。
- アップストリームサービスの URL が用意されている。次の例では架空の ​`orders-api`​ というサービスを使用していますが、​`metadata.name`​ には実際の API 名、​`spec.services`​ にはサービスの詳細を指定することができます。

### [](#api-のパブリッシュ)API のパブリッシュ

1. `.yaml`​ ファイル拡張子で設定ファイルを作成します。
    
    1. ファイルにカスタム名を付けます。
    2. ファイルを Flex Gateway の設定ディレクトリ ​`/etc/mulesoft/flex-gateway/conf.d/custom`​ に保存します。このディレクトリには複数の設定ファイルを保存できます。
2. 次の 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(/.\*)
3. ファイルを保存します。ゲートウェイによって設定が自動的に更新されます。
4. 次のコマンドを実行してログを表示します。
    
    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)Docker コンテナで Flex Gateway の背後で実行されている API のパブリッシュ

### [](#始める前に-2)始める前に

始める前に、次の準備が整っていることを確認します。

- Flex Gateway がインストールされている。詳細は、[Flex Gateway のダウンロード](https://docs.mulesoft.com/jp/gateway/1.8/flex-install)を参照してください。
- Flex Gateway がローカルモードで登録されて実行されている。詳細は​[「ローカルモードでの登録と実行」](https://docs.mulesoft.com/jp/gateway/1.8/flex-local-reg-run)​を参照してください。
- アップストリームサービスの URL が用意されている。次の例では架空の ​`orders-api`​ というサービスを使用していますが、​`metadata.name`​ には実際の API 名、​`spec.services`​ にはサービスの詳細を指定することができます。

### [](#api-のパブリッシュ-2)API のパブリッシュ

1. ターミナルを開いて、Flex Gateway 設定ファイルが保存されているディレクトリに移動します。このディレクトリは、Flex Gateway を起動したときに指定されています。
2. `.yaml`​ ファイル拡張子で設定ファイルを作成します。
    
    1. ファイルにカスタム名を付けます。
    2. ファイルを保存します。
3. 次の 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(/.\*)
4. ファイルを保存します。ゲートウェイによって設定が自動的に更新されます。
5. 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)Kubernetes クラスターで Flex Gateway の背後で実行されている API のパブリッシュ

### [](#始める前に-3)始める前に

始める前に、次の準備が整っていることを確認します。

- Flex Gateway がインストールされていてローカルモードで実行されている。ゲートウェイのインストールと実行についての詳細は、[Flex Gateway のダウンロード](https://docs.mulesoft.com/jp/gateway/1.8/flex-install)を参照してください。
- Docker リポジトリに Docker イメージが保存されている。次の例では架空の ​`orders-api`​ というアプリケーションを参照していますが、​`Deployment`​ 設定リソース (​`spec.spec.image`​ 内) には実際の Docker リポジトリと Docker イメージを指定することができます。

アップストリームサービスとして [Kubernetes サービス](https://kubernetes.io/docs/concepts/services-networking/service/)​を使用しているか、Kubernetes サービスに対する要求を行うポリシーを適用する場合は、​`service`​ リソースで次のパラメーターを設定します。

- `spec.ports[].protocol`​ を ​`TCP`​ に
- `spec.ports[].name`

`spec.ports[].name`​ サービスは ​`<protocol>[-<suffix>]`​ 構造に準拠している必要があります。 `[-<suffix>]`​ は省略可能であり、​`<protocol>`​ の有効なオプションは次のとおりです。

- HTTP
- H2
- HTTPS

### [](#api-のパブリッシュ-3)API のパブリッシュ

1. `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
2. 再び ​`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 の背後で実行されています。