kintone異種拡張技 AWS編

ハッカソンで活用するkintone

2025/1/25 株式会社モノサス/キン担ラボ
本橋大輔

kintone異種拡張技とは

個性的な四種類のkintoneカスタマイズを組み合わせた拡張技

きょうの論旨

  • 最近ハッカソンで作ったシステムを紹介します
  • 管理画面はkintoneにして、レコードをフロントから読もう‼️
  • 直は不安だからワンクッション嚙ませたいね‼️

⇨できるだけ楽にね⁉️

kintone Web Gateway構成

  • Lambda : WebhookをDynamoDBに格納
  • DynamoDB : レコードのクローンを保管
  • API Gateway : AWS統合でDBから直読み
  • Web Server : 静的HTMLでJSON色付け

この構成でハッカソンに参加

プレイ&サバイブ(開発中)

kintoneを管理画面にすると

メリット

  • 管理画面開発の工数不要
  • ドキュメントもAPIも充実
  • メンテナンスもセキュリティもおまかせ

kintoneを管理画面にすると

デメリット

  • AWSの構築が面倒

⇨LLMに頼ろう

TIPS: プロト開発で楽するために

設計時点で限定する

  • レコードを削除しない運用
    • ラジオボタンの無効化フラグで代用(※注)
  • 一方向の読み出しのみ
    • kintone⇨DynamoDB だけの反映なら実装がラク

API Gateway でDynamoDBを直接読む

  • マッピングテンプレートでDBを直接API化
{
  "TableName": "ADC2024_kouzuki",
  "KeyConditionExpression": "#appid = :v_appid",
  "ExpressionAttributeNames": {
    "#appid": "__appid__"
  },
  "ExpressionAttributeValues": {
    ":v_appid": { "N": "${stageVariables.appid}" }
  }
}

※LLMが頼りになります

APIのレスポンスの例

{
    "Item": {
        "カテゴリ": { "S": "コミュニティ" },
        "作成日時": { "S": "2024-11-24T06:09:00Z" },
        "更新日時": { "S": "2025-01-16T02:47:00Z" },
        "質問文": { "S": "地域に困りごとを相談できる人はいますか?" },
        "選択肢テーブル": {
            "L": [
                {
                    "M": {
                        "value": {
                            "M": {
                                "回答項目": { "S": "気軽に相談できる人がいる" },
                                "リスクポイント": { "S": "0" }
                            }
                        },
                        "id": { "S": "10164" }
                    }
                },
                ...(省略)
            ]
        }
    }
}

TypeScriptからシンプルな型定義で扱える

type JsonType = {
  Item: {
    [fieldCode: string]: 
      | { M: { [subField: string]: { S: string } } }
      | { S: string }
      | { L: Array<{ M: { [subField: string]: { [subSubField: string]: { S: string } } } }> }
      | { N: string };
  };
};

※LLMが頼りになります

シンプルに、楽ちんに

プロトタイプを作るには

kintoneが頼りになる

ハッカソン楽しかったよ

というLTでした

ご清聴ありがとうございました

告知

kintone Café 徳島 Vol.8

4/19(土)

- class: normal / blue / green / red / kintone / purple

# ## 本日のスライド ![bg](img/異種格闘技タイトル.png) ![w:280](https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=https://motohasystem.kamiyama.club/20250125_devkin_meetup_in_osaka/#center)

![w:200px](img/2025-01-25-14-59-12.png)

[![w:400](https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=https://motohasystem.github.io/adc2024_bousai_packaaaaarn/)](https://motohasystem.github.io/adc2024_bousai_packaaaaarn/)

![bg left:35%](img/ぱっかーんスクショ.png)

# ![bg fit](img/データ収集基盤が実現.png)

![](img/UDC_logo.png)