Crea una aplicación de App Hub con un solo proyecto


App Hub te permite administrar y ver recursos de infraestructura de proyectos de Google Cloud a través de aplicaciones de App Hub. Para crear estas aplicaciones de App Hub, necesitas un proyecto de host de App Hub al que puedas conectar proyectos de servicio que contengan recursos de Google Cloud.

En este instructivo, se muestra cómo configurar una aplicación de App Hub en un solo proyecto que actúa como host y proyecto de servicio de App Hub. En un proyecto de servicio, implementas un grupo de instancias administrado (MIG) con balanceo de cargas y lo adjuntas al proyecto host de App Hub. Luego, en una aplicación del proyecto host de App Hub, registras y supervisas todos los recursos de infraestructura del proyecto de servicio como servicios y cargas de trabajo de App Hub.

Este instructivo está dirigido a las personas que configuran y administran App Hub. Debes tener cierta experiencia con Cloud Load Balancing.

Objetivos

En este instructivo, se muestra cómo completar las siguientes tareas:

  1. Crea o selecciona un proyecto de Google Cloud. Este proyecto es el proyecto de servicio y host de App Hub. En este proyecto, habilita la API de App Hub.
  2. En este proyecto, usa Terraform para implementar una red de VPC, un balanceador de cargas de aplicaciones externo regional y un backend de MIG para el balanceador de cargas. El balanceador de cargas de aplicaciones externo regional incluye los siguientes recursos:

    • Verificación de estado de HTTP
    • Regla de reenvío
    • Mapa de URL
    • Proxy de destino
    • Servicio de backend con un grupo de instancias administrado como backend
    • Certificado SSL (para HTTPS)

    Solo la regla de reenvío, el mapa de URL, el servicio de backend y MIG estarán disponibles como recursos descubiertos en App Hub. Para obtener más información, consulta conceptos y modelo de datos.

  3. Proporciona los roles y permisos adecuados a este proyecto para que actúe como el proyecto host de App Hub.

  4. Vincula el proyecto host de App Hub como un proyecto de servicio de App Hub para descubrir los recursos de Google Cloud del proyecto de servicio como servicios y cargas de trabajo descubiertos.

  5. Crea una aplicación regional de App Hub en el proyecto host de App Hub.

  6. Registra los servicios descubiertos y una carga de trabajo del proyecto de servicio en la aplicación de App Hub y asígnales atributos.

  7. Consulta los detalles de los servicios y las cargas de trabajo registrados en App Hub.

Costos

Para obtener una estimación del costo de los recursos de Google Cloud que usa la solución de VM administradas con balanceo de cargas, consulta la estimación calculada previamente en la calculadora de precios de Google Cloud.

Usa la estimación como punto de partida para calcular el costo de la implementación. Puedes cambiar la estimación para que refleje cualquier cambio de configuración que planeas hacer para los recursos que se usan en la solución.

La estimación calculada con anterioridad se basa en suposiciones para ciertos factores, incluidos los siguientes:

  • Las ubicaciones de Google Cloud en las que se implementan los recursos.
  • La cantidad de tiempo que se usan los recursos.

Para obtener más información sobre los costos de App Hub, consulta la página Precios.

Antes de comenzar

Si eres el creador del proyecto, se te otorga la función de propietario básica (roles/owner). De forma predeterminada, este rol de Identity and Access Management (IAM) incluye los permisos necesarios para obtener acceso completo a la mayoría de los recursos de Google Cloud.

Si no eres el creador del proyecto, se deben otorgar los permisos necesarios en el proyecto a la principal correspondiente. Por ejemplo, una principal puede ser una Cuenta de Google (para usuarios finales) o una cuenta de servicio (para aplicaciones y cargas de trabajo).

Si quieres obtener los permisos que necesitas para completar este instructivo, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:

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 mediante roles personalizados o cualquier otro rol predefinido.

