Registra recursos existentes en una aplicación

Registrar tus recursos Google Cloud existentes comoservicios ycargas de trabajo en una aplicación de App Hub te permite simplificar la administración organizando los recursos según su propósito comercial. Este enfoque proporciona visibilidad, supervisión, gobernanza y control operativo unificados.

En esta guía, se muestra cómo agrupar recursos Google Cloud existentes que aún no se definieron formalmente como una aplicación.

Antes de comenzar

Debes completar la configuración inicial para la administración de aplicaciones antes de organizar los recursos en aplicaciones. Por lo general, este proceso incluye los siguientes roles y pasos:

Crea una aplicación

Crea una aplicación en App Hub para que actúe como un contenedor lógico para tus recursos Google Cloud existentes:

Console

  1. En la consola de Google Cloud , usa el selector de proyectos para seleccionar tu proyecto de administración.
  2. Navega a la página Aplicaciones desde App Hub:

    Ir a Aplicaciones

  3. Haz clic en Crear aplicación.

  4. En el panel Elige el nombre y la región de la aplicación, selecciona la mejor ubicación para tu aplicación según tus requisitos de distribución geográfica:

    Para obtener más información sobre la mejor ubicación para tu aplicación, consulta Aplicaciones globales y regionales.

  5. Ingresa el Nombre de la aplicación y haz clic en Continuar. Este nombre es un identificador único que solo puede contener letras en minúscula, números o guiones. No puedes cambiar este nombre después de crear la aplicación.

  6. Opcional: Define los atributos de nivel superior de la aplicación para admitir la detección y la administración:

    • En la sección Agregar atributos, ingresa el Nombre visible. El nombre visible no es un identificador único y puedes cambiarlo después de crear la aplicación.
    • En la lista Criticidad, selecciona un valor para indicar la importancia de la aplicación.
    • En la lista Environment, selecciona un valor para indicar la etapa del ciclo de vida del software.
    • Agrega los detalles de la información de contacto de los propietarios, incluidos su nombre visible y dirección de correo electrónico. Ten en cuenta que las direcciones de correo electrónico deben tener el formato username@yourdomain, por ejemplo, jane-doe@gmail.com.
  7. Haz clic en Crear.

gcloud

  1. Usa Google Cloud CLI para crear una aplicación desde tu terminal o Cloud Shell:

    gcloud apphub applications create APPLICATION_NAME \
      --project=PROJECT_ID \
      --scope-type=LOCATION \
      --location=REGION \
      --display-name=DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    Reemplaza APPLICATION_NAME por el nombre de la aplicación. Este nombre es un identificador único que solo puede contener letras en minúscula, números o guiones.

    Usa marcas opcionales, como --criticality-type, para definir los atributos de nivel superior de la aplicación y respaldar la detección y la administración.

    Para las marcas obligatorias y opcionales, reemplaza lo siguiente:

    • Obligatorio: PROJECT_ID: ID del proyecto de administración.
    • Obligatorio: LOCATION: Es la ubicación de tu aplicación según tus requisitos de distribución geográfica. Usa uno de los siguientes valores:

      • REGIONAL para aplicaciones regionales.
      • GLOBAL para aplicaciones globales.

      Para obtener más información sobre la mejor ubicación para tu aplicación, consulta Aplicaciones globales y regionales.

    • Obligatorio: REGION, la región específica de tu aplicación. Usa uno de los siguientes valores:

      • Si la ubicación --scope-type de tu aplicación está configurada como REGIONAL, especifica un nombre de región compatible con App Hub.
      • Si la ubicación de --scope-type para tu aplicación está establecida en GLOBAL, usa global.
    • Opcional: DISPLAY_NAME: Es el nombre visible de tu aplicación. El nombre visible no es un identificador único y puedes cambiarlo después de crear la aplicación.

    • Opcional: CRITICALITY: Nivel de importancia de la aplicación para tus operaciones. Usa uno de los siguientes valores:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • Opcional: ENVIRONMENT es la etapa del ciclo de vida del software. Usa uno de los siguientes valores:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Opcional: DEV_NAME y DEV_EMAIL: El nombre visible y la dirección de correo electrónico del propietario desarrollador, respectivamente.

    • Opcional: OPERATOR_NAME y OPERATOR_EMAIL: El nombre visible y la dirección de correo electrónico del propietario del operador, respectivamente.

    • Opcional: BUSINESS_NAME y BUSINESS_EMAIL: El nombre visible y la dirección de correo electrónico del propietario de la empresa, respectivamente.

  2. Enumera las aplicaciones de tu proyecto:

    gcloud apphub applications list \
      --project=PROJECT_ID \
      --location=REGION
    

    Debes obtener un resultado similar al siguiente:

    ID                 DISPLAY_NAME   CREATE_TIME
    APPLICATION_NAME   DISPLAY_NAME   2023-10-31T18:33:48
    

