이것은 내 기본 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 웹 인터페이스에 내가 배포한 것과 유사한 구성(최소 1 및 최대 3)이 있습니다.하지만 그럼에도 불구하고 때로는 4~5개의 인스턴스가 생성되기도 합니다.:에스
이제 다른 애플리케이션인 스케줄러에 대해 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
다음에 설명되어 있습니다.여기. Java 런타임의 일부이므로 사용자 정의 런타임에 대해서는 언급되지 않습니다 handlers:
.runtime_config:
여기.
core: 1
이전에 언급한 구성에는 존재하지 않으며 cpu: 1
두 구성 모두에서 사용할 수 있는 대신 사용하기를 원하신 것 같습니다. 또한 두 번째 배포를 시도할 때 해당 항목이 존재하지 않는다는 app.yaml
오류가 발생하므로 core:
애초에 구성을 배포해서는 안 됩니다.
업데이트됨:
설명하는 기사에서인스턴스 관리그리고 그걸 언급한다
각 서비스에 대해 설정한 최대 유휴 인스턴스 수까지 유휴 인스턴스에 대해서만 요금이 청구됩니다.
이는 특정 시점에 최대값으로 설정한 것보다 더 많은 유휴 인스턴스가 있을 수 있지만 요금이 청구되지 않음을 의미합니다. 그리고 그 이미지의 그래픽은 그 주장을 뒷받침합니다.