Console

  1. En la consola de Google Cloud, ve a la página del selector de proyectos.

    Ir al selector de proyectos

  2. Selecciona o crea un proyecto de Google Cloud que será el proyecto host de App Hub.

  3. Enable the required APIs.

    Enable the APIs

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Asegúrate de que esté instalada la versión más reciente de Google Cloud CLI. Ejecuta el siguiente comando desde Cloud Shell:

      gcloud components update

  3. Crea o selecciona un proyecto nuevo, HOST_PROJECT_ID, para que sea el proyecto host de App Hub.

    • Crea un proyecto de Google Cloud:

      gcloud projects create HOST_PROJECT_ID
    • Selecciona el proyecto de Google Cloud que creaste:

      gcloud config set project HOST_PROJECT_ID
  4. Habilita las APIs de :

    gcloud services enable apphub.googleapis.com \
       cloudresourcemanager.googleapis.com \
       compute.googleapis.com \
       config.googleapis.com \
       serviceusage.googleapis.com

Prepara el entorno

Para ayudarte a implementar esta solución con un esfuerzo mínimo, se proporciona una configuración de Terraform en GitHub. La configuración de Terraform define todos los recursos de Google Cloud que se requieren para la solución. Descarga la configuración de Terraform desde GitHub y, de forma opcional, personaliza el código según sea necesario e implementa la solución con Terraform. Después de implementar la solución, puedes seguir usando Terraform para administrarla.

Cargas de trabajo y servicios de App Hub con un balanceador de cargas y un grupo de instancias administrado
Figura 1. Cargas de trabajo y servicios de App Hub con un balanceador de cargas y un grupo de instancias administrado.

A continuación, se muestra el flujo de procesamiento de solicitudes de la topología que implementa la solución de VM administradas con balanceo de cargas.

  1. El usuario realiza una solicitud a la aplicación, que se implementa en Compute Engine. Cloud Load Balancing recibe esta solicitud.

  2. Cloud Load Balancing enruta el tráfico a los grupos de instancias administrados por Compute Engine con la información de la regla de reenvío, el mapa de URL y el servicio de backend.

Configura el cliente de Terraform

Puedes ejecutar Terraform en Cloud Shell o en tu host local. En este instructivo, se describe cómo ejecutar Terraform en Cloud Shell, que tiene Terraform preinstalado y configurado para autenticarse con Google Cloud.

El código de Terraform para esta solución está disponible en un repositorio de GitHub.

  1. En Cloud Shell, clona el repositorio de GitHub en Cloud Shell.

    git clone https://github.com/terraform-google-modules/terraform-docs-samples
    
  2. En Cloud Shell, verifica si el directorio de trabajo actual es terraform-docs-samples/lb/regional_external_http_load_balancer. Este es el directorio que contiene los archivos de configuración de Terraform para la solución. Si necesitas cambiar a ese directorio, ejecuta el siguiente comando:

    cd terraform-docs-samples/lb/regional_external_http_load_balancer 
    
  3. Inicializa Terraform con la ejecución del siguiente comando:

    terraform init
    

    Espera hasta ver el siguiente mensaje:

    Terraform has been successfully initialized!
    

Valida y revisa la configuración de Terraform

  1. Asegúrate de que el directorio de trabajo actual sea terraform-docs-samples/lb/regional_external_http_load_balancer. Si no es así, ve a ese directorio.

  2. Verifica que la configuración de Terraform no tenga errores:

    terraform validate
    

    Si el comando muestra algún error, realiza las correcciones necesarias en la configuración y, luego, vuelve a ejecutar el comando terraform validate. Repite este paso hasta que el comando muestre el siguiente mensaje:

    Success! The configuration is valid.
    
  3. Revisa los recursos que se definen en la configuración:

    terraform plan
    

    El resultado del comando terraform plan es una lista de los recursos que Terraform aprovisiona cuando aplicas la configuración.

    Si deseas hacer algún cambio, cambia la configuración y, luego, vuelve a ejecutar los comandos terraform validate y terraform plan.

Aprovisiona los recursos

