【发布时间】:2021-02-25 23:44:33
【问题描述】:
当我有一个带有图像的model.xlsx 并且此代码在 Windows 上运行良好时。 (将图片保存在output.xlsx)
import openpyxl
wb = openpyxl.load_workbook('model.xlsx')
#doing some stuff on the wb
wb.save('output.xlsx')
现在,当我在我的 AWS Lambda 上执行此操作时,一切正常,但我在 output.xlsx 上没有图像。
未引发错误消息。
import json
import openpyxl
from tempfile import NamedTemporaryFile
import boto3
import botocore
def lambda_handler(event, context):
s3_client = boto3.client('s3', aws_access_key_id='*****', aws_secret_access_key='*****')
wb = openpyxl.load_workbook('model.xlsx')
#doing some stuff on the wb
with NamedTemporaryFile() as tmp:
wb.save(tmp.name)
tmp.seek(0)
s3_client.upload_file(tmp.name, "my-bucket-name", "filename-in-the-bucket")
return {
'statusCode': 200,
'body': json.dumps("Hello World")
}
我应该向 AWS 提出申请吗?打开pyxl?为什么没有错误信息?
【问题讨论】:
-
@deceze 当我为我的 lambda 创建 .zip 文件时,我使用:
pip3 install --target ./theholypath pillow和pip3 install --target ./theholypath openpyxl。它可能来自这部分,但我不知道该怎么做? -
pil 特别注意在 Lambda 上安装。有关详细信息,请参阅this answer。更简单的是,使用答案之一中提到的 pil 层。
-
成功了,你是我的英雄,谢谢!!! github.com/keithrozario/Klayers/blob/master/deployments/…
标签: python amazon-web-services aws-lambda openpyxl xlsx