この記事は「make Advent Calendar 2024」14日目の記事です。
このアドベントカレンダーについて
このアドベントカレンダーは25日間でIPaaS製品の「make」について使い方や、実践を学べる連続ブログ企画です。
「おかしん」「ばるす」「たにあん」の3名がリレー形式でお届けします。
25日間のスケジュールは以下の通りです。
日付 | 内容 | 担当 |
12/1 | 話題のIPaaS製品「make」とは | おかしん |
12/2 | makeで作ってみたScenario紹介 | ばるす |
12/3 | make 基本操作編 機能紹介:Organization | たにあん |
12/4 | make 基本操作編 機能紹介:Scenario、Template | おかしん |
12/5 | make 基本操作編 機能紹介:Connections | ばるす |
12/6 | make 基本操作編 機能紹介:Webhooks | たにあん |
12/7 | make 基本操作編 機能紹介:DataStores、DataStructures | おかしん |
12/8 | make 基本操作編 機能紹介:Devices | ばるす |
12/9 | make 基本操作編 機能紹介:Functions | たにあん |
12/10 | make 基本操作編 機能紹介:CustomApps | おかしん |
12/11 | make 基本操作編 機能紹介:Flow Control,Tools,Text parser | ばるす |
12/12 | make ドキュメント動線の話:ResourceHub | たにあん |
12/13 | make 検証:Make Bridge | おかしん |
12/14 | make 検証:Make REST API | ばるす |
12/15 | make 検証:AI Search | たにあん |
12/16 | make Community Hub:Overview | おかしん |
12/17 | make Community Hub:Academy Courses,Blog Articles | ばるす |
12/18 | make Community Hub:Showcase,CustomApps | たにあん |
12/19 | makeの管理運用の話:Github連携 | おかしん |
12/20 | makeの管理運用の話:実行ログと再実行と停止中リクエスト滞留 | ばるす |
12/21 | makeの管理運用の話:Connection権限管理 | たにあん |
12/22 | makeで作ってみた事例:(未定) | おかしん |
12/23 | makeで作ってみた事例:(未定) | ばるす |
12/24 | makeで作ってみた事例:(未定) | たにあん |
12/25 | makeの総論を語る | ばるす |
はじめに
どーもばるすです。少しずつ皆さんの時間軸に近づいてきました。誰がなんと言おうと今日は12/14です。
今日はmake本体が提供してるAPIの概要についてご紹介します。
APIについては一家言あるばるすですが、makeAPIはなかなか良いですよ。
まじ?これAPIでできるの?wwwって驚かされることもありました。
まずは一覧
リファレンス:Make.com – Public API Documentation
大項目 | 中項目 | Create | Get | Update | Delete | 他にできることの概要 | 活用例 | 有用度 |
---|---|---|---|---|---|---|---|---|
Admin | Users | ✓ | ✓ | ✓ | ✓ | 組織/チームへのユーザー追加、ロール設定、オーナー権限移管、組織間の権限管理 | ユーザー管理の自動化、一括登録 | ★★★★ |
Admin | Teams | ✓ | ✓ | ✓ | ✓ | チーム管理者の直接設定、組織内の複数チーム管理 | 組織構造の自動構築 | ★★★★ |
Admin | Organizations | ✓ | ✓ | ✓ | ✓ | 機能アクセス制御、データ転送量制限設定、White Label機能の管理 | マルチテナント環境の管理 | ★★★ |
Admin | Platform settings | – | ✓ | – | – | プラットフォームインスタンスの設定確認、デフォルトライセンス管理 | プラットフォーム設定の監視 | ★ |
Audit logs | – | – | ✓ | – | – | 組織/チームの監査ログ取得、フィルター適用、詳細ログの確認、監査ログフィルターの取得 | コンプライアンス監査、セキュリティ監視 | ★★★★★ |
Connections | – | ✓ | ✓ | ✓ | ✓ | 接続検証、更新可能なパラメータの一覧取得、接続名の変更、スコープ確認、接続データの設定 | 接続管理の自動化、一括設定 | ★★★★★ |
Custom properties | Structure items | ✓ | ✓ | ✓ | ✓ | プロパティ構造の作成、構造アイテムの管理、データの入力 | メタデータ管理、拡張属性の実装 | ★★ |
Data stores | Data | ✓ | ✓ | ✓ | ✓ | レコードの一括操作、詳細更新、データストアの検索、レコードの一括管理、レコードの部分更新 | データの永続化、シナリオ間データ共有 | ★★★★★ |
Data structures | – | ✓ | ✓ | ✓ | ✓ | データ構造のクローン作成、構造の再利用、プラットフォーム間での移行 | データモデル管理、再利用可能な構造定義 | ★★★★ |
Incomplete executions | – | – | ✓ | ✓ | ✓ | 失敗シナリオの詳細確認、ブループリント取得、バンドル取得、実行ログの確認 | エラー処理の自動化、障害復旧 | ★★★ |
Enums | – | – | ✓ | – | – | タイムゾーン、国、ロケール、言語、通知設定、APIトークンスコープ、リージョン、ゾーン、変数タイプの一覧取得 | システム設定値の参照 | ★ |
Custom functions | – | ✓ | ✓ | ✓ | ✓ | コード検証、更新履歴確認、バージョン管理、関数の評価 | カスタム処理の実装、関数管理 | ★★★ |
General | – | – | ✓ | – | – | APIサービスのPing確認、サービスの死活監視 | 可用性監視、ヘルスチェック | ★★★★ |
Hooks | Incomings | ✓ | ✓ | ✓ | ✓ | Webhookの有効/無効化、Ping確認、自動データ構造学習の開始/停止、キュー管理、キュー統計情報の取得 | イベント駆動型統合の実装 | ★★★★ |
Hooks | Logs | – | ✓ | – | – | Webhook実行ログの取得(3日分、Enterpriseは30日分)、実行詳細の確認 | 実行履歴の分析、トラブルシューティング | ★★★★★ |
Keys | – | ✓ | ✓ | ✓ | ✓ | キータイプの一覧取得、認証キーの管理、HTTPやEncryptorアプリでの認証管理 | セキュアな認証管理 | ★ |
Notifications | – | – | ✓ | ✓ | ✓ | 通知の一括既読化、シナリオ問題の通知管理、新機能アップデートの通知管理 | ユーザー通知の自動管理 | ★★ |
Organizations | – | ✓ | ✓ | ✓ | ✓ | 組織の作成・管理、カスタムアプリ管理、ユーザー招待 | 組織管理の自動化 | ★★★ |
Organizations | User organization roles | – | ✓ | ✓ | – | ユーザーの組織ロール管理、ロール詳細の取得、オーナー権限の移管 | 権限管理の自動化 | ★★★ |
Organizations | Variables | ✓ | ✓ | ✓ | ✓ | 組織変数の管理、更新履歴の確認、カスタム変数の作成と管理 | 組織レベルの設定管理 | ★★★ |
Scenarios | – | ✓ | ✓ | ✓ | ✓ | シナリオの作成・管理、実行制御、クローン作成、モジュールデータの確認 | 自動化プロセスの管理 | ★★★★ |
Scenarios | Logs | – | ✓ | – | – | シナリオ実行ログの取得、実行詳細の確認 | 実行履歴の分析 | ★★★★★ |
Scenarios | Blueprints | – | ✓ | – | – | ブループリントの取得、バージョン履歴の確認 | バージョン管理 | ★★★★★ |
Scenarios | Consumptions | – | ✓ | – | – | 使用量の確認、操作数とデータ転送量の監視 | リソース使用の最適化 | ★★★★ |
Scenarios | Custom properties | ✓ | ✓ | ✓ | ✓ | カスタムプロパティの管理、データの設定と更新 | シナリオのメタデータ管理 | ★★ |
Scenarios folders | – | ✓ | ✓ | ✓ | ✓ | シナリオの階層的な整理、フォルダ構造の管理 | プロジェクト管理の体系化 | ★★ |
Teams | – | ✓ | ✓ | ✓ | ✓ | チームの作成・管理、使用量確認 | チーム運用の自動化 | ★★★★★ |
Teams | User team roles | – | ✓ | – | – | チーム内のユーザーロール管理、ロール詳細の確認 | 権限管理 | ★★★★★ |
Teams | Variables | ✓ | ✓ | ✓ | ✓ | チーム変数の管理、更新履歴の確認、カスタム変数の作成と管理 | チームレベルの設定管理 | ★★★ |
Templates | – | ✓ | ✓ | ✓ | ✓ | テンプレートの作成・管理、公開、承認リクエスト | テンプレート管理 | ★★ |
Templates | Public | – | ✓ | – | – | 公開テンプレートの一覧取得、詳細確認、ブループリント取得 | テンプレートの検索・利用 | ★★ |
Users | – | – | ✓ | ✓ | ✓ | ユーザー情報の更新、メール更新、パスワード管理 | ユーザープロフィール管理 | ★★★★★ |
Users | Me | – | ✓ | – | – | 現在の認証ユーザーの情報取得、組織招待の確認 | ユーザー情報の取得 | ★★★★ |
Users | API Tokens | ✓ | ✓ | ✓ | ✓ | APIトークンの作成・管理、トークン一覧の取得 | API認証の管理 | ★★★ |
Users | Team roles | – | ✓ | ✓ | – | チームロールの管理、ロール詳細の確認 | チーム権限の管理 | ★★★ |
Users | Team notifications | – | ✓ | ✓ | – | チーム通知設定の管理、設定の確認と更新 | 通知管理 | ★★ |
Users | Organization roles | – | ✓ | ✓ | – | 組織ロールの管理、ロール詳細の確認、オーナー権限の移管 | 組織権限の管理 | ★★★★ |
各評価基準と目安
評価 | 特徴 | こういう使い方になりそう |
★★★★★ | 手動は無理でしょってやつの自動化に使えそう | ・CI/CDパイプラインでの自動デプロイ ・大規模組織でのユーザー管理自動化 ・システム死活監視との連携 ・マルチテナント環境での一括管理 |
★★★★ | 自動化すると結構楽 | ・シナリオのバージョン管理との連携 ・運用状況の定期レポート生成 ・複数環境間での設定同期 ・SLA監視とアラート通知 |
★★★ | 使うときは使う | ・定期的なデータクレンジング ・利用状況の集計処理 ・バッチでのユーザー情報更新 ・特定条件での一括処理 |
★★ | 基本的にポチポチ操作で良くね | ・初期環境構築時の設定 ・個別のリソース管理 ・テンプレートの作成・更新 ・1回限りの大規模変更 |
★ | 参照するだけとか | ・各種マスタ情報の参照 ・設定値の確認 ・単発の状態チェック ・個別通知の確認 |
ばるす所感
全体的に
- 必要なCRUD操作はほぼ揃ってるし非常に包括的
- GUIでしかできないことって何があるんだ?と思うくらいには豊富
- ほとんどのGUI機能がAPIでカバーされていて、エンタープライズでの利用を意識した設計になっている印象
- シナリオの完全なプログラマティック制御が可能な点
- データストアやカスタム関数など、開発者向け機能も充実している
- 監査ログやユーザー管理など、エンタープライズ環境で重要な管理機能も網羅されている
個別のAPIについて
- Ping API
- makeが生きてるかPingを送ってレスポンス受け取るAPI(うーんシンプル)
- 自サービスの死活監視する用のAPIとか初めて見たわ、おもしろーw
- Hooks/learn-start API
- Webhook作った後、make側でWebhookのRequestJsonを学習するプロセスをAPIで開始して、このリクエストBodyに入れたパラメータをmake側が学習してScenario内で利用できるようにデータストラクチャを自動生成する
- おもしろーw こういうのAPIでよしなにできるの稀な気がする。普通はJsonでデータストラクチャ定義しないと設定できないとかでしょ
- リクエスト飛ばして学習させられるのは良いね
- Notifications API
- テナント全体の通知はこれで受け取れる
- Scenario監視とかgeneralなmakeの監視はこのNotificationsで十分かも
- 仮説なので検証は必要
- users/user-team-roles-2 API
- ユーザーの権限/Roleの変更ができるAPI
- 権限操作もAPIでやれるのは偉い
GUIと比較した際のAPIの制限事項
シナリオ作成時の制限
- ビジュアルなフロー設計ができない(API経由では基本的にJSONでのシナリオ定義)
- モジュール間の接続の視覚的な確認や調整が難しい
- データマッピングのGUIツールが使えない
デバッグ関連の制限
- リアルタイムのデータサンプル取得
- インタラクティブなデータマッピングのテスト
- ライブデバッグ実行
テンプレート関連
- テンプレートギャラリーの視覚的なブラウジング
- テンプレートの対話的なカスタマイズ
とはいえ、これらの「制限」のほとんどは、GUIの利便性に関するものであり、機能的な制限というよりはユーザーインターフェースの違いから生じる操作性の違いによるもの。
実際の運用ではGUIとAPIを組み合わせて使用することで、それぞれの長所を活かした効率的な運用が可能だと考えられますね。
こういう活用ができそう
リファレンス読んでいくつか動作確認してみた感じ、こういうことができそうです。
1. シナリオの死活監視
- Ping:make自体の死活監視
- List notifications:シナリオの実行エラーがないか取得
- Get notification detail:実行エラーの詳細取得
- List scenario logs:実行ログの取得
- Get execution log:個別の実行ログの詳細取得
- List incomplete executions:失敗したシナリオの一覧取得
2. シナリオの自動デプロイ
- List scenarios:デプロイ対象のシナリオ一覧取得
- Update scenario:環境に合わせた設定変更
- Get scenario blueprint:シナリオ定義の取得
- Activate scenario:デプロイ後の有効化
- Run a scenario:デプロイ後の動作確認実行
3. データストアを使った外部システム連携
- List data stores:利用可能なデータストアの一覧取得
- Create data store:新規データストア作成
- List data store records:保存データの取得
- Create data store record:外部システムからのデータ登録
- Update data store record:データの更新
- Delete data store records:不要データの一括削除
おわりに
makeやるじゃん!
正直、これだけAPIが揃ってるとは思ってませんでした。
死活監視、自動デプロイ、外部連携…実運用でほしい機能はある程度揃ってる印象です。
ただAPIを提供すれば良いってわけじゃなくて、実際の運用シーンを想定した作りになってるのが素晴らしい。
ばるすの中でmakeへの好感度がアゲアゲです。
今回ご紹介した各APIを組み込んでmakeの管理運用を自動化してみたブログも後日書きたいところですね。
またすげー量になりそうなので気長にお待ちください。
ではでは。