Terraform

Para crear una aplicación con Terraform, usa el recurso google_apphub_application. Este recurso te permite definir las propiedades de la aplicación, incluidos su nombre, ubicación y atributos.

En el siguiente ejemplo, se crea una aplicación regional en us-central1 con atributos definidos de criticidad, entorno y propietario:

resource "google_apphub_application" "example" {
    project        = "my-project-id"
    location       = "us-central1"
    application_id = "my-application"
    display_name   = "My Application"
    description    = "This application represents our platform."
    scope {
        type = "REGIONAL"
    }
    attributes {
        criticality {
            type = "MISSION_CRITICAL"
        }
        environment {
            type = "PRODUCTION"
        }
        business_owners {
            display_name = "Alice"
            email        = "alice@example.com"
        }
        developer_owners {
            display_name = "Bob"
            email        = "bob@example.com"
        }
        operator_owners {
            display_name = "Charlie"
            email        = "charlie@example.com"
        }
    }
}

Registra servicios y cargas de trabajo

App Hub te permite seleccionar recursos compatibles ubicados dentro del límite de administración de tu aplicación para registrarlos como servicios y cargas de trabajo. Después de crear una aplicación, registra tus recursos deGoogle Cloud existentes como servicios y cargas de trabajo en ella.

Solo puedes registrar servicios exclusivos en una aplicación. Sin embargo, los servicios compartidos se pueden registrar en más de una aplicación. App Hub detectará los servicios compartidos cuando los registres en una aplicación, incluso si ya están registrados en otra aplicación, pero es posible que no puedas modificar sus atributos.

Console

  1. En la consola de Google Cloud , usa el selector de proyectos para seleccionar tu proyecto de administración.
  2. Navega a la página Aplicaciones desde App Hub:

    Ir a Aplicaciones

  3. Haz clic en el nombre de la aplicación para la que deseas registrar recursos Google Cloud existentes como servicios y cargas de trabajo.

  4. En la página de detalles de la aplicación, selecciona la pestaña Servicios y cargas de trabajo. En esta pestaña, se muestra la lista de recursos existentes que puedes registrar en la aplicación. App Hub te permite seleccionar recursos compatibles ubicados dentro del límite de administración de tu aplicación como servicios o cargas de trabajo.

  5. Para cada servicio o carga de trabajo que desees registrar, haz lo siguiente:

    1. En la pestaña Servicios y cargas de trabajo, haz clic en Registrar servicio o carga de trabajo.
    2. Navega al panel Seleccionar recurso y haz clic en Explorar para encontrar el servicio o la carga de trabajo que deseas registrar.
    3. Elige el servicio o la carga de trabajo y haz clic en Seleccionar.
    4. En el panel Seleccionar recurso, ingresa un nombre para el servicio o la carga de trabajo y haz clic en Continuar.
    5. Opcional: En el panel Agregar atributos, define los atributos de nivel superior del recurso para admitir la detección y la administración.

    6. Haz clic en Continuar.

    7. Opcional: En la sección Agregar propietarios, agrega más detalles sobre los propietarios del servicio o la carga de trabajo.

    8. Haz clic en Registrar.