Cuando no se necesiten más cambios en la configuración de Terraform, implementa los recursos de la siguiente manera:

  1. Asegúrate de que el directorio de trabajo actual sea terraform-docs-samples/lb/regional_external_http_load_balancer. Si no es así, ve a ese directorio.

  2. Aplica la configuración de Terraform:

    terraform apply
    

    Terraform muestra una lista de los recursos que se crearán.

  3. Cuando se te solicite que realices las acciones, ingresa yes.

    Terraform muestra mensajes que señalan el progreso de la implementación.

    Si no se puede completar la implementación, Terraform muestra los errores que causaron la falla. Revisa los mensajes de error y actualiza la configuración para corregir los errores. Luego, vuelva a ejecutar el comando terraform apply.

    Una vez que se hayan creado todos los recursos, Terraform mostrará el siguiente mensaje:

    Apply complete!
    

Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.

Cloud Load Balancing distribuye el tráfico a la regla de reenvío, el mapa de URL, el servicio de backend y un MIG de Compute Engine. El servicio de backend, el mapa de URL y las reglas de reenvío se convierten en servicios descubiertos en el proyecto host de App Hub. La MIG de Compute Engine se convierte en una carga de trabajo descubierta en el proyecto host de App Hub.

Cuando ya no necesites la solución, puedes borrar la implementación para evitar que se sigan facturando los recursos de Google Cloud. Para obtener más información, consulta Borra la implementación.

Otorga permisos de IAM

Proporciona los roles y permisos de IAM adecuados al proyecto host de App Hub.

Console

Para obtener los permisos que necesitas para completar este instructivo, pídele a tu administrador que te otorgue los roles de IAM necesarios en tu proyecto:

  1. En la consola de Google Cloud, ve a la página IAM.

    Ir a IAM

  2. Haz clic en Otorgar acceso. Se abrirá el panel Otorgar acceso.

  3. En el campo Principales nuevas, ingresa la dirección de correo electrónico de la persona que administrará App Hub, el rol de Administrador de App Hub en el proyecto host.

  4. Haz clic en Seleccionar un rol y, en el campo Filtro, ingresa App Hub.

  5. Selecciona el rol Administrador de App Hub.

  6. Haz clic en Agregar otra función y, en la lista Selecciona una función, selecciona Visualizador de supervisión.

  7. Haz clic en Guardar.

gcloud

  1. Para otorgar los roles a las personas que usarán App Hub, repite el siguiente comando y reemplaza los roles de IAM según sea necesario. Para obtener más información, consulta Roles y permisos de App Hub.

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
        --member='user:HOST_PROJECT_ADMIN' \
        --role='roles/apphub.admin'

    Reemplaza HOST_PROJECT_ADMIN por el usuario que tiene el rol de administrador de App Hub en el proyecto host. Este valor tiene el formato username@yourdomain, por ejemplo, 222larabrown@gmail.com.

  2. Otorga el rol de administrador de App Hub en el proyecto de servicio a las personas que administran App Hub. Debe tener el rol de administrador de App Hub para agregar proyectos de servicio al proyecto host. Necesitas al menos una persona con este rol para cada proyecto de servicio. En este ejemplo, el proyecto host actúa como el proyecto de servicio.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \
       --member='user:HOST_PROJECT_ADMIN' \
       --role='roles/apphub.admin'

    Reemplaza SERVICE_PROJECT_ID por el nombre del HOST_PROJECT_ID.

  3. Otorga el rol de Visualizador de supervisión en el proyecto host a las personas que administran App Hub. Para ver las métricas, debe tener el rol de Visualizador de supervisión en el proyecto host.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \
       --member='user:HOST_PROJECT_ADMIN' \
       --role='roles/monitoring.viewer'

Cómo conectar un proyecto de servicio

Los proyectos de servicio son proyectos de Google Cloud que contienen recursos de infraestructura que puedes registrar en una aplicación de App Hub. Para obtener más información, consulta Servicios de proyectos. En este instructivo, como solo tenemos un proyecto, adjunta el proyecto en el que implementaste los recursos como el proyecto de servicio de App Hub.

