2012-11-02 94 views
3

我試圖自動化收集一個(或多個)AWS實例上的數據,將數據上傳到S3每小時的數據,以便通過一個解耦過程,用於解析和進一步操作。作爲第一步,我掀起了一些調用boto實用程序s3multiput的crontab啓動的shell腳本(運行在Ubuntu 12.04 LTS中)。s3multiput(boto)從EC2實例上傳到s3的無聲故障

大多數情況下,這個工作正常,但偶爾(可能每週一次)該文件無法顯示在s3存儲桶中,並且我看不到任何錯誤或異常以追查原因。

我正在使用boto 2.6.0附帶的s3multiput工具。 Python 2.7.3是實例上的默認Python。我有一個分配給實例的IAM角色向boto提供AWS憑證。

我有一個crontab調用一個腳本,調用一個調用s3multiput的包裝。我在s3multiput調用中包含了-d 1標誌,並將crontab作業中的所有輸出重定向到2>&1,但是缺少數據的小時報告看起來就像是前一小時和後一小時的報告,每個報告都成功了。

所以,99%的工作時間,但當它失敗時,我不知道爲什麼,我無法找到在哪裏看。我以後只會在解析器作業試圖從存儲桶中提取數據並且它不在時發現失敗。數據在它應該從其上傳的目錄中是安全可靠的,所以我可以手動完成,但不需要。

我很高興發佈〜30-40行的相關代碼,如果有幫助,但想知道是否有其他人遇到過這個,聽起來很熟悉。

有些盛大的日子,我會回到這部分管道,並用python重寫它以避免s3multiput,但我們現在還沒有開發時間。

我該如何調查s3multiput上傳出了什麼問題?

回答

1

首先,我會嘗試更新博託;對分支上傳失敗時,開發分支的提交提到日誌記錄。請注意,這樣做需要使用s3put代替,因爲s3multiput正在摺疊爲s3put

+0

嗯。感謝您的提示 - 我已經看了一下github repo,其中一些更新很有意義,但我們通常嘗試繼續使用生產/穩定版本,2.6.0是PyPI的最新版本。我還沒有發現提到登錄失敗,只記錄multipart由於缺少依賴關係而不可用。我會繼續尋找,但你能指出我承諾進行調查嗎?非常感謝。 – Dave

+0

https://github.com/boto/boto/commit/9a50a7ede6b6c021825627b4c1d4218aa0712e84希望有所幫助。就穩定的代碼而言,在這樣的重大項目中,我不會太擔心;我最近轉向開發版的sleekxmpp以獲得更多功能。我認爲這些項目的開發分支比我自己的「穩定」版本更穩定。 – pydsigner