我部署时 app.yaml 没有更新(Google App engine/Google Cloud Platform)

我部署时 app.yaml 没有更新(Google App engine/Google Cloud Platform)

这是我的默认 app.yaml 文件:

runtime: custom
env: flex
service: api

runtime_config:
   jdk: openjdk8

handlers:
- url: /.*
  script: this field is required, but ignored

automatic_scaling:
  min_num_instances: 1
  max_num_instances: 10

当我使用更新的 app.yaml 文件进行部署时,该文件只会重置为之前的默认文件。这是我尝试的:

runtime: custom
env: flex
service: api

runtime_config:
   jdk: openjdk8

handlers:
- url: /.*
  script: this field is required, but ignored

automatic_scaling:
  max_num_instances: 1

resources:
  core: 1

更新如下:

好的,我现在可以让上面的这个工作了。api-service 似乎有两个 app.yaml 文件,我必须对它们进行更改。现在,GCP Web 界面上的配置与我部署的配置类似:最小 1,最大 3。但即便如此,它有时也会创建 4-5 个实例。:S

现在,对于我的另一个应用程序,调度程序,这是我在 app.yaml 文件中输入的内容:

runtime: java8
service: 'scheduler'
inbound_services:
- warmup
derived_file_type:
- java_precompiled
threadsafe: True
auto_id_policy: default
api_version: '1.0'
handlers:
- url: (/.*)
  static_files: __static__\1
  upload: __NOT_USED__
  require_matching_file: True
  login: optional
  secure: optional
- url: /
  script: unused
  login: optional
  secure: optional
- url: /.*/
  script: unused
  login: optional
  secure: optional
- url: /_ah/.*
  script: unused
  login: optional
  secure: optional
- url: /cron/v1/simulations
  script: unused
  login: optional
  secure: optional
resources:
  cpu: 1
  memory_gb: 1
  disk_size_gb: 1
  volumes:
  - name: ramdisk1
    volume_type: tmpfs
    size_gb: 0.5
automatic_scaling:
  min_num_instances: 1
  max_num_instances: 2
  cool_down_period_sec: 180
  cpu_utilization:
    target_utilization: 0.6

部署后,在 GCP 上其配置如下所示:

runtime: java8
api_version: '1.0'
env: standard
threadsafe: true
instance_class: F1
inbound_services:
  - warmup
handlers:
  - url: '(/.*)'
    application_readable: false
    static_files: "__static__\\1"
    require_matching_file: true
    upload: __NOT_USED__
  - url: /
    script: unused
  - url: '/.*/'
    script: unused
  - url: '/_ah/.*'
    script: unused
  - url: /cron/v1/simulations
    script: unused
automatic_scaling:
  min_idle_instances: automatic
  max_idle_instances: automatic
  min_pending_latency: automatic
  max_pending_latency: automatic

以下是结果的截图:

在此处输入图片描述

很混乱。

答案1

有一些选项是混合了两种不同运行时的配置。

每个选项的runtime: custom描述见这里.handlers:并且runtime_config:未在自定义运行时中提及,因为它们是 Java 运行时的一部分这里

core: 1在任何前面提到的配置中都不存在,我怀疑您想改用cpu: 1,它可以在两种配置中使用。另外,当我尝试部署第二个配置时,app.yaml我收到一条错误消息,提示core:不存在,因此您的配置不应该被部署。

更新:

在描述的文章中实例管理并提到

您只需为每项服务设置的最大空闲实例数支付费用。

这意味着,在某个时候,您的空闲实例可能会超过您设置的最大值,但这些实例不会被计费。图片上的图形支持这一说法。

相关内容