Console

  1. En la consola de Google Cloud, ve a la página Configuración de App Hub.

    Ir a la configuración

  2. En la página Configuración, haz clic en Vincular proyectos.

  3. En el panel que se abre, busca proyectos en la lista que se muestra y selecciona las casillas de verificación de los proyectos de servicios de App Hub.

  4. Haz clic en Seleccionar. En la tabla Proyectos de servicio adjuntos, se muestra el proyecto host seleccionado como el proyecto de servicio.

  5. Haz clic en Cerrar.

gcloud

Agrega tu proyecto host como el proyecto de servicio al proyecto host de App Hub.

gcloud apphub service-projects add HOST_PROJECT_ID \
  --project=HOST_PROJECT_ID

Después de conectar el proyecto de servicio al proyecto host de App Hub, puedes ver todos los recursos de Google Cloud del proyecto de servicio conectado como servicios y cargas de trabajo descubiertos de App Hub. Para obtener más información sobre cómo ver estos servicios y cargas de trabajo descubiertos, consulta Cómo ver aplicaciones, servicios y cargas de trabajo existentes.

Crea una aplicación

Crea una aplicación que sea el contenedor de tus servicios y cargas de trabajo. Cuando creas una aplicación, puedes asignar propiedades inmutables, como un tipo de alcance o una ubicación desde la que deseas registrar recursos y atributos variables, como importancia y entorno. Puedes usar los atributos de variable para filtrar las aplicaciones. Para obtener más información, consulta Propiedades y atributos.

Console

  1. Asegúrate de que estás en el proyecto host de App Hub.
  2. En la consola de Google Cloud, ve a la página Aplicaciones de App Hub.

    Ir a Aplicaciones

  3. Haz clic en Crear aplicación.

  4. En la página Crear aplicación, en el panel Elige el nombre y la región de la aplicación, selecciona Regional.

  5. En la lista Región, selecciona us-west1.

  6. En el campo Nombre de la aplicación, ingresa tutorial-application. Este nombre es un identificador único y es inmutable después de crear la aplicación.

  7. Ingresa un Nombre visible, Tutorial, y haz clic en Continuar. Es un nombre fácil de usar que puedes actualizar. Para obtener más información, consulta Actualiza una aplicación existente.

  8. En el panel Agregar atributos, en la lista Criticidad, selecciona Alta. La importancia indica qué tan importante es una aplicación, un servicio o una carga de trabajo para las operaciones de tu empresa.

  9. En el campo Entorno, para indicar la etapa del ciclo de vida del software, selecciona Producción.

  10. Haga clic en Continuar.

  11. En el panel Agregar propietarios, agrega los siguientes detalles para los propietarios desarrolladores, los propietarios operadores y los propietarios de la empresa. Ten en cuenta que debes ingresar la dirección de correo electrónico del propietario si agregas un nombre visible.

    1. Ingresa el nombre visible de un propietario.
    2. Ingresa la dirección de correo electrónico del propietario. Este valor debe tener el formato username@yourdomain, por ejemplo, 222larabrown@gmail.com.
  12. Repite estos pasos para cada desarrollador, operador y propietario de la empresa.

  13. Haz clic en Crear.

Se creará la nueva aplicación y aparecerá en la página Aplicaciones.

