エッジファンクション測定環境の構築:実装の記録
セットアップで直面した課題と解決策
1. エッジファンクションのデプロイ
Vercel Edge Functions
はじめに直接ファイルをアップロードしようとしたが失敗
GitHubリポジトリと連携することで解決
vercel.jsonの設定でmaxDurationのエラーに遭遇
jsonCopy{
"functions": {
"api/measure.js": {
"memory": 128
}
}
}
メモリ制限のみの設定に変更して解決
Fastly Compute@Edge
GUIでのデプロイを試みたが、CLIツールが必要と判明
fastly compute initでプロジェクト作成が必要
Deno Deploy
初期のTypeScript記法でエラー発生
JavaScript形式に変更して解決
javascriptCopyimport { serve } from "https://deno.land/std@0.188.0/http/server.ts";
serve(handler);
2. Lambda関数の実装
モジュール形式の問題
当初CommonJSで実装
javascriptCopyconst { spawn } = require('child_process');
ES Modules形式に変更が必要
javascriptCopyimport { spawn } from 'child_process';
依存関係の管理
google-spreadsheetパッケージの導入で苦戦
package.jsonの適切な設定が必要
jsonCopy{
"type": "module",
"dependencies": {
"google-spreadsheet": "^4.1.1"
}
}
3. 現在の課題
k6の実行環境のセットアップ
Google Spreadsheetとの連携確認
長時間実行時のタイムアウト対策
学んだこと
エッジファンクションは各プラットフォームで設定方法が大きく異なる
Lambda上でのES Modulesの扱いには注意が必要
ローカル開発とクラウド上での動作の違いを考慮する重要性
次のステップ
測定スクリプトの完成
テストの自動実行スケジュールの設定
結果の収集と分析方法の確立
この実装経験から、クラウドサービス間の連携には予想以上の設定と調整が必要であることを学びました。 CopyRetryClaude does not have the ability to run the code it generates yet.Claude can make mistakes. Please double-check responses.