Configurar o App Hub com um projeto host

Nesta página, descrevemos como configurar um projeto host para agrupar serviços e cargas de trabalho como aplicativos do App Hub.

Os projetos host são um modelo de configuração compatível para usuários atuais do App Hub. No entanto, recomendamos usar pastas ativadas por apps para configurar o App Hub em novas implementações. As pastas com apps ativados oferecem acesso ao conjunto completo de recursos do Google Cloud focados em aplicativos, como a central de design de aplicativos e o Gemini Cloud Assist. Para comparar as principais diferenças entre os modelos de configuração do App Hub disponíveis, consulte Escolher seu modelo de configuração do App Hub.

Visão geral dos projetos host e de serviço

Um projeto host é um projeto Google Cloud padrão que você designa para agrupar recursos compatíveis como aplicativos do App Hub. Você anexa manualmente outros projetos, chamados de projetos de serviço, a esse projeto host para que o App Hub possa descobrir serviços e cargas de trabalho nesses projetos e registrá-los.

O modelo de projeto host e de serviço no App Hub é diferente do modelo usado pela VPC compartilhada. Não é possível usar um projeto host de VPC compartilhada e os projetos de serviço anexados a ele para o App Hub. No App Hub, os projetos host e de serviço servem para agrupar recursos de aplicativos de maneira lógica, não para compartilhar redes VPC.

Antes de começar

Conclua as etapas a seguir antes de configurar projetos do Google Cloud como host e de serviço para seus aplicativos:

  1. Identifique o projeto do Google Cloud que você quer usar como projeto host. É possível usar um projeto existente ou criar um novo.
  2. Identifique os projetos Google Cloud que você quer anexar ao projeto host como projetos de serviço. Identifique todos os projetos que contêm os serviços e as cargas de trabalho que você pretende registrar nos aplicativos do App Hub. Os recursos em outros projetos não ficam visíveis para o App Hub. Considere os seguintes aspectos para projetos de serviço:

    • Os projetos de serviço precisam estar na mesma organização do projeto host.
    • Um projeto de serviço só pode ser anexado a um projeto host por vez.
    • Um projeto host pode agir como um projeto de serviço para gerenciar os próprios recursos, mas não pode ser anexado como um projeto de serviço a outro projeto host.

Funções exigidas

Para receber as permissões necessárias para anexar projetos de serviço ao projeto host, peça ao administrador para conceder a você o papel do IAM de Administrador do App Hub (roles/apphub.admin) no projeto host e em cada projeto de serviço que você quer anexar. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.

Configurar o projeto host

Siga estas etapas para configurar um projeto como host:

Console

  1. Na página Bem-vindo do console do Google Cloud , use o seletor de projetos para escolher o projeto que você quer configurar como host.

    Acessar "Boas-vindas"

  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. Verifique se a versão mais recente da Google Cloud CLI está instalada:

    gcloud components update
    
  3. Encontre o ID do projeto do projeto Google Cloud que você quer configurar como host.

  4. Defina o projeto host como o projeto padrão para comandos:

    gcloud config set project HOST_PROJECT_ID
    

    Substitua HOST_PROJECT_ID pelo ID do projeto que você quer configurar como host.

  5. Ative a API App Hub no projeto host:

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

Anexar projetos de serviço

Anexe ao projeto host os projetos de serviço que contêm os serviços e as cargas de trabalho que você quer agrupar como aplicativos do App Hub:

Console

  1. Na página Bem-vindo do console do Google Cloud , use o seletor de projetos para escolher o projeto host.

    Acessar "Boas-vindas"

  2. Acesse a página Configurações do App Hub:

    Acesse configurações

  3. Clique em Anexar projetos.

  4. Selecione os projetos de serviço para anexar ao projeto host de uma das seguintes maneiras:

    • Na lista de projetos, marque as caixas de seleção dos projetos que você quer anexar como projetos de serviço.
    • Filtre os nomes dos projetos e marque as caixas de seleção.
  5. Clique em Selecionar.

    A tabela Projetos de serviço anexados mostra os projetos de serviço selecionados.

  6. Clique em Fechar.

gcloud

  1. Encontre o ID do projeto de cada um dos Google Cloud projetos que você quer configurar como projetos de serviço.
  2. Anexe cada projeto de serviço:

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

    Substitua:

    • SERVICE_PROJECT_ID: o ID do projeto de serviço a ser anexado.
    • HOST_PROJECT_ID: o ID do projeto host.
  3. Repita o processo anterior para cada projeto de serviço que você quer anexar ao projeto host.

