苦労したAWSサーバレスAPI構築物語
しかし、APIゆえにAPIクライアントの事情を組む必要があり、構築の際に苦労した話をしたいと思います。
<前提>
・APIはインターネット公開
・特定のパッケージソフトから利用される
はじめに、APIGatewayにてモックAPIを作成し、OpenAPIのスキーマ(yaml)をクライアント開発チームへ提供し、開発を進めていただいた。(スキーマ駆動開発)
ここまでは良かったのですが、問題が発生。
<当初の構成案>
APIGateway→Lambda
1、TLS対応問題
APIをコールする側のクライアントのアプリケーションがレガシーであり、TLS1.0しか対応できないとのこと。
APIGatewayではTLS1.1以上の対応となっており、頭を悩ませた。
<対応策>
TLS1.0対応のCloudFrontをAPIGatewayのフロントにおいて対応。
2、ペイロードサイズ問題
アップロードされるファイルサイズは10MB以内の前提であった、10MB以内で問題はなかっただが、Lamdaでエラーが発生!
Lamabdaペイロードサイズが6MBであることが判明
<対策>
S3署名URLを発行し、S3に直接PUTしてもらい、それをトリガーにLambdaを起動させる方法に変更
<変更後の構成>
CloudFront→APIGateway→Lambda(S3署名URL発行)
S3→Lambda
いろいろと勉強になりました。
しかし、AWSは問題にぶつかっても何かと別の方法があって助かります。