4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【超基本】AWSLambdaでRubyコードデプロイのやり方

Last updated at Posted at 2023-11-09

どうもこんにちは。

今回は、業務でAWS LambdaでRubyコードをデプロイしたのでそのやり方を紹介していきます。

AWS Lambdaとは

AWS公式ページの言葉を引用すると、

サーバーをプロビジョニングまたは管理せずにコードを実行できるようにするコンピューティングサービス」です。

要するに、サーバーを使用せずにコードを実行することができる。いわば「サーバーレスアプリケーション」を構築することができるサービスということです。

AWS Lambdaを使用するメリット

  1. サーバーが必要ない
  2. 最大で998個の処理を同時に行うことができる
  3. 実行時間とリソース使用量によって料金が決まるため、低コストで使用できる
  4. Lambdaはイベント駆動型のため、さまざまなサービスのイベントをトリガーにコードを実行することができる
  5. 他のAWSサービスと連携して実装することができる
  6. AWSのIAMを使用して関数の実行権限を細かく設定できる
  7. AWSのVPCの設定を行うことでセキュリティは安心

などなどです!

構築方法

0. AWSコンソールにログインしてAWSLambdaのダッシュボードに遷移する

1. 「関数の作成」をクリックする

画面右上の「関数の作成」をクリックすると、作成画面へ遷移します。

スクリーンショット 2023-11-07 20.47.54.png

2. 必要な情報を入力していく

作成画面では、以下の3つを設定します。

  • Lambda関数名: 自分の好きな名前を入れてください。
  • ランタイム: Ruby3.2(ここではプログラミング言語とそのバージョンを選択します。)
  • アーキテクチャ: x86_64

スクリーンショット 2023-11-07 20.51.06.png

入力したら「関数の作成」ボタンをクリックします。

3. 作成された関数の確認

手順2で関数が作成されたので、関数のコードを確認してみます。

以下のようなRubyコードがエディタに入力されているはずです。

require 'json'

def lambda_handler(event:, context:)
    # TODO implement
    { statusCode: 200, body: JSON.generate('Hello from Lambda!') }
end

4. テスト

コードタブの横にテストというタブがあります。それをクリックすると、テストを実行できる画面に遷移します。

以下のようにテストの情報を入力していきます。

  • イベント名: 好きな名前を入れてください
  • イベント共有の設定: 他のユーザーと共有する必要がないならプライベートでOKです
  • テンプレートオプション: hello-worldでOKです
  • イベントJSON: JSON形式で関数に渡すテストデータを作成します。初期コードであればそのままでOKです

スクリーンショット 2023-11-07 21.13.26.png

「テスト」ボタンをクリックすると、テストが実行され結果が画面に表示されます。

スクリーンショット 2023-11-07 21.18.17.png

結果画面にはテストの結果が表示されます。(緑ならテスト成功、赤ならテスト失敗)

今回のコードでは、Lambda関数が実行されたらJSON形式で文字を出力するだけのコードなので、以下の結果が出力されます。

{
  "statusCode": 200,
  "body": "\"Hello from Lambda!\""
}

引数を渡してコードを実行

次はLambda関数に引数を渡してコードを動かしてみます。

関数の書き換え

まずはLambdaのコードを以下のように修正します。

require 'json'

def lambda_handler(event:, context:)
    # TODO implement
    name = event['Parameters']['name']
    age = event['Parameters']['age']

    "私の名前は#{name}です。年齢は#{age}歳です。"
end

テストのパラメータを修正

テストのイベントJSONを以下のように書き換えます。

{
    "Parameters": {
        "name": "太郎",
        "age": "25"
    }
}

テストの実行

テストボタンを押すと、以下のような結果が出力されると思います。

"私の名前は太郎です。年齢は25歳です。"

まとめ

今回はLambdaの基本的な使い方をまとめてみました。

また別の記事でローカルで開発した関数をLambdaにデプロイする方法を書こうと思います。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?