Java
部署時 app.yaml 未更新(Google應用引擎/Google云平台)
這是我的預設 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:
不存在,因此不應首先部署您的配置。更新:
在描述實例管理並提到的文章中
您只需為空閒實例付費,最多為您為每項服務設置的最大空閒實例數。
這意味著在某些時候,您可能擁有比您設置的最大值更多的空閒實例,但它們不會被計費。該圖像上的圖形支持該主張。