Lambda と Infrastructure as code (IaC) の使用
Lambda には、コードをデプロイして関数を作成する方法がいくつか用意されています。例えば、Lambda コンソールまたは AWS Command Line Interface (AWS CLI) を使用して、Lambda 関数を手動で作成または更新できます。このような手動オプションに加えて、AWS では Infrastructure as Code (IaC) を使用して Lambda 関数とサーバーレスアプリケーションをデプロイするためのソリューションを多数提供しています。IaC を使用すると、プロセスや設定を手動で行う代わりに、コードを使用して Lambda 関数やその他の AWS リソースをプロビジョニングおよび維持できます。
ほとんどの場合、Lambda 関数は単独では実行されません。代わりに、データベース、キュー、ストレージなどの他のリソースと共に、サーバーレスアプリケーションの一部を形成します。IaC を使用すると、デプロイプロセスを自動化して、多数の個別の AWS リソースを含むサーバーレスアプリケーション全体を迅速かつ繰り返しデプロイおよび更新できます。このアプローチにより、開発サイクルが短縮され、構成管理が容易になり、リソースを毎回同じ方法でデプロイできるようになります。
Lambda 用 IaC ツール
IaC を使用して Lambda 関数とサーバーレスアプリケーションをデプロイするために、AWS ではさまざまなツールやサービスを提供しています。
AWS CloudFormation は、AWS がクラウドリソースを作成および設定するために提供した最初のサービスでした。AWS CloudFormation を使用して、インフラストラクチャとコードを定義するテキストテンプレートを作成します。AWS が新しいサービスを導入し、AWS CloudFormation テンプレートの作成が複雑になっていくにつれて、さらに 2 つのツールがリリースされました。AWS SAM はサーバーレスアプリケーションを定義するための、もう一つのテンプレートベースのフレームワークです。AWS Cloud Development Kit (AWS CDK) は、多くの一般的なプログラミング言語のコード構文を使用してインフラストラクチャを定義およびプロビジョニングするための、コードを優先とするアプローチです。
AWS SAM と AWS CDK を両方使用すると、AWS CloudFormation がバックグラウンドで動作してインフラストラクチャを構築し、デプロイします。次の図は、これらのツールの関係を示しています。また、図の後に各ツールの主要な機能を説明しています。
![AWS SAM と AWS CDK が AWS CloudFormation を使用して AWS リソースとコードをデプロイする方法を示す図](images/IaC_tools.png)
-
AWS CloudFormation - CloudFormation では、リソースとそのプロパティを記述する YAML または JSON テンプレートを使用して AWS リソースをモデル化し、設定します。CloudFormation は、安全かつ繰り返し可能な方法でリソースをプロビジョニングするため、手動による手順を踏むことなくインフラストラクチャやアプリケーションを頻繁に構築できます。設定を変更すると、CloudFormation はスタックを更新するために実行する適切な操作を決定します。CloudFormation では、変更のロールバックも可能です。
-
AWS Serverless Application Model (AWS SAM) - AWS SAM は、サーバーレスアプリケーションを定義するためのオープンソースのフレームワークです。AWS SAM テンプレートは、短縮構文を使用して関数、API、データベース、イベントソースマッピングをリソースあたりわずか数行のテキスト (YAML) で定義します。デプロイ中に、AWS SAM は AWS SAM 構文を AWS CloudFormation 構文に変換および拡張します。このため、すべての CloudFormation 構文を AWS SAM テンプレートに追加できます。これにより、AWS SAM は CloudFormation のすべての機能を利用できますが、設定する行数は少なくて済みます。
-
AWS Cloud Development Kit (AWS CDK) - AWS CDK では、コード構文を使用してインフラストラクチャを定義し、AWS CloudFormation を介してプロビジョニングします。AWS CDK では、既存の IDE、テストツール、およびワークフローパターンを使用して、TypeScript、Python、Java、.NET、Go (開発者プレビュー版) でアプリケーションインフラストラクチャをモデル化できます。反復可能なデプロイ、簡単なロールバック、ドリフト検出など、AWS CloudFormation のすべてのメリットが得られます。
また、AWS ではシンプルなグラフィカルインターフェイスを使用して IaC テンプレートを開発する、AWS Application Composer というサービスも提供しています。Application Composer では、ビジュアルキャンバスで AWS サービスをドラッグ、グループ化、接続することでアプリケーションアーキテクチャを設計します。次に、Application Composer は、アプリケーションのデプロイに使用できるデザインで AWS SAM または AWS CloudFormation テンプレートを作成します。
以下の「Lambda 用 IaC の開始方法」セクションでは、Application Composer を使用して、既存の Lambda 関数に基づくサーバーレスアプリケーションのテンプレートを作成します。
Lambda 用 IaC の開始方法
このチュートリアルでは、既存の Lambda 関数で AWS SAM テンプレートを作成し、他の AWS リソースを追加して Application Composer でサーバーレスアプリケーションを構築することで、IaC を Lambda で使用開始できます。
Application Composer を使用せずにテンプレートを操作する方法を学ぶために、AWS SAM または AWS CloudFormation のチュートリアルを実行することから始める場合は、このページの最後にある「次のステップ」セクションに他のリソースへのリンクがあります。
このチュートリアルを実行すると、AWS リソースの AWS SAM での指定方法など、いくつかの基本的な概念を習得できます。また、Application Composer で、AWS SAM または AWS CloudFormation を使用してデプロイできるサーバーレスアプリケーションを構築する方法についても習得します。
このチュートリアルを完了するには、次のステップを実行します。
-
サンプル Lambda 関数の作成
-
Lambda コンソールを使用して、関数の AWS SAM テンプレートを表示します
-
関数の設定を AWS Application Composer にエクスポートし、関数の設定に基づいてシンプルなサーバーレスアプリケーションを設計します。
-
更新した AWS SAM テンプレートを保存して、サーバーレスアプリケーションをデプロイするための基礎として使用できます。
「次のステップ」セクションでは、AWS SAM および Application Composer についての詳細を学ぶために使用できるリソースを紹介しています。これらのリソースには、AWS SAM を使用してサーバーレスアプリケーションをデプロイする方法を説明する、より高度なチュートリアルへのリンクが含まれています。
前提条件
このチュートリアルでは、Application Composer のローカル同期機能を使用して、テンプレートとコードファイルをローカルビルドマシンに保存します。この機能を使用するには、File System Access API に対応するブラウザが必要です。これにより、Web アプリケーションでローカルファイルシステム内のファイルの読み取り、書き込み、保存を行うことができます。Google Chrome または Microsoft Edge の使用が推奨されます。File System Access API の詳細については、「What is the File System Access API?」を参照してください。
「Lambda 関数の作成」
この最初のステップでは、チュートリアルの残りの部分を完了するために使用できる Lambda 関数を作成します。簡単に言うと、Lambda コンソールで Python 3.11 ランタイムを使用して、基本的な「Hello world」関数を作成します。
コンソールで「Hello world」Lambda 関数を作成するには
-
Lambdaのコンソール
を開きます。 -
[Create function] (関数の作成) をクリックします。
-
[一から作成] を選択したままにし、[基本的な情報] の [関数名] に
LambdaIaCDemo
と入力します。 -
[ランタイム] で [Python 3.11] を選択します。
-
[Create function (関数の作成)] を選択します。
関数の AWS SAM テンプレートを表示する
関数の設定を Application Composer にエクスポートする前に、Lambda コンソールを使用して関数の現在の設定を AWS SAM テンプレートとして表示します。このセクションのステップに従うことで、AWS SAM テンプレートの構造と、Lambda 関数などのリソースを定義してサーバーレスアプリケーションの指定を開始する方法について学びます。
関数の AWS SAM テンプレートを表示するには
-
Lambda コンソールの [関数ページ]
を開きます。 -
先ほど作成した関数 (
LambdaIaCDemo
) を選択します。 -
[関数の概要] ペインで、[テンプレート] を選択します。
関数の設定を表す図の代わりに、その関数の AWS SAM テンプレートが表示されます。テンプレートは次のようになります。
# This AWS SAM template has been generated from your function's # configuration. If your function has one or more triggers, note # that the AWS resources associated with these triggers aren't fully # specified in this template and include placeholder values.Open this template # in AWS Application Composer or your favorite IDE and modify # it to specify a serverless application with other AWS resources. AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: An AWS Serverless Specification template describing your function. Resources: LambdaIaCDemo: Type: AWS::Serverless::Function Properties: CodeUri: . Description: '' MemorySize: 128 Timeout: 3 Handler: lambda_function.lambda_handler Runtime: python3.11 Architectures: - x86_64 EventInvokeConfig: MaximumEventAgeInSeconds: 21600 MaximumRetryAttempts: 2 EphemeralStorage: Size: 512 RuntimeManagementConfig: UpdateRuntimeOn: Auto SnapStart: ApplyOn: None PackageType: Zip Policies: Statement: - Effect: Allow Action: - logs:CreateLogGroup Resource: arn:aws:logs:us-east-1:123456789012:* - Effect: Allow Action: - logs:CreateLogStream - logs:PutLogEvents Resource: - >- arn:aws:logs:us-east-1:123456789012:log-group:/aws/lambda/LambdaIaCDemo:*
作成した関数の YAML テンプレートを確認する時間を作り、いくつかの主要な概念について理解しておきましょう。
テンプレートは Transform: AWS::Serverless-2016-10-31
を宣言することから始まります。この宣言は必須です。というのも、AWS SAM テンプレートはバックグラウンドで AWS CloudFormation を介してデプロイされるからです。Transform
ステートメントを使用すると、テンプレートが AWS SAM テンプレートファイルとして識別されます。
Transform
宣言の後に Resources
セクションがあります。ここで、AWS SAM テンプレートと共にデプロイする AWS リソースを定義します。AWS SAM テンプレートには、AWS SAM リソースと AWS CloudFormation リソースを組み合わせて含めることができます。これは、デプロイ中に AWS SAM テンプレートが AWS CloudFormation テンプレートに拡張されるためであり、有効な AWS CloudFormation 構文を AWS SAM テンプレートに追加できます。
現時点では、テンプレートの Resources
セクションで定義されているリソースは Lambda 関数だけです。LambdaIaCDemo
Lambda 関数を AWS SAM テンプレートに追加するには、AWS::Serverless::Function
リソースタイプを使用します。Lambda 関数リソースの Properties
で、関数のランタイム、関数ハンドラー、およびその他の設定オプションを定義します。AWS SAM で関数のデプロイに使用する必要のある関数のソースコードへのパスも、ここで定義されます。AWS SAM の Lambda 関数リソースの詳細については、「AWS SAM 開発者ガイド」の「AWS::Serverless::Function」を参照してください。
テンプレートでは、関数のプロパティと設定だけでなく、関数の AWS Identity and Access Management (IAM) ポリシーも指定されています。このポリシーにより、Amazon CloudWatch Logs にログを書き込むアクセス許可が関数に付与されます。Lambda コンソールで関数を作成すると、Lambda は自動的にこのポリシーを関数にアタッチします。AWS SAM テンプレートの関数に IAM ポリシーを指定する方法の詳細については、「AWS SAM 開発者ガイド」の「AWS:: Serverless:: Function」ページにある policies
プロパティを参照してください。
AWS SAM テンプレートの構造の詳細については、「AWS SAM テンプレートの構造」を参照してください。
AWS Application Composer をサーバーレスアプリケーションの設計に使用する
関数の AWS SAM テンプレートを基にして単純なサーバーレスアプリケーションの構築を開始するには、関数の設定を Application Composer にエクスポートし、Application Composer のローカル同期モードを有効化します。ローカル同期で関数のコードと AWS SAM テンプレートがローカルビルドマシンに自動的に保存され、Application Composer に他の AWS リソースを追加しても保存したテンプレートは同期されたままになります。
関数を Application Composer にエクスポートするには
-
[関数の概要] ペインで、[Application Composer にエクスポート] を選択します。
関数の設定とコードを Application Composer にエクスポートするには、Lambda でアカウントに Amazon S3 バケットを作成し、このデータを一時的に保存します。
-
ダイアログボックスで [プロジェクトの確認と作成] を選択し、このバケットのデフォルト名をそのまま使用して、関数の設定とコードを Application Composer にエクスポートします。
-
(オプション) Lambda で作成する Amazon S3 バケットに別の名前を選択する場合は、新しい名前を入力して [プロジェクトの確認と作成] を選択します。Amazon S3 バケットの名前は、グローバルに一意で、バケットの命名規則に従ったものである必要があります。
[プロジェクトの確認と作成] を選択すると、Application Composer コンソールが開きます。キャンバスに、Lambda 関数が表示されます。
-
[メニュー] ドロップダウンから [ローカル同期をアクティブ化] を選択します。
-
表示されたダイアログボックスで [フォルダを選択] を選び、ローカルビルドマシンのフォルダを選択します。
-
[アクティブ化] を選択してローカル同期をアクティブ化します。
関数を Application Composer にエクスポートするには、特定の API アクションを使用するためのアクセス許可が必要です。関数をエクスポートできない場合は、必要なアクセス許可 を参照して、必要な権限があることを確認してください。
注記
関数を Application Composer にエクスポートするときは、Lambda が作成するバケットに標準の Amazon S3 の料金
追加料金が AWS アカウントにかからないようにするには、関数を Application Composer にエクスポートしてから「バケットの削除」の手順に従ってください。Lambda で作成される Amazon S3 バケットの詳細については、「AWS Lambdaと使用するAWS Application Composer」を参照してください。
Application Composer でサーバーレスアプリケーションを設計するには
ローカル同期を有効化すると、Application Composer で行った変更がローカルビルドマシンに保存されている AWS SAM テンプレートに反映されます。追加の AWS リソースを Application Composer のキャンバスにドラッグアンドドロップして、アプリケーションを構築できるようになりました。この例では、Lambda 関数のトリガーとして Amazon SQS のシンプルなキューを追加し、データを書き込む関数に DynamoDB テーブルを追加します。
-
Amazon SQS トリガーを Lambda 関数に追加するには、次の手順を実行します。
-
[リソース] パレットの検索フィールドに、「
SQS
」と入力します。 -
[SQS キュー] リソースをキャンバスにドラッグし、Lambda 関数の左側に配置します。
-
[詳細] を選択し、[論理 ID] に「
LambdaIaCQueue
」と入力します。 -
[Save] を選択します。
-
SQS キューカードの [サブスクリプション] ポートをクリックし、Lambda 関数カードの左側のポートにドラッグして、Amazon SQS リソースと Lambda リソースを接続します。2 つのリソースの間に線が表示されれば、接続に成功しています。また、Application Composer では、2 つのリソースが正常に接続されたことを示すメッセージもキャンバスの下部に表示されます。
-
-
以下を実行して、Lambda 関数に Amazon DynamoDB テーブルを追加し、データを書き込みます。
-
[リソース] パレットの検索フィールドに、「
DynamoDB
」と入力します。 -
[DynamoDB テーブル] リソースをキャンバスにドラッグし、Lambda 関数の右側に配置します。
-
[詳細] を選択し、[論理 ID] に「
LambdaIaCTable
」と入力します。 -
[Save] を選択します。
-
DynamoDB テーブルを Lambda 関数に接続するには、Lambda 関数カードの右側のポートをクリックして、DynamoDB カードの左側のポートにドラッグします。
-
これらのリソースを追加したところで、Application Composer が作成した更新済みの AWS SAM テンプレートを見てみましょう。
更新した AWS SAM テンプレートを表示するには
-
Application Composer のキャンバスで [テンプレート] を選択し、キャンバスビューからテンプレートビューに切り替えます。
これで、AWS SAM テンプレートに以下の追加のリソースとプロパティが含まれているはずです。
-
識別子
LambdaIaCQueue
を含む Amazon SQS キューLambdaIaCQueue: Type: AWS::SQS::Queue Properties: MessageRetentionPeriod: 345600
Application Composer を使用して Amazon SQS キューを追加すると、Application Composer で
MessageRetentionPeriod
プロパティが設定されます。SQS キューカードで [詳細] を選択し、[FIFO キュー] をオンまたはオフにしてFifoQueue
プロパティを設定することもできます。キューに他のプロパティを設定するには、テンプレートを手動で編集して追加できます。
AWS::SQS::Queue
のリソースと使用可能なプロパティの詳細については、「AWS CloudFormation ユーザーガイド」の「AWS::SQS::Queue」を参照してください。 -
Amazon SQS キューを関数のトリガーとして指定する Lambda 関数定義の
Events
プロパティEvents: LambdaIaCQueue: Type: SQS Properties: Queue: !GetAtt LambdaIaCQueue.Arn BatchSize: 1
Events
プロパティは、1 つのイベントタイプと、そのタイプに依存する一連のプロパティで構成されます。Lambda 関数をトリガーするために設定できるさまざまな AWS サービス と設定できるプロパティについては、「AWS SAM 開発者ガイド」の「EventSource」を参照してください。 -
識別子
LambdaIaCTable
を含む DynamoDB テーブルLambdaIaCTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: id AttributeType: S BillingMode: PAY_PER_REQUEST KeySchema: - AttributeName: id KeyType: HASH StreamSpecification: StreamViewType: NEW_AND_OLD_IMAGES
Application Composer を使用して DynamoDB テーブルを追加するときに、DynamoDB テーブルカードで [詳細] を選択し、キー値を編集することでテーブルのキーを設定できます。Application Composer は、
BillingMode
やStreamViewType
を含む他の多くのプロパティにもデフォルト値を設定します。これらのプロパティやお使いの AWS SAM テンプレートに追加できるその他のプロパティの詳細については、「AWS CloudFormation ユーザーガイド」の「AWS::DynamoDB::Table」を参照してください。
-
追加した DynamoDB テーブルで CRUD オペレーションを実行する権限を関数に付与する新しい IAM ポリシー。
Policies: ... - DynamoDBCrudPolicy: TableName: !Ref LambdaIaCTable
以下の例は、最終的に完成した AWS SAM テンプレートを示しています。
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: An AWS Serverless Specification template describing your function. Resources: LambdaIaCDemo: Type: AWS::Serverless::Function Properties: CodeUri: . Description: '' MemorySize: 128 Timeout: 3 Handler: lambda_function.lambda_handler Runtime: python3.11 Architectures: - x86_64 EventInvokeConfig: MaximumEventAgeInSeconds: 21600 MaximumRetryAttempts: 2 EphemeralStorage: Size: 512 RuntimeManagementConfig: UpdateRuntimeOn: Auto SnapStart: ApplyOn: None PackageType: Zip Policies: - Statement: - Effect: Allow Action: - logs:CreateLogGroup Resource: arn:aws:logs:us-east-1:594035263019:* - Effect: Allow Action: - logs:CreateLogStream - logs:PutLogEvents Resource: - arn:aws:logs:us-east-1:594035263019:log-group:/aws/lambda/LambdaIaCDemo:* - DynamoDBCrudPolicy: TableName: !Ref LambdaIaCTable Events: LambdaIaCQueue: Type: SQS Properties: Queue: !GetAtt LambdaIaCQueue.Arn BatchSize: 1 Environment: Variables: LAMBDAIACTABLE_TABLE_NAME: !Ref LambdaIaCTable LAMBDAIACTABLE_TABLE_ARN: !GetAtt LambdaIaCTable.Arn LambdaIaCQueue: Type: AWS::SQS::Queue Properties: MessageRetentionPeriod: 345600 LambdaIaCTable: Type: AWS::DynamoDB::Table Properties: AttributeDefinitions: - AttributeName: id AttributeType: S BillingMode: PAY_PER_REQUEST KeySchema: - AttributeName: id KeyType: HASH StreamSpecification: StreamViewType: NEW_AND_OLD_IMAGES
(オプション) AWS SAM を使用したサーバーレスアプリケーションのデプロイ
AWS SAM を使用し、Application Composer で作成したばかりのテンプレートを使用してサーバーレスアプリケーションをデプロイする場合は、まず AWS SAM CLI をインストールする必要があります。これを行うには、「AWS SAM CLI のインストール」の指示に従います。
アプリケーションをデプロイする前に、Application Composer がテンプレートと共に保存した関数コードも更新する必要があります。現時点では、Application Composer が保存した lambda_function.py
ファイルには、関数を作成したときに Lambda によって提供された基本的な「Hello world」コードのみが含まれています。
関数コードを更新するには、以下のコードをコピーして、Application Composer がローカルビルドマシンに保存した lambda_function.py
ファイルに貼り付けます。ローカル同期モードをアクティブ化したときのこのファイルの保存先として Application Composer のディレクトリを指定しました。
このコードによって、Application Composer で作成した Amazon SQS キューからのメッセージに含まれるキーと値のペアを受け入れます。キーと値の両方が文字列の場合、コードはそれらの文字列を使用して、テンプレートで定義されている DynamoDB テーブルに項目を書き込みます。
import boto3 import os import json # define the DynamoDB table that Lambda will connect to tablename = os.environ['LAMBDAIACTABLE_TABLE_NAME'] # create the DynamoDB resource dynamo = boto3.client('dynamodb') def lambda_handler(event, context): # get the message out of the SQS event message = event['Records'][0]['body'] data = json.loads(message) # write event data to DDB table if check_message_format(data): key = next(iter(data)) value = data[key] dynamo.put_item( TableName=tablename, Item={ 'id': {'S': key}, 'Value': {'S': value} } ) else: raise ValueError("Input data not in the correct format") # check that the event object contains a single key value # pair that can be written to the database def check_message_format(message): if len(message) != 1: return False key, value = next(iter(message.items())) if not (isinstance(key, str) and isinstance(value, str)): return False else: return True
サーバーレスアプリケーションをデプロイするには
AWS SAM CLI を使用してアプリケーションをデプロイするには、次の手順を実行します。関数が正しく構築およびデプロイされるように、Python バージョン 3.11 をお使いのビルドマシンと PATH
にインストールする必要があります。
-
Application Composer で
template.yaml
ファイルおよびlambda_function.py
ファイルを保存したディレクトリから、以下のコマンドを実行します。sam build
このコマンドによって、アプリケーションのビルドアーティファクトが収集され、それらをデプロイする場所を適切な形式で配置します。
-
アプリケーションをデプロイし、AWS SAM テンプレートで指定された Lambda、Amazon SQS、DynamoDB の各リソースを作成するには、次のコマンドを実行します。
sam deploy --guided
--guided
フラグを使用すると、AWS SAM にデプロイプロセスの手順が示されます。このデプロイでは、Enter キーを押してデフォルトのオプションをそのまま使用してください。
デプロイプロセス中に、AWS SAM でお使いの AWS アカウントに次のリソースが作成されます。
-
sam-app
という名前の AWS CloudFormation スタック -
sam-app-LambdaIaCDemo-
名前形式の Lambda 関数99VXPpYQVv1M
-
sam-app-LambdaIaCQueue-
名前形式の Amazon SQS キューxL87VeKsGiIo
-
sam-app-LambdaIaCTable-
名前形式の DynamoDB テーブルCN0S66C0VLNV
また、Lambda 関数が Amazon SQS キューからメッセージを読み取り、DynamoDB テーブルで CRUD オペレーションを実行できるように、AWS SAM で必要な IAM ロールとポリシーを作成します。
AWS SAM を使用してサーバーレスアプリケーションをデプロイする方法の詳細については、「次のステップ」セクションのリソースを参照してください。
デプロイしたアプリケーションのテスト (オプション)
サーバーレスアプリケーションが正しくデプロイされたことを確認するには、メッセージをキーと値のペアを含む Amazon SQS キューに送信し、Lambda がこれらの値を使用して DynamoDB テーブルに項目を書き込むことを確認します。
サーバーレスアプリケーションをテストするには
-
Amazon SQS コンソールの [キュー]
ページを開き、お使いのテンプレートで AWS SAM が作成したキューを選択します。名前の形式は sam-app-LambdaIaCQueue-
になります。xL87VeKsGiIo
-
[メッセージを送受信] を選択し、[メッセージの送信] セクションの [メッセージ本文] に次の JSON を貼り付けます。
{ "myKey": "myValue" }
-
[メッセージの送信] を選択します。
メッセージをキューに送信すると、Lambda はお使いの AWS SAM テンプレートで定義されたイベントソースマッピングを通じて関数を呼び出します。Lambda が意図したとおりに関数を呼び出したことを確認するには、DynamoDB テーブルに項目が追加されていることを確認します。
-
DynamoDB コンソールの [テーブル]
ページを開いてテーブルを選択します。名前の形式は sam-app-LambdaIaCTable-
になります。CN0S66C0VLNV
-
[テーブルアイテムの探索] を選択します。[返された項目] ペインに、[id]
myKey
と [値]myValue
がある項目が表示されるはずです。
次のステップ
Application Composer を AWS SAM と AWS CloudFormation で使用する方法を学習する際は、まず「Using Application Composer with AWS CloudFormation and AWS SAM」から始めてください。
AWS SAM を使用して Application Composer で設計されたサーバーレスアプリケーションをデプロイするためのガイド付きチュートリアルを実行する際は、「AWS Serverless Patterns Workshop
AWS SAM では、AWS SAM テンプレートやサポートされているサードパーティーの統合と併用できるコマンドラインインターフェイス (CLI) を提供して、サーバーレスアプリケーションを構築し、実行します。AWS SAM CLI を使用すると、アプリケーションの構築とデプロイ、ローカルテストとデバッグの実行、CI/CD パイプラインの設定などを行うことができます。AWS SAM CLI の使用に関する詳細については、「AWS Serverless Application Model 開発者ガイド」の「AWS SAM の使用開始」を参照してください。
AWS CloudFormation コンソールを使用して AWS SAM テンプレートでサーバーレスアプリケーションをデプロイする方法を学習する際は、「AWS CloudFormation ユーザーガイド」の「AWS CloudFormation コンソールの使用」から始めてください。
Lambda と Application Composer との統合がサポートされているリージョン
Lambda と Application Composer との統合は、以下の AWS リージョン でサポートされています。
-
米国東部 (バージニア北部)
-
米国東部 (オハイオ)
-
米国西部 (北カリフォルニア)
-
米国西部 (オレゴン)
-
アフリカ (ケープタウン)
-
アジアパシフィック (香港)
-
アジアパシフィック (ハイデラバード)
-
アジアパシフィック (ジャカルタ)
-
アジアパシフィック (メルボルン)
-
アジアパシフィック (ムンバイ)
-
アジアパシフィック (大阪)
-
アジアパシフィック (ソウル)
-
アジアパシフィック (シンガポール)
-
アジアパシフィック (シドニー)
-
アジアパシフィック (東京)
-
カナダ (中部)
-
欧州 (フランクフルト)
-
欧州 (チューリッヒ)
-
欧州 (アイルランド)
-
欧州 (ロンドン)
-
欧州 (ストックホルム)
-
中東 (アラブ首長国連邦)