(著者:菊地 宏司)
こんにちは。菊地です。
今回は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 の環境を準備しましょう。
パッケージモジュールのインストール
次に以下の手順でNodeJSのパッケージをインストールします。
「高度なツール」→ 「移動」を選択
Kuduが開かれます。「Debug console」から「CMD」をクリックしコンソール画面を表示します。
このコンソールからパッケージをインストールしていきます。
画面上部にあるフォルダ名のリンクを選択して作成したFunctionのフォルダに移動します。
D:\home\site\wwwroot\<function_name>
フォルダに移動したら、npmコマンドを実行します。
package.jsonの生成
D:\home\site\wwwroot\<function_name>> npm init
色々英語で質問されますが、"name"と"description"だけ入力して他はEnterキーで進んで問題ありません。
package install
今回使用するパッケージ
- node-fetch(バージョン2)
D:\home\site\wwwroot\<function_name>> npm install node-fetch@2
インストールが完了したら node_modules フォルダと package.json が作成されます。
package.json を開いて、以下のように設定がされていたらOKです。
これでパッケージのインストールは完了です。
Function エディターについて
① 表示する関数のファイルを切り替えることができます。
② 関数で実行する処理内容を記述します。
③ context.logなどのログ内容が表示されます。
④ 関数実行時のパラメータを設定します。
コードの記述
Azure Functions の準備ができたら次はコードを書いていきます。
今回はシンプルなkintoneのレコードを取得してログに表示するサンプルです。
上記のJSをコードに貼り付けてkintoneのサブドメインとアプリIDとAPIトークンを変更して下さい。
const GET_URL = 'https://{subdomain}.cybozu.com/k/v1/records.json';
const APP_ID = 0;
const API_TOKEN = '{app token}';
変更ができたらコードを保存して画面下部の「実行」ボタンを押します。
ログにkintoneのレコードが表示され、出力のHTTP応答コードが「200 OK」と出ていれば成功です。
さいごに
さて、今回はレコードの取得までとなりますが、この処理をベースにしてkintoneからレコードを取得→更新や、取得したレコード情報を別システムに登録などができるようになります。
次回は定期的にkintoneアプリAのデータを集計して、アプリBに登録してみます。
次回記事はこちら!kintoneとMicrosoft Azureを連携してみよう (Azure Functionsその2)
このTipsは、2022年1月版 kintoneで確認したものになります。
非推奨となったライブラリに代わる、@kintone/rest-api-client 等の最新ライブラリに差し替えたコードに変更してください。
さらに、「kintoneのwebhookから、Azure FunctionsのDurableFunctionsHttpStartererを認証付きで呼び出してバッチ処理(Durable activity)を起動し、Durable activityの非同期実行の完了通知を kintone側のレコードのコメント情報か あるいは、kintone側の何処か適切な場所に記録するような サンプルにしていただけると、嬉しいです。
小瀬 様
お世話になっております。cybozu developer network 運営局です。
記事へのフィードバック、ありがとうございます。
いただきましたご要望について、検討させていただきます。
よろしくお願いいたします。