1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS Lambda と ServerlessAdvent Calendar 2024

Day 23

【AWS Lambda】AWS Lambdaのここが難しいよ【初心者向け】

Posted at

はじめに

先日初めて Lambda に入門しました。その時にいくつか躓きポイントがあったので、紹介します。

作り方が3種類ある

Console から Lambda を作るとき、最初に3つの選択肢から選ぶ必要があります。

image.png

この選択によって、それ以降で設定する項目が結構かわるので、後回しにできません。
それぞれの選択肢をざっくり説明するとこんな感じです。

  • Author from scratch
    • ゼロから作る場合に選択します。
  • Use a blueprint
    • AWS が用意した設計図を使って作成する場合に選択します。
    • 使ったことがないのでわからないですが、実装したい内容とマッチする設計図が用意されている場合は使ってもいいかもしれないです。
  • Container image
    • コンテナイメージを元に作成する場合に選択します。

この選択がデプロイ方法につながるので、注意しましょう。Author from scratchを選んだ場合は、Console 上で編集するか、Zip ファイルをアップロードしてデプロイすることになります。しかも変更できないので、後からコンテナイメージにしたい場合は最初から作り直す必要があります。

最初は Author from scratch でプロトタイプを作りながらいろいろ触ってみて、その後本番を Container image で作るのがおすすめです。

使う言語(ランタイム)は?

Lambda の関数の中身をどの言語で書くか決める必要があります。
1人で開発する分には好きな言語で問題ないですが、複数人で開発する場合や、作った後に別の人に引き継ぐ場合などは慎重に選びましょう。また、選んだ言語に AWS SDK のライブラリがあるか確認しておくと良いでしょう。 Lambda から別の AWS のリソースを操作する場合に AWS SDK は便利です。

x86_64 と arm64 どっち?

arm64 の方が安いので、基本 arm64 でいいと思います。コンテナイメージでLambdaを作る場合は、arm64 で動くイメージをビルドする必要があります。

image.png

詳細はこちら:

Lambda のバージョン管理どう管理する?

Lambda の関数のバージョンは、デプロイのたびに 1, 2, 3...のように増えていく整数になっています。 また、 $LATEST という最新を指すバージョンもあります。

バージョンとは別に エイリアス というものがあります。

エイリアスにはバージョンを指定できるので、エイリアスをうまく活用すると、運用しやすくなる場合があります。例えば、何らかのリソースから Lambda を呼び出す時は常に特定のエイリアスに固定しておき、エイリアスに紐づくバージョンを変更することで新しいバージョンをリリースできるようにする、といった方法が可能です。

動作確認ってどうするの?

Console の Testタブから、Lambda に渡す引数を指定して実行できます。

image.png

コンテナイメージの場合、ローカルでテストする方法がドキュメントに記載されています。

docker run でコンテナを起動しておき、以下のように curl などで Lambdaを invoke することができます。

$ curl "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{}'

その他

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?