Configura App Hub con un proyecto host

En esta página, se describe cómo configurar un proyecto host para agrupar servicios y cargas de trabajo como aplicaciones de App Hub.

Los proyectos host son un modelo de configuración compatible para los usuarios existentes de App Hub. Sin embargo, te recomendamos que uses carpetas habilitadas para aplicaciones para configurar App Hub en implementaciones nuevas. Las carpetas habilitadas para aplicaciones proporcionan acceso al conjunto completo de funciones de Google Cloud centradas en las aplicaciones, como el Centro de diseño de aplicaciones y Gemini Cloud Assist. Para comparar las diferencias clave entre los modelos de configuración disponibles de App Hub, consulta Elige tu modelo de configuración de App Hub.

Descripción general de los proyectos host y de servicio

Un proyecto host es un proyecto Google Cloud estándar que designas para agrupar losrecursos admitidos como aplicaciones de App Hub. Debes vincular manualmente otros proyectos, llamados proyectos de servicio, a este proyecto host para que App Hub pueda detectar servicios y cargas de trabajo dentro de esos proyectos y registrarlos.

El modelo de proyecto host y de servicio en App Hub es distinto del modelo que usa la VPC compartida. No puedes usar un proyecto host de VPC compartida ni sus proyectos de servicio adjuntos para App Hub. En App Hub, los proyectos host y de servicio se usan para agrupar lógicamente los recursos de la aplicación, no para compartir redes de VPC.

Antes de comenzar

Debes completar los siguientes pasos antes de configurar Google Cloud proyectos como proyectos host y de servicio para tus aplicaciones:

  1. Identifica el proyecto Google Cloud que deseas usar como proyecto host. Puedes usar un proyecto existente o crear uno nuevo.
  2. Identifica los proyectos Google Cloud que deseas adjuntar al proyecto host como proyectos de servicio. Debes identificar todos los proyectos que contienen los servicios y las cargas de trabajo que deseas registrar en las aplicaciones de App Hub. App Hub no podrá ver los recursos de otros proyectos. Ten en cuenta los siguientes aspectos para los proyectos de servicio:

    • Los proyectos de servicio deben estar en la misma organización que el proyecto host.
    • Un proyecto de servicio solo se puede adjuntar a un proyecto host a la vez.
    • Un proyecto host puede actuar como proyecto de servicio para sí mismo y administrar sus propios recursos, pero no puedes adjuntarlo como proyecto de servicio a ningún otro proyecto host.

Roles requeridos

Para obtener los permisos que necesitas para adjuntar proyectos de servicio al proyecto host, pídele a tu administrador que te otorgue el rol de IAM de administrador de App Hub (roles/apphub.admin) en el proyecto host y en cada proyecto de servicio que quieras adjuntar. 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.

Configura el proyecto host

Sigue estos pasos para configurar un proyecto como proyecto host:

Console

  1. En la página Bienvenido de la consola de Google Cloud , usa el selector de proyectos para elegir el proyecto que deseas configurar como proyecto host.

    Ir a Bienvenida

  2. Enable the required API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

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:

    gcloud components update
    
  3. Busca el ID del proyecto del proyecto Google Cloud que deseas configurar como proyecto host.

  4. Configura el proyecto host como el proyecto predeterminado para los comandos:

    gcloud config set project HOST_PROJECT_ID
    

    Reemplaza HOST_PROJECT_ID por el ID del proyecto que deseas configurar como proyecto host.

  5. Habilita la API de App Hub en el proyecto host:

    gcloud services enable apphub.googleapis.com \
        --project=HOST_PROJECT_ID
    

Vincula proyectos de servicio

Vincula los proyectos de servicio que contienen los servicios y las cargas de trabajo que deseas agrupar como aplicaciones de App Hub al proyecto host:

Console

  1. En la página Welcome de la consola de Google Cloud , usa el selector de proyectos para seleccionar el proyecto host.

    Ir a Bienvenida

  2. Navega a la página Configuración de App Hub:

    Ir a la configuración

  3. Haz clic en Adjuntar proyectos.

  4. Selecciona los proyectos de servicio que se adjuntarán al proyecto host de una de las siguientes maneras:

    • En la lista de proyectos, selecciona las casillas de verificación de los proyectos que deseas adjuntar como proyectos de servicio.
    • Filtra los nombres de los proyectos y selecciona sus casillas de verificación.
  5. Haz clic en Seleccionar.

    En la tabla Proyectos de servicio vinculados, se muestran los proyectos de servicio seleccionados.

  6. Haz clic en Cerrar.

gcloud

  1. Busca el ID de cada uno de los Google Cloud proyectos que deseas configurar como proyectos de servicio.
  2. Vincula cada proyecto de servicio:

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

    Reemplaza lo siguiente:

    • SERVICE_PROJECT_ID: Es el ID del proyecto de servicio que se adjuntará.
    • HOST_PROJECT_ID: Es el ID del proyecto host.
  3. Repite el proceso anterior para cada proyecto de servicio que quieras adjuntar al proyecto host.

Terraform

