IAMとか理解してないので引っかかりまくったゾ。。。
やったこと
この記事を参考にした。
Serverless Frameworkの使い方まとめ - Qiita
ただ、最終的にデプロイしたいのはGoのコードだったので、Goの方はこれを参考に、 aws-go-mod テンプレートを使用した。
ServerlessFrameworkにてaws-go-modテンプレートのサービスをデプロイしてみる - Qiita
事前にnpm系統の何かをアップデートしていた。(この手順については割愛)
AWS周りの設定
デプロイ用のユーザーが必要なのでIAMを作成した。初めてでよくわからなかったのだが、頑張ってこれを見ながらすすめる…。
Serverless Dashboard - Access Roles
やったこととしては、こんな感じ。ちなみにOrganization的なやつでやってる場合はよくわからないです。僕は個人で遊んでいるだけなので。。。。
- AWSのIAMを作る画面に移動する
- ユーザーあたりをクリックして、ユーザーを追加
- プログラムの実行ユーザーとかで選ぶ
- 操作権限は雑にAdministratorAccessとかにした(真面目に管理する場合はもう少しちゃんとした権限にする)
- あとはポチポチしてたのであんまり記憶にない、最後にアクセスキーとかが表示されるのでコピるなりCSVをダウンロードするなりしておく
で、awsのconfigにつっこんどく。きーとしーくれっとはいい感じに置換する。
serverless config credentials --provider aws --key きー --secret しーくれっと
(ここでローカルの ~/.aws/credential
みたいなファイルを見たら、デフォルトユーザーになっていたので、後でしれっとserverless_deployみたいなユーザー名にした)
ここまででやっとAWSにつなぐための設定ができた。
Serverlessでデプロイしてみる
npm のグローバルインストールで serverless を入れておく。(あんまりグローバルには入れたくないのだが、まあこれは使い回すかなあと思って入れておく)
npm install -g serverless
そのあと雑なフォルダで下記を実行した。
sls create --template aws-go-mod --path test-func
ビルドしてデプロイ。それなりに時間がかかった。
make build serverless deploy -v --aws-profile serverless_deploy
まとめ
取りあえず動くところまで行けたので良かったです。あとserverless.yml をもう少し設定変えてあげれば色々できるのかなーと思いつつ、色々知らないので調べないと・・・ という気持ちになりました。いちいち発行されるドメイン覚えておくのもあれだし、ドメインなんか取ろうかな…。
手軽に小さいAPIがデプロイできるようになったので、もう少し勉強して活用できるようになれば、と思います。