記事内で利用しているライブラリ「request」「request-promise」は、非推奨(deprecated)になりました。
HTTP リクエストができる他のライブラリ(axios など)や、https.requst に書き換えることをおすすめします。
(著者:菊地 宏司)
こんにちは。菊地です。
今回はkintoneとMicrosoft Azureの連携についてご紹介したいと思います。
Microsoft Azure とは
まずMicrosoft Azureとは、分析、コンピューティング、データベース、モバイル、ネットワーク、ストレージ、Web の機能を持つ総合的なクラウドサービスプラットフォームです。
仮想マシン、モバイル、ビックデータ、機械学習、IoTと様々な事ができるAzureですが、今回はその中のAzure Functionsを使ってkintoneと連携したいと思います。
このAzure Functionsは小規模なコードを実行できるサービスになっており、AWSのLambdaに似たような物となっています。
設定方法はブラウザ上から可能で、Azureサービスのイベント処理、cronジョブを使用したバッチ処理、HTTPトリガー(Webhook)等のイベントの際にNodeJSやC#のコードを実行することができます。
また、これらの処理がサーバレスで実現できるのも特徴です。ハードやネットワークの事なんて考えなくてOK!お手軽ですね。
Azure Functions 使用例
定期実行でkintone Rest APIを実行する
Azure Functions の設定でcron形式のタイマー設定が可能です。
HTTPトリガーを使ってAzureサービスと連携する
Azure Functions を使うことにより Azure サービスとの連携が柔軟に対応できます。
ということで、発想次第で色々な使い方ができるサービスとなっています。
それではAzure Functions を利用するための準備を以下の手順に沿ってやってみましょう
Azure Functions の準備
以下の手順で Azure Functions の環境を準備しましょう。
※「Azure Functions 関数の準備」では[WebHook + API]、[JavaScript]を選択してください。
パッケージモジュールのインストール
次に以下の手順でNodeJSのパッケージをインストールします。
「Function Appの設定」→ 「Kuduに移動」を選択
Kuduを開くとコンソール画面が表示されます。
このコンソールからパッケージをインストールしていきます。
画面上部にあるフォルダ名のリンクを選択して作成したFunctionのフォルダに移動します。
D:\home\site\wwwroot\<function_name>
フォルダに移動したら、npmコマンドを実行します。
package.jsonの生成
D:\home\site\wwwroot\<function_name>> npm init
色々英語で質問されますが、"name"と"description"だけ入力して他はEnterキーで進んで問題ありません。
package install
今回使用するパッケージ
- request
- request-promise
D:\home\site\wwwroot\<function_name>> npm install request --save-dev
D:\home\site\wwwroot\<function_name>> npm install request-promise --save-dev
インストールが完了したら node_modules フォルダと package.json が作成されます。
package.json を開いて、以下のように設定がされていたらOKです。
これでパッケージのインストールは完了です。
Function エディターについて
① エンドポイントとなるURLです。HTTPリクエストから呼び出すことで処理を実行できます。
② 関数で実行する処理内容を記述します。
③ 関数のディレクトリをフォルダツリー形式で表示します。
④ 処理実行時のcontextログなどを表示します。
⑤ 関数実行時のパラメータを設定します。
⑥ 関数のレスポンス結果を表示します。
コードの記述
Azure Functions の準備ができたら次はコードを書いていきます。
今回はシンプルなkintoneのレコードを取得してログに表示するサンプルです。
上記のJSをコードに貼り付けてkintoneのサブドメインとアプリIDとログイン認証情報を変更して下さい。
var GET_URL = 'https://{subdomain}.cybozu.com/k/v1/records.json';
var APP_ID = 101;
var header_data = { "X-Cybozu-Authorization": 'xxxxxxxxxxxxxxxxx' };
変更ができたらコードを保存して画面下部の「実行」ボタンを押します。
ログにkintoneのレコードが表示され、右下に「200 OK」と出ていれば成功です。
さいごに
さて、今回はレコードの取得までとなりますが、この処理をベースにしてkintoneからレコードを取得→更新や、取得したレコード情報を別システムに登録などができるようになります。
次回は定期的にkintoneアプリAのデータを集計して、アプリBに登録してみます。
次回記事はこちら!kintoneとMicrosoft Azureを連携してみよう (Azure Functionsその2)
記事に関するフィードバック
記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。