概要
- 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
何卒よろしくお願い申し上げます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。