LoginSignup
0
0

More than 1 year has passed since last update.

LambdaにRubyのソースファイルをアップロードする方法

Posted at

概要

LambdaでRubyがかけるようになったのですが、画面上のコードをいじるより実際は手元の環境で動かしてそれをデプロイすることのほうが多いと思います。
そこで今回はLambdaに手元のrubyファイルをアップロードする方法を紹介します。
(今回はGemを使わないものを紹介します。Gemを使うものはまた次回記載予定です。)

既存の関数のエクスポート

まず、現在のLambda関数を手元の環境に持ってきましょう。
Lambdaの変更したい関数のページに行き、上の方のアクションボタンから「関数のエクスポート」を選択
スクリーンショット 2022-12-14 23.07.05.png
ダイアログの「デプロイパッケージのダウンロード」を選択
スクリーンショット 2022-12-14 23.07.13.png

すると手元のrubyファイルが取得されるかと思います。

既存のコードの変更

ここはしたいように変更していただいて結構です。
自分の場合初期の状態から変更していなかったので

require 'json'

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

このような状態だったものを

require 'json'

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

に変更しました。

ZIPファイルの作成

注意点

ソースファイルをアップロードするにはZIPにする必要があるのですが、ここで注意なのが作業ディレクトリがあった場合そのディレクトリをzipにしてしまうとだめというところです。
どういうことかというと
スクリーンショット 2022-12-14 23.12.21.png
このようにディレクトリの中にソースを入れて、そのディレクトリをzip化してしまうとだめということです。
アップロードしてみたらわかりますが、関数が入れ子になってしまいます....

やり方

ではどうすればいいかという話なのですが、ただソースファイルだけをZIPにすればよいです。

GUIでやる場合

スクリーンショット 2022-12-14 23.13.56.png
このボタンで圧縮

CLIでやる場合

zip lambda_function.zip lambda_function.rb

といった形でzip化

アップロード

ここまでくればあとはアップロードするだけです。
画面の「zipファイル」を選択して
スクリーンショット 2022-12-14 23.15.42.png
zip化したファイルを添付して完了です。
画面の方にも反映されているのがわかると思います。
スクリーンショット 2022-12-14 23.16.32.png

以上!!
近いうちにGemを使ったアップロードも記述する予定です!!

0
0
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
0
0