app.yaml não é atualizado quando eu implanto (Google App Engine/Google Cloud Platform)

app.yaml não é atualizado quando eu implanto (Google App Engine/Google Cloud Platform)

Este é meu arquivo app.yaml padrão:

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

Quando eu implanto com meu arquivo app.yaml atualizado, o arquivo é simplesmente redefinido para o anterior, padrão. Isso é o que eu tento:

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

ATUALIZADO ABAIXO:

OK, então coloquei este acima para funcionar agora. Parecia que o api-service tinha dois arquivos app.yaml e eu tive que alterar ambos. Agora ele tem uma configuração na interface da web do GCP semelhante à que implantei: mínimo 1 e máximo 3.MAS, mesmo assim, às vezes cria de 4 a 5 instâncias.:S

AGORA, para meu outro aplicativo, agendador, foi isso que coloquei no arquivo 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

E quando é implantado, no GCP sua configuração fica assim:

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

E aqui está uma captura de tela do resultado:

insira a descrição da imagem aqui

Muito confuso.

Responder1

Existem algumas opções misturadas de configurações para dois tempos de execução diferentes.

Cada opção para runtime: customestá descrita emaqui. handlers:e runtime_config:não são mencionados para o tempo de execução customizado porque fazem parte do tempo de execução Javaaqui.

core: 1não existe em nenhuma das configurações mencionadas anteriormente e suspeito que você queira usar cpu: 1, que pode ser usado em ambas as configurações. Além disso, ao tentar implantar em segundo lugar, app.yamlrecebo um erro dizendo que isso core:não existe, portanto, sua configuração não deveria ser implantada em primeiro lugar.

Atualizada:

No artigo que descrevegerenciamento de instânciae menciona que

Você será cobrado apenas pelas instâncias ociosas até o número máximo de instâncias ociosas definido para cada serviço.

O que implica que em algum momento você poderá ter mais instâncias ociosas do que o máximo definido, mas elas não serão cobradas. E o gráfico dessa imagem apoia essa afirmação.

informação relacionada