こんにちは、サイオステクノロジーの前田です。
システム間の連携をするときに、APIを利用することが多くなっております。APIを簡易に作れるものがあれば嬉しいと思いませんか?APIを簡易に作成する製品の一つにFuse(Red Hat Fuse)という製品があります。本記事はFuseの説明とFuse OnlineをOpenShiftにデプロイして、そこから簡易なFuseアプリケーションをデプロイする方法をお話していきます。
Fuseについて
Fuseの正式名称は『Red Hat Fuse』と呼ばれクラウドネイティブな分散インテグレーション・プラットフォームとなります。『Apaceh Camel』等のOSSに基づいており、DBやAPIの連携以外にクラウドサービス等の連携することができるESB(Enterprise Service Bus)です。いろいろな接続ができるため接続可能な情報は下記リンクから確認ください。
参考リンク:接続可能なコネクタ情報
Fuseの実行環境
Fuseは主に3つの環境で実行されます。
- Fuseスタンドアロン
- Fuse on OpenShift
- Fuse Online
■Fuseスタンドアロン
RHELのOSでサポートされる従来の Fuse ディストリビューションです。
■Fuse on OpenShift
OpenShift でインテグレーションアプリケーションを実行するための Fuse ディストリビューションです。クライアント端末のeclipseやCRSを利用してプログラムを作成して、OpenShiftにデプロイします。
■Fuse Online
ブラウザベースの UI を使用して簡単なワークフローを備えた、インテグレーション初心者向けの Fuse ディストリビューションです。
OpenShiftクラスターにデプロイすることが可能で、ブラウザを利用して作成していきます。
概要 Fuse Online を利用したFuseのデプロイ
OpenShiftクラスターにFuse Onlineをデプロイします。その後Fuseアプリケーションをデプロイしていきます。Fuseアプリケーションの細かいつくり方まで話すと難しくなってしまうため、今回は省いております。
構築の流れ
- OpenShiftクラスターにプロジェクトを作成
- OperatorHubを利用してFuse OnlineのOperatorをインストール
- Fuse Online Operatorを利用してFuse Online(Syndesis)をデプロイ
- Fuse Onlineを利用して簡易なFuseアプリケーションをデプロイ
前提条件
- OpenShiftクラスターの構築が完了済み
- Red Hatのコンテナレジストリの認証情報取得済み
- 参考URL RedHatコンテナーレジストリーの認証
環境情報
- OpenShiftクラスター基盤: AWS
- OpenShiftクイックインストールでクラスター作成
- OpenShift version 4.10
- Fuse Online version 7.10
詳細手順 Fuse Online を利用したFuseのデプロイ
1 OpenShiftクラスターにプロジェクトを作成
管理コンソールにOperatorをインストールできる権限でログインを行い、プロジェクト(例: testfuseonline)を作成します。
CLIで作成する場合は下記コマンドでプロジェクトを作成します。
oc new-project testfuseonline
GUIでプロジェクト作成した場合はCLIでプロジェクトに移動します。
oc project testfuseonline
2 OperatorHubを利用してFuse OnlineのOperatorをインストール
OperatorHubを選択後、検索欄にfuseと入力します。
Red Hat Integration – Fuse Online を選択して インストール を押下します。
設定値入力画面で先ほど作成したプロジェクトを選択し、インストールを押下します。
完了まで数分待ちます。
こちらでFuse OnlineをデプロイするためのOperatorの設定は終了です。
3 Fuse Online Operatorを利用してFuse Online(Syndesis)をデプロイ
Fuse Online Operatorを利用してFuse Onlineをデプロイします。
デプロイするためにRed Hatのレジストリにアクセス可能な設定にしていきます。下記図はRedHatのレジストリへのアクセスするための認証情報のページになります。事前準備で認証情報を取得していない方はRedHatコンテナーレジストリーの認証の情報を確認して認証情報を取得ください。
Red Hatのレジストリにアクセスするために認証のためのシークレット(syndesis-pull-secret)を作成します。設定値を入れて、クライアント端末からocコマンドで作成します。
$ oc create secret docker-registry syndesis-pull-secret \ --docker-server=registry.redhat.io \ --docker-username=CUSTOMER_PORTAL_USERNAME \ --docker-password=CUSTOMER_PORTAL_PASSWORD \ --docker-email=EMAIL_ADDRESSせ
- 設定値
- docker-usernameの値をRed HatのRegistry Service AccountsのTokenのUsername(上画像の赤い部分)を設定
- docker-passwordの値をRed HatのRegistry Service AccountsのTokenのpassword(上画面の青い部分)を設定
- docker-emailの値ををRegistry Service Accountsを作成したメールアドレスを設定
シークレットをサービスアカウントに2つリンクさせます。
oc secrets link default syndesis-pull-secret --for=pull
oc secrets link builder syndesis-pull-secret --for=pull,mount
Operatorが自動的にコンテナ等をデプロイと設定をしてくれます。デプロイには少し時間がかかるのでプロジェクトのワークロードに移動してデプロイ状況が終わるのを待ちます。
全てがRunningのステータス(画面上の全部が青丸に囲まれた状態)になりましたら、Fuse Onlineに正常アクセスできるようになります。
ルート情報を確認してFuseOnlineのWebアプリケーションにアクセスします。
ルートから名前がsyndesisの項目に記載があるURLにアクセスしてください。
Fuse Onlineの管理画面として下記画像の内容が閲覧できることを確認します。
4 Fuse Onlineを利用して簡易なFuseアプリケーションをデプロイ
今回はリクエストが来ると固定文字列をログとして出力するという簡単なAPIアプリケーションを作成します。
- API Providerの作成
- API Providerを選択します。
- Create a new OpenAPI 3.x document を選択したあとNextを押下します。
- Procide API Definition の画面が表示されます。この画面上でURLのOpenAPIを作成していきます。
- タイトルをUntitled API から testFuseOnlineAPI に変更します。
- Pathsのプラスマークを押下して、/test というPathでAddを押下します。
- /test のPathのOPERATIONSのGETの状態で、Add Operationを押下します。
- RESPONSESの add a responseを押下し、200 OKを選択しAdd を押下します。
- RESPONSESの2oo OK のDescription に test と内容を追加します。
- RESPONSESの2oo OK のResponse BodyのAdd a media typeを押下し、application/json を選択し Addを押下します。
- Response BodyのTypeをstringに設定します。
- Saveを押下。Review Actionsの画面が表示されNextを選択します。
- Operationsの画面に移動しGet /testが表示されます。
- Operation フロー(integration)の作成
- デプロイ作業
- 動作確認
最後に
APIの利用は、最近どんどん盛んになってきています。FuseOnlineを利用することによって簡易にAPIを作成することができます。FuseOnlineの使い方が広がり技術者以外も、簡易にAPI等が作成でき、皆様のビジネス等に貢献できることの一端になれば幸せです。