gcloud

  1. Selecciona el proyecto host de App Hub que creaste:

    gcloud config set project HOST_PROJECT_ID
  2. Crea una aplicación nueva llamada tutorial-application en la región us-west1 y asígnale un nombre visible, Tutorial. Este nombre de aplicación, tutorial-application, es un identificador único y es inmutable después de crear la aplicación. El nombre visible,Tutorial, es un nombre fácil de usar que puedes actualizar. Para obtener más información, consulta Actualiza una aplicación existente.

    gcloud apphub applications create tutorial-application \
        --display-name='Tutorial' \
        --scope-type=REGIONAL \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    
  3. Enumera las aplicaciones de tu proyecto host de App Hub:

    gcloud apphub applications list \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    Verás un resultado similar al siguiente:

    ID                    DISPLAY_NAME  CREATE_TIME
    tutorial-application  Tutorial      2023-10-31T18:33:48
    
  4. Actualiza tu aplicación con los atributos criticality-type, environment-type y propietario:

    gcloud apphub applications update tutorial-application \
      --criticality-type='HIGH' \
      --environment-type='PRODUCTION' \
      --developer-owners=display-name=DISPLAY-NAME-DEVELOPER,email=EMAIL-DEVELOPER \
      --operator-owners=display-name=DISPLAY-NAME-OPERATOR,email=EMAIL-OPERATOR \
      --business-owners=display-name=DISPLAY-NAME-BUSINESS,email=EMAIL-BUSINESS \
      --project=HOST_PROJECT_ID \
      --location=us-west1
    

    Reemplaza lo siguiente:

    • DISPLAY-NAME-DEVELOPER, DISPLAY-NAME-OPERATOR y DISPLAY-NAME-BUSINESS: Son los nombres visibles del desarrollador, el operador y los propietarios de la empresa, respectivamente.
    • EMAIL-NAME-DEVELOPER, EMAIL-NAME-OPERATOR y EMAIL-NAME-BUSINESS: direcciones de correo electrónico del desarrollador, el operador y los propietarios de la empresa, respectivamente. Estos valores deben tener el formato username@yourdomain, por ejemplo, 222larabrown@gmail.com.

    Notas:

    • criticality-type: Indica qué tan importante es una aplicación, un servicio o una carga de trabajo para las operaciones de tu empresa.
    • environment-type: Indica las etapas del ciclo de vida del software.
  5. Obtén detalles de la aplicación que creaste:

    gcloud apphub applications describe tutorial-application \
      --project=HOST_PROJECT_ID \
      --location=us-west1
    

    El comando muestra información en formato YAML, similar a la siguiente:

    attributes:
    businessOwners:
    – displayName: [DISPLAY-NAME-BUSINESS]
      email: [EMAIL-BUSINESS]
    criticality:
      type: HIGH
    developerOwners:
    – displayName: [DISPLAY-NAME-DEVELOPER]
      email: [EMAIL-DEVELOPER]
    environment:
      type: PRODUCTION
    operatorOwners:
    – displayName: [DISPLAY-NAME-OPERATOR]
      email: [EMAIL-OPERATOR]
    createTime: '2023-10-31T18:33:48.199394108Z'
    displayName: Tutorial
    name: projects/HOST_PROJECT_ID/locations/us-west1/applications/tutorial-application
    scope:
      type: REGIONAL
    state: ACTIVE
    uid: 9d991a9d-5d8a-4c0d-b5fd-85e39fb58c73
    updateTime: '2023-10-31T18:33:48.343303819Z'
    

Registra servicios y una carga de trabajo

Cuando registras servicios y cargas de trabajo, los agregas a una aplicación que te permite supervisar los recursos agregados.

