我正在尝试在AWS lambda中安排一项工作,我从Json API获取数据。我想每次都将JSON文件传输到amazon S3。我已经设置了S3存储桶和具有正确IAM角色的aws lambda函数。我在Python中编写AWS lambda函数。代码在EC2实例上运行正常,但如果我把它放在AWS Lambda中,它就不会将文件传输到S3。
import os
def lambda_handler(event, context):
#changing the directory to /tmp
os.chdir("/tmp")
print "loading function"
#downloading file to
os.system("wget https://jsonplaceholder.typicode.com/posts/1 -P /tmp")
#using aws-cli to transfer file to amazon S3
os.system("aws s3 sync . s3://targetbucket")
我是aws lambda的新手。我没有收到任何错误,但它没有给我预期的输出
答案 0 :(得分:2)
AWS Lambda默认没有aws cli
。
您可以在其中创建deployment package awscli
或使用python boto3
库。
import boto3
s3client = boto3.client('s3')
for filename in os.listdir('/tmp'): # assuming there will not be any sub-directories
fpath = os.path.join('/tmp',filename)
if os.path.isfile(fpath):
s3client.upload_file(fpath, 'targetbucket', filename)