En la pestaña Servicios y cargas de trabajo, se muestra el servicio o la carga de trabajo registrados.

gcloud

App Hub te permite seleccionar recursos compatibles ubicados dentro del límite de administración de tu aplicación como servicios o cargas de trabajo. Usa Google Cloud CLI para enumerar los servicios o las cargas de trabajo que puedes registrar en la aplicación desde tu terminal o Cloud Shell. Los comandos son ligeramente diferentes para los servicios y las cargas de trabajo:

Registrar servicios

  1. Enumera los servicios disponibles a los que puedes registrar una aplicación:

    gcloud apphub discovered-services list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    Para las marcas obligatorias y opcionales, reemplaza lo siguiente:

    • Obligatorio: PROJECT_ID: ID del proyecto de administración.
    • Obligatorio: REGION: Es la región específica de tu servicio según tu distribución geográfica. Usa uno de los siguientes valores:

    • Opcional: FILTER_EXPRESSION: Es la expresión de filtro para la marca --filter que solo muestra los servicios de un proyecto especificado dentro del límite de administración de la aplicación o con una propiedad específica, por ejemplo:

      • service_properties.gcp_project=projects/PROJECT_ID
      • service_properties.gcp_project=projects/PROJECT_ID AND service_reference.uri~"forwardingRules"

    El resultado es similar al siguiente ejemplo.

    ID            SERVICE_REFERENCE                                                                                             SERVICE_PROPERTIES
    SERVICE_ID    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. Copia el ID del servicio, SERVICE_ID, del resultado.

  3. Registra el servicio en tu aplicación:

    gcloud apphub applications services create SERVICE_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --application=APPLICATION_NAME \
      --discovered-service=projects/PROJECT_ID/locations/REGION/discoveredServices/SERVICE_ID \
      --display-name=SERVICE_DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    Reemplaza SERVICE_NAME por el nombre que deseas usar para registrar el servicio en la aplicación.

    Usa marcas opcionales, como --criticality-type, para definir los atributos de nivel superior del servicio y admitir la detección y la administración.

    Para las marcas obligatorias y opcionales, reemplaza lo siguiente:

    • Obligatorio: PROJECT_ID: ID del proyecto de administración.
    • Obligatorio: REGION: Es la región específica de tu servicio según tu distribución geográfica. Usa uno de los siguientes valores:

    • Obligatorio: APPLICATION_NAME: Es el nombre de la aplicación para la que deseas registrar el servicio.

    • Obligatorio: SERVICE_ID: Es el ID de servicio que copiaste del resultado anterior.

    • Opcional: SERVICE_DISPLAY_NAME: Es el nombre visible de tu servicio.

    • Opcional: CRITICALITY: Es el nivel de importancia del servicio para tus operaciones. Usa uno de los siguientes valores:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • Opcional: ENVIRONMENT es la etapa del ciclo de vida del software. Usa uno de los siguientes valores:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Opcional: DEV_NAME y DEV_EMAIL: El nombre visible y la dirección de correo electrónico del propietario desarrollador, respectivamente.

    • Opcional: OPERATOR_NAME y OPERATOR_EMAIL: El nombre visible y la dirección de correo electrónico del propietario del operador, respectivamente.

    • Opcional: BUSINESS_NAME y BUSINESS_EMAIL: El nombre visible y la dirección de correo electrónico del propietario de la empresa, respectivamente.

  4. Enumera los servicios registrados en tu aplicación:

    gcloud apphub applications services list \
      --application=APPLICATION_NAME
      --project=PROJECT_ID \
      --location=REGION
    

    Debes obtener un resultado similar al siguiente para cada servicio registrado:

    ID              DISPLAY_NAME            SERVICE_REFERENCE                                                                                             CREATE_TIME
    SERVICE_NAME    SERVICE_DISPLAY_NAME    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/forwardingRules/forwarding-rule'}    2023-11-01T21:38:08
    

