2023.10.02スポンサーリンク目次トラブルシューティングサムネイル画像が作成されないトリガーが正しくセットできていないLambda関数の実行ロールの権限不足サムネイル画像が作成できる場合とできない場合があるサムネイル画像を作成できたのログサムネイル画像を作成できなかった時のログLambda関数実行設定を変更まとめトラブルシューティングうまく動作しない場合に考えられるケースをいくつか照会します。私もハマりましたので、ちょっと書いておきます。サムネイル画像が作成されないトリガーが正しくセットできていないサフィックスに間違いがある。大文字と小文字は別物と判定されますので、JPEGファイルなら、jpg、Jpg、JPGなど登録する必要があります。プレフィックスに間違いがある。こちらも大文字と小文字は別物と判定されますので確認が必要です。Lambda関数の実行ロールの権限不足S3への読み書きで失敗している場合はアクセス権限が不足している可能性が高いです。Lambda関数の設定でロールを確認してください。サムネイル画像が作成できる場合とできない場合がある前回、AWSのS3にアップロードした画像のサムネイルを自動で作成する処理をサーバレスで実行するLambda関数を作って無事に動いたのですが、動く場合と動かない場合があったのでCloudWatchのログを調べてみました。secondsどうやらタイムアウトしていますね。サイズの小さい画像ファイルは問題なく処理できたのですが、サイズの大きい画像ファイルは処理が間に合わなかったのでしょう。タイムアウトで処理が打ち切られてしまった結果、サムネイルが作成できなかったようです。Lambda関数実行設定を変更Lambda関数の設定を変更することができます。Lambda関数を実行する時に割り当てるメモリ容量を指定できます。初期値だと128MBしかありません。した軽い処理を動かす分にはよいですが、今回のような大きい画像を処理するような場合は増やしておかないとメモリ不足で動きません。タイムアウトも初期値だと3秒です。これも少し重い処理を動かすと3秒を超えてしまいタイムアウトで処理が打ち切られてしまいます。実行する処理に応じて伸ばしておきましょう。これで再度動かして確認してみましょう。これで再度試したところ、無事にサムネイルが作成されました。ログを確認すると、メモリを256MB中165MB使いましたし、実行時間も4.3秒かかっていますので、初期サイズだとリソースが足りていないことがわかります。msスポンサーリンクまとめLambda関数が想定どおりに動作しない場合は、まずCloudWatchで実行結果を確認しましょう。標準のログだけでは少ない場合、Lambdaコードの中でデバッグプリントを入れることでCloudWatchでも処理の流れが追えますので、処理が安定するまでは入れておくと確認しやすいと思います。Lambda関数はちょっとした処理をサーバレスで動かしたい場合に使うものですので、ステータフルで本格的な重たい処理には向いていないと思います。その場合は、EC2などでしっかりアプリケーションを動かしたほうがよいと思いました。逆に軽い処理だったり、たまにしか動作しないような処理にEC2でインスタンスを起動して構えるとコストが嵩みますので、この場合はサーバレスでコードの実行単位でコスト計上されるLambdaがよいです。要は使い所を見極めて、適切なコンポーネントでシステムを組み上げることが重要です。おすすめ書籍の紹介コーナーサーバレス開発は盛り上がってきています。お客様からサーバレスでサービスを構築したいというオーダーも最近ではよく見かけます。理解を深めて活用していきましょう。本書では、従来のシステムをLambdaで構築するときの設計手法や具体的な事例の作成を通じてLambdaでのプログラミング手法を解説します。第2版では、2022年の最新情報にアップデートし、SAM開発環境に対応しました。Lambdaは、サーバーを必要としないプログラムの実行環境です。開発者が処理したい内容を小さな関数として実装すると、必要に応じて、それが実行される仕組みです。2023年6月22日以降、GitLabのサービスの無料プランで利用できるチーム開発人数が最大で5名に制限されるという発表がありました。effici...ITS3にアップロードした画像のサムネイルを自動で生成する(後編)前回、写真・画像ファイルを格納するS3バケットと、サムネイル画像を作成する処理コードを書いたのですが、画像編集に必要なPillowライブラリがLambda上ではロードできずに終わってしまいました。今まではAWS上にWordPressサーバを立ち上げる、となると割と敷居が高いものでした。以前、社内専用のGitLabサーバを構築しました。AWSのストレージサービス(S3)にバケットAとBを作って、バケットAにファイルをアップロードしたら、自動でそのファイルをバケットBにコピーしたり、移動させたりするプログラムを作ってみます。普通は、AWSマネジメントコンソールのS3の画面を使うと思います。ここで画面上で削除すると、削除確認を求められます。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。最近はマネジメント業務ばかりやっていますが、エンジニアとしていつまでも現役でありたいので、時々手を動かしていますが、歳を重ねると物忘れがひどくなる一方なので、備忘録としてブログを運営しています。Reserved.ホーム検索トップサイドバータイトルとURLをコピーしました。