Para adjuntar un proyecto de servicio a un proyecto host con Terraform, usa el recurso google_apphub_service_project_attachment, por ejemplo:

resource "google_apphub_service_project_attachment" "example" {
    service_project_attachment_id = google_project.service_project.project_id
    depends_on = [time_sleep.wait_120s]
}

resource "google_project" "service_project" {
    project_id ="project-1"
    name = "Service Project"
    org_id = "123456789"
    deletion_policy = "DELETE"
}

resource "time_sleep" "wait_120s" {
    depends_on = [google_project.service_project]

    create_duration = "120s"
}

Para desconectar un proyecto de servicio, se debe quitar el adjunto. Para obtener más información, consulta Cómo quitar proyectos de servicio.

Asigna roles y permisos de App Hub

Sigue estos pasos para otorgar los roles y permisos de App Hub adecuados a los usuarios de App Hub en los proyectos host y de servicio:

Console

  1. En la página Welcome de la consola de Google Cloud , usa el selector de proyectos para seleccionar el proyecto host.

    Ir a Bienvenida

  2. Ve a la página IAM:

    Ir a IAM

  3. Haz clic en Grant access. Se abrirá el panel Otorgar acceso.

  4. En el campo Principales nuevas, ingresa la dirección de correo electrónico de la principal a la que deseas otorgar acceso a App Hub.

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

  6. Selecciona el rol de IAM de App Hub que deseas asignar a la principal y haz clic en Guardar.

  7. En cada uno de los proyectos de servicio de App Hub que vinculaste al proyecto host, repite el proceso anterior para otorgar los mismos roles a los mismos usuarios.

gcloud

  1. Busca el ID del proyecto de cada uno de los proyectos Google Cloud que configuraste como proyectos host y de servicio.

  2. Otorga acceso a las principales del proyecto host:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
        --member='user:EMAIL_ADDRESS' \
        --role='ROLE_NAME'
    

    Reemplaza lo siguiente:

    • HOST_PROJECT_ID: Es el ID del proyecto host.
    • EMAIL_ADDRESS: Es la dirección de correo electrónico del principal que debe obtener acceso a App Hub en el proyecto host. Este valor debe tener el formato username@yourdomain, por ejemplo, my.user@example.com.
    • ROLE_NAME: El rol de IAM de App Hub que deseas asignar a la principal, por ejemplo, roles/apphub.admin.
  3. En cada uno de los proyectos de servicio de App Hub que vinculaste al proyecto host, otorga los mismos roles a los mismos usuarios:

    gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \
        --member='user:EMAIL_ADDRESS' \
        --role='ROLE_NAME'
    

    Reemplaza SERVICE_PROJECT_ID por el ID del proyecto de servicio al que otorgas acceso.

Configura los Controles del servicio de VPC

Si quieres proteger tus aplicaciones con un perímetro de Controles del servicio de VPC, agrega tus proyectos de servicio y host de App Hub al perímetro antes de crear tus aplicaciones. Para obtener más información, consulta Usa los Controles del servicio de VPC con App Hub.

Ahora puedes registrar recursos existentes en una aplicación.

Opcional: Configura el permiso de métricas

Para ver las métricas del sistema de las aplicaciones dentro de tu proyecto host en Cloud Monitoring, agrega los proyectos de servicio adjuntos al permiso de métricas del proyecto host. El proyecto host sirve como proyecto de alcance para los datos de series temporales, lo que permite generar gráficos y supervisar los datos. Para obtener más información y ver instrucciones de configuración detalladas, consulta Configura un alcance de las métricas y Configura un alcance de las métricas con la API.

Cómo quitar proyectos de servicio

Puedes modificar los archivos adjuntos del proyecto de servicio para que diferentes servicios y cargas de trabajo estén disponibles para agruparse en una aplicación. Puedes vincular más proyectos de servicio al proyecto host o seguir estos pasos para quitar la vinculación de un proyecto de servicio de un proyecto host:

Console

  1. En la página Welcome de la consola de Google Cloud , usa el selector de proyectos para seleccionar el proyecto host.

    Ir a Bienvenida

  2. Navega a la página Configuración de App Hub:

    Ir a la configuración

  3. Selecciona las casillas de verificación de los proyectos de servicio que deseas quitar del proyecto host.

  4. Haz clic en Desvincular proyectos.

    La tabla Attached Service Project(s) se actualiza para mostrar solo los proyectos que permanecen vinculados al proyecto host.

gcloud

  1. Busca el ID de cada uno de los proyectos de servicio que deseas quitar del proyecto host.
  2. Quita cada proyecto de servicio:

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

    Reemplaza lo siguiente:

    • SERVICE_PROJECT_ID: Es el ID del proyecto de servicio que se quitará.
    • HOST_PROJECT_ID: Es el ID del proyecto host.
  3. Repite el proceso anterior para cada proyecto de servicio que quieras quitar del proyecto host.

Cuando quites un proyecto de servicio de un proyecto host, considera quitarlo también del permiso de métricas del proyecto host si configuraste el permiso de métricas anteriormente. Para obtener más información, consulta Cómo quitar proyectos de un permiso de métricas.

¿Qué sigue?