使用 Fix with AI:發布失敗時一鍵處理
在 Mythex 發布失敗時,對話框現在會告訴你實際發生了什麼,而且每次失敗都會提供兩個按鈕:Fix with AI 和 Try again。Fix with AI 會把失敗內容以及你的應用程式印出的訊息交給代理,讓它修正專案並重新發布;如果你的應用程式本身沒有問題,它就直接重新發布。我們也不再把實際上出在應用程式裡的問題歸咎於「我們這邊」,並開始能抓到那些在上線幾分鐘後才壞掉的應用程式。
有哪些改變
每一種失敗都有 Fix with AI
以前,有些失敗會顯示 Fix with AI,其他的只顯示 Try again。這種區分是依據失敗看起來是誰的責任:如果像是我們這邊的問題,我們不想讓代理花你的點數去追查其實沒有問題的程式碼。
結果是你得自己判斷遇到的是哪一種失敗。現在每一種失敗都會提供兩個按鈕。代理會拿到失敗的類型和背後的輸出,所以當應用程式真的有問題時它會修正應用程式,沒有問題時則直接重新發布。你不需要判斷是哪一種。
例外是那些答案不在程式碼裡的情況。名稱已被使用時,會建議其他名稱;點數用完時,會提供補充點數的方式。
說明發生了什麼的訊息
過去有幾種失敗最後都變成「我們這邊的問題,請重新發布」,這並不正確,而且重新發布從來沒有幫助。現在它們各自有專屬的訊息:
- 「你的應用程式在發布後沒有啟動。」 應用程式已發布,但從未開始接受連線。最常見的原因是它監聽了不同的連接埠,或只監聽
localhost。已發布的應用程式必須監聽0.0.0.0以及$PORT中的連接埠。我們不再只是等待固定時間然後祈禱,而是會實際檢查應用程式是否在其連接埠上接受連線。 - 「這個檔案太大」/檔案數量過多。 靜態網站對每個檔案有大小限制(依網站類型約 25 至 30 MB),並且最多 20,000 個檔案。我們現在會在上傳前,以同樣的方式測量所有類型檔案的資料夾,訊息會列出所有超過限制的檔案。
- 「你的應用程式在啟動後立即停止。」 通常是缺少設定,例如環境變數或機密,或是第一次請求時就當機,又或是啟動指令有錯誤。
偵測上線後才壞掉的應用程式
發布可能成功,但應用程式幾分鐘後才失敗:它持續當機,或雖然在執行卻停止接受連線。Mythex 會定期檢查已發布的應用程式。如果應用程式在幾分鐘內反覆當機,或正在執行卻沒有接受任何連線,發布會被標記為失敗,你會收到一封電子郵件,專案也會顯示該訊息以及 Fix with AI。
應用程式自行恢復的單次當機不會被算作發布失敗。如果是因為應用程式記憶體不足,你會另外收到一封相關郵件。
當我們把上線中的應用程式標記為失敗時,也會保存當下應用程式印出的內容。你不會看到這些原始輸出,但它正是 Fix with AI 交給代理的內容,所以代理會從真正的錯誤開始,而不是靠猜的。
如何使用
- 照常按下 Publish。
- 如果失敗,請閱讀對話框中的訊息。它的目的是告訴你發生了什麼,而不只是說有東西出錯。
- 點選 Fix with AI。代理會讀取建置輸出或應用程式的記錄,修正專案,之後你就可以重新發布。
- 如果訊息表示你的應用程式沒有問題,例如「發布忙碌中,請稍候」或「發布已中斷」,通常 Try again 就足夠了。
- 如果你收到郵件說上線的應用程式持續當機,請打開專案:同樣的訊息和 Fix with AI 都已經在那裡等你。
重新發布時,請保留相同的連結名稱,除非訊息表示名稱本身就是問題所在。
為什麼要做這個
發布失敗通常是一個人遇到的第一道真正的障礙。應用程式在預覽中運作正常,他們按下發布,它卻沒有起來。對非工程師來說,「去看記錄」並不是他們能執行的建議。Fix with AI 把那一刻變成一次點擊,而誠實的訊息則確保你讀到時,指向的是正確的問題。
限制
- Fix with AI 會使用代理,因此和其他訊息一樣會消耗點數。
- 它可以修正專案中的內容:程式碼、設定、啟動指令。它無法修正已被使用的連結名稱、未驗證的電子郵件,或已經用完的點數餘額。
- 有些問題需要你做決定,例如要把大型檔案移到 Storage,還是把它變小。
每一則訊息以及該如何處理,都記載在文件中:發布疑難排解。若想了解更廣泛的除錯方法,請參閱如何對 AI 建置的應用程式除錯。