翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS Serverless Application Model (AWS SAM) とは
AWS Serverless Application Model (AWS SAM) は、Infrastructure as Code (IaC) を使用してサーバーレスアプリケーションを構築するためのオープンソースフレームワークです。 AWS SAMの短縮構文を使用すると、開発者はデプロイ中にインフラストラクチャに変換されるCloudFormation
-
AWS SAM CLI - サーバーレスアプリケーションの開発、ローカルでのテスト、デプロイに役立つコマンドラインツール。
-
AWS SAM テンプレート - サーバーレスリソースを定義するためのシンプルな構文 CloudFormation を提供する の拡張機能。
sam init コマンドを使用すると、プロジェクトディレクトリが作成されます。これはプロジェクトと呼ばれ AWS SAM 、通常は AWS SAM テンプレート、アプリケーションコード、その他の設定ファイルが含まれます。
を使用するタイミング AWS SAM
AWS SAM は、 を最大限に活用してサーバーレス開発を簡素化したいシナリオに最適な IaC ソリューションです CloudFormation。例えば、SAM は以下を実行するために使用できます。
-
サーバーレスアプリケーション: SAM を使用すると、最小限のコードで AWS Lambda 関数、Lambda の耐久性のある関数、Amazon API Gateway APIs、Amazon DynamoDB テーブル、およびその他のサーバーレスリソースをすばやく定義できます。
-
CloudFormation の機能強化: SAM を既存の CloudFormation テンプレートと組み合わせて、サーバーレスコンポーネントを従来のインフラストラクチャに追加できます。SAM リソースは、同じテンプレート内の標準の CloudFormation リソースと連動します。
-
ローカル開発とテスト: SAM CLI を使用して Lambda 関数をローカルでテストし、API Gateway エンドポイントをシミュレートして、サーバーレスアプリケーションを AWSにデプロイする前に開発マシンでデバッグできます。
-
サーバーレス向けの CI/CD: ステージング環境と本番環境に必要な CloudFormation インフラストラクチャを自動的に生成する SAM テンプレートを使用して、デプロイパイプラインを構築できます。
-
コンソールで作成したリソースからの移行: SAM テンプレートを使用して、 AWS マネジメントコンソールで作成した Lambda 関数と API Gateway リソースを Infrastructure as Code に変換できます。
AWS SAM 他の IaC ツールとの比較
-
CloudFormation の代わりに SAM を使用して、テンプレートの互換性を維持しながらサーバーレスリソース定義を簡素化します。
-
プログラムによるアプローチではなく、宣言的なアプローチでインフラストラクチャを記述 AWS CDK する場合は、 の代わりに SAM を使用します。
-
SAM CLI のローカルテスト機能 AWS CDK を使用して SAM を と組み合わせ、CDK アプリケーションを強化します。
主な特徴
AWS SAM には、開発者のエクスペリエンスを向上させるさまざまな利点があります。
- より少ないコードを使用して、アプリケーションインフラストラクチャコードを迅速に定義する
-
AWS SAM テンプレートを作成して、サーバーレスアプリケーションインフラストラクチャコードを定義します。テンプレートを に直接デプロイ CloudFormation して、 リソースをプロビジョニングします。
- 開発ライフサイクル全体を通じてサーバーレスアプリケーションを管理する
-
AWS SAM CLI を使用して、開発ライフサイクルの作成、構築、デプロイ、テスト、モニタリングの各フェーズを通じてサーバーレスアプリケーションを管理します。詳細については、「AWS SAM CLI」を参照してください。
- AWS SAM コネクタを使用してリソース間のアクセス許可をすばやくプロビジョニングする
-
AWS SAM テンプレートの AWS SAM コネクタを使用して、 AWS リソース間のアクセス許可を定義します。 は、インテントを容易にするために必要な IAM アクセス許可にコードを AWS SAM 変換します。詳細については、「AWS SAM コネクタによるリソースに対するアクセス許可の管理」を参照してください。
- 開発中にローカルの変更をクラウドに継続的に同期する
-
sam sync コマンドを使用してローカルの変更を AWS SAMCLIクラウドに自動的に同期し、開発とクラウドテストのワークフローを高速化します。詳細については、「sam sync を使用する AWS クラウド への同期の概要」を参照してください。
- Terraform サーバーレスアプリケーションを管理する
-
AWS SAM CLI を使用して、ローカルで Lambda 関数とレイヤーのデバッグやテストを実行します。詳細については、「AWS SAM CLITerraform のサポート」を参照してください。
関連情報
の AWS SAM 仕組みについては、「」を参照してくださいの AWS SAM 仕組み。
の使用を開始するには AWS SAM、「」を参照してくださいAWS SAM の開始方法。
AWS SAM を使用してサーバーレスアプリケーションを作成する方法の概要については、「」を参照してくださいAWS SAM を使用する方法。