Registra cargas de trabajo

  1. Enumera las cargas de trabajo disponibles que puedes registrar en una aplicación:

    gcloud apphub discovered-workloads list \
      --project=PROJECT_ID \
      --location=REGION \
      --filter=FILTER_EXPRESSION
    

    Para las marcas obligatorias y opcionales, reemplaza lo siguiente:

    • Obligatorio: PROJECT_ID: ID del proyecto de administración.
    • Obligatorio: REGION: Es la región específica de tu carga de trabajo según tu distribución geográfica. Usa uno de los siguientes valores:

    • Opcional: FILTER_EXPRESSION: Es la expresión de filtro para la marca --filter para mostrar solo las cargas de trabajo de un proyecto especificado dentro del límite de administración de la aplicación o con una propiedad específica, por ejemplo, workload_properties.gcp_project=projects/PROJECT_ID.

    El resultado es similar al siguiente ejemplo.

    ID             WORKLOAD_REFERENCE                                                                                    WORKLOAD_PROPERTIES
    WORKLOAD_ID    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'}    {'gcpProject': 'projects/PROJECT_ID', 'location': 'REGION'}
    
  2. Copia el ID de la carga de trabajo, WORKLOAD_ID, del resultado.

  3. Registra la carga de trabajo en tu aplicación:

    gcloud apphub applications workloads create WORKLOAD_NAME \
      --project=PROJECT_ID \
      --location=REGION \
      --application=APPLICATION_NAME \
      --discovered-workload=projects/PROJECT_ID/locations/REGION/discoveredWorkloads/WORKLOAD_ID \
      --display-name=WORKLOAD_DISPLAY_NAME \
      --criticality-type=CRITICALITY \
      --environment-type=ENVIRONMENT \
      --developer-owners=display-name=DEV_NAME,email=DEV_EMAIL \
      --operator-owners=display-name=OPERATOR_NAME,email=OPERATOR_EMAIL \
      --business-owners=display-name=BUSINESS_NAME,email=BUSINESS_EMAIL
    

    Reemplaza WORKLOAD_NAME por el nombre que deseas usar para registrar la carga de trabajo en la aplicación.

    Usa marcas opcionales, como --criticality-type, para definir los atributos de nivel superior de la carga de trabajo y admitir la detección y la administración.

    Para las marcas obligatorias y opcionales, reemplaza lo siguiente:

    • Obligatorio: PROJECT_ID: ID del proyecto de administración.
    • Obligatorio: REGION: Es la región específica de tu carga de trabajo según tu distribución geográfica. Usa uno de los siguientes valores:

    • Obligatorio: APPLICATION_NAME: Es el nombre de la aplicación para la que deseas registrar la carga de trabajo.

    • Obligatorio: WORKLOAD_ID: Es el ID de la carga de trabajo que copiaste de la salida anterior.

    • Opcional: WORKLOAD_DISPLAY_NAME: Es el nombre visible de tu carga de trabajo.

    • Opcional: CRITICALITY: Es el nivel de importancia de la carga de trabajo para tus operaciones. Usa uno de los siguientes valores:

      • MISSION_CRITICAL
      • HIGH
      • MEDIUM
      • LOW
    • Opcional: ENVIRONMENT es la etapa del ciclo de vida del software. Usa uno de los siguientes valores:

      • PRODUCTION
      • STAGING
      • DEVELOPMENT
      • TEST
    • Opcional: DEV_NAME y DEV_EMAIL: El nombre visible y la dirección de correo electrónico del propietario desarrollador, respectivamente.

    • Opcional: OPERATOR_NAME y OPERATOR_EMAIL: El nombre visible y la dirección de correo electrónico del propietario del operador, respectivamente.

    • Opcional: BUSINESS_NAME y BUSINESS_EMAIL: El nombre visible y la dirección de correo electrónico del propietario de la empresa, respectivamente.

  4. Enumera las cargas de trabajo registradas en tu aplicación:

    gcloud apphub applications workloads list \
      --application=APPLICATION_NAME
      --project=PROJECT_ID \
      --location=REGION
    

    Debes obtener un resultado similar al siguiente para cada carga de trabajo registrada:

    ID               DISPLAY_NAME             WORKLOAD_REFERENCE                                                                                    CREATE_TIME
    WORKLOAD_NAME    WORKLOAD_DISPLAY_NAME    {'uri': '//compute.googleapis.com/projects/PROJECT_NUMBER/regions/REGION/instanceGroups/mig-name'}    2023-11-01T21:38:08
    

