Strands Agents SDK デプロイ — Lambda にサーバーレスデプロイする
Strands Agents SDK の公式 Lambda Layer を使い、ハンドラー関数を書くだけでサーバーレスエージェントをデプロイする。コールドスタートとウォームスタートの実測値も共有する。
「lambda」タグが付いたコンテンツ一覧
Strands Agents SDK の公式 Lambda Layer を使い、ハンドラー関数を書くだけでサーバーレスエージェントをデプロイする。コールドスタートとウォームスタートの実測値も共有する。
AWS Lambda Managed Instances を実際にデプロイし、プロビジョニング67秒、マルチコンカレンシーで10実行環境への自動分散、CPU負荷時のスロットリング挙動を計測した。LMI移行判断のチェックリストを提示する。
DevOps Agent の Generic Webhook を使い、CloudWatch アラーム → SNS → Lambda → Webhook で調査を自動起動するパイプラインを構築した。HMAC 署名の実装、アラーム発火から調査開始までの所要時間、同一 incidentId 送信時のリンク動作を検証する。
DevOps Agent の EventBridge 連携を検証。Investigation のライフサイクルイベントをキャプチャし、調査サマリを SNS で自動通知するパイプラインを構築した。IAM アクションプレフィックスや Lambda の boto3 バンドルなど、ドキュメントだけでは分からない実装上の注意点も記録する。
AWS SDK for Rust の初回リクエスト900ms を DNS・TCP・TLS・API に分離計測。TLS ハンドシェイクが745ms で99%を占めた。接続ウォーミングで合計 Billed Duration を82%削減できる。
SAMデプロイのハマりポイント、LocalDurableTestRunnerによるローカルテスト、実行履歴の追跡方法を実体験ベースで整理。修飾付きARN必須の罠が最初の関門。
冪等性・DurableExecutionName・並行コールバック・タイムアウト設定を実機検証。「リプレイされる前提で設計する」が全BPの共通原則だと分かった。
AWS公式の不正検知デモをデプロイし、リスクスコア別の3分岐とサスペンド動作を実機検証。チェックポイント&リプレイでwait中の課金ゼロを確認した。
Powertools for AWS Lambda の getMetadata() を使った Same-AZ ルーティングを TypeScript で実装・検証。キャッシュ動作や clearMetadataCache() の挙動を実測データとともに共有する。
Lambda の新しい AZ メタデータエンドポイントを検証。ElastiCache Valkey クラスターへの同一AZ / クロスAZ接続レイテンシを実測し、Same-AZ ルーティングの効果を定量的に示す。
Lambda Managed Instances の Rust サポートを検証。run_concurrent で8並列処理を実現し、Init Duration 2.9msでコールドスタートを実質排除。通常Lambdaとの使い分けを考察する。
Step・Wait・Callback・Parallel の4パターンを AWS CLI で検証。チェックポイント&リプレイの挙動、Step Functions との使い分けを実測データとともに整理する。
Lambda の Python マネージドランタイムに含まれる boto3 が古く、DevOps Agent などの新サービスのサービスモデルがない場合がある。PYTHONPATH=/var/task を設定してバンドル版 boto3 を優先させることで解決する。
Lambda で AWS SDK for Rust のクライアントを Init で初期化しても、初回の API 呼び出しに約900msかかる。分離計測の結果、TLS ハンドシェイクが745msで99%を占めていた。
未修飾の関数名で invoke すると InvalidParameterValueException になる。$LATEST を付けるか publish-version したバージョン番号を指定する。
コールバック待ちでサスペンドしていても get-durable-execution のステータスは RUNNING。実行履歴の CallbackStarted イベントで判断する。
公式ドキュメントにはPython/TypeScript両方のPowertoolsコード例があるが、Python版3.25.0にはlambda_metadataモジュールが未収録でModuleNotFoundErrorになる。TypeScript版は@aws-lambda-powertools/commons 2.32.0で対応済み。
update-function-configuration で後から追加しようとすると CapacityProviderConfig isn't supported for Lambda Default functions エラーになる。
Invoke API で Tail を指定するとエラーになる。代わりに CloudWatch Logs の platform.report イベントから Duration を取得できる。
EC2 FullAccess や AdministratorAccess をアタッチしても InsufficientRolePermissions で失敗する。専用のマネージドポリシーが必要だった。
ドキュメントの一部に CheckpointDurableExecutions(複数形)と記載があるが、実際に必要なのは単数形。複数形だと権限エラーになる。
import { DurableContext } from '@aws/durable-execution-sdk-js' は SyntaxError になる。withDurableExecution のみ import し、型は推論に任せる。