pricing prices nodejs google flexible engine costs app google-app-engine gcloud gcloud-node managed-vm

google app engine - prices - Cómo corregir "` El indicador--custom_entrypoint debe establecerse para los tiempos de ejecución personalizados ""?



google cloud app engine prices (3)

Aparece este error en appengine cuando gcloud preview app run app.yaml : The --custom_entrypoint flag must be set for custom runtimes

Mi app.yaml ve así:

version: 0-1-1 runtime: custom vm: true api_version: 1 manual_scaling: instances: 1 handlers: - url: .* script: dynamic

Mi archivo docker es justo: FROM google/nodejs-runtime

Volví a instalar gcloud para obtener la última versión, ¿algo cambió en la configuración de yaml para máquinas virtuales administradas? Esto hace que sea imposible para mí probar mi aplicación.


Las líneas de comentario 391 a 397 en

google-cloud-sdk / platform / google_appengine / google / appengine / tools / devappserver2 / module.py

# if (self._module_configuration.effective_runtime == ''custom'' and # os.environ.get(''GAE_LOCAL_VM_RUNTIME'') != ''0''): # if not self._custom_config.custom_entrypoint: # raise ValueError(''The --custom_entrypoint flag must be set for '' # ''custom runtimes'') # else: # runtime_config.custom_config.CopyFrom(self._custom_config)


Parece haber un error o un problema de instalación con Google Cloud SDK versión 0.9.67 que causa este error. Como una solución temporal, puede volver a la versión anterior del SDK, que funciona, con los siguientes comandos:

gcloud config set component_manager/fixed_sdk_version 0.9.66 gcloud components update

Para volver a la versión actual del SDK, ejecute:

gcloud config unset component_manager/fixed_sdk_version gcloud components update

Este problema apareció hace algunas versiones y se trató aquí: Ejecución de node.js en google cloud, pero error al ejecutar con docker


Puede ejecutar la gcloud help preview app run para mostrar una página de manual que describe el comando de ejecución y sus parámetros. --custom-entrypoint se describe como:

--custom-entrypoint CUSTOM_ENTRYPOINT Specify an entrypoint for custom runtime modules. This is required when such modules are present. Include "{port}" in the string (without quotes) to pass the port number in as an argument. For instance: --custom_entrypoint="gunicorn -b localhost:{port} mymodule:application"

Tenga en cuenta que el mensaje de error dice --custom_entrypoint , con un guión bajo, pero el parámetro es --customer_entrypoint , con un guión. El nombre correcto es --custom-entrypoint see: https://code.google.com/p/google-cloud-sdk/issues/detail?id=191

Para un nodejs, debería poder usar algo como:

gcloud preview app run app.yaml --project=your-project-id --custom-entrypoint "node index.js {port}"

Dependiendo de cómo inicie su aplicación. El puerto también parece estar disponible como la variable de entorno PORT por lo que no necesita usar {port} si su aplicación no maneja argumentos de línea de comando.

No he podido utilizar npm start u otra npm run <script> desde --custom-entrypoint sin embargo.