Java

部署時 app.yaml 未更新(Google應用引擎/Google云平台)

  • March 23, 2018

這是我的預設 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

這是結果的螢幕截圖:

在此處輸入圖像描述

很混亂。

兩種不同執行時的配置混合了一些選項。

此處runtime: custom描述了每個選項。並且沒有提及自定義執行時,因為它們是此處的 Java 執行時的一部分。handlers:``runtime_config:

core: 1在前面提到的任何配置中都不存在,我懷疑您想cpu: 1改用它,它可以在兩種配置中使用。另外,在嘗試第二次部署時,app.yaml我收到一條錯誤消息,指出core:不存在,因此不應首先部署您的配置。

更新:

在描述實例管理並提到的文章中

您只需為空閒實例付費,最多為您為每項服務設置的最大空閒實例數。

這意味著在某些時候,您可能擁有比您設置的最大值更多的空閒實例,但它們不會被計費。該圖像上的圖形支持該主張。

引用自:https://serverfault.com/questions/898124