4

複数の SAM テンプレートで単一の APIGateway を使用しようとしています。このために、他の SAM テンプレートの基本テンプレートから RestApiId をインポートして、ラムダのイベント セクションで使用することを試みました。しかし、SAMには次のような制限があります

RestApiId は、同じテンプレート内の「AWS::Serverless::Api」リソースへの有効な参照である必要があります。

3 時間の調査の後、ベース テンプレートで API ゲートウェイを定義し、必要な機能を呼び出すことができるようにロール/ポリシー/定義を作成することで、それを達成できることがわかりました。Lambda を複数の Lambda 専用 SAM ファイルに分割しますが、その下に定義された Api タイプのイベントはありません。このようにして、Lambda と API Gateway を互いに独立して作成し、Swagger/OpenAPI を使用して統合し、権限を個別に調整することができます。

以下は、上記のアプローチを推奨する便利なリンクです。

リンク1

リンク2

このアプローチは少し複雑だと思います。API が swagger ファイルでさらに取得されている場合、ベース テンプレートの CFN 200 制限を超える可能性があります。誰かが異なるテンプレート間で apiGateway をインポートするより簡単な方法を提案してくれたら幸いです。

4

0 に答える 0