Console

  1. En la consola de Google Cloud, ve a la página Aplicaciones de App Hub.

    Ir a Aplicaciones

  2. Haz clic en el nombre de tu aplicación, Instructivo. La pestaña Servicios y cargas de trabajo se muestra con una lista de los servicios y las cargas de trabajo registrados que se encuentran en tus proyectos de App Hub.

  3. Registra un servicio:

    1. En la pestaña Servicios y cargas de trabajo, haz clic en Registrar servicio o carga de trabajo.
    2. En la página Registrar servicio o carga de trabajo, en el panel Seleccionar recurso, haz clic en Explorar para seleccionar el servicio o la carga de trabajo como Recurso.
    3. En el panel Seleccionar recurso, elige el Nombre del servicio, l7-xlb-backend-service, y haz clic en Seleccionar.
    4. En el panel Seleccionar recurso, ingresa el Nombre del recurso, tutorial-service-backend.
    5. Ingresa un Nombre visible, Backend service, y haz clic en Continuar.
    6. En el panel Agregar atributos, en la lista Criticidad, para indicar la importancia de la aplicación, selecciona Alta.
    7. En el campo Entorno, para indicar la etapa del ciclo de vida del software, selecciona Producción.
    8. Haga clic en Continuar.
    9. En el panel Agregar propietarios, agrega los siguientes detalles según sea necesario para los propietarios desarrolladores, los propietarios operadores y los propietarios de la empresa. Ten en cuenta que debes ingresar la dirección de correo electrónico del propietario si agregas un nombre visible.
      1. Ingresa el nombre visible de un propietario.
      2. Ingresa la dirección de correo electrónico del propietario. Este valor debe tener el formato username@yourdomain, por ejemplo, 222larabrown@gmail.com.
    10. Repite estos pasos para cada desarrollador, operador y propietario de la empresa.
    11. Haz clic en Register.

    En la pestaña Servicios y cargas de trabajo, en la sección Servicios y cargas de trabajo registrados, puedes ver el servicio nuevo que agregaste.

  4. Repite los pasos anteriores para registrar los otros servicios como tutorial-service-forwarding-rule y tutorial-service-url-map, respectivamente.

  5. Para registrar una carga de trabajo, repite los pasos anteriores para registrar un servicio con las siguientes excepciones:

    1. En el panel Register service or workload, en la sección Choose service or workload, selecciona el Nombre de la carga de trabajo, l7-xlb-backend-example, y haz clic en Continue.
    2. En el panel Seleccionar recurso, ingresa el Nombre del recurso, tutorial-workload-mig.
    3. Ingresa un Nombre visible, Workload instance group, y haz clic en Continuar. En la pestaña Servicios y cargas de trabajo, en la sección Servicios y cargas de trabajo registrados, puedes ver la carga de trabajo nueva que se agregó.

