Serverless Framework利用時のローカル開発、GolangのWAF利用について調べたのでメモを残しておきます
を使ってGolangのウェブアプリを開発する準備をした時のメモです。
主に
がイマイチわかってなかったでそのあたりを中心調べました。
オフライン開発にはserverless-offlineというプラグインがあるらしいので試してみましたが、Golangに対応していないようなので違う方法を探すことにしました。
色々と調べてるとAWSが出しているSAM CLIというローカル開発用のツールが提供されているようだったのでとりあえずこれを使ってみることにしました。
Python2系だとインストールに失敗するようなので、Macを使っている人はpyenvなどで3を入れておきましょう。
pip install --user aws-sam-cli
さらに調べていると
Running Go AWS Lambdas locally with SLS framework and SAM
というちょうど良い記事があったのでこちらを参考に諸々セットアップしてオフライン開発のほうは準備完了です。
これもちょっと調べたらライブラリがあって、こちらを使うと一瞬で終わりました。
https://github.com/akrylysov/algnhsa
lambda.Start(Handler)
となっている箇所を消してalgnhsa.ListenAndServe
を使えば完了です。
すべてリクエストを受けて内部のルータで処理するために、serverless.yml template.yml共にpathとmethodを下記のように書き換えておいてください。
path: /{proxy+}
method: ANY
/
アクセス時のみmissing tokenとか出て正常処理できないのはバグみたいです。
https://github.com/awslabs/aws-sam-cli/issues/437
APIサーバとして利用したいので特に問題なかったです。
もうちょっと色々触ると問題点も色々と出てきそうですが、とりあえずこれで開発準備が整いました。