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