我正在应用程序引擎上的其他 2 个服务中使用标准环境,它们部署速度非常快,但使用 Flex 的一项服务需要 10 多分钟,尽管它很简单,有没有人看到我的 app.yaml 存在任何问题,可能会导致它花费如此多的时间很长一段时间,等待 10 多分钟才能部署修复程序非常痛苦
runtime: nodejs
env: flex
service: api
runtime_config:
operating_system: "ubuntu22"
runtime_version: "18"
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 1
disk_size_gb: 10
handlers:
- url: /.*
secure: always
script: auto
readiness_check:
path: "/health"
check_interval_sec: 5
timeout_sec: 4
failure_threshold: 2
success_threshold: 2
app_start_timeout_sec: 180
network:
session_affinity: true
部署:
标准环境中的部署通常比灵活环境中的部署更快。在灵活环境中扩展现有版本比部署新版本更快,因为新版本的网络编程通常是灵活环境部署中的长杆。在灵活环境中进行快速回滚的一种策略是维护缩小到单个实例的已知良好版本。然后,您可以扩展该版本,然后使用流量拆分将所有流量路由到该版本。
请注意,Google App Engine 灵活环境基于 Google Compute Engine,因此在部署应用程序时需要时间来配置基础架构。
由于内部基础设施的设置,新版本 App Engine Flex 应用程序的首次部署需要一些时间,但后续部署应该相对较快,因为它只修改了一些 GCP 资源,然后等待运行状况检查。
示例 Flex 应用程序已花费 7 分钟来部署。使用readiness_check,需要更多时间。
发现类似的请求,可以让部署更快。您可以对此公共问题跟踪器进行投票/评论。
作为最后的手段,请尝试探索 Cloud Run 而不是 Google App Engine flex。由于 GAEflexible 在虚拟机上运行,因此部署应用程序的新版本并进行扩展比 Cloud Run 慢一些。 Cloud Run 部署速度更快。