様々な連携のためのFuse Online 導入と簡易API作成

こんにちは、サイオステクノロジーの前田です。

システム間の連携をするときに、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アプリケーションの細かいつくり方まで話すと難しくなってしまうため、今回は省いております。

構築の流れ

  1. OpenShiftクラスターにプロジェクトを作成
  2. OperatorHubを利用してFuse OnlineのOperatorをインストール
  3. Fuse Online Operatorを利用してFuse Online(Syndesis)をデプロイ
  4. Fuse Onlineを利用して簡易なFuseアプリケーションをデプロイ

前提条件

 

環境情報

  • 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
管理者コンソールを使用してインストールしたFuse OnlineオペレータからFuse Online(Syndesis)をデプロイしていきます。
 
インストール済みのOperator を選択して、Fuse Online を選択します。Fuse OnlineのタブからSyndesisを選択後、Syndesisの作成を押下する。

 

今回は設定変更せずに画面下の 作成 を押下します。
 

 

Operatorが自動的にコンテナ等をデプロイと設定をしてくれます。デプロイには少し時間がかかるのでプロジェクトのワークロードに移動してデプロイ状況が終わるのを待ちます。

全てがRunningのステータス(画面上の全部が青丸に囲まれた状態)になりましたら、Fuse Onlineに正常アクセスできるようになります。

ルート情報を確認してFuseOnlineのWebアプリケーションにアクセスします。

ルートから名前がsyndesisの項目に記載があるURLにアクセスしてください。

Fuse Onlineの管理画面として下記画像の内容が閲覧できることを確認します。

 

4 Fuse Onlineを利用して簡易なFuseアプリケーションをデプロイ

今回はリクエストが来ると固定文字列をログとして出力するという簡単なAPIアプリケーションを作成します。

  1. Fuse Onlineで画面上でインテグレーション作成
    1. Integrationsを選択します。
    1. Create Integrationを選択します。
    2. Choose a connectionの画面が表示されます。
  1. API Providerの作成
    1. API Providerを選択します。
    2. Create a new OpenAPI 3.x document を選択したあとNextを押下します。
    3. Procide API Definition の画面が表示されます。この画面上でURLのOpenAPIを作成していきます。
      1. タイトルをUntitled API から testFuseOnlineAPI に変更します。
      2. Pathsのプラスマークを押下して、/test  というPathでAddを押下します。
      3. /test のPathのOPERATIONSのGETの状態で、Add Operationを押下します。
      4. RESPONSESの add a responseを押下し、200 OKを選択しAdd を押下します。
      5. RESPONSESの2oo OK のDescription に test と内容を追加します。
      6. RESPONSESの2oo OK のResponse BodyのAdd a media typeを押下し、application/json を選択し Addを押下します。
      7. Response BodyのTypeをstringに設定します。
      8. Saveを押下。Review Actionsの画面が表示されNextを選択します。
    4. Operationsの画面に移動しGet /testが表示されます。
  1.  
  2. Operation フロー(integration)の作成 
    1. Get /testの右側 Create flow を押下します。
    2. Provided APIとProvided API Return Pathの間のプラスマークを選択します。
    3. Logを選択します。
    4. Meessage Bodyを選択して、Custom Textに Test Fuse API success と入力します。
    5. Next を押下します。
    6. Save を押下します。
    7. Save the integration の画面が表示されます
  3. デプロイ作業
    1. Name に first integration と入力します。
    2. Save and Publishを押下します。
    3. Integration Summaryの画面が表示され、Fuseアプリケーションがデプロイされます。
    4. デプロイが完了するとFuseアプリケーションのURLが表示されます。
  4. 動作確認
    1. コピーしたURLにPathとして/testを追加してブラウザでアクセスしてください。
    2. なにも表示されない画面が表示されます。
    3. Fuse OnlineのActivityの画面を確認して、Logが表示されていることを確認します。
    4. OpenShiftのtestfuseonlineプロジェクトにi-first-integrationのpodが作成さていることを確認します。
    5. 作成されたPodのログの表示を確認します。画面下にログが表示されます。
  5.  

 

最後に

APIの利用は、最近どんどん盛んになってきています。FuseOnlineを利用することによって簡易にAPIを作成することができます。FuseOnlineの使い方が広がり技術者以外も、簡易にAPI等が作成でき、皆様のビジネス等に貢献できることの一端になれば幸せです。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です