これは私のデフォルトの 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
以下更新:
OK、これで上記のものが動作するようになりました。api-service には 2 つの 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
2 つの異なるランタイムの構成から混在したオプションがいくつかあります。
のすべてのオプションruntime: custom
は、ここ.これらはJavaランタイムの一部であるため、カスタムランタイムでは言及されていませhandlers:
ん。runtime_config:
ここ。
core: 1
は、前述のいずれの構成にも存在しないため、cpu: 1
代わりに両方の構成で使用できる を使用したいと思われます。さらに、2 番目にデプロイしようとすると、存在しないapp.yaml
というエラーが表示されるcore:
ため、そもそも構成をデプロイすべきではありません。
更新しました:
記事ではインスタンス管理そして、
各サービスに設定した最大アイドル インスタンス数までのアイドル インスタンスに対してのみ課金されます。
つまり、ある時点では、最大として設定した数よりも多くのアイドル インスタンスが存在する可能性がありますが、課金は行われません。この画像のグラフィックは、その主張を裏付けています。