Terraform

Para usar Terraform y registrar recursos Google Cloud dentro del límite de administración de tu aplicación como servicios o cargas de trabajo en una aplicación, usa las fuentes de datos google_apphub_discovered_service y google_apphub_discovered_workload para recuperar de forma dinámica información sobre los recursos que deseas registrar.

Luego, usa los recursos google_apphub_service o google_apphub_workload para registrar servicios o cargas de trabajo, respectivamente.

Registrar servicios

  1. Obtén información sobre un servicio con su URI:

    data "google_apphub_discovered_service" "my-service" {
        location = "REGION"
        service_uri = "SERVICE_URI"
    }
    
  2. Registra el servicio detectado en tu aplicación, por ejemplo:

    resource "google_apphub_service" "example" {
        project            = "my-project-id"
        location           = "us-central1"
        application_id     = google_apphub_application.example.application_id
        service_id         = "frontend-load-balancer"
        discovered_service = data.google_apphub_discovered_service.my-forwarding-rule.name
        display_name       = "Frontend Load Balancer"
        description        = "The primary load balancer for the frontend."
    }
    

Registra cargas de trabajo

  1. Obtén información sobre una carga de trabajo con su URI:

    data "google_apphub_discovered_workload" "my-workload" {
        location = "REGION"
        workload_uri = "WORKLOAD_URI"
    }
    
  2. Registra la carga de trabajo descubierta en tu aplicación, por ejemplo:

    resource "google_apphub_workload" "example" {
        project             = "my-project-id"
        location            = "us-central1"
        application_id      = google_apphub_application.example.application_id
        workload_id         = "frontend-instance-group"
        discovered_workload = data.google_apphub_discovered_workload.my-mig.name
        display_name        = "Frontend Instance Group"
        description         = "The managed instance group for the frontend."
    }
    

El estado de registro de los servicios y las cargas de trabajo registrados en una aplicación puede cambiar a desvinculado si mueves un proyecto o una carpeta fuera del límite de administración de tu aplicación o si borras el recurso subyacente. Los servicios y las cargas de trabajo desconectados permanecen en la aplicación hasta que los anulas, pero App Hub ya no puede administrarlos ni supervisarlos. Para obtener más información, consulta Estado de registro de servicios y cargas de trabajo.

Para volver a adjuntar servicios o cargas de trabajo a una aplicación, debes volver a registrarlos.

Otorga permisos y comienza las operaciones

Después de crear una aplicación y registrar servicios y cargas de trabajo en App Hub, debes otorgar acceso de usuario según las responsabilidades del ciclo de vida para administrar esta agrupación lógica como una sola unidad:

  1. Según tus necesidades de acceso, puedes otorgar permisos a aplicaciones individuales o a todas las aplicaciones. Para obtener una lista de los roles recomendados, consulta Otorga roles centrados en la aplicación a tus usuarios.
  2. De manera opcional, navega a Cloud Hub para ver un panel operativo unificado de la aplicación que definiste, incluidos sus datos de estado, rendimiento y costos.