こんにちは、アプリケーションサービス部ディベロップメントサービス1課の滝澤です。
本記事をご覧いただきありがとうございます。
本記事は AWS Serverless Application Model(以下、SAM) のテンプレートをデプロイする際に使用できる --guided
オプションについて説明しようと思います。
SAM の概要についてはこちらの記事をご覧ください。
AWS SAM とは?
SAM は、サーバーレスアプリケーションを定義、デプロイ、管理するためのフレームワークです。これは、AWS CloudFormation の拡張セットとして機能し、簡単な構文でサーバーレスリソースを記述できるといった特徴があります。
前提(SAM プロジェクトの初期化)
SAM CLI は執筆時点で最新のversion 1.108.0
を使用しています。
今回は AWS が用意しているテンプレートのHello World Example
を使用することにしました。
以下のコマンドを使用することで対話形式で新しいサーバーレスアプリケーションを初期化することができます。 本質ではないので詳しい説明は割愛します。
sam init
$ sam init Which template source would you like to use? 1 - AWS Quick Start Templates 2 - Custom Template Location Choice: 1 Choose an AWS Quick Start application template 1 - Hello World Example 2 - Data processing 3 - Hello World Example with Powertools for AWS Lambda 4 - Multi-step workflow 5 - Scheduled task 6 - Standalone function 7 - Serverless API 8 - Infrastructure event management 9 - Lambda Response Streaming 10 - Serverless Connector Hello World Example 11 - Multi-step workflow with Connectors 12 - GraphQLApi Hello World Example 13 - Full Stack 14 - Lambda EFS example 15 - Hello World Example With Powertools for AWS Lambda 16 - DynamoDB Example 17 - Machine Learning Template: 1 (以下略)
デプロイしてみる
さてここからが本題です。
SAM のデプロイには sam deploy
コマンドが使用できますが、この際に--guided
オプションを指定することでプロンプトを用いたガイドを有効にすることができます。
Stack Name
作成される CloudFormation Stack の名前です。 デフォルトでは、プロジェクトの名前が設定されています。
AWS Region
デプロイするリージョンです。 デフォルトでは AWS CLI の使用するプロファイルのデフォルトリージョンになります。
Parameter
パラメータを設定している場合はここで聞かれます。
Confirm changes before deploy
変更を確認するか設定します。
デフォルトでは Yes
が選択されます。
No
を選択してもデプロイ前に以下のような Change set は出ます。
Yes
を選択した場合にはその後に以下のプロンプトでの応答が必要になります。
Deploy this changeset? [y/N]:
Allow SAM CLI IAM role creation
SAM に必要な IAM Role の作成を許可するかを設定します。
IAM Role の作成を定義しているのにこちらを No
で設定するとデプロイに失敗するので注意しましょう。
デフォルトでは Yes
が選択されます。
Disable rollback
ロールバックを無効にするか設定します。
デフォルトでは No
です。
[関数名] has no authentication
認可が定義されていない[関数名]の作成を許可するか聞かれます。
今回は、サンプルのHello World Example
を選択しましたが、認可なしで API Gateway エンドポイントにパブリックにアクセスできるように設定されているため表示されました。
意図したものであれば y
を選択しましょう。
デフォルトでは No
が選択されます。
Save arguments to configuration file
これまでの設定内容をファイルに保存するか設定します。
デフォルトでは Yes
が選択されます。
SAM configuration file
設定ファイルの名称を設定します。
使用できる拡張子は.toml``.yaml``.yml
です。
デフォルトでは samconfig.toml
と設定されます。
SAM configuration environment
デフォルトの環境を設定します。
デフォルトではdefault
が設定されます。
2回目以降のデプロイは?
Save arguments to configuration file
でYes
を選択した場合には、config ファイル(SAM configuration file
で設定したファイル名)に設定内容が保存されています。
そのため、2回以降はオプションをつけずにsam deploy
をするだけで今回設定した内容でデプロイをすることが可能です。
もちろん、再度sam deploy --guided
を実行して設定を上書きすることもできます。
終わりに
最後までお読み頂きありがとうございました。
本記事では SAM の --guided
オプションについて説明しました。
このオプションを使用することでスタック名、リージョン、パラメータなどの重要な設定を対話的に行うことができ、特に新規ユーザーや初めて AWS SAM を使用する開発者にとっては大きなメリットがあります。また、デプロイメントの自動化と設定の保存機能により、再デプロイメントが簡単になり、開発プロセスがよりスムーズに進行します。
その--guided
オプションについての理解に本記事が少しでもお役に立てれば幸いです。