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

ステップ 4: AWS SAM と AWS CloudFormation でデプロイ

前のセクションでは、ZIP ファイルとしてデプロイパッケージを指定することにより、AWS Lambda API を使用して Lambda 関数を作成および更新しました。ただし、このメカニズムは、関数のデプロイステップの自動化や、イベントソースやダウンストリームリソースなどのサーバーレスアプリケーションの他の要素に対するデプロイメントや更新を調整するには便利ではない場合があります。

AWS CloudFormation を使用することで、サーバーレスアプリケーションの指定、デプロイ、設定が容易になります。AWS CloudFormation はアマゾン ウェブ サービス リソースのモデル化およびセットアップに役立つサービスです。リソース管理に割く時間を減らし、AWS で実行するアプリケーションにより注力できるようになります。使用するすべての AWS リソース (Lambda 関数や DynamoDB テーブルなど) を記述するテンプレートを作成すれば、AWS CloudFormation がお客さまに代わってこれらのリソースのプロビジョニングや設定を受け持ちます。

さらに、AWS サーバーレスアプリケーションモデルを使用して、サーバーレスアプリケーションを構成するリソースを表現することもできます。Lambda 関数や API のようなこれらのリソースタイプは AWS CloudFormation によって完全にサポートされており、サーバーレスアプリケーションの定義およびデプロイが容易になります。

詳細については、「Lambda ベースのアプリケーションをデプロイする」を参照してください。

Kinesis アプリケーションの仕様

このアプリケーションの SAM テンプレートを次に示します。下のテキストを .yaml ファイルにコピーし、以前作成した ZIP パッケージの隣に保存します。Handler および Runtime パラメータ値は、前のセクションで関数を作成したときのものと一致する必要があります。

Copy
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Resources: ProcessKinesisRecords: Type: AWS::Serverless::Function Properties: Handler: handler Runtime: runtime Policies: AWSLambdaKinesisExecutionRole Events: Stream: Type: Kinesis Properties: Stream: !GetAtt ExampleStream.Arn BatchSize: 100 StartingPosition: TRIM_HORIZON ExampleStream: Type: AWS::Kinesis::Stream Properties: ShardCount: 1

サーバーレスアプリケーションのデプロイ

パッケージおよびデプロイコマンドを使用してサーバーレスアプリケーションをパッケージングしてデプロイする方法については、パッケージ化とデプロイを参照してください。