AWS SAM を使用してアプリケーションをデプロイするためのオプション
AWS SAM ではアプリケーションのデプロイを手動で行うこと、デプロイを自動化することができます。アプリケーションを手動でデプロイするには AWS SAM CLI を使用します。デプロイを自動化するには、パイプラインと、継続的な統合/継続的なデプロイ (CI/CD) を使用します。このセクションのトピックでは、両方のアプローチについての情報を提供しています。
トピック
手動によるデプロイのための AWS SAM CLI の使用法
サーバーレスアプリケーションをローカルで開発してテストしたら、sam deploy コマンドを使用してアプリケーションをデプロイできます。
AWS SAM によるプロンプトを用いたデプロイガイドを使用するには、--guided フラグを指定します。このフラグを指定すると、sam deploy コマンドがアプリケーションアーティファクトを zip で圧縮し、それらを Amazon Simple Storage Service (Amazon S3) (.zip ファイルアーカイブの場合) または Amazon Elastic Container Registry (Amazon ECR) (コンテナイメージの場合) のいずれかにアップロードします。その後、コマンドがアプリケーションを AWS クラウドにデプロイします。
例:
# Deploy an application using prompts: sam deploy --guided
CI/CD システムとパイプラインを使用したデプロイ
AWS SAM は、パイプラインと継続的な統合/継続的なデプロイ (CI/CD) システムを使用したデプロイの自動化に役立ちます。パイプラインを作成し、サーバーレスアプリケーションの CI/CD タスクを簡素化するために AWS SAM を使用します。複数の CI/CD システムが AWS SAM のビルドコンテナイメージをサポートしており、さらに AWS SAM では、デプロイに関する AWS のベストプラクティスをカプセル化する、複数の CI/CD システム用のデフォルトパイプラインテンプレートもいくつか提供しています。
詳細については、「CI/CD システムとパイプラインを使用した AWS SAM によるデプロイ」を参照してください。
段階的なデプロイ
AWS SAM アプリケーションを一度にデプロイするのではなく、段階的にデプロイする場合は、AWS CodeDeploy が提供するデプロイ設定を指定できます。詳細については、AWS CodeDeploy ユーザーガイドの「Working with deployment configurations in CodeDeploy」を参照してください。
段階的なデプロイのための AWS SAM アプリケーションの設定については、「AWS SAM を使用したサーバーレスアプリケーションの段階的なデプロイ」を参照してください。
AWS SAM CLI を使用したデプロイのトラブルシューティング
AWS SAM CLI エラー:「セキュリティの制約に準拠していません」
sam deploy --guided の実行時に、HelloWorldFunction may not have authorization defined, Is this okay? [y/N] という質問のプロンプトが表示されます。このプロンプトに「N」(デフォルトのレスポンス) と答えた場合、以下のエラーが表示されます。
Error: Security Constraints Not Satisfied
このプロンプトは、デプロイしようとしているアプリケーションに、認可なしで設定された Amazon API Gateway API が存在する可能性があることを知らせています。このプロンプトに「N」と答えることによって、この状態は望ましくないと伝えることになります。
この問題を解決するには、以下のオプションがあります。
-
認可を使用してアプリケーションを設定する。認可の設定については、「AWS SAM テンプレートを使用して API アクセスを制御する」を参照してください。
-
この質問に「
Y」と答えて、認可なしで設定された API Gateway API 含むアプリケーションのデプロイを許容することを示します。
詳細
サーバーレスアプリケーションをデプロイする実践的な例については、「The Complete AWS SAM Workshop」の次のセクションを参照してください。
-
モジュール 3 - 手動でデプロイする
– AWS SAM CLI を使用してサーバーレスアプリケーションを構築、パッケージ化、デプロイする方法を学びます。 -
Module 4 - CI/CD
– 継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインを作成することで、構築、パッケージ化、デプロイの各フェーズを自動化する方法を学びます。