サーバーレスアプリケーションをデプロイする - AWS Serverless Application Model

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

サーバーレスアプリケーションをデプロイする

AWS SAM は AWS CloudFormation を基盤となるデプロイメントメカニズムとして使用します。詳細については、「」を参照してください。とはAWS CloudFormation?()ユーザーガイド。サーバーレスアプリケーションをデプロイするための標準的な入力は、sam buildコマンド。sam build の詳細については、「サーバーレスアプリケーションの構築」を参照してください。

アプリケーションを手動でデプロイするにはAWS SAMコマンドラインインターフェイス (CLI) コマンド。また、継続的な統合や継続的なデプロイ (CI/CD) システムを使用して、アプリケーションのデプロイを自動化できます。導入に使用できる一般的な CI/CD システムAWS SAMアプリケーションにはAWS CodePipeline,Jenkins,GitLab CI/CD, およびGitHub アクション

CI/CD システムを使用したデプロイ

AWS SAMは、コンテナーイメージのビルドを使用して、サーバーレスアプリケーションの CI/CD タスクを簡素化します。イメージAWS SAMが提供するAWS SAMCLIとビルドツールは、サポートされているAWS Lambdaランタイム これにより、サーバーレスアプリケーションをビルドおよびパッケージ化しやすくなります。AWS SAMCLI また、これらのイメージにより、チームが CI/CD システム用の独自のイメージを作成および管理する必要性が軽減されます。の詳細AWS SAMコンテナーイメージのビルドについては、イメージリポジトリ

複数の CI/CD システムのサポートAWS SAMコンテナイメージを構築します。どのCI/CDシステムを使用すべきかは、いくつかの要因によって異なります。これには、アプリケーションが単一のランタイムを使用するか複数のランタイムを使用するか、またはアプリケーションをコンテナーイメージ内で構築するか、ホストマシン(仮想マシン(VM)またはベアメタルホスト)に直接構築するかが含まれます。

以下のトピックでは、CI/CD システムを設定して、AWS SAMコンテナーイメージのビルド:

を使用したデプロイAWS SAMCLI

サーバーレスアプリケーションをローカルで開発およびテストした後、sam deployコマンド。

持つAWS SAMがプロンプトとともにデプロイメントをガイドする場合は、--guidedフラグ。このフラグを指定すると、sam deployコマンドは、アプリケーションのアーティファクトを圧縮し、Amazon Simple Storage Service (Amazon S3)(.zip ファイルアーカイブの場合)または()(イメージを含む)にアップロードします。次に、このコマンドを使用して、アプリケーションをAWSクラウド

例:

# Deploy an application using prompts: sam deploy --guided

を使用したデプロイのトラブルシューティングAWS SAMCLI

AWS SAMCLI エラー: 「セキュリティ制約が満たされていない」

実行時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をこのプロンプトに入力すると、これはOKではないと言っています。

これを修正するには、次のオプションがあります。

  • 承認を使用してアプリケーションを設定します。認可の設定については、「」を参照してください。API Gateway API へのアクセスの制御

  • この質問への回答はYをクリックして、許可なしに API Gateway API が設定されたアプリケーションをデプロイしても問題ないことを示します。

段階的なデプロイ

デプロイする場合AWS SAMアプリケーションを一度にではなく、徐々にデプロイメント設定を指定できます。AWS CodeDeployが提供する。詳細については、「」を参照してください。CodeDeployments でのデプロイ設定の使用()AWS CodeDeployユーザーガイド

設定の詳細については、AWS SAMアプリケーションを段階的にデプロイするには、サーバーレスアプリケーションを段階的にデプロイする