2017-02-17 9 views
0

下のコードがうまく動作し、ローカルマシンにXMLファイルが作成されています。しかし、私はラムダでこの機能を実行して、s3バケットのフォルダにXMLファイルを書きたいと思っています。私はAWSサービスに非常に慣れています。Amazon Lambdaを使用してS3にXMLファイルを書き込む方法

import pymysql 
    def query_db(outfileName): 
outfile = file(outfileName, 'w') 
connection = pymysql.connect(
    host='XXXXXX', 
    user='XXXXXX', 
    password='XXXXX', 
    database='XXXXX', 
) 
cursor = connection.cursor() 
cursor.execute("select title from table1;") 
rows = cursor.fetchall() 
outfile.write('<?xml version="1.0" encoding="utf-8"?>\n') 
outfile.write('<source>\n') 
for row in rows: 
    outfile.write(' <job>\n') 
    outfile.write(' <title><![CDATA[%s]]></title>\n' % row[0]) 
    outfile.write(' </job>\n') 
outfile.write('</source>\n') 
outfile.close() 
query_db('data.xml') 

答えて

1

AWS SDK(Boto3)をインポートします。ファイルを/tmpディレクトリ(ラムダにファイルを書き込むことができる唯一の場所)に書き込みます。ファイルの書き込みが終了したら、AWS SDKを呼び出してファイルをS3バケットにコピーします。

また、XMLファイルのコンテンツをS3にストリーミングすることもできますが、コードをさらに変更する必要があります。

+0

「IOError:[Errno 30]読み取り専用ファイルシステム: '\ tmp \\ data.xml' –

+0

私の悪いです!huhu他にもスラッシュを入れます方法の前に –

関連する問題