名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

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

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叩いたら動いた。

f:id:MireiMixin:20200112144951p:plain

まとめ

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

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