私はリアクションフロントエンドを備えた典型的なCRUDサーバーレスインフラストラクチャを作成する優れたガイド()に従ってきました。 AWSにはServerless Frameworkが使用されています。サーバレスフレームワーク:完全な「インフラストラクチャとしてのインフラストラクチャ」を実現する方法は?
私が気に入らないのは、セットアップをブートストラップするためには、GUI(主にAmazonのコンソールインターフェイス)を手動でクリックすることです。私。セットアップはバージョン管理されておらず、容易に再現できません。
- AWS Cognitoユーザープール
- AWS Cogniteユーザーのプールアプリケーション
- AWS:次のリソースを手動で設定する必要があります。この例では、CI/CDプロセスなどでそれを拡張することは容易ではありませんCognitoフェデレーションIDプール
- AWS DynamoDBのインスタンス
- AWS S3バケット(X3)(これもfrontendをホスト)
- AWS CloudFrontの分布
- AWS Route53ゾーンファイル
は、コードから構築されている唯一のリソースは、サーバーレス機能(ラムダ)自分自身だけでなく、APIゲートウェイインスタンスです。これは、サーバレスフレームワークがファイルserverless.ymlを使用して行うものです。しかし、上記のリソースはすべてで、は自動的に作成されません。 ARNを使用してreferenced toにする必要がある場合もありますが、serverless.yml設定では作成されていません。このようなシステムを本番環境で実行すると(GUIを使用した手動によるサービス作成に大きく依存している)、危険に見えるでしょう。
私は、このソリューションがTerraformまたはCloudformを使用することになると考えていました。しかし、Serverless Framework自体は、Lambdaのセットアップに既にCloudformを使用していますが、他のリソースでは使用できません。だからこのギャップをどのように排除するのだろうか?言い換えれば、コード内でServerless Stackに記載されているセットアップ全体をどのように再構築するのでしょうか?
CloudFormationにServerlessを設定するのは、奇妙に思えるかもしれませんが、おそらく不可能で、ラムダをセットアップする独自のCloudformationテンプレートがあります。 serverless deploy
で作成する必要がある関数やAPIゲートウェイだけでなく、DynamoDBやCognito User Poolなどの他のリソースを定義するために、Serverless Frameworkを拡張する方が意味があります。すでにこれをやっている人々の例や試みはありますか?