Amazon Web Services ブログ

新しいサーバーレスアプリ作成機能で CI/CD も作れます

AWS Lambda のマネジメントコンソールに新しい「サーバーレスアプリケーションの作成」機能が追加されていることにお気付きですか?

サーバーレス環境である Lambda ではすぐに処理実行環境が利用可能になり、Webのコンソールからロジックを実装するだけで容易にちょっとした処理を開発できます。一方で、この次のステップとして、

  • Lambda 関数だけでなく、アプリケーションとしての開発や管理ができていない
  • 環境の再現(開発環境からステージングや本番環境へ)、デプロイの継続実行(CI/CD)の環境が整備できずに、Webコンソール上でいまだにコード変更している

という話を聞くことがあります。実際には、デプロイ/環境設定のコード化(Infrastructure as Code: IaC)には AWS CloudFormationServerless Application Model(SAM)などがあり、CI/CD には CODEシリーズなどがあるのですが、サーバーレス開発を始めたばかりだと、そこへの次の一歩に二の足を踏まれているケースを見かけることがあります。

そんな方に向けた機能が、新しい「サーバーレスアプリケーションの作成」機能です。これを使うと、特定ユースケースのアプリケーションをテンプレートベースでひとまとめに作成し、CI/CD パイプラインまで一気に構築してくれます。

簡単に、この機能の利用ステップを紹介します。

テンプレートベースのサーバーレスアプリケーション作成

  1. Lambda コンソースの左側メニューの「アプリケーション」を選択します。
  2. 右上にある「アプリケーションの作成」を押します。
  3. サーバーレスアプリケーションの作成 画面が表示されます。ここで、事前に用意されたテンプレートアプリケーションから開発をスタートできます。どれかを選ぶと、次の画面で、そのテンプレートの内容ががわかります。例えば、Serverless API backend だと、API Gateway、複数の Lambda 関数と DynamoDB、およびそのデプロイのためのパイプラインとして CodeBuild や CodePipeline を使用することが紹介されます。「設定の開始」を押します。
  4. アプリケーションの設定 画面で各種情報を設定できます
    • アプリケーション名: この名前を接頭辞とした関数やテーブル、IAM ロールが作成されます。
    • アプリケーションの説明(オプション)
    • ランタイムの選択:  [注] 2019/11/08 現在 Node.js 10.x のみが選択できます。
    • リポジトリの選択: AWS CodeCommit または GitHub を選択できます。GitHub を選択した場合はアクセスのためのアカウント情報を入力します。
    • アクセス権限: ここにチェックします。これによりアプリケーション内の関数の実行ロールに境界が設定されます。つまり、個々の関数ごとに編集などの権限を個別管理できるようになります(こちらも参照ください)。
  5. 最後に「デプロイ」を押すと、全ての作成処理が開始されます。完了までに数分お待ちください。
  6. 作成処理が終わると、一気にいろんなものが作成されていることが確認できます。
    • リソース
    • CI/CDパイプライン(CodePipelineのコンソールで確認できます)
  7. あわせて、開発環境を設定しておくと今後の継続開発に便利です。Lambda コンソール「アプリケーション」の「コード」タブページに開発用ツールの設定手順のためのリンクがありますので、こちらを参考に設定してください。

    または、「今から始めるサーバーレス」ページの「開発環境(IDE)を選ぶ」なども参照いただけます。

本機能は提供されたばかりですので、テンプレートアプリの種類やランタイムの選択などまだ限定的ですが、この機能を使うことで、典型的なアプリケーションの新規作成時の設定に加えて継続的な開発のための作業も行われるので、特定のフレームワークやCI/CD環境へのこだわりがない新規の開発者にとっては非常に有用かと思います。こちらを試して、円滑なサーバーレスアプリケーション開発を進めてください。

補足

  • この新しいサーバーレスアプリケーション作成機能で用意されているテンプレートのいくつかは、「形で考えるサーバーレス設計」ページの該当するそれぞれのパターンの「テンプレートから始める」リンクからもたどり着けます。
  • この機能で作成されたテンプレートベースのアプリケーションおよび CI/CD パイプラインを使って開発環境でコード編集する手順の記事も用意しました。興味のある方はこちらも参照ください。

サーバーレス事業開発  杉