AWS Serverless Application Model (AWS SAM) とは - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Serverless Application Model (AWS SAM) とは

AWS Serverless Application Model (AWS SAM) は、Infrastructure as Code (IaC) を使用してサーバーレスアプリケーションを構築するためのオープンソースフレームワークです。 AWS SAMの短縮構文を使用すると、開発者はデプロイ中にインフラストラクチャに変換されるAWS CloudFormationリソースと特殊なサーバーレスリソースを宣言します。を使用するときは AWS SAM、次の操作を行います。

  1. AWS SAM CLI - サーバーレスアプリケーションの開発、ローカルテスト、デプロイに役立つコマンドラインツール。

  2. AWS SAM テンプレート - サーバーレスリソースを定義するためのシンプルな構文 AWS CloudFormation を提供する の拡張機能。

sam init コマンドを使用すると、プロジェクトディレクトリが作成されます。これはプロジェクトと呼ばれ AWS SAM 、通常は AWS SAM テンプレート、アプリケーションコード、その他の設定ファイルが含まれます。

を使用するタイミング AWS SAM

AWS SAM は、 のフルパワーでサーバーレス開発を簡素化したいシナリオに最適な IaC ソリューションです AWS CloudFormation。たとえば、SAM は以下に使用できます。

  • サーバーレスアプリケーション: SAM を使用すると、最小限のコードで AWS Lambda 関数、Amazon API Gateway APIs、Amazon DynamoDB テーブル、その他のサーバーレスリソースをすばやく定義できます。

  • AWS CloudFormation の機能強化: SAM を既存の CloudFormation テンプレートと組み合わせて、サーバーレスコンポーネントを従来のインフラストラクチャに追加できます。SAM リソースは、同じテンプレート内の標準の CloudFormation リソースと連動します。

  • ローカル開発とテスト: SAM を使用して、デプロイ前に開発マシンで Lambda 関数をローカルでCLIテストし、API Gateway エンドポイントをシミュレートし、サーバーレスアプリケーションをデバッグできます AWS。

  • サーバーレスの CI/CD: ステージング環境と本番環境に必要な CloudFormation インフラストラクチャを自動的に生成する SAM テンプレートを使用してデプロイパイプラインを構築できます。

  • コンソールで作成されたリソースからの移行: マネジメントコンソールで作成された Lambda 関数と API Gateway リソースを AWS 、SAM テンプレートを使用してコードとしてのインフラストラクチャに変換できます。

他の IaC ツール AWS SAM との比較

  • CloudFormation の代わりに SAM を使用して、テンプレートの互換性を維持しながらサーバーレスリソース定義を簡素化します。

  • プログラムによるアプローチではなく、宣言的なアプローチでインフラストラクチャを記述 AWS CDK する場合は、 の代わりに SAM を使用します。

  • SAM CLI のローカルテスト機能 AWS CDK を使用して SAM を と組み合わせ、CDK アプリケーションを強化します。

主な特徴

AWS SAM には、開発者エクスペリエンスを向上させるさまざまな利点があります。

より少ないコードを使用して、アプリケーションインフラストラクチャコードを迅速に定義する

AWS SAM テンプレートを作成して、サーバーレスアプリケーションインフラストラクチャコードを定義します。テンプレートを に直接デプロイ AWS 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