サーバーレスマイクロサービスを効率的に構築する方法。パート3。AWS SAMによるCI/CD

CI/CD with AWS SAMをビルドする方法のカバー画像

継続的インテグレーション/デプロイメント(CI/CD)は、現代のソフトウェア開発に欠かせないものです。CI/CDパイプラインを使うことで、開発者はソフトウェア提供プロセスを自動化し、人為的エラーのリスクを減らし、生産性を高めることができます。この記事では、サーバーレスマイクロサービスの効率的な構築方法シリーズの一環として、AWS Serverless Application Model (SAM)、Node.js、GitHub Actionsを使用してCI/CDパイプラインを生成するプロセスを見ていきます。

パイプライン全体は、GitHub Actionsを使ってpipeline.yamlに定義されています。最初のステップとしてsam pipeline bootstrapを実行し、次の値を取得します:

  • TESTING_PIPELINE_EXECUTION_ROLE + PROD_PIPELINE_EXECUTION_ROLE
  • TESTING_CLOUDFORMATION_EXECUTION_ROLE + PROD_CLOUDFORMATION_EXECUTION_ROLE
  • TESTING_ARTIFACTS_BUCKET + PROD_ARTIFACTS_BUCKET

次のステップでは、AWSアカウントへのアクセスを提供するため、AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYという名前のGitHubリポジトリのシークレットを設定します。最後のステップでは、変更をpipeline.yamlにプッシュすると、CloudFormationスタックを使ってテスト環境と本番環境が作成されます。

AWS Serverless Application Model (SAM)とは何か?

AWS Serverless Application Model (SAM)は、サーバーレスAWSアプリケーションの構築を簡単にするオープンソースのフレームワークです。SAMは、サーバーレスアプリケーションが必要とするAmazon API Gateway API、AWS Lambda関数、およびAmazon DynamoDBテーブルを簡単に定義する方法を提供します。SAMはAWS CloudFormationの上に構築されているため、SAMテンプレートで定義されたすべてのリソースはCloudFormationによって作成および管理されます。

Node.jsとは何か?

Node.jsは、オープンソースでクロスプラットフォームのJavaScriptランタイム環境であり、ウェブブラウザ外でJavaScriptコードを実行します。Node.jsを使うことで、開発者はJavaScriptをサーバーサイドで使用して、スケーラブルで高パフォーマンスなアプリケーションを構築することができます。

GitHub Actionsとは何か?

GitHub Actionsは、開発者がソフトウェア開発のワークフローを自動化することができる強力なツールです。GitHub Actionsを使うことで、特定のイベント(例えばプルリクエストやコードプッシュ)によってトリガーされるカスタムワークフローを開発者が作成することができます。AWS SAM、Node.js、GitHub Actionsが何かを理解したところで、それらを使ってCI/CDパイプラインを作成する方法を見てみましょう。

こちらの記事はdev.toの良い記事を日本人向けに翻訳しています。
https://dev.to/aws-builders/an-efficient-way-to-build-your-serverless-microservices-part-3-cicd-with-aws-sam-1aad