こんにちは。ファンリピートの塙です。
今回は、Googleの提供する異なるアプリケーション、データ、プロセスをシームレスに繋げるiPaaSについて紹介します。
iPaaSの製品で言うとZapierなどが有名でしょうか?結論から言うと、Zapierの方が使い勝手は良さそうかな?と言う印象ですが、GoogleのiPaaSがどのようなものなのか、見ていきましょう。
公式サイトでもチュートリアルはあるのですが、分かり辛いところがあったので、画像多めで説明しています。よろしければ参考にしてみてください。
そもそもiPaaSとは
iPaaS(Integration Platform as a Service)とは、クラウド上で提供される統合プラットフォームのことを指します。このプラットフォームは、異なるアプリケーション、データ、プロセスをシームレスに結びつける役割を果たします。従来のオンプレミスの統合ソリューションとは異なり、iPaaSはインターネット経由で提供され、より柔軟でスケーラブルな統合が可能です。クラウドでの対応になるため、導入にかかるコストが抑えられることやスケーラビリティが高いという特徴があります。また、異なるシステムやアプリケーション間のデータの移動を助け、これらを効果的に統合します。これにより、企業はビジネスプロセスを効率化できます。
iPaaSのサービスとして、ZapierやBizteX Connectなどがあります。
GoogleのiPaaSとは
Google CloudにApplication Integrationというものがある。この機能を使うことにより、コードをほとんど、または全く使用せずに、ドラッグ&ドロップによって統合フロー全体を作成することができる。
この機能の導入により、Salesforceなどのエンタープライズアプリケーション、MySQLなどのデータベース、Cloud Pub/Subなどのイベントドリブンシステムを接続できる。また、様々なソースのデータ入力によってトリガーされる長時間実行プロセスを作成できる。
現在(2023年8月現在)用意されているコネクタは以下のとおりです。


実際に利用してみた
Application Integrationにはいくつかのチュートリアルが用意されており、その一つを実際に試してみた。公式のものは少し分かりにくかったので、ここでは画像も合わせて手順を紹介します。分かりやすさのため、一部公式サイトの表記名とは異なる部分があります。
APIペイロードを取得してメールで送信する方法です。
事前準備
- googleアカウントの作成
- google cloudへの登録
Application Integrationにアクセス
こちらのURLからアクセスします。
新しいIntegrationを作成する
“Create Integration”をクリック。
名前と説明(description)を追加する。

“API trigger”を追加して構成
一連のタスクを開始するためのトリガーを作成します。
triggerをクリックし、”API trigger”を選択し、配置します。
配置の仕方は、任意のデザイナーの箇所をクリックするだけです。

“Task”を追加して構成
タスクは、変数を入力として受け取り、出力として変数を生成する、一連のステップです。
今回は、”Call REST Endpoint”、”Data Mapping”、”Send Email”の三つのタスクを作成します。
※REST…REpresentational State Transfer
Call REST Endpointタスクを追加
“Tasks”から、”Call REST Endpoint”をクリック。

追加した、”Call REST Endpoint”のブロックをクリックして、タスクの詳細を開きます。
“General”のLabelに任意の名前をつけます。ここでは、”call rest endpoint task”としました。
続いて、”Task input”のEndpoint base URLを設定します。ここでは、Wikipediaの”Tree”という名前の記事が特定の月にみられたかというデータが返されるURLをコピペします。
“HTTP method”でGETを選択します。

残りの部分に関しては、基本的にデフォルト値で問題ありませんが、以下の内容と一緒であるか確認してください。

Data Mappingタスクを追加
“Tasks”から”Data Mapping”を選択します。

追加した、”Data Mapping”のブロックをクリックして、タスクの詳細を開きます。
“Mapping”の”OPEN DATA MAPPING EDITOR”をクリックします。
ここからが、公式のもので私が実装しようとした時に詰まった部分なので、画像多めで説明します。
Input の”Variable or Value”をクリックします。

Valueにて、”responseBody”を選択し、Saveをクリック


+マークをクリックして、TO_JSON()を選択。

再び、+マークをクリックし、”GET_PROPERTY(String)”を選択。

“.GET_PROPERTY”の”Variable or Value”をクリックし、”Value”にて”items”と入力し、Saveします。

これで、Input側の設定が終わりです。
続いて、Outputの設定です。
“Drop Variable here or create a new one”をクリックし、以下の画像のように設定後、”Create”をクリックします。

元の編集画面に戻ります。
Send Email タスクを作成
“Tasks”から、”Send Email”をクリック。

作成したSendEmailのブロックをクリックし、詳細を開き、”To Recipient(s)”に宛先メールアドレスを入力し、”Subject”を任意で設定します。”Body Format”は”Plain Text”で”Body in Plain Text”ではVARIABLEをクリックし、”JSONList”(自分で決めた名前)を選択します。

それぞれのブロックを繋ぐ
各ブロックの点をドラッグして、次のブロックで離すことで接続できます。

実際に動かしてみる
“PUBLISH”をクリック後、隣の”TEST”をクリックします。

出てきたポップアップの”Test Integration”をクリックすると、実行されます。

メール送信先に指定したアカウントに以下のようなメールが届いていれば成功です。

料金体系
1ヶ月あたり従量制の実行数400、処理されたデータ20GiBまでは無料で利用することができます。
従量制の実行では、単価従量制の実行数あたり$0.0005で課金されます。(無料の最初の400件は除かれる)従量制の実行数は、Application Integrationが1つの統合を処理して実行する時に計算されます。そして、統合が成功したかどうかに関わらず、最大100個の統合ステップが含まれます。
まとめ
現状(2023年8月現在)では、Application Integrationについての記事がネット上にも少ない印象ですが、今後記事も、ツールのできることも増えていくのではないかなと思います。
最後まで読んでいただきありがとうございました。