BETA

serverlessでとりあえずHelloWorldくらいのAPIを立ててみる

投稿日:2020-01-12
最終更新:2020-01-12

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  

その後Curlで表示されてるAPI叩いたら動いた。

まとめ

取りあえず動くところまで行けたので良かったです。あとserverless.yml をもう少し設定変えてあげれば色々できるのかなーと思いつつ、色々知らないので調べないと・・・ という気持ちになりました。いちいち発行されるドメイン覚えておくのもあれだし、ドメインなんか取ろうかな…。

手軽に小さいAPIがデプロイできるようになったので、もう少し勉強して活用できるようになれば、と思います。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

技術ブログとは何なのだろう。なんかちょっと試してみたものをメモがてら残してみています。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう