Amplify Gen2 で Lambda から AppSync に Mutate し、リアルタイムイベントを配信する
By msysh on 2024-06-11
Web アプリにおいてサーバーからクライアント (ブラウザ) に向けてデータをプッシュしたいシーンがあるかと思います。WebSocket を使った GraphQL などが使われ、AWS のマネージドサービスとしては AppSync があります。一般的な例としては AppSync を通じて DynamoDB のデータを更新すると、AppSync にサブスクライブしているクライアントに対してイベントをリアルタイムに送信できたりします。今回は AppSync を経由せずに DynamoDB が更新された時に、AppSync にサブスクライブしているクライアントにサーバーからイベントをプッシュする方法を Amplify Gen2 で実装してみました。スマートにできなかったところも一部あったのですが、記録として残しておきたいと思います。
Lambda ストリームレスポンスを使って CloudFront 経由で 6MB 以上のレスポンスを返す
By msysh on 2024-04-17
Lambda からのレスポンスサイズにはいろいろと制限があり、例えば同期呼び出しにおいて、関数 URL や API Gateway 経由だと 6MB、ALB 経由だと 1MB までといった制限があります。それ以上のデータを返す場合は、Lambda ではなく ECS に変えたり、S3 に出力してからごにょごにょする必要がありました。が、2023年4月に Lambda でストリームレスポンスがサポートされ、この制限を超えることができるようになりました。また、CloudFront の OAC (Origin Access Control) が Lambda の関数 URL をサポートしましたので合わせて検証してみました。
#lambda #stream-response #function-url #cloudfront #oac #aws
CloudWatch Logs から Subscription Filter で Firehose, S3 へ
By msysh on 2020-04-06
CloudWatch Logs(CWL)から Subscription Filter で Kinesis Data Firehose(Firehose) を利用して、S3 へログを保存というケースで、
Firehose で Lambda による Transform を実施したいことがある(ある情報をマスクする、秘匿化するなど)。
その時の考慮事項、実装方法など。