Fuse Online サンプルインテグレーションのチュートリアル
Web ベースの Fuse ディストリビューションである Fuse Online を使用してサンプルインテグレーションを作成する方法を確認します。
概要
前書き
Fuse Online では、アプリケーションやサービスからのデータを取得し、必要な場合はそのデータを操作することができます。さらに、データを全く異なるアプリケーションやサービスに送信することもできます。これはすべて、コードを作成せずに実行できます。
サンプルインテグレーションを作成して Fuse Online を見ていきます。比較表 は、最初に作成するサンプルインテグレーションを決定するのに役立ちます。次に、サンプルインテグレーションを作成する手順を確認します。
Fuse Online の ユーザーガイド も利用できます。
サポートを利用するには、Fuse Online の左ナビゲーションパネルで Support をクリックするか、右上の
をクリックしてから Support を選択 します。
多様性を受け入れるオープンソースの強化
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ をご覧ください。
第1章 最初に作成するサンプルインテグレーションの選択
サンプルインテグレーションは任意の順序で作成できます。以下の比較表は、最初に作成するインテグレーションを決定するのに役立ちます。
| |||
動作の説明 | 特定の Twitter ユーザーをメンションするツイートを取得してフィルターします。指定のテキストが含まれるツイートでは、インテグレーションはツイートに関連するデータを Salesforce に渡し、Salesforce は新しい取引先責任者を作成します。 | Salesforce で更新を取得し、データベースストアドプロシージャーを呼び出して、特定のデータベーステーブルを Salesforce の更新と同期します。 | Red Hat AMQ ブローカーから配達記録を取得し、カスタムステップを実行して、受領時に破損した商品を特定し、REST API に接続して、破損した商品の仕入先連絡情報を提供します。 |
学習内容 | Twitter および Salesforce への接続、Fuse Online がインターフェイスで OAuth プロトコルを使用するアプリケーションと連動する仕組み、アプリケーションより取得したデータフィールドからインテグレーションで次の接続アプリケーションが操作できるフィールドへのマッピング、インテグレーションの実行を続けるかどうかを判断するためのデータのフィルタリング。 | Salesforce および SQL データベースへの接続、OAuth のサポート、データマッピング、インテグレーションの一部として SQL データベースを更新する方法。 | Red Hat AMQ ブローカーおよび REST API への接続、データマッピング、ステップおよび REST API クライアントコネクターのエクステンションのアップロード、カスタムステップおよびカスタム API クライアントコネクションの使用。 |
平均完了時間 (分単位) | 25 | 20 | 25 |
完了時間についての注記 | これには、Twitter および Salesforce アカウントの取得に必要な時間が含まれます。これには、Salesforce 登録の反映と Fuse Online のインテグレーション実行の開始を待つ 5 - 12 分は含まれていません。 | 20 分には、Salesforce 開発者アカウントの取得に必要な時間が含まれますが、待機時間は含まれません。Twitter to Salesforce サンプルをすでに作成している場合、このインテグレーションの作成にかかる時間は 10 分です。 | これには、Fuse Online がインテグレーションの実行を開始するまでの時間は含まれません。 |
前提条件 | Twitter 開発者アカウントと Salesforce 開発者アカウントが必要です。 |
Salesforce 開発者アカウント、 |
|
第2章 Twitter to Salesforce サンプルインテグレーションの実装
このサンプルインテグレーションは、特定の Twitter ユーザーをメンションするツイートを Twitter で監視します。インテグレーションはそのようなツイートを見つけると、指定のテキストが含まれるツイートのみによってインテグレーションが続行されるよう、ツイートをフィルタリングします。
指定されたテキストが含まれるツイートでは、インテグレーションは Twitter ユーザー名などのそのツイートに関連するデータを Salesforce に渡し、Salesforce は新しい取引先責任者を作成します。
前提条件
-
Twitter 開発者アカウントが必要です。まだ Twitter 開発者アカウントを持っていない場合は、https://apps.twitter.com にアクセスし、Twitter にサインインしてから Apply for a developer account をクリックします。
you@gmail.com
のような個人アドレスではなく、me@redhat.com
のような企業のアドレスを提供すると、迅速に開発者アカウントを取得できます。 - 開発に使用される Salesforce インストールでアカウントが必要になります。このアカウントは Salesforce API にアクセスできる必要があります。Salesforce Enterprise アカウントまたは Salesforce Developer アカウントは Salesforce API にアクセスできます。無料の開発者アカウントを取得するには、https://developer.salesforce.com/signup にアクさきほどセスしてください。Salesforce アカウントの取得には最大 2 分かかります。
- Fuse Online 環境にログインしている必要があります。
このサンプルインテグレーションを実装、デプロイ、およびテストするための主なステップは次のとおりです。
2.1. Fuse Online を Twitter クライアントアプリケーションとして登録
インテグレーションで Twitter に接続するには、最初に Fuse Online 環境を Twitter にアクセスできるクライアントアプリケーションとして登録する必要があります。これにより、Twitter に接続するインテグレーションをいくつでも作成することができます。そのため、特定の Fuse Online 環境を 1 度だけ Twitter に登録する必要があります。
Fuse Online を Twitter クライアントアプリケーションとして登録できるのは、Fuse Online 環境ごとに 1 回のみです。しかし、各 Twitter コネクションは同じ登録を使用しますが、異なるユーザークレデンシャルを使用することができます。
前提条件
Fuse Online にログインしている必要があります。
手順
Fuse Online で以下を行います。
- 左側のパネルで Settings をクリックします。
-
Settings ページで、上部付近にあるコールバック URL の右側で
をクリックし、Fuse Online インストールのコールバック URL をクリップボードにコピーします。この手順の後半でこの URL が必要になります。
- Twitter エントリーをクリックし、Consumer API Key および Consumer API Secret Key フィールドを表示します。
別のブラウザータブで、Twitter 開発者アカウント にアクセスし、必要な場合はログインしてから以下を行います。
- Projects & Apps をクリックします。
- Overview ページで、STandalone Apps まで下にスクロールし、Create App をクリックします。
- App name フィールドに My Fuse Online Client などの名前を入力します。
- Setup Your App まで下方向にスクロールし、App settings をクリックします。
- User authentication settings まで下にスクロールし、Set up をクリックします。
- OAuth 1.0a オプションをオンにします。
- App permissions で、Read and write and Direct message を選択します。
-
Callback URLs フィールドに、この手順の最初にコピーした URL を貼り付けます。
https://app-proj912876.7b63.fuse-ignite.openshiftapps.com/api/v1/credentials/callback
のようになるはずです。 Website URL フィールドに、その URL を再度貼り付け、URL の最後にある
/api/v1/credentials/callback
を削除します。続くフィールドをいくつかスキップします。
- Save をクリックします。
- 作成したアプリのページ上部にある Keys and tokens タブをクリックします。
- Consumer Keys で Regenerate をクリックし、再生成することを確認します。
- API キーをコピーします。
- Fuse Online の Settings ページに戻り、Twitter のコンシューマー API キーを Fuse Online の Twitter Consumer API Key フィールドに貼り付けます。
- Twitter の Keys and tokens タブに戻り、コンシューマー API シークレットキーをコピーします。
- Fuse Online の Settings ページに戻り、Twitter のコンシューマー API シークレットキーを Fuse Online の Twitter Consumer API Secret Key フィールドに貼り付けます。
- Save をクリックします。
- Twitter エントリーをクリックして折りたたみます。
2.2. Twitter コネクションの作成
Twitter からデータを取得するインテグレーションを作成するには、最初に Twitter コネクションを作成する必要があります。Twitter コネクションを作成した後、任意の数のインテグレーションで使用できます。
前提条件
- Fuse Online にログインしている必要があります。
- Fuse Online がウェブブラウザーで開かれている必要があります。
- Fuse Online 環境が Twitter にアクセスできるアプリケーションとして登録されている必要があります。
- Fuse Online の Settings ページで登録した後に受け取った Twitter コンシューマー API キーおよびコンシューマー API シークレットキーが追加済みである必要があります。
手順
- Fuse Online の左パネルで Connections をクリックし、利用可能なコネクションを表示します。
- Create Connection をクリックし、利用できるコネクターを表示します。コネクターは、1 つ以上のコネクションを作成するために使用するテンプレートです。
- Twitter コネクターをクリックします。
Connect Twitter をクリックし、Twitter の承認ページを表示します。承認ページを表示するには Twitter にログインする必要があることがあります。
Connect Twitter が表示されない場合、Fuse Online 環境は Twitter クライアントアプリケーションとして登録されていません。Fuse Online を Twitter クライアントアプリケーションとして登録 を参照してください。Twitter コネクションの作成時に Fuse Online 環境が Twitter クライアントアプリケーションとして登録されていない場合、Fuse Online は承認情報を要求する複数のフィールドを表示します。これらのフィールドに値を入力して Twitter コネクションを作成することはできますが、推奨されません。
- Authorize app をクリックし、Fuse Online に戻ります。
-
Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、
Twitter Connect 1
を入力します。 -
Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。たとえば、
Sample Twitter connection that uses my Twitter login credentials.
を入力します。 - Save をクリックし、作成したコネクションが利用可能になったことを確認します。上記の例の名前を入力した場合は、インテグレーションに追加できるコネクションとして Twitter Connect 1 が表示されます。
2.3. Fuse Online を Salesforce クライアントアプリケーションとして登録
インテグレーションで Salesforce に接続するには、最初に Fuse Online 環境を Salesforce にアクセスできるクライアントアプリケーションとして登録する必要があります。これにより、Salesforce に接続するインテグレーションをいくつでも作成することができます。そのため、特定の Fuse Online 環境を 1 度だけ Salesforce に登録する必要があります。
Fuse Online を Salesforce クライアントアプリケーションとして登録できるのは、Fuse Online 環境ごとに 1 回のみです。ただし、各 Salesforce コネクションは同じ登録を使用しますが、異なるユーザー認証情報を使用することができます。
すでに Fuse Online を Salesforce クライアントとして登録し、Salesforce コネクションを作成している場合は、Twitter to Salesforce インテグレーションの作成およびデプロイ に進みます。
前提条件
Fuse Online にログインしている必要があります。
手順
Fuse Online で以下を行います。
- 左側のパネルで Settings をクリックします。
-
Settings ページで、上部付近にあるコールバック URL の右側で
をクリックし、Fuse Online 環境のコールバック URL をクリップボードにコピーします。この手順の最後の方でこの URL が必要になります。
- Salesforce エントリーをクリックして Client ID および Client Secret フィールドを表示します。
別のブラウザータブで、Salesforce アカウントにログインし、以下の手順にしたがって接続アプリケーションを作成します。これらの手順では、Salesforce Classic ユーザーインターフェイスを使用していることを仮定します。Salesforce Lighting Experience インターフェイスから切り替えるには、プロファイルアイコンをクリックして Switch to Salesforce Classic を選択します。追加情報は、Salesforce ドキュメントの Create a Connected App を参照してください。
- Salesforce で右上にある Setup をクリックします。
- 左側のパネルで Build > Create > Apps と選択します。
- Connected Apps まで下にスクロールし、New をクリックします。
- 必要な情報を入力し、Enable OAuth Settings を選択します。
-
Callback URL フィールドに、この手順の最初にコピーした Fuse Online URL を貼り付けます。たとえば、
https://app-proj912876.7b63.fuse-ignite.openshiftapps.com/api/v1/credentials/callback
などです。 OAuth Scopes では以下を追加します。
- API (api) を介してユーザーデータを管理する
- 一意のユーザー識別子 (openid) にアクセスする
- いつでもリクエストを実行 (refresh_token、offline_accesss)
- Configure ID token を選択し Include Standard Claims を選択します。
- 下にスクロールし、Save をクリックします。
-
上にスクロールし、Salesforce が短い待機時間を示していることを確認します。
- Continue をクリックします。
- Salesforce が提供するコンシューマー鍵をコピーします。
- Fuse Online の Settings ページに戻り、Salesforce が提供したコンシューマー鍵を Fuse Online の Salesforce Client ID フィールドに貼り付けます。
- Salesforce に戻り、Salesforce が提供するコンシューマーの秘密をコピーします。
- Fuse Online の Settings ページに戻り、Salesforce が提供したコンシューマーの秘密を Fuse Online の Salesforce Client Secret フィールドに貼り付けます。
- Save をクリックします。
- Salesforce エントリーをクリックして折りたたみます。
2.4. Salesforce コネクションの作成
Salesforce でデータにアクセスするインテグレーションを作成するには、最初に Salesforce コネクションを作成する必要があります。Salesforce コネクションの作成後、複数のインテグレーションで使用することができます。
前提条件
- Fuse Online にログインしている必要があります。
- Fuse Online がウェブブラウザーで開かれている必要があります。
- Fuse Online 環境が Salesforce にアクセスできるアプリケーションとして登録されている必要があります。
Fuse Online の Settings ページで登録した後に受け取った Salesforce クライアント ID およびクライアントシークレットが追加済みである必要があります。
Fuse Online が登録されていない場合は、Fuse Online を Salesforce クライアントアプリケーションとして登録 を参照してください。
Fuse Online インストールを Salesforce クライアントとして登録した後、必ず 2 - 10 分待ってから Salesforce コネクションを作成してください。
手順
- Fuse Online で、左側のパネルにある Connections をクリックして、使用できるコネクションを表示します。
- Create Connection をクリックし、利用できるコネクターを表示します。コネクターは、1 つ以上のコネクションを作成するためのテンプレートです。
- Salesforce コネクターをクリックします。
Connect Salesforce をクリックして、Salesforce の承認ページを表示します。承認ページを表示するには Salesforce にログインする必要があることがあります。
Connect Salesforce が表示されない場合、Fuse Online 環境は Salesforce クライアントアプリケーションとして登録されていません。Fuse Online を Salesforce クライアントアプリケーションとして登録 を参照してください。Salesforce コネクションの作成時に Fuse Online 環境が Salesforce クライアントアプリケーションとして登録されていない場合、Fuse Online は承認を要求する複数のフィールドを表示します。これらのフィールドに値を入力して Salesforce コネクションを作成することはできますが、推奨されません。
注記以下のエラーは、Salesforce に正しい Fuse Online コールバック URL が指定されていないことを表しています。
error=redirect_uri_mismatch&error_description=redirect_uri%20must%20match%20configuration
このエラーメッセージが表示されたら、Salesforce で Fuse Online を Salesforce クライアントアプリケーションとして登録 の手順にしたがって Fuse Online コールバック URL が指定されていることを確認してください。
- Allow をクリックして、Fuse Online に戻ります。
-
Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、
SF Connect 1
を入力します。 -
Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。たとえば、
Sample Salesforce connection that uses my Salesforce login credentials.
を入力します。 - Save をクリックし、作成したコネクションが利用可能になったことを確認します。上記の例の名前を入力した場合は、インテグレーションに追加できるコネクションとして SF Connect 1 が表示されます。
2.5. Twitter to Salesforce サンプルインテグレーションの作成およびデプロイ
作成した Twitter コネクションと Salesforce コネクションを使用するインテグレーションを作成してデプロイする場合、主なステップは次のとおりです。
前提条件
- Fuse Online 環境が Twitter クライアントとして登録され、Fuse Online の Twitter コネクションが作成されている必要があります。
- Fuse Online 環境が Salesforce クライアントとして登録され、Fuse Online の Salesforce コネクションが作成されている必要があります。
- Fuse Online を開いて、ログインしている必要があります。
2.5.1. 最初のコネクションの選択
Fuse Online で Twitter to Salesforce サンプルインテグレーションを作成するには、先に最初のコネクションを選択します。
前提条件
- Twitter コネクションが作成されている必要があります。
手順
- 左側の Integrations をクリックします。
- Create Integration をクリックします。
- Choose a connection ページで、作成した Twitter コネクションをクリックします。上記の例の名前を入力した場合は、Twitter Connect 1 をクリックします。インテグレーションが起動されたら、このコネクションに定義された認証情報を使用して Twitter に接続します。
- Choose an action ページで、Mention アクションエントリーの右にある Select をクリックします。
- Configure the action ページで Next をクリックします。設定は必要ありません。
次のステップ
インテグレーションの稼働中、Twitter に接続すると、インテグレーションは Twitter のスクリーン名が含まれるメンションを Twitter で監視します。一致すると、インテグレーションの次のステップがトリガーされます。ただし、コネクション間のデータを操作するステップを追加する前に、インテグレーションが作業を完了するために使用するコネクションを選択します。
2.5.2. 最後のコネクションの選択
Fuse Online で、Twitter to Salesforce サンプルインテグレーションの作成を続けるには、最初のコネクションを追加した後、最後のコネクションをインテグレーションに追加します。
前提条件
- Twitter コネクションを最初のコネクションとしてインテグレーションに追加済みである必要があります。
- Fuse Online は最後のコネクションの追加を要求します。
- Salesforce コネクションが作成されている必要があります。
手順
- Choose a connection ページで、作成した Salesforce コネクションをクリックします。上記の例の名前を入力した場合は、SF Connect 1 をクリックします。このインテグレーションは、このコネクションに定義された認証情報を使用して Salesforce に接続することで終了します。
- Choose an action ページで、New record エントリーの右側にある Select をクリックします。
- Configure the action ページで、Object name フィールドをクリックし、Contact を作成する Salesforce レコードとして選択します。
- Next をクリックして最後のコネクションをインテグレーションに追加します。
2.5.3. 基本フィルターステップの追加
Fuse Online で、Twitter to Salesforce サンプルインテグレーションの作成を続けるには、特定のコンテンツをメンションするツイートをチェックする基本フィルターステップを追加します。インテグレーションの実行時、処理は、そのコンテンツが存在する場合にのみ続行されます。
前提条件
- Twitter コネクションがインテグレーションの最初のコネクションとして追加済みである必要があります。
- Salesforce コネクションがインテグレーションの最後のコネクションとして追加済みである必要があります。
手順
- インテグレーションビジュアライゼーションでプラス記号をクリックし、インテグレーションに追加できるステップを表示します。
- Basic Filter をクリックします。
-
Property Name フィールドに
text
を入力し、フィールドの下にtext
が表示されたら、クリックします。ツイートが含まれる Twittertext
フィールドは、フィルターで評価するデータです。 - Operator フィールドで、インテグレーションを続行させる条件として contains を受け入れます。
-
Keywords フィールドに
#RedHatIsGreat
または確認する値として選択したその他のテキストを入力します。インテグレーションがこのデータの処理を続行するには、ユーザーをメンションするツイートにここに入力するテキストが含まれている必要があります。 - Done をクリックして、基本フィルターステップをインテグレーションに追加します。
2.5.4. データマッピングステップの追加
Twitter to Salesforce サンプルインテグレーションの作成を続けるには、Twitter メンションフィールドを Salesforce の取引先責任者フィールドに関連付けるデータマッピングステップを追加します。
前提条件
- インテグレーションの最初のコネクションは Twitter へのコネクションです。
- インテグレーションの最後のコネクションは Salesforce へのコネクションです。
- この 2 つのコネクションの間のフィルターステップを追加したばかりです。
手順
- Fuse Online のインテグレーションビジュアライゼーションで、フィルターステップと最後のコネクションの間にあるプラス記号をクリックします。
- Data Mapper をクリックし、しばらく待機します。データフィールドが表示されると、左側の Sources パネルに Twitter フィールドが表示され、右側の Target パネルに Salesforce フィールドが表示されます。
Twitter の
name
フィールドを Salesforce のFirstName
とLastName
フィールドにマップします。-
Sources パネルで、虫眼鏡
をクリックして検索フィールドを表示し、
name
を入力します。 -
user
フォルダーでname
フィールドをクリックし、Create New Mapping アイコンをクリックします。 -
Mapping Details パネルの Targets フィールドに LastName と入力してターゲットフィールドのリストを絞り込み、
/LastName
を選択します。データマッパーは、ソースのname
フィールドからターゲットのLastName
フィールドへの線を表示します。 Mapping Details パネルの Targets フィールドに FirstName と入力して、ターゲットフィールドのリストを絞り込み、
/FirstName
を選択します。データマッパーは Twitter の
name
フィールドから別の線を表示しますが、今回は Salesforce のFirstName
フィールドへとつながっています。青い線は、現在のフォーカスを示しています。注記誤ったフィールドをマップした場合は、データマッパーの Mapping Details パネルでごみ箱アイコンをクリックし、誤ったマッピングを削除します。
-
Mapping Details パネルの Targets で、
LastName
にインデックス#1
が割り当てられ、FirstName
にインデックス#2
が割り当てられていることを確認します。
-
Sources パネルで、虫眼鏡
Twitter の
screenName
フィールドを Salesforce のTitle
フィールドにマップします。- Sources パネルで screenName フィールドをクリックします。
-
Target パネル上部の右側にある虫眼鏡
をクリックして検索フィールドを表示し、
Title
を入力します。 - Title フィールドをクリックします。データマッパーは Twitter の screenName フィールドから Salesforce の Title フィールドへの線を表示します。
Twitter の
text
フィールドを Salesforce のDescription
フィールドにマップします。-
Sources 検索フィールドに
text
を入力し、text フィールドをクリックします。必ず最上位の text フィールドをクリックします。user フィールドに含まれる text フィールドのいずれかをクリックしないでください。 -
Target 検索フィールドに、
description
を入力します。 - Salesforce の Description フィールドをクリックしてマッピングを作成します。
-
Sources 検索フィールドに
-
左上のグリッドアイコン
をクリックすると、マッピングのリストが次のように表示されます。
- 右上の Done をクリックします。
2.5.5. インテグレーションの命名とデプロイ
Twitter to Salesforce のサンプルインテグレーションが完了したら、デプロイして、その動作を確認できます。
前提条件
- インテグレーションの最初のコネクションは Twitter です。
- インテグレーションの最後のコネクションは Salesforce です。
- インテグレーションにはフィルターステップがあります。
- インテグレーションにデータマッピングステップを追加したばかりです。
手順
- 右上の Publish をクリックします。
-
Name フィールドで、このインテグレーションを別のインテグレーションと区別するための任意の名前を入力します。たとえば、
Twitter to Salesforce Sample Integration
などです。 - 任意で、Description フィールドに、このインテグレーションに関する便利な情報を入力します。
- 必要に応じて、統合用に 1 つ以上のカスタム環境変数を追加します。
- 必要に応じて、Labels フィールドに 1 つ以上のラベルを追加します。ラベルは、後で OpenShift でフィルタリングおよび選択するために、統合に適用できるキーと値のペアのタグです。たとえば、OpenShift 管理者ユーザーは、実行中の Pod またはデプロイメントのリストをラベルでフィルタリングできます。
Save and publish をクリックします。
Fuse Online はインテグレーションのデプロイを開始し、インテグレーションの概要を表示します。上部付近に、パブリッシュステージを示す進捗インジケーターが表示されます。Fuse Online はインテグレーションのランタイムを生成し、ランタイムの準備ができると開始します。これには数分かかります。
Fuse Online アカウントは、同時に実行可能なインテグレーションの数が制限されています。詳細は、価格プランを参照してください。インテグレーションの最大数をすでに実行している場合、別のインテグレーションの実行を開始する前にインテグレーションを停止する必要があります。
すでに最大数のインテグレーションが稼働中である場合、以下のステップにしたがってインテグレーションを停止します。
- 左側のパネルで Integrations をクリックします。
-
停止するインテグレーションのエントリーで、右端の
をクリックします。
- ポップアップで Stop をクリックします。
インテグレーションの停止後、別のインテグレーションを以下のように起動します。
- 左側のパネルで Integrations をクリックします。
-
起動するインテグレーションのエントリーで、右端の
をクリックします。
- ポップアップで Start をクリックします。
2.6. Twitter to Salesforce インテグレーションの動作の確認
Twitter to Salesforce サンプルインテグレーションが動作していることを確認するには、ツイートを作成し、Salesforce で結果を確認します。
前提条件
- Fuse Online でパブリッシュ時に Twitter to Salesforce サンプルインテグレーションに指定した名前の横に Running が表示されています。
- Twitter および Salesforce アカウントにアクセスできます。
手順
- Fuse Online の左側のパネルで Integrations をクリックし、作成したインテグレーションが Running インテグレーションであることを確認します。上記の例の名前を入力した場合は、Twitter to Salesforce Sample Integration が稼働中であるのを確認できます。
ツイートに基本フィルターステップで指定されたテキストが含まれていなければインテグレーションは取引先責任者レコードを作成しないことを確認します。
Twitter で、以下のようなツイートを送信します。
- ユーザーの Twitter ハンドルをメンションしている
基本フィルターステップで指定したテキストが含まれていない
例:
@Aslan #likesRedHat
- ポーリング間隔が経過するのを待ちます。これには 30 - 60 秒かかります。
- Salesforce で、ツイートに使用した Twitter アカウントに関連する名前の新しい取引先責任者レコードがないことを確認します。
次の場合、インテグレーションが新しい取引先責任者レコードを作成することを確認します。
Twitter で、以下のようなツイートを送信します。
- ユーザーの Twitter ハンドルをメンションしている
基本フィルターステップで指定したテキストが含まれる
例:
@Aslan knows #RedHatIsGreat
- ポーリング間隔が経過するのを待ちます。
Salesforce で以下を行います。
- Salesforce 開発者アカウントではなく、通常の Salesforce アカウントにログインします。
- ホームページの Recent Items の下に新しい取引先責任者が表示されるはずです。
詳細を表示するには、それをクリックします。
新規の取引先責任者レコードには、ツイートに使用した Twitter アカウントに関連する名前があるはずです。ツイートのテキストは Description フィールドに、Twitter のスクリーン名は Title フィールドに入力されているはずです。
任意で、インテグレーションログを表示して、予期せぬ結果のトラブルシューティングや、インテグレーション実行の詳細確認を行います。
- Fuse Online の左パネルで Integrations をクリックします。
- Twitter to Salesforce インテグレーションを表示します。
- インテグレーションの概要ページで Activity タブをクリックします。
- アクティビティー情報を表示するインテグレーションの実行をクリックします。
2.7. インテグレーションのクリーンアップ
サンプルインテグレーションの作業が完了したら、それを停止して削除し、別のインテグレーションでリソースを使用できるようにする必要があります。
前提条件
- パブリッシュしたサンプルインテグレーションの使用を終了している必要があります。
手順
- Fuse Online の左パネルで Integrations をクリックします。
- メインパネルで、停止するサンプルインテグレーションのエントリーを特定します。
-
そのエントリーの右側にある
をクリックし、Stop をクリックします。
- Stop をクリックし、インテグレーションの実行を停止することを確認します。
-
停止したインテグレーションのエントリーで、右側の
をクリックし、Delete をクリックします。
- Delete をクリックし、インテグレーションを削除することを確認します。
第3章 Salesforce to database サンプルインテグレーションの実装
このサンプルインテグレーションは Salesforce の更新を取得し、データベースストアドプロシージャーを呼び出します。これにより、そのデータベースと Salesforce の更新を同期します。
前提条件
開発に使用される Salesforce インストールでアカウントが必要になります。このアカウントは Salesforce API にアクセスできる必要があります。Salesforce Enterprise アカウントまたは Salesforce Developer アカウントは Salesforce API にアクセスできます。無料の開発者アカウントを取得するには、https://developer.salesforce.com/signup にアクさきほどセスしてください。Salesforce アカウントの取得には最大 2 分かかります。
Twitter to Salesforce サンプルインテグレーションをすでに作成している場合は、次に該当します。
- Fuse Online がすでに Salesforce クライアントとして登録されています。これをもう一度実行する必要はありません。
- このサンプルインテグレーションで再利用できる Salesforce コネクションがあります。
Twitter to Salesforce サンプルインテグレーションを作成していない場合は、Fuse Online を Salesforce クライアントとして登録し、Salesforce to database サンプルインテグレーションを完了するために Salesforce コネクションを作成する必要があります。
- Fuse Online 環境にログインしている必要があります。
- 管理者が Fuse Online サンプルデータを追加した OpenShift Container Platform プロジェクトで実行されている Fuse Online 環境で作業しています。この環境では、インテグレーションが想定どおり動作することを確認するための PostgresDB 接続および To Do アプリケーションが提供されます。
このサンプルインテグレーションを実装、デプロイ、およびテストするための主なステップは次のとおりです。
3.1. Fuse Online を Salesforce クライアントアプリケーションとして登録
インテグレーションで Salesforce に接続するには、最初に Fuse Online 環境を Salesforce にアクセスできるクライアントアプリケーションとして登録する必要があります。これにより、Salesforce に接続するインテグレーションをいくつでも作成することができます。そのため、特定の Fuse Online 環境を 1 度だけ Salesforce に登録する必要があります。
Fuse Online を Salesforce クライアントアプリケーションとして登録できるのは、Fuse Online 環境ごとに 1 回のみです。ただし、各 Salesforce コネクションは同じ登録を使用しますが、異なるユーザー認証情報を使用することができます。
すでに Fuse Online を Salesforce クライアントとして登録し、Salesforce コネクションを作成している場合は、Salesforce to database インテグレーションの作成およびデプロイ に進みます。
前提条件
Fuse Online にログインしている必要があります。
手順
Fuse Online で以下を行います。
- 左側のパネルで Settings をクリックします。
-
Settings ページで、上部付近にあるコールバック URL の右側で
をクリックし、Fuse Online 環境のコールバック URL をクリップボードにコピーします。この手順の最後の方でこの URL が必要になります。
- Salesforce エントリーをクリックして Client ID および Client Secret フィールドを表示します。
別のブラウザータブで、Salesforce アカウントにログインし、以下の手順にしたがって接続アプリケーションを作成します。これらの手順では、Salesforce Classic ユーザーインターフェイスを使用していることを仮定します。Salesforce Lighting Experience インターフェイスから切り替えるには、プロファイルアイコンをクリックして Switch to Salesforce Classic を選択します。追加情報は、Salesforce ドキュメントの Create a Connected App を参照してください。
- Salesforce で右上にある Setup をクリックします。
- 左側のパネルで Build > Create > Apps と選択します。
- Connected Apps まで下にスクロールし、New をクリックします。
- 必要な情報を入力し、Enable OAuth Settings を選択します。
-
Callback URL フィールドに、この手順の最初にコピーした Fuse Online URL を貼り付けます。たとえば、
https://app-proj912876.7b63.fuse-ignite.openshiftapps.com/api/v1/credentials/callback
などです。 OAuth Scopes では以下を追加します。
- API (api) を介してユーザーデータを管理する
- 一意のユーザー識別子 (openid) にアクセスする
- いつでもリクエストを実行 (refresh_token、offline_accesss)
- Configure ID token を選択し Include Standard Claims を選択します。
- 下にスクロールし、Save をクリックします。
-
上にスクロールし、Salesforce が短い待機時間を示していることを確認します。
- Continue をクリックします。
- Salesforce が提供するコンシューマー鍵をコピーします。
- Fuse Online の Settings ページに戻り、Salesforce が提供したコンシューマー鍵を Fuse Online の Salesforce Client ID フィールドに貼り付けます。
- Salesforce に戻り、Salesforce が提供するコンシューマーの秘密をコピーします。
- Fuse Online の Settings ページに戻り、Salesforce が提供したコンシューマーの秘密を Fuse Online の Salesforce Client Secret フィールドに貼り付けます。
- Save をクリックします。
- Salesforce エントリーをクリックして折りたたみます。
3.2. Salesforce コネクションの作成
Salesforce でデータにアクセスするインテグレーションを作成するには、最初に Salesforce コネクションを作成する必要があります。Salesforce コネクションの作成後、複数のインテグレーションで使用することができます。
前提条件
- Fuse Online にログインしている必要があります。
- Fuse Online がウェブブラウザーで開かれている必要があります。
- Fuse Online 環境が Salesforce にアクセスできるアプリケーションとして登録されている必要があります。
Fuse Online の Settings ページで登録した後に受け取った Salesforce クライアント ID およびクライアントシークレットが追加済みである必要があります。
Fuse Online が登録されていない場合は、Fuse Online を Salesforce クライアントアプリケーションとして登録 を参照してください。
Fuse Online インストールを Salesforce クライアントとして登録した後、必ず 2 - 10 分待ってから Salesforce コネクションを作成してください。
手順
- Fuse Online で、左側のパネルにある Connections をクリックして、使用できるコネクションを表示します。
- Create Connection をクリックし、利用できるコネクターを表示します。コネクターは、1 つ以上のコネクションを作成するためのテンプレートです。
- Salesforce コネクターをクリックします。
Connect Salesforce をクリックして、Salesforce の承認ページを表示します。承認ページを表示するには Salesforce にログインする必要があることがあります。
Connect Salesforce が表示されない場合、Fuse Online 環境は Salesforce クライアントアプリケーションとして登録されていません。Fuse Online を Salesforce クライアントアプリケーションとして登録 を参照してください。Salesforce コネクションの作成時に Fuse Online 環境が Salesforce クライアントアプリケーションとして登録されていない場合、Fuse Online は承認を要求する複数のフィールドを表示します。これらのフィールドに値を入力して Salesforce コネクションを作成することはできますが、推奨されません。
注記以下のエラーは、Salesforce に正しい Fuse Online コールバック URL が指定されていないことを表しています。
error=redirect_uri_mismatch&error_description=redirect_uri%20must%20match%20configuration
このエラーメッセージが表示されたら、Salesforce で Fuse Online を Salesforce クライアントアプリケーションとして登録 の手順にしたがって Fuse Online コールバック URL が指定されていることを確認してください。
- Allow をクリックして、Fuse Online に戻ります。
-
Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、
SF Connect 1
を入力します。 -
Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。たとえば、
Sample Salesforce connection that uses my Salesforce login credentials.
を入力します。 - Save をクリックし、作成したコネクションが利用可能になったことを確認します。上記の例の名前を入力した場合は、インテグレーションに追加できるコネクションとして SF Connect 1 が表示されます。
3.3. Salesforce to database サンプルインテグレーションの作成およびデプロイ
作成した Salesforce コネクションと Fuse Online で提供されるデータベースコネクションを使用するインテグレーションを作成してデプロイする場合、主なステップは次のとおりです。
前提条件
- Fuse Online 環境が Salesforce クライアントとして登録されている必要があります。
- Fuse Online の Salesforce コネクションが作成されている必要があります。
- Fuse Online を開いて、ログインしている必要があります。
3.3.1. 最初のコネクションの選択
Fuse Online で Salesforce to database のサンプルインテグレーションを作成するには、先に最初のコネクションを選択します。
前提条件
- Salesforce コネクションが作成されている必要があります。
手順
- Fuse Online で左側にある Integrations をクリックします。
- Create Integration をクリックします。
- Choose a connection ページで Salesforce コネクションをクリックします。上記の例の名前を指定した場合は、SF Connect 1 をクリックします。
- Choose an action ページで On create の右側にある Select をクリックします。
- Object name フィールドで Lead を選択します。
- Next をクリックして最初のコネクションをインテグレーションに追加します。
次のステップ
インテグレーションの稼働中に Salesforce に接続すると、インテグレーションは Salesforce Lead レコードが作成されたことを示す通知を監視します。インテグレーションはそのような通知を見つけると、新しいリードデータをインテグレーションの次のステップに渡します。ただし、次のステップを追加するには、先にインテグレーションの最後のコネクションを選択する必要があります。
3.3.2. 最後のコネクションの選択
Fuse Online で Salesforce to database サンプルインテグレーションの作成を続けるには、最初のコネクションを追加した後、最後のコネクションをインテグレーションに追加します。
前提条件
- Salesforce コネクションを最初のコネクションとしてインテグレーションに追加済みである必要があります。
- Fuse Online は最後のコネクションの追加を要求します。
手順
- Fuse Online の Choose a connection ページで PostgresDB コネクションをクリックします。このインテグレーションは、このデータベースコネクションに定義された認証情報を使用して、提供されたサンプルデータベースに接続することで終了します。
- Choose an action ページで Invoke stored procedure を選択します。これはデータをストアドプロシージャーに渡します。
- Procedure name フィールドで add_lead を受け入れます。これは、サンプルデータベースで実行するために用意されたストアドプロシージャーです。選択した手順は、たとえばどの Salesforce データフィールドをどのデータベースフィールドにマップする必要があるかなど、インテグレーションの追加ステップの要件を決定します。
- Next をクリックして最後のコネクションをインテグレーションに追加します。
3.3.3. データマッピングステップの追加
Salesforce to database サンプルインテグレーションの作成を続けるには、Salesforce リードフィールドをサンプルデータベースのフィールドに関連付けるデータマッピングステップを追加します。
前提条件
- インテグレーションの最初のコネクションは Salesforce へのコネクションです。
- インテグレーションの最後のコネクションは PostgresDB サンプルデータベースへのコネクションになります。
手順
- Fuse Online のインテグレーションビジュアライゼーションで、プラス記号をクリックします。
- Data Mapper をクリックし、しばらく待機します。データフィールドが表示されると、左側の Sources パネルに Salesforce フィールドが表示され、右側の Target パネルにデータベースフィールドが表示されます。
Salesforce の
Company
フィールドをデータベースのcompany
フィールドにマップします。左側の Sources パネルで Company をクリックし、それを Target パネルの company にドラッグします。データマッパーはソースフィールドからターゲットフィールドへの線を表示します。
-
Sources (Salesforce) の
Email
フィールドを Target (database) のemail
フィールドにマップします。 2 つの Salesforce フィールド (
FirstName
およびLastName
) をデータベースのfirst_and_last_name
フィールドにマップします。- Target パネルで first_and_last_name をクリックし、Create New Mapping アイコンをクリックします。
Mapping Details パネルの Sources フィールドで /FirstName を選択した後、/LastName を選択します。
作業が完了したら、各ソースフィールドからターゲットフィールドへの線が表示されるはずです。
以下のマッピングを追加します。
マッピング元の Salesforce フィールド マッピング先のデータベースフィールド LeadSource
lead_source
Status
lead_status
Phone
phone
Rating
rating
- 右上の Done をクリックします。
3.3.4. インテグレーションの命名とデプロイ
Salesforce to database サンプルインテグレーションが完了したら、これをデプロイして、その動作を確認できます。
前提条件
- インテグレーションの最初のコネクションは Salesforce です。
- インテグレーションの最後のコネクションは Fuse Online によって提供されるサンプルデータベースへのコネクションになります。
- インテグレーションにデータマッピングステップを追加したばかりです。
手順
- Fuse Online の右上にある Publish をクリックし、名前を付けます。
-
Name フィールドに、インテグレーションの名前を入力します。たとえば、
Salesforce to Database Sample Integration
などです。 - 任意で、Description フィールドに、このインテグレーションに関する便利な情報を入力します。
- 必要に応じて、Labels フィールドに 1 つ以上のラベルを追加します。ラベルは、後で OpenShift でフィルタリングおよび選択するために、統合に適用できるキーと値のペアのタグです。たとえば、OpenShift 管理者ユーザーは、実行中の Pod またはデプロイメントのリストをラベルでフィルタリングできます。
Save and publish をクリックします。
Fuse Online はインテグレーションのデプロイを開始し、この環境のインテグレーションのリストを表示します。Salesforce to database インテグレーションのエントリーには、パブリッシュステージを示す進捗インジケーターが表示されます。Fuse Online はインテグレーションのランタイムを生成し、ランタイムの準備ができると開始します。これには数分かかります。
Fuse Online アカウントは、同時に実行可能なインテグレーションの数が制限されています。詳細は、価格プランを参照してください。インテグレーションの最大数をすでに実行している場合、別のインテグレーションの実行を開始する前にインテグレーションを停止する必要があります。
すでに最大数のインテグレーションが稼働中である場合、以下のステップにしたがってインテグレーションを停止します。
- 左側のパネルで Integrations をクリックします。
-
停止するインテグレーションのエントリーで、右端の
をクリックします。
- ポップアップで Stop をクリックします。
インテグレーションの停止後、別のインテグレーションを以下のように起動します。
- 左側のパネルで Integrations をクリックします。
-
起動するインテグレーションのエントリーで、右端の
をクリックします。
- ポップアップで Publish をクリックします。
3.4. Salesforce to database インテグレーションの動作の確認
Salesforce to database インテグレーションが動作していることを確認するには、Salesforce に新しいリードを作成し、Fuse Online が提供する web アプリケーションを開いてサンプルデータベースの更新を表示します。
前提条件
- Fuse Online でパブリッシュ時に Salesforce to database サンプルインテグレーションに指定した名前の横に Running が表示されています。
- Salesforce アカウントにアクセスできます。
手順
- 左側のパネルで Integrations をクリックします。
- 必要な場合は、サンプルインテグレーションが Running インテグレーションになるまで待ちます。例の名前を使用した場合は、Salesforce to Database Sample Integration が Running であることを確認します。
- Salesforce インストールで、新しいリードを作成します。マップした次のフィールドに必ずデータを入力します (Company、Email、FirstName、LastName、LeadSource、Status、Phone、Rating)。
新しいブラウザーウインドウで、Fuse Online 環境の URL の前に
todo-
を挿入します。たとえば、http://todo-app-proj761432.6a63.fuse-ignite.openshiftapps.com/
のようになります。Fuse Online 環境には To Do アプリケーションがあり、これにはタスクが含まれるデータベースにアクセスするための REST API があります。AMQ から REST API へのサンプルインテグレーションのチュートリアルには、To Do アプリケーションが API クライアントコネクターを作成するための OpenAPI ドキュメントをアップロードする手順があります。
- To Do App 画面に、データベースに新しいリードが作成されたことを示す通知が表示されるはずです。
任意で、インテグレーションログを表示して、予期せぬ結果のトラブルシューティングや、インテグレーション実行の詳細確認を行います。
- Fuse Online の左パネルで Integrations をクリックします。
- Salesforce to database インテグレーションを表示します。
- インテグレーションの概要ページで Activity タブをクリックします。
- アクティビティー情報を表示するインテグレーションの実行をクリックします。
3.5. インテグレーションのクリーンアップ
サンプルインテグレーションの作業が完了したら、それを停止して削除し、別のインテグレーションでリソースを使用できるようにする必要があります。
前提条件
- パブリッシュしたサンプルインテグレーションの使用を終了している必要があります。
手順
- Fuse Online の左パネルで Integrations をクリックします。
- メインパネルで、停止するサンプルインテグレーションのエントリーを特定します。
-
そのエントリーの右側にある
をクリックし、Stop をクリックします。
- Stop をクリックし、インテグレーションの実行を停止することを確認します。
-
停止したインテグレーションのエントリーで、右側の
をクリックし、Delete をクリックします。
- Delete をクリックし、インテグレーションを削除することを確認します。
第4章 AMQ to REST API サンプルインテグレーションの実装
このサンプルインテグレーションは Red Hat AMQ ブローカーに接続し、仮の企業の商品配達記録を取得します。その後、インテグレーションは記録に対してカスタムステップを実行し、受領時に破損した商品を特定します。単純なデータマッピングの後に、インテグレーションは REST API に接続し、破損した商品の仕入先連絡先情報を取得します。
他のサンプルインテグレーションは Fuse Online に組み込まれているコネクターとデータオペレーションを使用します。このインテグレーションはこの他に、以下の手順で Fuse Online のカスタマイズおよび拡張を実行する指示も提供します。
- エクステンションをアップロードしてカスタムのデータオペレーションを追加。
- OpenAPI ドキュメントをアップロードして、カスタム REST API クライアントコネクターを追加。
Fuse Online はエクステンションファイルと OpenAPI ドキュメントを提供します。
前提条件
- Fuse Online にログインしている必要があります。
- 管理者が Fuse Online サンプルデータを追加した OpenShift Container Platform プロジェクトで実行されている Fuse Online 環境で作業しています。この環境では、インテグレーションが想定どおり動作することを確認するためのサンプル PostgresDB 接続、AMQ Broker、および To Do アプリケーションが提供されます。
AMQ to REST API サンプルインテグレーションを実装するための主なステップは次のとおりです。
4.1. AMQ コネクションの作成
AMQ to REST API サンプルインテグレーションは、OpenShift プロジェクトで提供される AMQ ブローカー (Red Hat AMQ) に接続して開始します。インテグレーション自体の作成を開始する前に、ブローカーを起動して、そのブローカーへのコネクションを作成する必要があります。
手順
ブローカーが起動していることを確認します。
- ブラウザーで OpenShift Web コンソールに移動します。
- コンソールで、Project をクリックします。
- Overview ページの Inventory セクションで Services をクリックします。
-
broker-amq-tcp をクリックした後、Pods をクリックします。Pod の状態は
Running
である必要があります。
AMQ コネクションを作成します。
- Fuse Online の左パネルで Connections をクリックし、利用可能なコネクションを表示します。
- Create Connection をクリックし、Fuse Online コネクターを表示します。
- Red Hat AMQ コネクターを表示します。
以下を入力してコネクションを設定します。
-
Broker URL フィールドに、データの取得元となる場所として
tcp://broker-amq-tcp:61616
を入力します。 -
User name フィールドに、この AMQ ブローカーにアクセスするアカウントのユーザー名として
amq
を入力します。 -
Password フィールドに、この AMQ ブローカーにアクセスするアカウントのパスワードとして
topSecret
を入力します。 - 他のフィールドは空白のままにします。
-
Broker URL フィールドに、データの取得元となる場所として
- Validate をクリックします。Fuse Online では即座にコネクションの検証が試行され、バリデーションの成功または失敗を示すメッセージが表示されます。バリデーションに失敗した場合は、入力した値を確認して再度検証を行います。
- バリデーションに成功したら Next をクリックします。
-
Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、
Red Hat AMQ Broker 1
を入力します。 -
Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。たとえば、
Connection to the provided Red Hat AMQ message broker
を入力します。 - Save をクリックし、作成したコネクションが利用可能になったことを確認します。上記の例の名前を入力した場合は、Red Hat AMQ Broker 1 が利用可能であることが確認できます。
4.2. カスタムステップの準備
Fuse Online には、コネクション間のインテグレーションデータを操作する多くのステップがあります。Fuse Online に、必要とするコネクション間のステップがない場合、開発者はコネクション間のデータを操作するカスタムステップを 1 つ以上定義するエクステンションを作成できます。開発者は、エクステンションが含まれる .jar
ファイルを提供します。その後、Fuse Online でエクステンションをアップロードし、インテグレーションでカスタムステップを使用できるようにします。
AMQ to REST API サンプルインテグレーションは、コネクション間のデータを操作するカスタムステップを使用し、受領時に破損した商品を特定します。
手順
- 新しいブラウザータブで https://github.com/syndesisio/fuse-online-sample-extension/releases を開きます。
-
Damage Reporter エクステンションの
.jar
ファイルをダウンロードします。 - Fuse Online の左側のパネルで Customizations > Extensions をクリックします。
- Import Extension をクリックします。
-
点線のボックスをクリックし、エクステンションが含まれるダウンロードした
.jar
ファイルを選択します。Fuse Online はファイルを検証し、エクステンションの ID、名前、説明、およびタイプを抽出および表示し、エクステンションが定義するカスタムステップとして Damage Reporter を一覧表示します。 - Import Extension をクリックします。Fuse Online でカスタムステップが使用できるようになり、インポートされたエクステンションのリストが表示されます。
関連情報
エクステンションのコーディング方法およびその .jar
ファイルの作成方法は、以下を参照してください。
4.3. REST API コネクターの作成
Fuse Online は、Hypertext Transfer Protocol (HTTP)/1.0 または HTTP/1.1 をサポートする REST API のコネクターを作成できます。これには、接続する REST API を記述する有効な OpenAPI 3 (または 2) ドキュメントが Fuse Online に必要です。
Fuse Online 環境には To Do アプリケーションがあり、これにはタスクが含まれるデータベースにアクセスするための REST API があります。お使いの環境には、この API の OpenAPI ドキュメントもあります。
手順
todo app
のアイコンをダウンロードします。- Fuse Online ナビゲーションパネルで Home をクリックします。
- URL をテキストエディターにコピーします。
-
URL の先頭に、
todo-
を挿入します。 -
URL の末尾に
/images/todo_icon.png
を追加します。 https
の代わりにhttp
スキームを使用します。URL は http://todo-app-proj217402.6a63.fuse-ignite.openshiftapps.com/images/todo_icon.png のようになります。
-
この URL を新しいブラウザーウインドウに貼り付け、ファイルシステムの場所に
todo_icon.png
ファイルをダウンロードします。このアイコンを手順 11 でアップロードします。
Fuse Online 環境にある OpenAPI ドキュメントのコピーの URL を確認します。
- Fuse Online ナビゲーションパネルで Home をクリックします。
- URL をテキストエディターにコピーします。
-
URL の先頭に、
todo-
を挿入します。 -
URL の最後に
swagger.json
を追加します。 https
の代わりにhttp
スキームを使用します。URL は
http://todo-app-proj217402.6a63.fuse-ignite.openshiftapps.com/swagger.json
のようになります。
注記https
ではなくhttp
を指定することで、TLS 証明書が有効でない場合にランタイムエラーが発生しないようにします。実稼働環境では、有効な証明書があり、常にセキュアな URL (https
) を指定して OpenAPI ドキュメントを取得するようにします。- Fuse Online ナビゲーションパネルで Customizations > API Client Connectors をクリックします。
- Create API Connector をクリックします。
- Use a URL を選択します。
- 入力ボックスに OpenAPI ドキュメントの URL を貼り付け、Next をクリックします。
- Review Actions ページで Next をクリックします。警告が表示された場合、無視しても問題ありません。
- Next をクリックします。
-
Specify Security ページで、HTTP Basic Authentication を許可し、
admin
およびadmin
などのユーザー名とパスワードを指定します。このサンプルアプリケーションでは、ユーザー名とパスワードは検証されないことに注意してください。 - Next をクリックします。
Todo App API 概要ページで以下を行います。
-
Connector Icon で Choose File をクリックし、手順 1 でダウンロードした
todo_icon.png
の場所に移動します。 - 必要に応じて、Name フィールドおよび Description フィールドの値を変更します。
-
Host フィールドに、サービスホストの名前を承認します。たとえば、
https://todo-app-proj217402.6a63.fuse-ignite.openshiftapps.com
のようになります。 -
Base URL フィールドに、サービスリクエストのホスト名の後に続く URL の一部 (
/api
) を受け入れます。
-
Connector Icon で Choose File をクリックし、手順 1 でダウンロードした
Save をクリックします。
Fuse Online に API Client Connectors が表示されます。先ほど作成した Todo App API で新しいエントリーを確認できます。
4.4. REST API コネクションの作成
インテグレーションで REST API に接続する前に、REST API クライアントコネクターを作成し、そのコネクターを使用してコネクションを作成します。To Do アプリケーションの REST API コネクターはすでに作成済みです。ここの指示に従い、そのコネクターを使用して To Do アプリケーション REST API へのコネクションを作成します。
前提条件
- Todo App REST API コネクターが作成されている必要があります。
手順
- Fuse Online の左パネルで Connections をクリックし、利用可能なコネクションを表示します。
- Create Connection をクリックし、利用できるコネクターを表示します。
先ほど作成した Todo App API コネクターをクリックします。
Fuse Online の Host および Base Path フィールドは、コネクターの作成時に指定した OpenAPI ドキュメントから値が入力されます。
- Username フィールドに任意の値を入力します。このサンプルインテグレーションでは、ユーザー名およびパスワードの値は必須ですが、使用されません。
- Password フィールドに任意の値を入力します。
- Next をクリックします。
-
Name フィールドに、このコネクションを別のコネクションと区別するために使用する名前を入力します。たとえば、
Todo App API Client
を入力します。 -
Description は任意のフィールドで、このコネクションに関する便利な情報を入力します。たとえば、
Connection to the provided Todo app REST API
を入力します。 - Save をクリックし、作成したコネクションが利用可能になったことを確認します。
4.5. AMQ to REST API サンプルインテグレーションの作成およびデプロイ
AMQ to REST API サンプルインテグレーションを作成してデプロイする場合、主なステップは次のとおりです。
前提条件
- 提供された Red Hat AMQ ブローカーへのコネクションが作成されている必要があります。
- 提供された Todo アプリケーションへの API クライアントコネクションが作成されている必要があります。
- Damage Reporter ステップを提供するエクステンションをアップロードしている必要があります。
4.5.1. 最初のコネクションの選択
Fuse Online で、AMQ to REST API サンプルインテグレーションを作成するには、先に最初のコネクションを選択します。
前提条件
- 提供された Red Hat AMQ ブローカーを起動している必要があります。
- メッセージブローカーへのコネクションが作成されている必要があります。
手順
- Fuse Online で左側にある Integrations をクリックします。
- Create Integration をクリックします。
- Choose a connection ページで AMQ コネクションをクリックします。上記の例の名前を指定した場合は、Red Hat AMQ Broker 1 をクリックします。
- Choose an action ページで、Subscribe for messages アクションを選択し、指定したキューからメッセージを受信します。
-
Destination name フィールドに、データを取得するキューの名前として
inventoryReceived
を入力します。 - Destination type フィールドをクリックし、Queue を選択します。
- 他のフィールドは空白のままにします。
- Next をクリックします。Fuse Online は出力データタイプを指定するよう要求します。このサンプルインテグレーションには必要ありません。
- Next をクリックして最初のコネクションをインテグレーションに追加します。
次のステップ
インテグレーションの実行中、Red Hat AMQ に接続すると、インテグレーションは inventoryReceived
キューでメッセージを監視します。メッセージが利用可能になると、インテグレーションはそのメッセージを Damage Reporter ステップに渡します。ただし、そのステップをインテグレーションに追加するには、先にインテグレーションの最後のコネクションを選択する必要があります。
4.5.2. 最後のコネクションの選択
Fuse Online で AMQ to REST API サンプルインテグレーションの作成を続けるには、最初のコネクションを追加した後、最後のコネクションをインテグレーションに追加します。
前提条件
- 提供された OpenAPI ドキュメントをアップロードし、Todo App API コネクターを作成している必要があります。
- Todo App API コネクターを使用して Todo App API コネクションを作成している必要があります。
手順
- Fuse Online の Choose a connection ページで、作成した To Do アプリケーションコネクションをクリックします。上記の例の名前を割り当てた場合は、Todo App API Client をクリックします。
- Choose an action ページで Create new task を選択します。これは、特定の破損商品に対処するための連絡先情報を提供します。
- Next をクリックして最後のコネクションをインテグレーションに追加します。
4.5.3. Damage Reporter ステップの追加
最初および最後のコネクションがある場合、 Red Hat AMQ ブローカーからメッセージを受信し、受領時に破損した商品を特定するカスタムステップを追加することができます。
前提条件
- Damage Reporter カスタムステップを提供するエクステンションをアップロードしている必要があります。
- 最初のコネクションおよび最後のコネクションをインテグレーションに追加済みである必要があります。
手順
- Fuse Online のインテグレーションビジュアライゼーションで、プラス記号をクリックします。
- Damage Reporter をクリックします。
- Next をクリックして Damage Reporter ステップをインテグレーションに追加します。
4.5.4. データマッピングステップの追加
AMQ to REST API サンプルインテグレーションの作成を続けるには、データマッピングステップを追加する必要があります。この手順により、Damage Reporter ステップの出力の task
フィールドを、REST API がアクセスするデータベースの task
フィールドと関連付けます。
前提条件
- Damage Reporter ステップをインテグレーションに追加済みである必要があります。
手順
- Fuse Online のインテグレーションビジュアライゼーションで、Damage Reporter ステップと最後のコネクションの間にあるプラス記号をクリックします。
- Data Mapper をクリックします。データマッパーで、左側の Source パネルに Damage Reporter ステップの出力のフィールドが表示されます。右側の Target パネルに、API がアクセスするデータベースのフィールドが表示されます。
Source パネルで
task
フィールドをクリックした後、Create New Mapping アイコンをクリックします。Mapping Details パネルが表示されます。
- Mapping Details ターゲットパネルの Targets で、/body/task を選択します。
- 右上の Done をクリックします。
結果
インテグレーションが完了し、パブリッシュできる状態になります。左側のインテグレーションビジュアライゼーションパネルに、
データタイプ不一致警告アイコンが表示されることがあります。無視しても問題ありません。
4.5.5. インテグレーションの命名とデプロイ
AMQ to REST API サンプルインテグレーションは、Red Hat AMQ の最初のコネクション、Damage Reporter ステップ、データマッパーステップ、および最後に Todo App Client API コネクションがある場合に完了します。ここの指示に従ってデプロイします。
前提条件
- 最初のコネクションおよび最後のコネクションをインテグレーションに追加済みである必要があります。
- 最初と最後のコネクションの間に Damager Reporter ステップを追加済みである必要があります。
- Damage Reporter ステップと、Todo App API へのコネクションの間にデータマッパーステップを追加済みである必要があります。
手順
- Fuse Online の右上の Publish をクリックします。
-
Name フィールドに、インテグレーションの名前を入力します。たとえば、
AMQ to REST API Sample Integration
などです。 - 任意で、Description フィールドに、このインテグレーションに関する便利な情報を入力します。
- 必要に応じて、統合用に 1 つ以上のカスタム環境変数を追加します。
- 必要に応じて、Labels フィールドに 1 つ以上のラベルを追加します。ラベルは、後で OpenShift でフィルタリングおよび選択するために、統合に適用できるキーと値のペアのタグです。たとえば、OpenShift 管理者ユーザーは、実行中の Pod またはデプロイメントのリストをラベルでフィルタリングできます。
右上の Save and publish をクリックします。
Fuse Online はインテグレーションのデプロイを開始し、この環境のインテグレーションのリストを表示します。AMQ to REST API インテグレーションのエントリーに、パブリッシュステージを示す進捗インジケーターが表示されます。Fuse Online はインテグレーションのランタイムを生成し、ランタイムの準備ができると開始します。これには数分かかります。
Fuse Online アカウントは、同時に実行可能なインテグレーションの数が制限されています。詳細は、価格プランを参照してください。インテグレーションの最大数をすでに実行している場合、別のインテグレーションの実行を開始する前にインテグレーションを停止する必要があります。
すでに最大数のインテグレーションが稼働中である場合、以下のステップにしたがってインテグレーションを停止します。
- 左側のパネルで Integrations をクリックします。
-
停止するインテグレーションのエントリーで、右端の
をクリックします。
- ポップアップで Stop をクリックします。
インテグレーションの停止後、別のインテグレーションを以下のように起動します。
- 左側のパネルで Integrations をクリックします。
-
起動するインテグレーションのエントリーで、右端の
をクリックします。
- ポップアップで Start をクリックします。
4.6. AMQ to REST API インテグレーションの動作を確認
AMQ to REST API サンプルインテグレーションを作成し、パブリッシュした後、定義されたとおりに動作していることを確認できます。
前提条件
Fuse Online のインテグレーションのリストで、作成およびデプロイ済みの AMQ to REST API インテグレーションの横に Running が表示されています。
手順
-
新しいブラウザーウインドウで、Fuse Online 環境の URL の前に
todo-
を挿入して、To Do アプリケーション画面に移動します。たとえば、http://todo-app-proj761432.6a63.fuse-ignite.openshiftapps.com/
のようになります。 - To Do アプリケーション画面で Show JMS Form をクリックし、XML メッセージを含む入力ボックスを表示します。
Send JMS Message をクリックし、そのメッセージを OpenShift プロジェクトの Red Hat AMQ ブローカーに送信します。
実行に成功すると、To Do アプリケーションクライアント API からタスクが返されます。このタスクによって、破損した製品の ID の と仕入先連絡情報が特定されます。タスクがしばらく表示されない場合は、ページをリロードしてください。
次のように XML メッセージを編集して、破損した商品を 2 つ指定します。
- Show JMS Form をクリックし、メッセージの入力ボックスを再度表示します。
-
XML メッセージで、破損していない商品のエントリーを変更して
damaged="true"
を指定します。 - Send JMS Message をクリックします。To Do アプリケーションクライアント API は、破損した 2 つの商品の ID と 2 つの仕入先の連絡先情報が含まれる新しいタスクを返します。
次のように XML メッセージを編集して、独自の ID を指定します。
- Show JMS Form をクリックします。
-
XML メッセージで、
damaged="true"
が指定された商品のアイテム ID を変更します。たとえば1234
に変更します。 - Send JMS Message をクリックします。To Do アプリケーションクライアント API は、入力したアイテム ID が含まれる新しいタスクを返します。
任意で、インテグレーションログを表示して、予期せぬ結果のトラブルシューティングや、インテグレーション実行の詳細確認を行います。
- Fuse Online の左パネルで Integrations をクリックします。
- AMQ to REST API インテグレーションのエントリーを表示します。
- インテグレーションの概要ページで Activity タブをクリックします。
- アクティビティー情報を表示するインテグレーションの実行をクリックします。
4.7. インテグレーションのクリーンアップ
サンプルインテグレーションの作業が完了したら、それを停止して削除し、別のインテグレーションでリソースを使用できるようにする必要があります。
前提条件
- パブリッシュしたサンプルインテグレーションの使用を終了している必要があります。
手順
- Fuse Online の左パネルで Integrations をクリックします。
- メインパネルで、停止するサンプルインテグレーションのエントリーを特定します。
-
そのエントリーの右側にある
をクリックし、Stop をクリックします。
- Stop をクリックし、インテグレーションの実行を停止することを確認します。
-
停止したインテグレーションのエントリーで、右側の
をクリックし、Delete をクリックします。
- Delete をクリックし、インテグレーションを削除することを確認します。