我正在嘗試將我的應用程式部署到 AWS App Runner,即使一切看起來都很好,但由于運行狀況檢查失敗,它仍然無法部署。我正在嘗試從源代碼存盤庫進行部署,以便 AWS 為我構建映像。我檢查了部署日志,我可以看到適當的埠是EXPOSEd:
10-08-2022 09:59:42 PM [Build] Step 5/5 : EXPOSE 4200
當應用程式啟動時,我可以看到它正常作業并監聽埠上的連接4200:
10-08-2022 10:02:49 PM [ ready ] on http://localhost:4200
但我從 App Runner 那里得到了這個:
10-08-2022 10:07:57 PM [AppRunner] Health check on port '4200' failed. Service is rolling back. Check your configured port number. For more information, read the application logs.
我究竟做錯了什么?我使用以下引數從 UI 配置了 App Runner:
資源
源代碼存盤庫
部署設定
自動的
構建設定
- 運行時:節點 16
- 構建命令:(
script/ci這運行一個npm install) - 啟動命令:(
script/run這只是啟動節點應用程式) - 港口:
4200
自動縮放
默認
健康檢查
默認(我嘗試了各種設定但沒有成功)
安全
使用 AWS 擁有的密鑰(無實體角色)
聯網
公共訪問
可觀察性
沒有任何
標簽
沒有任何
可能的罪魁禍首
- 也許協議是錯誤的?它提到了 TCP 健康檢查,但我提供 HTTP API
- 也許我需要設定自定義 VPC 而不是“公共訪問”?我嘗試了默認 VPC,但它也不起作用
uj5u.com熱心網友回復:
確保您有一個回傳200 OK的運行狀況檢查端點。Next 在許多情況下會回傳304s ,這會影響您的健康檢查。不幸的是,無法為特定的 HTTP 回應代碼配置 App Runner,因此您可以執行以下操作:
import { NextApiRequest, NextApiResponse } from "next";
const handler = (req: NextApiRequest, res: NextApiResponse) => {
res.status(200).json({ ok: Date.now().toString() });
};
export default handler;
請注意,Date每次都會回傳一個新的,因此您將獲得200s 而不是304 NotModified.
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/513384.html
上一篇:在Lambda中使用多個函式
