カテゴリー内の他の記事

kintoneとMicrosoft Azureを連携してみよう (Azure Functionsその1)

(著者:菊地 宏司)

Index

 

こんにちは。菊地です。

今回は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形式のタイマー設定が可能です。

 

_____.PNG

HTTPトリガーを使ってAzureサービスと連携する

Azure Functions を使うことにより Azure サービスとの連携が柔軟に対応できます。

 

http____.PNG

 

ということで、発想次第で色々な使い方ができるサービスとなっています。

それではAzure Functions を利用するための準備を以下の手順に沿ってやってみましょう

 

Azure Functions の準備

以下の手順で Azure Functions の環境を準備しましょう。

  1. Microsoft Azure アカウントの準備
  2. Azure Functions の準備
  3. Azure Functions 関数の準備

パッケージモジュールのインストール

次に以下の手順でNodeJSのパッケージをインストールします。

 

「高度なツール」→ 「移動」を選択

kintone-azure_-_Microsoft_Azure_2022-01-06_10-36-41.png

  

Kuduが開かれます。「Debug console」から「CMD」をクリックしコンソール画面を表示します。

Kudu_Services_2022-01-06_10-40-56.png

このコンソールからパッケージをインストールしていきます。

22.PNG

 

画面上部にあるフォルダ名のリンクを選択して作成したFunctionのフォルダに移動します。

D:\home\site\wwwroot\<function_name>

24.PNG

 

フォルダに移動したら、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 エディターについて

kintone-azure_-_Microsoft_Azure_2022-01-06_15-32-56.png

 

① 表示する関数のファイルを切り替えることができます。

② 関数で実行する処理内容を記述します。

③ 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-azure_-_Microsoft_Azure_2022-01-06_15-40-59.png

 

さいごに

さて、今回はレコードの取得までとなりますが、この処理をベースにしてkintoneからレコードを取得→更新や、取得したレコード情報を別システムに登録などができるようになります。

次回は定期的にkintoneアプリAのデータを集計して、アプリBに登録してみます。

次回記事はこちら!kintoneとMicrosoft Azureを連携してみよう (Azure Functionsその2)

このTipsは、2022年1月版 kintoneで確認したものになります。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
小瀬

非推奨となったライブラリに代わる、@kintone/rest-api-client 等の最新ライブラリに差し替えたコードに変更してください。

さらに、「kintoneのwebhookから、Azure FunctionsのDurableFunctionsHttpStartererを認証付きで呼び出してバッチ処理(Durable activity)を起動し、Durable activityの非同期実行の完了通知を kintone側のレコードのコメント情報か あるいは、kintone側の何処か適切な場所に記録するような サンプルにしていただけると、嬉しいです。

Avatar
cybozu Development team

小瀬 様
お世話になっております。cybozu developer network 運営局です。

記事へのフィードバック、ありがとうございます。
いただきましたご要望について、検討させていただきます。

よろしくお願いいたします。

サインインしてコメントを残してください。