APIを実行するのが複雑で少し難しいです。過去にはcli-kintoneを使った同期方法が紹介されています。Node.js)を用いて、2つのドメイン間でデータを同期する方法をご紹介します。概要ドメインAの「作成日時が今日のレコード」をドメインBに追加、また「更新日時が今日のレコード」をドメインBに更新する処理を、定期実行で1日1回実行します。事前準備kintoneドメインAとドメインBに同じ設定のアプリを作成する必要があります。アプリテンプレートを利用すると簡単に設定できます。下記のヘルプを確認しながら作成してください。https://jp.cybozu.help/k/ja/admin/app_admin/template.htmlまた、更新処理を実行するために、キーとする重複禁止のフィールドを1つ設定してください。今回の記事では、数値フィールドを使用しています。フィールドコードは「数値」です。LambdaAWSのアカウントが必要です。下記のAWS公式ドキュメントからアカウントを作成してください。https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/setup.htmlNode.jsNode.jsが実行できる環境を準備してください。バージョンは8.0.0以上をインストールしてください。https://nodejs.org/ja/コマンドラインツールWindowsの方はZIPコマンドが実行できるコマンドラインツールをご用意ください。macOSの方はTerminalをご使用ください。設定手順1.Lambdaにアップロードするファイルの準備サンプルコード以下のサンプルコードをファイル名「index.js」で保存してください。サンプルコードの10~24行目はご自身の環境に合わせての環境に合わせて設定してください。今回のシナリオではドメインAを同期元、ドメインBを同期先としています。以下のコマンドを先ほど作成したファイルと同じ階層で実行し、「package.json」を生成します。上記のコマンド実行後にpackage.jsonの設定をしますが、"name"と"description"のみ任意に設定していただき、他はEnterで進んで問題ありません。Node.js(β)をインストールします。ここまで完了したら、フォルダ構成が下図の通りになっているか確認してください。確認後、以下のコマンドを実行してZipファイルを作成します。実行失敗した場合は、再度構成を確認してください。次にLambda関数を設定しましょう。8.10」、ロールは「既存のロールを選択」、既存のロールは「AWSLambdaExecute」を選択してください。名前は任意に設定しましょう。ファイルをアップロード」から先ほど作成したzipファイルをアップロードしてください。次に、Lambdaのトリガーを選択します。Events」を選択してください。*)」に設定し、「トリガーの有効化」にチェックを入れ追加してください。設定が完了したら、保存をしてください。以上で設定は完了です。解説サンプルコード「index.js」について説明していきます。APIを実行しています。詳細については下記のGitHubとドキュメントをご覧ください。SDKを使ってそれぞれのドメインへの認証を行っています。6行目で、ドメイン名と認証方法をkintoneConnection_Aに保存しています。7行目では保存した情報を使ってレコード操作に関するクラスを呼び出しています。レコードをすべて取得する関数です。SDKのRecordクラスのgetRecords関数を使用しています。レコードをすべて取得する関数です。APIの登録と更新は、100件ずつしかできないため、取得したレコードを再整形する必要があります。この関数では再整形しやすくするため、取得したレコードを100件ずつに分割する処理をしています。addRcords引数に作成日が今日のレコードを設定し、そのレコードをドメインBのアプリに追加する関数です。発行するAPIトークンに「アプリの管理権限」を付与することで指定が可能です。SDKのRecordクラスのaddRecords関数を使用しています。レコードを設定し、そのレコードを元にドメインBのアプリのレコードを更新する関数です。メタ情報に加え、アップデートキーも外だしする必要があるため、削除します。SDKのRecordクラスのupdateRecords関数を使用しています。先ほど設定した関数を以下のように並列で実行しています。updateRecords追加対象のレコードと更新対象のレコードは一致することはないため、1日1回の実行で、ドメインAとドメインBのアプリを同期することが可能になります。Eventsのスケジュール式に上記のスケジュール式を設定していますが、これは毎日UTC時間の14時59分に実行されるように設定しています。UTC時間の14時59分は日本時間だと23時59分なので、日付が変わる直前にindex.jsの中身が実行されるようになっています。おわりにいかがでしょうか。別ドメインとの定期的な同期が実現できたかと思います。SDKを使って簡単に実装することができました。Lambdaは定期実行ができるので、kintoneでこれまでできなかったバッチ処理が可能です。LambdaからS3にファイルをアップロードしたりできるので、AWS上に定期的にバックアップを作成することもできそうですね。kintoneで確認したものになります。コミュニティをご活用ください。ログインしてコメントを残してください。