【发布时间】:2022-03-06 03:47:50
【问题描述】:
我们已经部署了一些 API(很少使用 Node.js/Express.js 开发,还有一些使用 Python Quart)。我们所有的 API 都是使用 Azure 容器化实例部署的。我们通过 Postman 设置了定期 API 监控。 API 在大约 20% 的时间里失败并出现错误:套接字挂起。我们在开发区域或通过浏览器访问 API 时从未遇到过这个问题。什么可能导致此 Socket Hang Up 问题,我们如何克服它?
我们的 Node.js API Dockerfile 设置如下:
FROM node:16
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN rm -rf .env
RUN mv production.env .env
#ENV PORT=5000
EXPOSE 5000
CMD ["npm", "run", "prod"]
Python Quart APIs Dockerfile 设置如下:
FROM continuumio/miniconda3
COPY . /api/
WORKDIR /api/src
RUN conda env create -f /api/environment.yml
COPY entrypoint.sh ./
RUN chmod +x ./entrypoint.sh
ENTRYPOINT ["./entrypoint.sh"]
EXPOSE 5000
入口点.sh
#!/bin/bash --login
set +euo pipefail
conda activate python_env_name
set -euo pipefail
exec hypercorn --bind 0.0.0.0:5000 QuartAPI:app
【问题讨论】:
-
node 和 python api 都失败了?同时?你是怎么监控的?通过访问 api/healthcheck 路径?还是套接字调用?
标签: node.js azure postman azure-container-instances quart