メニュー
AWS Lambda
開発者ガイド

Lambda ベースのアプリケーションをデプロイする

Lambda ベースのアプリケーション (サーバーレスアプリケーション とも呼ばれる) は各イベントによってトリガーされる関数で構成されます。典型的なサーバーレスアプリケーションは、Amazon S3、Amazon SNS 通知、および API アクションへのオブジェクトのアップロードなどのイベントによってトリガーされる 1 つ以上の関数で構成されます。これらの関数はスタンドアローンとなるか、DynamoDB テーブルや Amazon S3 バケットなどの他のリソースを活用することができます。基本的なサーバーレスアプリケーションのほとんどは単一の関数です。

AWS Lambda は、デプロイメントパッケージを ZIP ファイルとして提供することによって Lambda 関数を作成および更新するために使用できる API オペレーションを提供します。ただし、このメカニズムは、関数のデプロイステップの自動化や、イベントソースやダウンストリームリソースなどのサーバーレス アプリケーションの他の要素に対するデプロイメントや更新を調整するには便利ではない場合があります。例えば、Amazon SNS トリガーをデプロイするには、関数、Amazon SNS トピック、関数とトピックの間のマッピング、および DynamoDB テーブルなどの、関数が必要とするその他のダウンストリームリソースを更新する必要があります。

サーバーレスアプリケーションは以下の方法でデプロイできます。

  • AWS CLI - aws cloudformation deploy コマンドを使用できます。詳細については、サーバーレスアプリケーションの作成に関するチュートリアルの「デプロイメント」を参照してください。詳細については、「独自のサーバーレスアプリケーションを作成する」を参照してください。Lambda には、サーバーレスアプリケーションをデプロイするための他の AWS CLI オペレーションも用意されています。

  • AWS CloudFormation - AWS CloudFormation を使用して、サーバーレスアプリケーションを指定、デプロイ、設定できます。AWS CloudFormation は AWS リソースのモデル化およびセットアップに役立つサービスです。リソース管理に割く時間を減らし、AWS; で実行するアプリケーションにより注力できるようになります。使用するすべての AWS リソース (Lambda 関数や DynamoDB テーブルなど) を記述するテンプレートを作成すれば、AWS CloudFormation がお客さまに代わってこれらのリソースのプロビジョニングや設定を受け持ちます。AWS リソースを個別に作成、設計して、それぞれの依存関係を考える必要はありません。 —AWS CloudFormation がすべてを処理します。詳細については、『AWS CloudFormation ユーザーガイド』の「AWS CloudFormation Concepts」を参照してください。

  • AWS SAM - AWS SAM は、サーバーレスアプリケーションの関数、API、マッピング、および DynamoDB テーブルの表現方法を簡素化する特別なリソースタイプをサポートしています。また、環境変数などのこれらのサービスのいくつかの機能もサポートしています。これらのリソースの AWS CloudFormation の記述は、「AWS サーバーレスアプリケーションモデル」に準拠しています。アプリケーションをデプロイするには、必要なリソースを、AWS CloudFormation テンプレートファイル (JSON または YAML で記述された) の関連するアクセス権限ポリシーと共にアプリケーションの一部として指定します。デプロイアーティファクトをパッケージ化し、テンプレートをデプロイします。詳細については、「AWS サーバーレスアプリケーションモデル (AWS SAM) の使用」を参照してください。

AWS Serverless Model (AWS SAM) のセクションに進む前に、Lambda 関数のバージョニングとエイリアスについて、および関数リビジョンへのトラフィックの移行方法について説明する以下のセクションを参照してください。これらは、サーバーレスアプリケーションの開発に重要な側面となります。詳細については、「AWS Lambda 関数のバージョニングとエイリアス」を参照してください。