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:
Muito confuso.
Responder1
Existem algumas opções misturadas de configurações para dois tempos de execução diferentes.
Cada opção para runtime: custom
está 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: 1
nã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.yaml
recebo 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.