APIGateway + LambdaをGithubで管理してGithubActionsでデプロイするまでのフローを学ぶ
やりたいこと
- 構成はAPIGateway + Lambda。言語は普通にnode 14の予定
- 『ローカルでコード書く→Gitにpush & developへマージ→CICDまわってデプロイ → 🎉』というフローをしたい
- optional) デプロイするものがローカルで確認できるなら最高
遠い目標
- フルスタック向けミニマムプロダクトの想定なので、フロントエンドも含めたmonorepo構成にしたい
- デプロイはdevelopにマージされたらフロントエンドもサーバサイドもstg環境にデプロイされるが理想
- フロントエンドはamplify
とりあえずリポジトリ
せっかくだから『何か』にしたい気持ちはあるんだけど、ぱっと思いつかなかったのでとりあえずお砂場になっていただく
これが1番近そうなのでこれをとりあえず真似て調整していく
とらのあなといったら同人誌というイメージだけど、最近よく開発文脈でも聞くので、とらのあなのバックエンドって結構すごいんだな…と思いつつ、確かに『一時的にトラフィックが激増する』のすごい良い例なのでクラウドサーバの柔軟性の恩恵をすごい受けるプロダクトだし、AWS対応するのも納得だ
AWSのコンソールとドキュメントって本当何いってるのかよくわかんないよな…と思いながらIAMユーザ作成をす
IAMもしかして必要なもの1個1個手で設定しないといかんのか??え、lambda deply roleみたいなのないの…?え?マジ?
AWSCodeDeployRoleForLambda
ってのあった。これでいけるかな
sam deploy --guided
がいけぬ!!!
が、多分このPC、AWSのconfigureとか通してないんでそんなところだろう
ついでにaws-valutとかもいれておくか
どうやらテンプレそのままではいかんらしい(テンプレとは…
これのエラーは、cloudformationのスタックのログを見るのがいいみたい。
見てみたらS3の書き込み権限が足りないってかいてあるし、確かにAWSCodeDeployRoleForLambda
はS3の読み込み権限しかないけど、このRoleは一体何ならできるんだろう
iamポリシーを適切に設定できる人への道のりはめっちゃ険しそうだな…。
デプロイに時間かかりはじめたので正しい方向には進んでそう
cloudformationは成功してるのにコンソールではエラーという謎の事態が…と思ったら↓で同じ壁にぶつかった先人がいた。ありがてえ。
ServerlessRestApi
がないよみたいなエラーなんだけど、これも自分で書き込んでおかないといけないらしい。テンプレとは何なのか。
よく見返してみたらテンプレそのままでも動くらしいってことはわたしがなんかもっと前から間違えてる…?一旦元に戻してみるか
api gatewayのpostの許可方法がよくわからん
やったお!!できたお!!!でもめちゃマジフルアクセス許可しまくりゴリラしたのであんまよくないけど、今は一旦いい!!!!わたしがやりたいのはそこじゃないのや
結論からいうと
・書き換えなくてよかった
・エラーがでてたのは前のスタックが残ってたせい。前のスタックを消すのと書き換えのQiitaを同時にやってしまった→書き換えによって動くようになった!と誤認してしまったので混乱に陥った
という感じ。
githubactionsまできたぞい
こういうこともできるのね
なんか、monorepoにすると1個のリポジトリにまとまって良いのは確かなんだけど、デプロイちょっとややこしくなっちゃうな
どっかでもmonorepoの文脈で話してたけど、『フロントしかなおさなくていいのにサーバサイドのデプロイも走っちゃう』はやっぱめんどくさみあるし、別々にしようかなやっぱり
Error: Missing option '--stack-name', 'sam deploy --guided' can be used to provide and save needed parameters for future deploys.
sam deploy --guided1回実行してるんだけどなあ
configファイルの設定がが悪かったわ
unable to locate credentials
はAWS_DEFAULT_REGION
が足りないっぽそう
さすがにもうねむいから通ってくれ
AWS_DEFAULT_REGION
が足りてないとかではないらしい 他はある
元サイトのConfigure AWS credentials
入れ忘れてるだけだった…途中の手順にあるやつだけコピペしてしまったので足りてない奴がいくつかあるがまあこれだけで大丈夫だろう うん
やった!!!!やっと寝れる!!!!!!!!!おやすみ!!!!!!!!!!!!!
動いたけどどこではろーわーるどしてるのかよくわかってないので、これを書き換えまでやってこのスクラップは終わりにしよ 何はともあれ今日はねる
書き換えは普通にそれっぽい部分書き換えればOKな感じね
これlambda用のexpressみたいなフレームワークってあるのかしら、このままだと大規模開発になってくるとちと書きづらいような気がするけど
じゃあ次こっちな