Crear una aplicación a partir de recursos
En esta guía de inicio rápido se muestra cómo organizar los recursos de Google Cloud en una aplicación de App Hub registrándolos como servicios. Primero, implementa componentes de ejemplo, que luego usas para definir una aplicación web global en App Hub.
Esta guía de inicio rápido está dirigida a los usuarios que quieran usar su infraestructura para obtener visibilidad y control operativo agrupando recursos en aplicaciones lógicas. Google Cloud
Antes de empezar
Antes de empezar esta guía de inicio rápido, haz lo siguiente:
Elige el modelo de configuración de la aplicación. En esta guía de inicio rápido se da por hecho que has definido un límite de gestión de aplicaciones y se crea una aplicación con el proyecto de gestión. Para obtener más información sobre la configuración de este recurso, consulta el modelo de recursos de App Hub.
Anota el ID del proyecto de gestión que vas a usar en este documento. Para obtener más información, consulta Buscar el nombre, el número y el ID del proyecto.
Comprueba que las siguientes APIs estén habilitadas en el proyecto de gestión. Cuando configuras un proyecto de gestión, la mayoría de las APIs que necesitas para esta guía de inicio rápido se habilitan automáticamente.
- API de Compute Engine (
compute.googleapis.com) - API Infrastructure Manager (
config.googleapis.com)
- API de Compute Engine (
Roles obligatorios
Para obtener los permisos que necesitas para habilitar las APIs obligatorias y crear una aplicación de ejemplo a partir de recursos ya disponibles, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en el proyecto de gestión:
-
Para habilitar las APIs necesarias, sigue estos pasos:
Administrador de Uso de Servicio (
roles/serviceusage.serviceUsageAdmin) -
Para obtener acceso completo a los servicios necesarios, sigue estos pasos:
-
Administrador de App Hub (
roles/apphub.admin) -
Administrador de Cloud Run (
roles/run.admin) -
Administrador de Compute (
roles/compute.admin) -
Administrador de Cloud Infrastructure Manager (
roles/config.admin)
-
Administrador de App Hub (
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Desplegar componentes de ejemplo para la aplicación
Primero, debe implementar un conjunto de recursos de ejemplo Google Cloud que usará más adelante para definir una aplicación global en App Hub registrándolos como componentes de aplicación:
- Un servicio de Cloud Run que actúa como servicio de backend de la aplicación.
- Un balanceador de carga de aplicación externo global que actúa como servicio de frontend de la aplicación dirigiendo el tráfico al servicio de Cloud Run como regla de reenvío.
Para implementar estos recursos, sigue estos pasos:
gcloud
Define las variables de entorno necesarias:
export PROJECT_ID="PROJECT_ID" export REGION="REGION"Haz los cambios siguientes:
PROJECT_ID: el ID de tu proyecto de gestión.REGION: la región que hayas elegido para los recursos (por ejemplo,us-central1).
Despliega un servicio de Cloud Run de ejemplo llamado
hello-run:gcloud run deploy hello-run \ --image=us-docker.pkg.dev/cloudrun/container/hello \ --allow-unauthenticated \ --region=${REGION} \ --project=${PROJECT_ID}Crea el balanceador de carga de aplicación externo global. Este proceso implica los siguientes pasos:
Crea un grupo de endpoints de red (NEG) sin servidor llamado
hello-run-neg:gcloud compute network-endpoint-groups create hello-run-neg \ --region=${REGION} \ --network-endpoint-type=serverless \ --cloud-run-service=hello-run \ --project=${PROJECT_ID}La NEG actúa como backend del balanceador de carga y apunta a tu servicio
hello-run.Crea un servicio de backend para gestionar cómo se distribuye el tráfico a la NEG:
gcloud compute backend-services create hello-backend-service \ --global \ --load-balancing-scheme=EXTERNAL_MANAGED \ --project=${PROJECT_ID}Añade el NEG sin servidor al servicio de backend:
gcloud compute backend-services add-backend hello-backend-service \ --global \ --network-endpoint-group=hello-run-neg \ --network-endpoint-group-region=${REGION} \ --project=${PROJECT_ID}Crea un mapa de URLs para enrutar las solicitudes entrantes al servicio de backend:
gcloud compute url-maps create hello-url-map \ --default-service=hello-backend-service \ --project=${PROJECT_ID}Crea un proxy HTTP para recibir solicitudes y enrutarlas mediante el mapa de URLs:
gcloud compute target-http-proxies create hello-http-proxy \ --url-map=hello-url-map \ --project=${PROJECT_ID}Crea una regla de reenvío global:
gcloud compute forwarding-rules create hello-forwarding-rule \ --global \ --load-balancing-scheme=EXTERNAL_MANAGED \ --target-http-proxy=hello-http-proxy \ --ports=80 \ --project=${PROJECT_ID}Esta regla de reenvío proporciona una dirección IP pública y un puerto para gestionar las solicitudes de los usuarios entrantes y las dirige al proxy.
Terraform
Crea un archivo
main.tfy añade el siguiente código:# Provider configuration provider "google" { project = "PROJECT_ID" } # Cloud Run service resource "google_cloud_run_v2_service" "default" { name = "hello-run"