Frameworkのプラグインを利用したLambda@EdgeのデプロイLambdaCloudFront2017年08月28日knakayama(84)7777件のシェア(ちょっぴり話題の記事)この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにこんにちは、中山です。前の話になりますが、CloudFrontのエッジロケーションでLambdaを動作させられるLambda@EdgeがGAになりました。エッジコンピューティングのビックウェーブを感じます。非常に可能性のあるLambda@Edge、とても便利なのですが個人的に少しだけ不満点があります。それはデプロイに手間がかかるという点です。Lambda@Edgeをデプロイするためには通常以下のフローを実施する必要があります。CloudFrontディストリビューションの作成Lambdaを作成してディストリビューションと関連付ける適宜パーミッションを設定Lambdaのコードを修正する度にディストリビューションを更新する特に4番目が厳しい。ARNで指定する必要があります。新しいバージョンをPublishする度(つまりLambdaのソースを修正する度)にこの作業を実施しなければならないということです。SAMなどのツールを利用していると思います。いったツールを利用することで簡単にサーバレスアーキテクチャをデプロイ可能です。残念ながら執筆時点でLambda@Edgeをコア機能としてサポートしているツールは(自分の観測範囲では)無いようでした。FrameworkでLambda@Edgeをデプロイするためのプラグインが公開されました。これを利用すれば面倒な作業から開放されそうですね。silvermine/serverless-plugin-cloudfront-lambda-edge早速使ってみたので本エントリでご紹介したいと思います。node:8.2.1-alpine(Dockerを利用)やってみた詳細な設定方法については該当リポジトリのREADMEを参照してください。いっても使い方は通常のプラグインと同じです。設定ファイル今回は以下のような設定にしてみました。requestにLambdaを指定しています。設定する文字列はCloudFormationの論理リソース名です。Lambda@Edgeの場合、デプロイ先となるリージョンは北部バージニアになります。このリージョンから各リージョンにレプリカが作成され、アクセス先となるエッジロケーションでLambdaが実行されるという仕組みになっているようです。9と26行目はserverless-s3-syncプラグインの設定です。タイミングでローカルディレクトリのファイルをS3バケットにsyncしてくれます。Framework内でアップロードするオブジェクトも管理したい場合に便利です。ディレクトリ以下にHTMLファイルを設置するようにしました。]静的ウェブサイト機能を有効化したS3を作成し、それをオリジンとしたCloudFrontディストリビューションを設定しています。今回はカスタムドメインでディストリビューションにアクセスできるよう、レコードセットリソースも作ってみました。書き換えているだけです。request);};デプロイいつもと同じようにデプロイします。すると以下のような出力が表示されると思います。Roleを更新した後、デプロイが終わった段階でディストリビューションを更新、Lambdaとの関連付けを実施しています。してもディストリビューションの設定は変更されないようです。https://<FQDN>/index.htmlindex.htmlまとめいかがだったでしょうか。Frameworkのプラグインを利用したLambda@Edgeのデプロイについてご紹介しました。今はまだプラグインという位置付けですが、今後コア機能としてLambda@Edgeがイベントタイプにサポートされていくと思います。GitHub上のイシューで議論されているようです。SAMでもそのうちサポートされていくでしょう。今回ご紹介したプラグインを使っていて気付いたのですが、イベントタイプの削除には現状対応してないようです。関連付けるイベントタイプを変更した場合、古い設定が残ってしまっています。このあたり今後に期待したいですね。本エントリがみなさんの参考になれば幸いに思います。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。カフェ店長のオカノです。今日はオフィスに用があるので、通勤ラッシュを避けて出社しました。この子は新メンバーのさめくんです。在宅勤務が推奨されているのでオフィスが閑散としており、すこしさみしそうです。使いたいときの注意点を書きました。本が出ていたので読んでみたところよかったので紹介させていただきます。