質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

1654閲覧

【Lambda】Python pdf2image でエラーが表示されない

退会済みユーザー

退会済みユーザー

総合スコア0

AWS Lambda

AWS Lambdaは、クラウド上でアプリを実行できるコンピューティングサービス。サーバーのプロビジョニングや管理を要せず複数のイベントに対してコードを実行します。カスタムロジック用いた他AWSサービスの拡張やAWSの規模やパフォーマンスを用いたバックエンドサービスを作成できます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/03/02 11:23

編集2022/03/04 11:43

概要

  • PDFを画像に変換する処理をLambdaにて実装中です。
  • 下記コードをLambdaにてECR経由で実装しているのですが、エラーが表示されずに困っております。
  • S3にあるPDFを画像に変換し、S3に保存する処理になります。

内容

Dockerfile

1FROM public.ecr.aws/lambda/python:3.8 2 3RUN yum -y install poppler-utils 4 5COPY pdf_to_image.py ${LAMBDA_TASK_ROOT} 6 7COPY requirements.txt . 8RUN pip install --upgrade pip && \ 9 pip install -r requirements.txt --target "${LAMBDA_TASK_ROOT}" 10 11# {実行するファイル名}.{実行する関数名} 12CMD ["pdf_to_image.lambda_handler"]

python

1import json 2import os, io 3from pathlib import Path 4from pdf2image import convert_from_path, convert_from_bytes 5import boto3 6import PIL 7import requests 8 9def lambda_handler(event, context): 10 queryStringParameters = event["queryStringParameters"] 11 fromBucketKeyList = set_bucket_key_name(queryStringParameters["from"]) 12 s3 = boto3.client('s3') 13 response = s3.get_object(Bucket="hogehoge",Key="image.pdf") 14 data = response['Body'].read() 15 img_bytes = io.BytesIO() 16 # ↓のconvert_from_bytesが実行されず、またLambdaでもエラーが出ておりません。 17 pages = convert_from_bytes(data) 18 pages[0].save(img_bytes, "JPG") 19 img_bytes = img_bytes.getvalue() 20 toBucketKeyList = set_bucket_key_name(queryStringParameters["to"]) 21 s3.put_object(Body = img_bytes, Bucket ="fugafuga", Key ="pdf.jpg") 22 return { 23 'statusCode': 200, 24 'body': 'success' 25 26

requirements.txt

1pdf2image 2boto3 3requests
  • ApiGateway経由で実行しております。
  • 「convert_from_bytes」にてエラーも出ず、処理も失敗しない理由についてご教授いただければ幸いです。

追記

  • 確認しているログはCloudWatchのログになります

追記②

こちらローカルでの検証では成功いたしました。
具体的にはWindowsTerminalでのCurlになります。

参考

https://qiita.com/yosiiii/items/bb7c6793b2bdd2029b95

何卒よろしくお願い申し上げます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Lambdaのタイムアウト設定が3秒になっていたのが原因でした。

投稿2022/03/04 11:43

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問