PostgreSQL のデータをAUTORO(旧Robotic Crowd) で連携して利用する方法
AUTORO(旧Robotic Crowd) www.roboticcrowd.com/ はクラウド型(SaaS)のロボティック・プロセス・オートメーション(RPA)で、普段利用しているブラウザで業務フローを記録し、ワークフローを作成することができるサービスです。
RPAの機能としての使いやすさはもちろんのこと、クラウドベースの特性を生かして、各種ストレージ(Google DriveやBox等)サービスやExcel・Google Spreadsheetなどの表計算ソフトとも連携できるのが特徴です。また、HTTPリクエストのアクションを利用することで、様々なAPIとの連携も可能になっています。
この記事ではCData API Server とADO.NET PostgreSQL Provider を使って、AUTORO(旧Robotic Crowd) でPostgreSQL のデータを操作できるようにします。
API Server の設定
以下のリンクからAPI Server の無償トライアルをスタートしたら、セキュアなPostgreSQL OData サービスを作成していきましょう。
PostgreSQL への接続
Robotic Crowd からPostgreSQL のデータを操作するには、まずPostgreSQL への接続を作成・設定します。
- API Server にログインして、「Connections」をクリック、さらに「接続を追加」をクリックします。
- 「接続を追加」をクリックして、データソースがAPI Server に事前にインストールされている場合は、一覧から「PostgreSQL」を選択します。
- 事前にインストールされていない場合は、コネクタを追加していきます。コネクタ追加の手順は以下の記事にまとめてありますので、ご確認ください。
CData コネクタの追加方法はこちら >> - それでは、PostgreSQL への接続設定を行っていきましょう!
-
PostgreSQL への接続には、Server、Port(デフォルトは5432)、Database、およびUser、Password のプロパティを設定します。Database プロパティが設定されない場合には、User のデフォルトデータベースに接続します。
パスワード方式によるSSH 接続
パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Password"
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHPassword: SSH パスワード
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=postgresql-server;Port=5432;UseSSH=true;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;
公開鍵認証方式によるSSH 接続
公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Public_Key"
- SSHClientCertType: キーストアの種類
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHClientCert: 秘密鍵ファイルのパス
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=PostgreSQL-server;Port=5432;UseSSH=true;SSHClientCertType=PEMKEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;
- 接続情報の入力が完了したら、「保存およびテスト」をクリックします。
PostgreSQL への接続には、Server、Port(デフォルトは5432)、Database、およびUser、Password のプロパティを設定します。Database プロパティが設定されない場合には、User のデフォルトデータベースに接続します。
パスワード方式によるSSH 接続
パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Password"
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHPassword: SSH パスワード
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=postgresql-server;Port=5432;UseSSH=true;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;
公開鍵認証方式によるSSH 接続
公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。
- User: PostgreSQL のユーザ
- Password: PostgreSQL のパスワード
- Database: PostgreSQL の接続先データベース
- Server: PostgreSQL のサーバー
- Port: PostgreSQL のポート
- UserSSH: "true"
- SSHAuthMode: "Public_Key"
- SSHClientCertType: キーストアの種類
- SSHPort: SSH のポート
- SSHServer: SSH サーバー
- SSHUser: SSH ユーザー
- SSHClientCert: 秘密鍵ファイルのパス
接続文字列形式では以下のようになります。
User=admin;Password=adminpassword;Database=test;Server=PostgreSQL-server;Port=5432;UseSSH=true;SSHClientCertType=PEMKEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;
API Server のユーザー設定
次に、API Server 経由でPostgreSQL にアクセスするユーザーを作成します。「Users」ページでユーザーを追加・設定できます。やってみましょう。
- 「Users」ページで ユーザーを追加をクリックすると、「ユーザーを追加」ポップアップが開きます。
-
次に、「ロール」、「ユーザー名」、「権限」プロパティを設定し、「ユーザーを追加」をクリックします。
-
その後、ユーザーの認証トークンが生成されます。各ユーザーの認証トークンとその他の情報は「Users」ページで確認できます。
PostgreSQL 用のAPI エンドポイントの作成
ユーザーを作成したら、PostgreSQL のデータ用のAPI エンドポイントを作成していきます。
-
まず、「API」ページに移動し、
「 テーブルを追加」をクリックします。
-
アクセスしたい接続を選択し、次へをクリックします。
-
接続を選択した状態で、各テーブルを選択して確認をクリックすることでエンドポイントを作成します。
OData のエンドポイントを取得
以上でPostgreSQL への接続を設定してユーザーを作成し、API Server でPostgreSQL データのAPI を追加しました。これで、OData 形式のPostgreSQL データをREST API で利用できます。API Server の「API」ページから、API のエンドポイントを表示およびコピーできます。
追加設定
AUTORO(旧Robotic Crowd) がクラウドサービスのため、API ServerはクラウドホスティングもしくはオンプレミスのDMZなどに配置して、AUTORO(旧Robotic Crowd) がアクセスできるように構成する必要があります。
API Server にはデフォルトでCloud Gatewayの機能も提供されているので、もしオンプレミスに配置する場合はこちらを使ってみてください。
今回 AUTORO(旧Robotic Crowd) では「URL上のファイルを取得」というアクションでAPI Serverからデータを取得します。その際に、API Serverの認証はクエリパラメータによる認証方法を利用するので、「クエリ文字列パラメータとして認証トークンを使用する」の設定を有効化しておきます。なお、「HTTPリクエスト」のアクションを利用する場合は、この設定は不要です。CData API Server : Authentication
API エンドポイントができたので、確認します。「API」タブに移動すると、追加したリソースが表示されています。ここでリクエスト方法などを確認できます。
また、API Server はJSON以外にも様々なフォーマットでデータを取得できます。今回は最終的にCSVファイルをGoogle Driveにアップロードするため末尾に「?@format=csv」というパラメータを記載します。これによりCSV形式のファイルを取得できます。
オンプレミスDB やファイルからのAPI Server 使用(オプション)
オンプレミスRDB やExcel/CSV などのファイルのデータを使用する場合には、API Server のCloug Gateway / SSH ポートフォワーディングが便利です。是非、Cloud Gatway の設定方法 記事を参考にしてください。
AUTORO(旧Robotic Crowd) でPostgreSQL のデータをCSV として扱う方法
AUTORO(旧Robotic Crowd) ワークフローの作成
- それではワークフローを作成していきましょう。「ワークフロー」から「+ワークフローを作成」をクリックして、作業を開始します。
- 任意のワークフロー名と割当ロボットを選択し「作成」をクリックします。なお、今回は実行結果がわかりやすいように「デバッグ実行モード」をONにしています。
- まず、API Server経由でデータを取得するフローを構成します。 前述の通り、APIアクセス方法のアクション2種類あります。一つは「HTTPRequest」でJSONを取得したり、APIにデータを渡したりすることが可能です。 もう一つは「URL上のファイルを取得」でこれでURL先のファイルをダウンロードしてきて、処理することができます。
- CData API Serverは両方のアクションで利用が可能ですが、今回はCSVファイルを Google Driveにアップロードしたいので、「URL上のファイルを取得」を使用します。JSONなどを利用したい場合は「HTTPRequest」を利用してください。
「URL上のファイルを取得」を配置し、接続先となるURLを入力します。対象のAPI ServerのURLにパラメータとして「@authoken」と「@format」をそれぞれ指定します。リソースはFilm_listとしました。
例:http://{API_SERVER_URL}/apiserver/api.rsc/film_list?@authtoken={USER_TOKEN}&@format=csv
これによりCSVフォーマットでAUTORO(旧Robotic Crowd)にファイルをダウンロードできるようになります。 - ダウンロードしてきたCSVにファイル名を指定します。「RenameFile」のアクションを配置し、以下のように「film_list.csv」と入力しました。
- 最後に今回はGoogle Driveへファイルをアップロードします。「SavaFile」のアクションを配置し「ストレージプロバイダ」に別途接続したGoogle Driveの設定を入力し、アップロード先のフォルダを指定します。
以上でワークフローの構成は完了です。あとは「保存」ボタンをクリックして「実行」してみましょう。
CData API Server の無償版およびトライアル
CData API Server は、無償版および30日の無償トライアルがあります。是非、API Server ページ から製品をダウンロードしてお試しください。