有没有办法在构建阶段为 Google App Engine 指定更多资源?

有没有办法在构建阶段为 Google App Engine 指定更多资源?

让我先从上下文开始。我有一个 React 应用,在构建过程中占用大约 8192MB 空间。部署到 GAE 失败了,因为我们可以使用的传真内存是 3072 MB(使用 instance_class:F4_1G)。

我想知道我们是否可以在 GAE 部署构建期间指定更多资源?构建后,应用程序可以在较小的服务器(如 F2 (768 MB))中运行。

答案1

我建议使用 Google App Engine Flex灵活的环境。这有一个选项可以配置 app.yaml 中的所有资源设置。

例如,您可以检查此配置:

resources:
  cpu: 2
  memory_gb: 2.3
  disk_size_gb: 10
  volumes:
  - name: ramdisk1
    volume_type: tmpfs
    size_gb: 0.5

您可以增加 memory_gb、cpu 和 disk_size_gb。

要了解有关 app.yaml 配置文件的更多信息,请查看此处文档

希望能帮助到你

答案2

似乎 GAE 没有在构建期间定义更高资源并在之后进行更改的选项。此外,GAE 的最大资源为 F4_1G(3072 MB,2.4 GHz)。所以我决定采用不同的方法。

  1. 使用云构建来构建(我们可以在其中配置具有更高资源的机器)
  2. 在 app.yaml 上,用空白覆盖标准 npm build。

因此我的 cloudbuild.yaml 看起来像:

    steps:
      - name: 'node:14.21-buster'
        entrypoint: 'npm'
        args: ['install']
      - name: 'node:14.21-buster'
        entrypoint: 'npm'
        args: ['run', 'build']
        env:
          - NODE_OPTIONS=--max-old-space-size=8192
          - GENERATE_SOURCEMAP=false

      .... MORE STEPS HERE .....

      - name: 'gcr.io/cloud-builders/gcloud'
        entrypoint: 'gcloud'
        args: ['app', 'deploy']

    substitutions:
      _CLOUDSDK_COMPUTE_ZONE: us-central1-c
      _CLOUDSDK_COMPUTE_REGION: us-central1

    options:
      machine_type: E2_HIGHCPU_8

app.yaml 如下所示:

    runtime: nodejs14
    build_env_variables:
      GOOGLE_NODE_RUN_SCRIPTS: '' # prevent running npm run build on GAE
    entrypoint: node server/server.js

相关内容