我想从电子邮件中提取附件并将其保存到我的新S3存储桶中.到目前为止,我已配置AWS Simple Email Service来拦截传入的电子邮件.现在我有一个AWS lambda python函数,它在S3 Put上被触发.
在此之前它正在发挥作用.但我的lambda提出错误说:"[Errno 2]没有这样的文件或目录:'abc.docx':OSError".我看到在S3中的原始电子邮件中提到了名为abc.docx的附件.
我假设问题出在我的upload_file中.你能帮帮我吗?
请在下面找到我的代码的相关部分.
s3 = boto3.client('s3')
s3resource = boto3.resource('s3')
waiterFlg = s3.get_waiter('object_exists')
waiterFlg.wait(Bucket=bucket, Key=key)
response = s3resource.Bucket(bucket).Object(key)
message = email.message_from_string(response.get()["Body"].read())
if len(message.get_payload()) == 2:
attachment = msg.get_payload()[1]
s3resource.meta.client.upload_file(attachment.get_filename(), outputBucket, attachment.get_filename())
else:
print("Could not see file/attachment.")
Run Code Online (Sandbox Code Playgroud) 我有一个Java独立的应用程序,我已经dockerized.每次将对象放入S3存储时,我想运行此docker.在途中是通过AWS批处理,我试图避免.
有没有直接和简单的方法来调用从lambda运行的docker?
我需要在 AWS DynamoDB 中维护一对多关系数据。例如,一名员工可以拥有多种技能映射到他身上。在典型的 RDBMS 中,我将创建一个SKILL_MASTER表,其中SkillId、SkillName作为列和EMPLOYEE表。然后,我会在地图SkillId的雇员在EMPLOYEE表。DynamoDB 中的正确方法是什么?
注意:我对 NoSQL 完全陌生,因此是这个基本问题。