まるるん備忘録

プログラミングやインフラ等、IT技術に関して気付いた事を書いているブログです。

【まるるん備忘録】LambdaをGo言語で使ってみる

Lambdaとは

Lambdaとは、特定のイベント発生時に設定しておいたプログラムを自動的に実行してくれるコンピューティングです。
サーバー側の設定を一切する事なく、コードを書くだけでバッチ処理が行えるので、とてもオススメです。

この記事では、Lambdaの関数作成からHello [任意の文字列]を出力する所まで紹介します。
少し手順が多いですが、慣れれば楽なので頑張りましょう。

手順

  1. 関数を作成する
  2. トリガーを設定する
  3. プログラムを作成する
  4. SDKをダウンロードする
  5. プログラムをビルドする
  6. zipファイルにする
  7. zipファイルをアップロードする
  8. テストイベントを設定する

関数を作成する

f:id:Hmarurunn:20181116142544p:plain
一から作成を選択します。 f:id:Hmarurunn:20181116143418p:plain
画像外にあるパラメーターもありますが、1つ1つが重要なパラメーターなので説明していきます。
名前:この関数を管理しやすいよう、各自好きな名前を付けて下さい。
ランタイム:どの言語でプログラムを作成するかを決定します。今回はGo言語を使用したいのでGo 1.xを選択。
ロール:今回は「1つ以上のテンプレートから新しいロールを作成します」を選択。 プログラム的に言うと、この行為は変数の宣言に当たります。
ロール名:ロールの名前です。管理しやすい名前を適宜付けて下さい。
ポリシーテンプレート :ロールに対して、どんな権限を付与するか選択できます。今回は特別な権限が必要にならないので何も選択しないで進めます。

以上の設定ができたら関数の作成を実行します。

2. トリガーの設定をする

プログラムを「いつ」実行するか設定します。
今回は特定時間になるごとにプログラムを実行してみたいので、CloudWatch Eventsを選択します。
f:id:Hmarurunn:20181116145248p:plain その後新規ルールを作成し、ルール名、ルールの説明を記入していきます。
ルールタイプはスケジュール式、rate(1 hour)と記入します(これで1時間に1度実行するという設定になります)
設定を行なったらトリガーを追加し、ここまでの内容を保存します。

3. プログラムを作成する

こちらがとても参考になるので、こちらを元にプログラムを作成して下さい。
https://dev.classmethod.jp/cloud/aws/aws-lambda-supports-go/

4. SDKをダウンロードする

$ go get -u github.com/aws/aws-lambda-go/lambda

5. プログラムをビルドする

$ GOOS=linux GOARCH=amd64 go build -o hello

ファイル名はハンドラと同じにしておかなければならないので、ハンドラ名に応じて-oの後に続くファイル名の設定を変更して下さい。

6. zipファイルにする

$ zip test.zip ./hello

7. zipファイルをアップロードする

関数パッケージからzipファイルをアップロードします。
この時ハンドラ名は作成したハンドラ名と同じにして下さい。

8. テストイベントを設定する

json形式でテストデータを用意します。どのようなデータを用意すれば良いか分からなければ3. プログラムを作成するのURL先にテストデータがあるのでその通りに用意して下さい。

おわり

これでLambdaでプログラムが走ります。
とても楽しいのでぜひLambdaを使いこなしましょう。