Terraform

Para anexar um projeto de serviço a um projeto host usando o Terraform, use o recurso google_apphub_service_project_attachment, por exemplo:

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 desanexar um projeto de serviço, é necessário remover o anexo. Para mais informações, consulte Remover projetos de serviço.

Atribuir permissões e papéis do App Hub

Siga estas etapas para conceder os papéis e permissões do App Hub adequados aos usuários do App Hub nos projetos host e de serviço:

Console

  1. Na página Bem-vindo do console do Google Cloud , use o seletor de projetos para escolher o projeto host.

    Acessar "Boas-vindas"

  2. Acesse a página do IAM:

    Acessar IAM

  3. Clique em CONCEDER ACESSO. O painel Conceder acesso será aberto.

  4. No campo Novos principais, insira o endereço de e-mail do principal a quem você quer conceder acesso ao App Hub.

  5. Clique em Selecionar um papel e digite App Hub no campo Filtro.

  6. Selecione a função do IAM do Hub de apps que você quer atribuir ao principal e clique em Salvar.

  7. Em cada um dos projetos de serviço do App Hub anexados ao projeto host, repita o processo anterior para conceder as mesmas funções aos mesmos usuários.

gcloud

  1. Encontre o ID de cada um dos Google Cloud projetos que você configurou como host e de serviço.

  2. Conceda acesso aos principais no projeto host:

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

    Substitua:

    • HOST_PROJECT_ID: o ID do projeto host.
    • EMAIL_ADDRESS: o endereço de e-mail da principal que precisa receber acesso ao App Hub no projeto host. Esse valor precisa ter o formato username@yourdomain, por exemplo, my.user@example.com.
    • ROLE_NAME: o papel do IAM do App Hub que você quer atribuir ao principal, por exemplo, roles/apphub.admin.
  3. Em cada um dos projetos de serviço do App Hub anexados ao projeto host, conceda as mesmas funções aos mesmos usuários:

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

    Substitua SERVICE_PROJECT_ID pelo ID do projeto de serviço a que você está concedendo acesso.

Configurar o VPC Service Controls

Se você quiser proteger seus aplicativos com um perímetro do VPC Service Controls, adicione os projetos de host e de serviço do App Hub ao perímetro antes de criar os aplicativos. Para mais informações, consulte Como usar o VPC Service Controls com o App Hub.

Agora é possível registrar recursos atuais em um aplicativo.

Opcional: configure o escopo das métricas

Para ver as métricas do sistema de aplicativos no projeto host no Cloud Monitoring, adicione os projetos de serviço anexados ao escopo de métricas do projeto host. O projeto host serve como um projeto de escopo para dados de série temporal, permitindo a criação de gráficos e o monitoramento de dados. Para mais informações e instruções de configuração detalhadas, consulte Configurar um escopo de métricas e Configurar um escopo de métricas usando a API.

Remover projetos de serviço

É possível modificar os anexos do projeto de serviço para permitir que diferentes serviços e cargas de trabalho sejam agrupados em um aplicativo. Você pode anexar mais projetos de serviço ao projeto host ou seguir estas etapas para remover a anexação de um projeto de serviço de um projeto host:

Console

  1. Na página Bem-vindo do console do Google Cloud , use o seletor de projetos para escolher o projeto host.

    Acessar "Boas-vindas"

  2. Acesse a página Configurações do App Hub:

    Acesse configurações

  3. Marque as caixas de seleção dos projetos de serviço que você quer remover do projeto host.

  4. Clique em Desanexar projetos.

    A tabela Projetos de serviço anexados é atualizada para mostrar apenas os projetos que permanecem anexados ao projeto host.

gcloud

  1. Encontre o ID do projeto de cada um dos projetos de serviço que você quer remover do projeto host.
  2. Remova cada projeto de serviço:

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

    Substitua:

    • SERVICE_PROJECT_ID: o ID do projeto de serviço a ser removido.
    • HOST_PROJECT_ID: o ID do projeto host.
  3. Repita o processo anterior para cada projeto de serviço que você quer remover do projeto host.

Ao remover um projeto de serviço de um projeto host, considere também removê-lo do escopo de métricas do projeto host se você já tiver configurado o escopo de métricas. Para mais informações, consulte Remover projetos de um escopo de métricas.

A seguir