gcloud

  1. Agrega a una persona con permisos de editor de App Hub:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
      --member='user:APP_HUB_EDITOR' \
      --role='roles/apphub.editor'
    

    Reemplaza APP_HUB_EDITOR por el usuario que tiene el rol de editor de App Hub en el proyecto host de App Hub. Este valor tiene el formato username@yourdomain, por ejemplo, 222larabrown@gmail.com.

  2. Muestra una lista de todos los servicios descubiertos en el proyecto host de App Hub. Este comando muestra los servicios disponibles para registrarse en una aplicación.

    gcloud apphub discovered-services list \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    Verás un resultado similar al siguiente:

    ID                             SERVICE_REFERENCE                                                                                                              SERVICE_PROPERTIES
    BACKEND_SERVICE_ID          {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/backendServices/l7-xlb-backend-service'}  {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'}
    FORWARDING_RULE_SERVICE_ID" {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/forwardingRules/l7-xlb-forwarding-rule'}  {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'}
    URL_MAP_SERVICE_ID          {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/urlMaps/regional-l7-xlb-map'}             {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1'}
    

    Copia los ID del servicio, por ejemplo, BACKEND_SERVICE_SP2_ID, del resultado para usarlos en el siguiente paso.

  3. Registra los servicios del paso anterior en tu aplicación. Copia los IDs de servicio del campo de salida del paso anterior.

    gcloud apphub applications services create tutorial-service-backend \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/BACKEND_SERVICE_ID' \
        --display-name='Backend service' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    
    gcloud apphub applications services create tutorial-service-forwarding-rule \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/FORWARDING_RULE_SERVICE_ID' \
        --display-name='Forwarding rule' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    
    gcloud apphub applications services create tutorial-service-url-map \
        --discovered-service='projects/HOST_PROJECT_ID/locations/us-west1/discoveredServices/URL_MAP_SERVICE_ID' \
        --display-name='URL map' \
        --criticality-type='HIGH' \
        --environment-type='PRODUCTION' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    Reemplaza lo siguiente:

    • BACKEND_SERVICE_ID: El servicio ID del servicio de backend que deseas registrar.
    • FORWARDING_RULE_SERVICE_ID: El servicio ID de la regla de reenvío que deseas registrar.
    • URL_MAP_SERVICE_ID: Es el servicio ID del mapa de URL que deseas registrar.
  4. Enumera todos los servicios registrados en la aplicación.

    gcloud apphub applications services list \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    Verás un resultado similar al siguiente:

    ID                               DISPLAY_NAME      SERVICE_REFERENCE                                                                                                              CREATE_TIME
    tutorial-service-backend         Backend service   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/backendServices/l7-xlb-backend-service'}  2024-02-13T00:31:45
    tutorial-service-forwarding-rule Forwarding rule   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/forwardingRules/l7-xlb-forwarding-rule'}  2024-02-13T00:31:45
    tutorial-service-url-map         URL map           {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/regions/us-west1/urlMaps/regional-l7-xlb-map'}             2024-02-13T00:31:45
    

    Los servicios registrados, pero separados, se indican con un valor vacío en el campo SERVICE_REFERENCE. Para obtener más información sobre los estados de registro, consulta las propiedades y los atributos de App Hub.

  5. Enumera todas las cargas de trabajo descubiertas en el proyecto host de App Hub. Este comando muestra las cargas de trabajo disponibles para registrarse en una aplicación.

    gcloud apphub discovered-workloads list \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    Verás un resultado similar al siguiente:

    ID                            WORKLOAD_REFERENCE                                                                                                            WORKLOAD_PROPERTIES
    INSTANCE_GROUP_ID          {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/zones/us-west1-a/instanceGroups/l7-xlb-backend-example'}  {'gcpProject': 'projects/SERVICE_PROJECT_ID', 'location': 'us-west1', 'zone': 'us-west1-a'}
    

    Copia el ID de la carga de trabajo del resultado para usarlo en el siguiente paso.

  6. Registra la carga de trabajo del paso anterior en tu aplicación como tutorial-workload-mig. Copia el ID de la carga de trabajo del campo de salida del paso anterior.

    gcloud apphub applications workloads create tutorial-workload-mig \
        --discovered-workload='projects/HOST_PROJECT_ID/locations/us-west1/discoveredWorkloads/WORKLOAD_ID' \
        --display-name='Workload instance group' \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    Reemplaza WORKLOAD_ID por el ID de la carga de trabajo que deseas registrar.

  7. Muestra una lista de todas las cargas de trabajo registradas en la aplicación.

    gcloud apphub applications workloads list \
        --application=tutorial-application \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    

    Verás un resultado similar al siguiente:

    ID                        DISPLAY_NAME              WORKLOAD_REFERENCE                                                                                                            CREATE_TIME
    tutorial-workload-mig     Workload instance group   {'uri': '//compute.googleapis.com/projects/[SERVICE_PROJECT_NUMBER]/zones/us-west1-a/instanceGroups/l7-xlb-backend-example'}  2024-02-13T00:31:45
    

    Las cargas de trabajo registradas, pero separadas, se indican con un valor vacío en el campo WORKLOAD_REFERENCE. Para obtener más información sobre los estados de registro, consulta las propiedades y los atributos de App Hub.

Cómo ver todos los servicios y las cargas de trabajo

Puedes ver los detalles de los servicios y las cargas de trabajo desde los proyectos de servicio que están adjuntos al proyecto host de App Hub.

  1. En la consola de Google Cloud, ve a la página Servicios y cargas de trabajo de App Hub.

    Ir a Servicios y cargas de trabajo

    Se muestran todos los servicios y las cargas de trabajo de los proyectos de servicio de App Hub adjuntos.

  2. En la lista Región, selecciona us-west1. La carga de trabajo del grupo de instancias de la carga de trabajo se muestra con detalles como Tipo de App Hub, Importancia y Registrado en.

  3. Para filtrar los servicios o las cargas de trabajo según su estado, sigue estos pasos:

    1. En el campo Filtro, selecciona filtros, como Estado de registro.
    2. Haz clic en Registered. Aparecerá una lista de servicios y cargas de trabajo registrados en la aplicación.

Consulta las métricas de las aplicaciones

Puedes ver las métricas del sistema de las aplicaciones creadas en tu proyecto de host de App Hub. Estas métricas corresponden a los indicadores de oro: tráfico, errores, latencia y saturación que ayudan a supervisar el rendimiento y el estado de la aplicación.

  1. En la consola de Google Cloud, ve a la página Aplicaciones de App Hub.

    Ir a Aplicaciones

  2. Haz clic en el nombre de la aplicación, Tutorial.

    La pestaña Servicios y cargas de trabajo se muestra con los metadatos de los servicios y las cargas de trabajo registrados en tu aplicación.

  3. Para ver las métricas del sistema de los servicios y las cargas de trabajo registrados, haz clic en Métricas.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra los recursos de App Hub

Console

  1. En la consola de Google Cloud, ve a la página Aplicaciones de App Hub.

    Ir a Aplicaciones

  2. Haz clic en el nombre de una aplicación, Instructivo.

  3. En la pestaña Servicios y cargas de trabajo, en la sección Servicios y cargas de trabajo registrados, haz clic en el nombre de un servicio.

  4. En la página Servicios y cargas de trabajo, haz clic en Cancelar registro.

    Una alerta notifica que el servicio no está registrado.

  5. En la pestaña Servicios y cargas de trabajo, en la sección Servicios y cargas de trabajo registrados, haz clic en el nombre de una carga de trabajo.

  6. En la pestaña Detalles, haz clic en Cancelar registro.

    Una alerta notifica que la carga de trabajo no está registrada.

  7. Ve a la página Aplicaciones de App Hub.

    Ir a Aplicaciones

  8. Haz clic en el nombre de una aplicación.

  9. En la página tutorial-application, haz clic en Borrar.

  10. En la consola de Google Cloud, ve a la página Configuración de App Hub.

    Ir a la configuración

  11. En la página Configuración, selecciona la casilla de verificación del proyecto de servicio que deseas quitar del proyecto de host de App Hub.

  12. Haz clic en Detach projects.

gcloud

  1. Muestra una lista de los servicios registrados en la aplicación:

    gcloud apphub applications services list \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    
  2. Cancela el registro de los servicios de la aplicación:

    gcloud apphub applications services delete SERVICE_NAME \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    

    SERVICE_NAME por el nombre del servicio

    Los servicios ahora son servicios descubiertos que se pueden registrar en la aplicación.

  3. Enumera las cargas de trabajo registradas en la aplicación:

    gcloud apphub applications workloads list \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    
  4. Cancela el registro de la carga de trabajo de la aplicación:

    gcloud apphub applications workloads delete WORKLOAD_NAME \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    

    Reemplaza WORKLOAD_NAME por el nombre de tu carga de trabajo.

    La carga de trabajo ahora es una carga de trabajo descubierta que se puede registrar en la aplicación.

  5. Borra la aplicación:

    gcloud apphub applications delete tutorial-application \
      --project=HOST_PROJECT_ID \
      --location=us-west1
    
  6. Quita el proyecto de servicio del proyecto host de App Hub:

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
      --project=HOST_PROJECT_ID
    

Borrar la implementación

Cuando ya no necesites la solución, borra todos los recursos que creaste para evitar que se sigan facturando.

Usa este procedimiento si implementaste la solución con la CLI de Terraform.

  1. En Cloud Shell, asegúrate de que el directorio de trabajo actual sea terraform-docs-samples/lb/regional_external_http_load_balancer. Si no es así, ve a ese directorio.

  2. Quita los recursos que aprovisionó Terraform:

    terraform destroy
    

    Terraform muestra una lista de los recursos que se destruirán.

  3. Cuando se te solicite que realices las acciones, ingresa yes.

    Terraform mostrará mensajes que muestran el progreso. Después de borrar todos los recursos, Terraform muestra el siguiente mensaje:

    Destroy complete!
    

Cuando ya no necesites el proyecto de Google Cloud que usaste para la solución, puedes borrarlo.

Borra el proyecto

Console

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, selecciona el proyecto que quieres borrar y haz clic en Borrar.
  3. En el cuadro de diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrarlo.

gcloud

Borra un proyecto de Google Cloud:

gcloud projects delete PROJECT_ID

Reemplaza PROJECT_ID por los IDs del proyecto de servicio o host.

¿Qué sigue?