欲しかったのもの
Lineのスタンプを手書きで書いてもらうための、印刷のフォーマット
これを作るために何を使ってやればいいだろうか
しかしながら、Todoリストで項目の管理もしたかった
なので ToDoリストは別で管理してその内容を何かしらの形で出力した法が良いのではないかと思った
そして、今回は出力に AWS Lambda を使って出力したいと考えた
API を叩くとなるとTokenなどがたいてい必要になり、JSでやろうとするとTokenの公開が必要になる。
が、それはしたくなかった
と、なるとバックエンドでやったほうが良いことになり、そこで目をつけたのがLambdaだ。
AWS Lambda layers がリリースされたので、ライブラリも使いやすくなった
おそらくWebのIDEだけでコード書いて完結できるはずだ、と思いLambdaでやってみることにした
まずは Lambda layers に使いたいライブラリーをアップする
言語はこういう簡単なものを扱うときに便利なPythonにした
使いたいライブラリだけを ZIP に固めて アップロードする CI を前に作ったので flask とリクエストを Lambda layers に登録した
そして後は AWS Lambda layersを使うように設定し、コードを書いていく
時々保存しながらテストを実行し 思い思い通りの動作になるかをデバッグしつつ進めていく
API にリクエストを投げて リストのデータを取得するところの実装は簡単にできた。
後はそれを テンプレートエンジンに投げて Web として出力したい
flask が必要になるかと思っていたが、欲しいのはテンプレートの機能だったので、flask が使っているJinja2のテンプレートの機能のみを使った
最終的なコードがこちら
印刷するようの レイアウトの調整は paper-cssを使って A 4にきちんと収まるように収まるように コードペンを使って整えた
templateのコード
最後にWebで叩いて、htmlになるようにする
成果
Lambda layersやはり、今後も使い所が多そうだなと感じた