2017-02-17 76 views
0

我有我的代碼如下,它工作得很好,並在我的本地機器中創建一個xml文件。但是,我想在lambda中運行此函數以將XML文件寫入s3存儲桶中的文件夾,我必須做出什麼樣的修改或至少爲我提供了一種意識形態來實現這一目標?我對AWS服務非常陌生,不勝感激!如何寫一個XML文件到S3使用Amazon Lambda

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目錄(您可以在Lambda中編寫文件的唯一位置)。編寫完文件後,請致電AWS SDK將文件複製到您的S3存儲桶。

或者,您可以考慮將XML文件內容流式傳輸到S3,但這需要更多的代碼更改。

+0

我嘗試了你所提示的,它仍然顯示錯誤爲「IOError:[Errno 30]只讀文件系統:'\ tmp \\ data.xml' –

+0

我的壞它有用!huhu我把斜槓放在其他之前的方式 –