このプロジェクトについて
AWS Serverless Application Model (SAM) transformは、簡素化されたSAMテンプレートを標準のCloudFormationテンプレートに変換するオープンソースのCloudFormationマクロです。これは、CloudFormationのネイティブ構文を、AWS::Serverless::Function、AWS::Serverless::Api、AWS::Serverless::SimpleTableなどの高レベルリソースタイプで拡張し、開発者がより少ないボイラープレートでサーバーレスアプリケーションを定義できるようにします。
主な機能は以下の通りです:
- **テンプレート変換**:CloudFormationテンプレートに`Transform: AWS::Serverless-2016-10-31`を追加して、SAMリソースタイプを有効にします。このtransformは、簡略化された定義を、IAMロール、権限、イベントソースマッピングを含む完全なCloudFormation相当物に展開します。
- **組み込みのベストプラクティス**:最小権限ポリシーを持つIAMロールを自動的にプロビジョニングし、AWSLambdaBasicExecutionRoleなどの管理ポリシーをアタッチし、ランタイム、ハンドラー、タイムアウト設定に適切なデフォルトを適用します。
- **ローカルテストとデバッグ**:AWS SAM CLI(sam sync、sam local invoke、sam local start-api)と統合し、AWSにデプロイする前にサーバーレスアプリケーションをローカルで実行およびテストします。
- **ポリシーテンプレートとコネクタ**:再利用可能なIAMポリシーテンプレートとリソースコネクタをサポートし、複数のリソースにわたる権限管理を簡素化します。
- **マルチランタイムサポート**:Node.js、Python、Java、Go、.NET、Rubyを含むLambdaランタイムと、コンテナイメージデプロイメントで動作します。
このプロジェクトはPython(3.8+)で書かれており、PyPIで`aws-sam-translator`パッケージとして公開されています。開発はMakefileベースのワークフローを使用し、依存関係のセットアップには`make init`、テストスイートの実行には`make pr`を使用します。リポジトリには、ビルドテストとスキーマ更新用のCIワークフローが含まれており、Gitpodを介したコントリビューションをサポートしています。
一般的な使用方法は、YAMLまたはJSONでSAMテンプレートを作成し、SAM CLIまたはCloudFormationを直接使用してデプロイし、基盤となるインフラストラクチャを生成するためにtransformを活用します。このプロジェクトはまた、サーバーレス開発を学ぶための開発者ガイド、テンプレート仕様、ワークショップチュートリアルを含む広範なドキュメントを提供しています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.