배포 시 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 웹 인터페이스에 내가 배포한 것과 유사한 구성(최소 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:애초에 구성을 배포해서는 안 됩니다.

업데이트됨:

설명하는 기사에서인스턴스 관리그리고 그걸 언급한다

각 서비스에 대해 설정한 최대 유휴 인스턴스 수까지 유휴 인스턴스에 대해서만 요금이 청구됩니다.

이는 특정 시점에 최대값으로 설정한 것보다 더 많은 유휴 인스턴스가 있을 수 있지만 요금이 청구되지 않음을 의미합니다. 그리고 그 이미지의 그래픽은 그 주장을 뒷받침합니다.

관련 정보