こんにちは、アピリオ北嵐です。MuleSoft 入門(3)Anypoint StudioによるAPIの実装では、ローカル開発環境である Anypoint Studio を使った API 開発の手順をご紹介しました。今回はもう少しクイックに API の開発を行いたいユーザー向けに、Design Center が提供する Flow Designer を使ったブラウザ環境での Mule アプリケーションの開発についてご紹介したいと思います。
Flow Designer
Design Center は以下の2つの機能を提供しています。
API Designer : RAML/OAS 定義の I/F を作成(エディタとグラフィカルの2種類あり)
Flow Designer:Mule アプリケーション(フロー定義)を作成しデプロイする
Flow Designer は Anypoint Studio のサブセットのような位置付けで、ブラウザ上で Mule アプリケーションを開発しランタイム環境にデプロイできます。下記の MuleSoft が提供する開発フローを見ますと、右上のプロトタイプ開発時に使用する機能に配置されていますので、本番用の API 実装を開発するというよりはクイックに評価/テスト用の API を開発する際に使用する機能だと思われます。
[Anypoint Platform 環境における開発ライフサイクル]
Flow Designer ではテンプレートをベースに API 実装を開発する機能が提供されていますので、今回は下記の「Salesforce opportunity update to Twilio」テンプレートを使って開発を行ってみたいと思います。このテンプレートは Salesforce の商談データが更新されると自動的に Twilio を使って SMS メッセージを送るフローが定義されています。
https://www.mulesoft.com/exchange/org.mule.templates/template-sfdc-opportunity-to-twilio/
手順1:Mule アプリケーションの作成
テンプレートをベースにして Mule アプリケーションを作成します。
- Exchange を開き、Provided by MuleSoft リソースから「Salesforce opportunity update to Twilio」を検索します
- テンプレートを開き、右上の「Open Flow」ボタンを押すとフロー定義のプレビュー画面が表示されます
- 右上の「Use this template」を押すと Project 名を聞いてくるので任意の名前を入力します。
プロジェクトがインポートされ、下記の初期画面が表示されます。
[テンプレートのインポート直後の Flow Designer の初期画面]
簡単にフローの説明をしておきます。
一番左側にある Salesforce コネクタが処理の起点になります。On Update オペレーションでは、商談オブジェクトを監視して新規レコード作成をトリガーにフローを開始します。payload には商談レコードの配列が格納されます。
次に Choice コンポーネントで商談名をキーに分岐処理を行います。商談名が "Mythical” の場合にTwilio コネクタを実行します。デフォルトでは何も行いません。
Twilio コネクタの Send Message オペレーションは、クラウド上の Twilio サービスに API 連携を行い、所定の電話番号にSMSメッセージを送信します。事前に Twilio サービスへのアカウント登録が必要です(デモ用に無償でアカウントを作成できます)。
なお、テンプレートを使わずに新規にアプリケーションを作成したい場合は、Design Center の新規作成画面で [Create new application]を選択してください。この場合はブランクのキャンバスにスクラッチからコンポーネントを配置してフローを作成していきます。
[Design Center 新規作成画面]
また、Flow Designer を使って Mule アプリケーションを作成するには、Design 環境に割り当て可能な vCore が 残っている必要があります。1つの Mule アプリケーションごとに 0.2vCore が使用されます。
手順2:Salesforce コネクタの設定
インポートした時点では必要な設定が行われておらず、キャンバス上の各コンポーネントはエラーがある状態です。コンポーネントの右上に赤丸が付いているコンポーネントにエラーがありますので、このフロー定義では Salesforce コネクタと Twilio コネクタに設定が必要です。まず Salesforce コネクタから設定していきます。なお、事前にテスト用 Salesforce 組織の準備が必要になります。
- キャンバス上の Salesforce Connector "On Update Opp" をクリックして、設定用のダイアログを表示します
画面上部に赤字でエラーが2つあると表示されていますので、 [FIX] をクリックすると Salesforce コネクタの設定画面が表示されます
[Salesforce 設定画面] - [Add connection] ボタンをクリックするとコネクションの設定画面が表示されます
Connection Type として ”Basic Username Password"を選び、下記を入力した後に下部の [Test] ボタンを押して接続確認を行います。
Connection Name : 任意の名前(例:”Salesforce 接続設定")
Username : 接続先の Salesforce 組織のアカウント名
Password : 上記アカウントのパスワード
[Salesforce コネクションの設定画面]
※ API のバージョンは 2019年12月時点では 43 が最新
- 接続に成功したら [Save] をクリックして設定を保管します
自動的に Salesforce 組織にアクセスし、Object Type が日本語名の商談に変わります。
[設定後の Salesforce コネクタの設定画面]
手順3: Twilio コネクタの設定
次に Twilio の設定を行います。事前に Twilio サービスに登録して下記の情報を入手しておきます。
- Account SID
- AUTHTOKEN
- 呼出元の Twilio の電話番号
- 呼出先の Twilio で認証された電話番号
- キャンバス上の Twilio Connector "Send Message" をクリックすると、メッセージの編集画面が表示されます
この画面は Anypoint Studio ですと Transform Message コンポーネントに相当します
[Twilio 送信用メッセージの設定画面]
画面上部に赤字でエラーが2つあると表示されていますので、 [FIX] をクリックすると Twilio コネクタの設定画面が表示されます。
- [Add connection] ボタンをクリックするとコネクションの設定画面が表示されます
Connection Name に任意の名前を入力し、Connection Type として ”Connection" を選びます。下部の [Test] ボタンを押して接続確認を行います。
[Twilio コネクションの設定画面] - コネクション設定画面の [Save] ボタンを押して、設定を保管します
- 設定画面の下にある Username と Password に別途登録した Twilio サイトの認証情報を入力します
Username に Account SID、Password に AUTHTOKEN の値を指定します。その他の項目はデフォルト設定のままで構いません。
[Twilio コネクション設定画面]- コネクタ設定画面の [Save] ボタンを押して、設定を保管します
- メッセージの設定画面で DataWeave スクリプトをクリックして、メッセージ内容を編集します
To : 呼出元の Twilio の電話番号
From : 呼出先の Twilio で認証された電話番号
番号にハイフンは付けずに + (国番号) の形式で入力します。Body 部は実際に SMS として送信されるメッセージであり、自由に変更できます。
[DataWeave スクリプトの編集画面] - メッセージの設定画面で Account Sid を入力します
Twilio コネクションの設定画面で入力した Account Sid と同じ値を入力します。
手順4: Logger の追加
Logger コンポーネントをフローに追加します。
- Salesforce コネクタの右側に表示される + ボタンをクリックします
- Logger コンポーネントを選択します
- 右側のペインから "Custom Expression" を Message フィールドにドラッグ&ドロップします。その後に Custom Expression に DataWeave 式として "payload" を指定します。
- 同様に Twilio コネクタの右側にも Logger コンポーネントを追加して、payload をログに出力します
以上でフロー定義の修正は完了で、下記のようになります。
[修正後のフロー定義]
手順5:アプリケーションの実行
Flow Designer で作成した Mule アプリケーションは右上の [Test] アイコンをクリックすることで、すぐに実行できます。内部的には フローのビルドが自動的に行われ、Design 環境にランタイムアプリケーションとしてデプロイされます。
[実行前]
[実行後]
Salesforce 組織上で商談名 "Mythical" のレコードを作成すると、フローが実行されます。実行されたコンポーネントには緑色のチェックが追加されます。
[実行後のフロー定義]
実行に失敗した場合、エラーの詳細は右下の [Logs] をクリックして表示される、ランタイムアプリケーションのログの内容を確認します。
エラーの修正のために、画面上でコンポーネントの定義を修正すると自動的にアプリケーションが停止するので、再度起動する必要があります。
手順6:アプリケーションのデプロイ
Sandbox 環境にアプリケーションをデプロイするには、右上のメニューから [Deploy application] をクリックします。画面上でデプロイ先の環境(Sandbox)とアプリケーション名を入力して [Deploy] を押すと、Sandbox 環境にアプリケーションがデプロイされます。
[デプロイ設定画面]
下記のように Application Name の末尾に名前をユニークにするためのランダムな文字列が追加された名称でアプリケーションがデプロイされます。
[Runtime Manager : Sandbox 環境のアプリケーション一覧]
今回は、Flow Designer を使うことで Anypoint Studio 環境で Muleアプリケーションを作成することに比べて、とても手軽にアプリケーションを開発できることを紹介しました。Anypoint Platform のブラウザ環境は React ベースのシングルページアプリケーションとして実装されているため、ブラウザベースではありますが操作性は高いです。Anypoint Studio での開発に慣れているユーザーですと最初は少し戸惑いがあるかもしれませんが、すぐに慣れると思います。便利な機能である一方で Design Center 上で作成した I/F 定義を元に自動的にAPIKitベースのフローを作成する機能や、環境別にプロパティを切り替える機能などは提供されていないため、実環境で動作するアプリケーションを開発するにはまだ力不足であり、クイックにプロトタイプの開発や評価を行うといった用途に向いていると考えます。
次回は、Anypoint Studio 環境で開発したフロー定義の単体テスト自動化する MUnit をご紹介します。
[MuleSoft 入門シリーズ]
MuleSoft 入門(1)MuleSoft による API-led なアプリケーションネットワーク
MuleSoft 入門(2)ようこそ Anypoint Platform へ
MuleSoft 入門(3)Anypoint Studio による API の実装
MuleSoft 入門(4)DataWeave によるデータ変換
MuleSoft 入門(5)Flow Designer で Mule アプリケーションを開発
MuleSoft 入門(6)MUnit による単体テスト
MuleSoft 入門(7)API 開発におけるテストの考え方
MuleSoft 入門(8)ポリシーと SLA
MuleSoft 入門(9)カスタムポリシーの開発
MuleSoft 入門(10)Mule API のバージョン管理
MuleSoft 入門(11)ランタイムログの自動アーカイブ
著者について
Naoki Kitaarashi のコンテンツをもっと見る