【要約】TodoistのInboxタスクをwebhookでAWS Lambdaから自動的にプロジェクトへ振り分けた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がTodoistのAPI仕様やAWSの挙動に起因する、予期せぬ動作に直面した。
- ・Todoistのタスク更新APIでは、プロジェクトIDの変更ができなかった。
- ・Webhookの設定が有効でも、OAuth認可が未完了だとイベントが届かなかった。
- ・Lambdaのウォームスタートにより、古い認証情報がキャッシュされ続けた。
// Approach
開発者は、Todoistの仕様に合わせたAPI呼び出しと、AWSの実行環境特性を考慮した実装を行った。
- ・タスク移動には専用のmoveエンドポイントを採用した。
- ・OAuth認可フローを完遂し、アプリのインストール状態を確立した。
- ・認証情報の更新時は、Lambdaコンテナを強制的に入れ替えて対応した。
// Result
開発者は、Alexa経由のタスク追加を自動でプロジェクトへ振り分けられるようになった。
- ・手動の振り分け作業が不要になり、以前の運用を復元した。
- ・外部サービスの認可状態や、実行環境のキャッシュの重要性を学んだ。
Senior Engineer Insight
> 本構成は、個人の生産性向上には極めて有効なサーバーレス構成である。しかし、実務レベルではLambdaのグローバル変数によるキャッシュが、設定変更の即時反映を妨げるリスクを孕んでいる。認証情報のローテーションを伴う運用では、TTL(生存期間)付きのキャッシュ実装が必須となる。また、外部APIの仕様変更や認可状態の依存関係は、エンドツーエンドのテストなしには検知困難である。