Crea una app de Node.js en el entorno flexible de App Engine
ID de región
REGION_ID es un código abreviado que Google asigna en función de la región que eliges cuando creas la app. El código no corresponde a un país ni a una provincia, aunque algunos ID de región puedan parecer similares a los códigos de país y provincia que se suelen usar. En el caso de las apps creadas después de febrero de 2020, REGION_ID.r se incluye en las URL de App Engine. En el caso de las apps existentes creadas antes de esta fecha, el ID de región es opcional en la URL.
Obtén más información acerca de los ID de región.
En esta guía de inicio rápido, se muestra cómo crear e implementar una app que muestra un mensaje corto. Puedes
usar la aplicación de muestra en esta guía de inicio rápido para cualquier versión compatible de Node.js, especificando la versión del entorno de ejecución
y el sistema operativo
en tu archivo app.yaml.
Antes de comenzar
- Accede a tu Google Cloud cuenta de. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Build API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
Instala Google Cloud CLI.
-
Si usas un proveedor de identidad externo (IdP), primero debes acceder a la gcloud CLI con tu identidad federada.
-
Para inicializar gcloud CLI, ejecuta el siguiente comando:
gcloud init
Roles obligatorios
Si quieres obtener los permisos que necesitas para completar esta guía de inicio rápido, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Administrador de App Engine (
roles/appengine.appAdmin) en el proyecto -
Editor de Cloud Build (
roles/cloudbuild.builds.editor) en el proyecto -
Administrador de objetos de almacenamiento (
roles/storage.objectAdmin) en el proyecto -
Visualizador de registros (
roles/logging.viewer) en el proyecto -
Usuario de la cuenta de servicio (
roles/iam.serviceAccountUser) en la cuenta de servicio -
Pídele a tu administrador que otorgue los siguientes roles para la cuenta de servicio predeterminada de App Engine:
-
Lector de Artifact Registry (
roles/artifactregistry.reader) en el proyecto -
Cuenta de servicio de Cloud Build (
roles/cloudbuild.builds.builder) en el proyecto -
Visualizador de objetos de almacenamiento (
roles/storage.objectViewer) en el proyecto
-
Lector de Artifact Registry (
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Requisitos previos adicionales
Inicializa tu app de App Engine con el proyecto y selecciona su región:
gcloud app create --project=[YOUR_PROJECT_ID]Cuando se te solicite, selecciona la región en la que deseas ubicar tu aplicación de App Engine.
Instala lo siguiente en tu máquina local:
Ubicaciones de App Engine
App Engine es regional, lo que significa que la infraestructura que ejecuta las apps se encuentra en una región específica, y Google la administra para que esté disponible de forma redundante en todas las zonas dentro de esa región.
El cumplimiento de tus requisitos de latencia, disponibilidad o durabilidad debe ser un factor principal para seleccionar la región en la que se ejecutan las apps. Por lo general, puedes seleccionar la región más cercana a la de los usuarios de la app, pero debes considerar las ubicaciones en las que App Engine está disponible y las ubicaciones de los otros Google Cloud productos y servicios que usa la app. Usar servicios en varias ubicaciones puede afectar la latencia de la app y sus precios.
No puedes cambiar la región de una app una vez configurada.
Si ya creaste una aplicación de App Engine, puedes ver su región mediante una de las siguientes opciones:
Ejecuta el comando
gcloud app describe.Abre el Panel de App Engine en la Google Cloud consola. La región aparece cerca de la parte superior de la página.
Esta guía de inicio rápido muestra una aplicación de Node.js simple que se escribió con el marco de trabajo Express.js.
Descarga la app de Hello World
Creamos una app de Hello World simple para App Engine a fin de que puedas familiarizarte con rapidez con la implementación de una app en la. Google Cloud
Clona el repositorio de la app Hello World de muestra al equipo local.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samplesDe manera opcional, puedes descargar la muestra como un archivo ZIP y extraerla.
Cambia al directorio que contiene el código de muestra.
cd nodejs-docs-samples/appengine/hello-world/flexible/
Ejecuta Hello World en tu máquina local
Instala las dependencias de este proyecto.
npm installSi usas Yarn, ejecuta lo siguiente:
yarn installEjecuta la secuencia de comandos de inicio.
npm startSi usas Yarn, ejecuta lo siguiente:
yarn startVisualiza la app en tu navegador web:
Si usas Cloud Shell, en la barra de herramientas, haz clic en Vista previa web
y selecciona Vista previa en el puerto 8080 en su lugar.
Si no usas Cloud Shell, ingresa la siguiente dirección:
El mensaje de Hello World de la aplicación de muestra se ve en la página. En la ventana de la terminal, presiona Ctrl + C para salir del servidor web.
Implemente y ejecute Hello World en App Engine
Para implementar la app en el entorno flexible de App Engine, haz lo siguiente:-
Implementa la app de Hello World mediante la ejecución del siguiente comando desde el directorio
hello-world/flexible/:gcloud app deploy
Obtén más información sobre las marcas opcionales.
Marcas comunes del comando de
gcloud-
Incluye la marca
--versionpara especificar un ID que identifique esa versión de la app de forma única . De lo contrario, se generará uno para que lo uses. Ejemplo:--version [YOUR_VERSION_ID] -
Incluye la marca
--projectpara especificar un ID del proyecto alternativo al que inicializaste como predeterminado en la herramienta degcloud. Google Cloud Ejemplo:--project [YOUR_PROJECT_ID]
Ejemplo:
gcloud app deploy --version pre-prod-5 --project my-sample-app
Para obtener más información sobre la implementación de la app desde la línea de comandos, consulta Prueba e implementa la app. Para obtener una lista de todas las marcas de comandos, consulta la referencia de
gcloud app deploy. -
Incluye la marca
-
Inicia tu navegador para ver la app en
https://PROJECT_ID.REGION_ID.r.appspot.com dondegcloud app browse
PROJECT_IDrepresenta el ID de tu Google Cloud proyecto.
Esta vez, la página que muestra el mensaje Hello World se envía mediante un servidor web que se ejecuta en una instancia de App Engine.
¡Felicitaciones! Implementaste la primera aplicación de App Engine en el entorno flexible de App Engine.
Si encontraste algún error cuando implementaste la aplicación, consulta las sugerencias para solucionar problemas.Consulta las secciones siguientes para obtener información sobre la limpieza y vínculos a los próximos pasos que podrías realizar.
Limpia
Para evitar que se apliquen cargos a la cuenta, puedes borrar el Google Cloud proyecto y detener la facturación de todos los recursos que usa.
- En la Google Cloud consola, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que tú quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
¿Qué sigue?
Conoce toda la plataforma
Ahora que sabes cómo es el desarrollo y la implementación de aplicaciones de App Engine, puedes explorar el resto de Google Cloud. Ya instalaste Google Cloud CLI, que te brinda las herramientas para interactuar con productos como Cloud SQL, Cloud Storage, Firestore y muchos otros.
Aprende sobre el entorno flexible de App Engine
Aquí hay algunos temas para ayudarte a continuar tu aprendizaje sobre App Engine.
Revisión del código de Hello World
Hello World es la aplicación de App Engine más simple que pueda existir, dado que solo contiene un servicio, una versión y todo el código se ubica dentro del directorio raíz de la app. En esta sección, se describe cada archivo de la app en detalle.
app.js
El archivo app.js contiene el código de JavaScript para iniciar un servidor y responder a las solicitudes.
El siguiente código responde a las solicitudes de clientes web con el mensaje “Hello World”, mediante un servidor que se ejecuta en el puerto 8080.
app.yaml
El app.yaml
archivo describe la siguiente configuración para tu app:
- Configura
env: flex, lo que indica que tu app usa el entorno flexible de App Engine. Especifica el entorno de ejecución que usa la app.
Para obtener más información sobre cómo funciona el entorno de ejecución de Node.js, consulta Entorno de ejecución de Node.js.
Para obtener más detalles sobre cómo diseñar tu app a fin de aprovechar las versiones y los servicios, consulta Descripción general de App Engine.
Para saber más sobre las opciones de configuración de App Engine, consulta Configura tu app con app.yaml.
package.jsonpackage.jsonse usa para especificar las dependencias de la app, la versión del nodo y el inicio de la app.En el ejemplo anterior, el
package.jsonarchivo especifica que la app usa la versión 18 y posteriores de Node.js y depende de express. Si deseas obtener más información para instalar y ejecutar tu app, consulta la documentación del entorno de ejecución de Node.js.