Criar um aplicativo do App Hub usando um único projeto


Neste tutorial, mostramos como configurar um aplicativo do App Hub em um único projeto. Em um projeto host do App Hub que funciona como o projeto de serviço, você implanta um grupo gerenciado de instâncias (MIG) com balanceamento de carga. Em seguida, em um aplicativo no projeto host do App Hub, você registra e monitora todos os recursos de infraestrutura do projeto de serviço como serviços e cargas de trabalho do App Hub.

Este tutorial é destinado a pessoas que configuram e administram o App Hub. Você precisa ter alguma experiência com o Cloud Load Balancing.

Objetivos

Nesta seção, mostramos como concluir as seguintes tarefas:

  1. Criar ou selecionar um projeto do Google Cloud. Esse projeto é o host do App Hub.
  2. No projeto do host, use o Terraform para implantar uma rede VPC, um balanceador de carga de aplicativo externo regional e um back-end MIG para o balanceador de carga. O balanceador de carga de aplicativo externo regional inclui os seguintes recursos:

    • Verificação de integridade de HTTP
    • Regra de encaminhamento
    • Mapa de URL
    • Proxy de destino
    • Serviço de back-end com um grupo de instâncias gerenciadas como o back-end
    • Certificado SSL (para HTTPS)

    Somente a regra de encaminhamento, o mapa de URL, o serviço de back-end e o MIG ficam disponíveis como recursos descobertos no App Hub. Para mais informações, consulte conceitos e modelo de dados.

  3. Forneça as funções e permissões adequadas ao projeto host.

  4. Anexe o projeto host do App Hub como um projeto de serviço.

  5. Crie um aplicativo no projeto host do App Hub.

  6. Descubra os recursos de infraestrutura como serviços e cargas de trabalho do App Hub.

  7. Registre serviços e uma carga de trabalho do projeto de serviço no aplicativo e atribua atributos.

  8. Confira os detalhes dos serviços e das cargas de trabalho registrados no App Hub.

Custos

Para uma estimativa do custo dos recursos do Google Cloud usados pela solução de VM gerenciada com balanceamento de carga, consulte a estimativa pré-calculada na Calculadora de preços do Google Cloud.

Use a estimativa como um ponto de partida para calcular o custo da implantação. É possível modificar a estimativa para refletir as alterações de configuração planejadas para os recursos usados na solução.

A estimativa pré-calculada tem como base suposições específicas, incluindo o seguinte:

  • Os locais do Google Cloud em que os recursos são implantados.
  • A quantidade de tempo em que os recursos são usados.

Para mais informações sobre os custos do App Hub, consulte a página Preços.

Antes de começar

Se você for o criador do projeto, receberá o papel de proprietário básico (roles/owner). Por padrão, esse papel de gerenciamento de identidade e acesso (IAM) inclui as permissões necessárias para acesso total à maioria dos recursos do Google Cloud.

Se você não é o criador do projeto, as permissões necessárias precisam ser concedidas ao principal apropriado. Por exemplo, um principal pode ser uma Conta do Google (para usuários finais) ou uma conta de serviço (para aplicativos e cargas de trabalho).

Para conseguir as permissões necessárias para concluir o tutorial, peça ao administrador para conceder a você os seguintes papéis do IAM no seu projeto:

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 por meio de papéis personalizados ou de outros papéis predefinidos.

Console

  1. No console do Google Cloud, acesse a página do seletor de projetos.

    Acessar o seletor de projetos

  2. Selecione ou crie um projeto do Google Cloud para ser o projeto de hospedagem do 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. Verifique se a versão mais recente da Google Cloud CLI está instalada. Execute o comando a seguir no Cloud Shell:

      gcloud components update

  3. Crie ou selecione um novo projeto, HOST_PROJECT_ID, para ser o projeto host do App Hub.

    • Crie um projeto do Google Cloud:

      gcloud projects create HOST_PROJECT_ID
    • Selecione o projeto do Google Cloud que você criou:

      gcloud config set project HOST_PROJECT_ID
  4. Ative as APIs :

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

Como preparar o ambiente

Para ajudá-lo a implantar essa solução com esforço mínimo, é fornecida uma configuração do Terraform no GitHub. A configuração do Terraform define todos os recursos do Google Cloud necessários para a solução. Faça o download da configuração do Terraform no GitHub, personalize o código conforme necessário e implante a solução usando a CLI do Terraform. Depois de implantar a solução, é possível continuar usando o Terraform para gerenciá-la.

Cargas de trabalho e serviços do App Hub com um balanceador de carga e um grupo gerenciado de instâncias.
Figura 1. Serviços e cargas de trabalho do App Hub com um balanceador de carga e um grupo gerenciado de instâncias.

Confira a seguir o fluxo de processamento de solicitações da topologia implantada pela solução de VM gerenciada com balanceamento de carga.

  1. O usuário faz uma solicitação ao aplicativo, que é implantado no Compute Engine. O Cloud Load Balancing recebe essa solicitação.

  2. Cloud Load Balancing roteia o tráfego para os grupos de instâncias gerenciadas do Compute Engine usando informações na regra de encaminhamento, no mapa de URL e no serviço de back-end.

Configurar o cliente do Terraform

É possível executar o Terraform no Cloud Shell ou no seu host local. Este tutorial descreve como executar o Terraform no Cloud Shell, que tem o Terraform pré-instalado e configurado para autenticar com o Google Cloud.

O código do Terraform para esta solução está disponível em um repositório do GitHub.

  1. No Cloud Shell, clone o repositório do GitHub para o Cloud Shell.

    git clone https://github.com/terraform-google-modules/terraform-docs-samples
    
  2. No Cloud Shell, verifique se o diretório de trabalho atual é terraform-docs-samples/lb/regional_external_http_load_balancer. Esse é o diretório que contém os arquivos de configuração do Terraform para a solução. Se você precisar mudar para esse diretório, execute o seguinte comando:

    cd terraform-docs-samples/lb/regional_external_http_load_balancer 
    
  3. Inicialize o Terraform executando o seguinte comando:

    terraform init
    

    Aguarde até ver a seguinte mensagem:

    Terraform has been successfully initialized!
    

Validar e revisar a configuração do Terraform

  1. Verifique se o diretório de trabalho atual é terraform-docs-samples/lb/regional_external_http_load_balancer. Se não estiver, acesse esse diretório.

  2. Verifique se a configuração do Terraform não tem erros:

    terraform validate
    

    Se o comando retornar algum erro, faça as correções necessárias na configuração e execute o comando terraform validate novamente. Repita essa etapa até o comando retornar a seguinte mensagem:

    Success! The configuration is valid.
    
  3. Analise os recursos definidos na configuração:

    terraform plan
    

    A saída do comando terraform plan é uma lista dos recursos provisionados pelo Terraform quando você aplica a configuração.

    Se você quiser fazer alterações, edite a configuração e execute os comandos terraform validate e terraform plan novamente.

Provisionar os recursos

Quando nenhuma outra alteração for necessária na configuração, implante os recursos:

  1. Verifique se o diretório de trabalho atual é terraform-docs-samples/lb/regional_external_http_load_balancer. Se não estiver, acesse esse diretório.

  2. Aplique a configuração do Terraform:

    terraform apply
    

    O Terraform exibe uma lista dos recursos que serão criados.

  3. Quando for solicitado que você execute as ações, digite yes.

    O Terraform exibe mensagens mostrando o progresso da implantação.

    Se não for possível concluir a implantação, o Terraform exibirá os erros que causaram a falha. Analise as mensagens de erro e atualize a configuração para corrigi-los. Em seguida, execute o comando terraform apply novamente.

    Depois que todos os recursos forem criados, o Terraform exibirá a seguinte mensagem:

    Apply complete!
    

Aguarde até que o Terraform exiba a mensagem "Apply complete!".

O Cloud Load Balancing distribui o tráfego para a regra de encaminhamento, o mapa de URL, o serviço de back-end e um MIG do Compute Engine. O serviço de back-end, o mapa de URL e as regras de encaminhamento se tornam serviços descobertos no projeto host do App Hub. O MIG do Compute Engine se torna uma carga de trabalho descoberta no projeto host do App Hub.

Quando você não precisar mais da solução, exclua a implantação para evitar o faturamento contínuo dos recursos do Google Cloud. Para mais informações, consulte Excluir a implantação.

Conceder permissões do IAM

Forneça os papéis e as permissões do IAM apropriados ao projeto host do App Hub.

Console

  1. Para ter as permissões necessárias para concluir este tutorial, peça ao administrador para conceder a você os papéis do IAM necessários no projeto:

    1. No console do Google Cloud, abra a página IAM.

      Acessar IAM

    2. Clique em Conceder acesso. O painel Conceder acesso será aberto.

    3. No campo Novos participantes, insira o endereço de e-mail da pessoa que vai administrar o App Hub, a função Administrador do App Hub no projeto de hospedagem.

    4. Clique em Selecionar um papel e, no campo Filtro, insira App Hub.

    5. Selecione a função Administrador do App Hub.

    6. Clique em Adicionar outro papel e, na lista Selecionar um papel, selecione Leitor de monitoramento.

    7. Clique em Salvar.

gcloud

  1. Para conceder as funções a pessoas que vão usar o App Hub, repita o comando a seguir substituindo as funções do IAM, conforme necessário. Para mais informações, consulte Papéis e permissões do App Hub.

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

    Substitua HOST_PROJECT_ADMIN pelo usuário que tem a função de administrador do App Hub no projeto host. Esse valor tem o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.

  2. Conceda a função de administrador do App Hub no projeto de serviço às pessoas que administram o App Hub. Eles precisam ter o papel de administrador do App Hub para adicionar projetos de serviço ao projeto host. É necessário ter pelo menos uma pessoa com essa função para cada projeto de serviço. Neste exemplo, o projeto host atua como o projeto de serviço.

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

    Substitua SERVICE_PROJECT_ID pelo nome do HOST_PROJECT_ID.

  3. Conceda o papel de leitor de monitoramento no projeto host às pessoas que administram o App Hub. Eles precisam ter o papel de leitor de monitoramento no projeto host para conferir as métricas.

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

Anexar um projeto de serviço

Anexe o projeto host em que você implantou os recursos como o projeto de serviço.

Console

  1. No console do Google Cloud, acesse a página Configurações do App Hub.

    Acesse configurações

  2. Na página Configurações, clique em Anexar projetos.

  3. No painel que abrir, pesquise projetos na lista exibida e selecione as caixas de seleção dos projetos de serviço do App Hub.

  4. Clique em Selecionar. A tabela Attached Service Project(s) mostra o projeto host selecionado como o projeto de serviço.

  5. Clique em Fechar.

gcloud

Adicione seu projeto host como o projeto de serviço ao projeto host do App Hub.

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

Criar um aplicativo

Crie um aplicativo para ser o contêiner dos seus serviços e cargas de trabalho.

Console

  1. Verifique se você está no projeto host do App Hub.
  2. No console do Google Cloud, acesse a página Aplicativos do App Hub.

    Acesse Aplicativos

  3. Clique em Criar aplicativo.

  4. Na página Criar aplicativo, no painel Escolher região e nome do aplicativo, selecione Regional.

  5. Na lista Região, selecione us-west1.

  6. No campo Nome do aplicativo, digite tutorial-application.

  7. Insira um Nome de exibição, Tutorial e clique em Continuar.

  8. No painel Adicionar atributos, na lista Gravidade, selecione Alta. A importância indica o quanto um aplicativo, serviço ou carga de trabalho é importante para as operações comerciais.

  9. No campo Ambiente, para indicar o estágio do ciclo de vida do software, selecione Produção.

  10. Clique em Continuar.

  11. No painel Adicionar proprietários, adicione os seguintes detalhes para Proprietários do desenvolvedor, Proprietários do operador e Proprietários da empresa. É necessário inserir o endereço de e-mail do proprietário se você adicionar um nome de exibição.

    1. Insira o nome de exibição de um proprietário.
    2. Insira o endereço de e-mail do proprietário. Esse valor precisa ter o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.
  12. Repita essas etapas para cada desenvolvedor, operador e proprietário de empresa.

  13. Clique em Criar.

O novo aplicativo é criado e listado na página Aplicativos.

gcloud

  1. Selecione o projeto host do App Hub que você criou:

    gcloud config set project HOST_PROJECT_ID
  2. Crie um novo aplicativo chamado tutorial-application na região us-west1 e atribua um nome de exibição, Tutorial:

    gcloud apphub applications create tutorial-application \
        --display-name='Tutorial' \
        --scope-type=REGIONAL \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    
  3. Liste os aplicativos no seu projeto host do App Hub:

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

    Você verá uma saída semelhante a esta:

    ID                    DISPLAY_NAME  CREATE_TIME
    tutorial-application  Tutorial      2023-10-31T18:33:48
    
  4. Atualize seu app com os atributos criticality-type, environment-type e proprietário:

    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
    

    Substitua:

    • DISPLAY-NAME-DEVELOPER, DISPLAY-NAME-OPERATOR e DISPLAY-NAME-BUSINESS: mostram os nomes dos proprietários do desenvolvedor, do operador e da empresa, respectivamente.
    • EMAIL-NAME-DEVELOPER, EMAIL-NAME-OPERATOR e EMAIL-NAME-BUSINESS: endereços de e-mail dos proprietários do desenvolvedor, do operador e da empresa, respectivamente. Esses valores precisam ter o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.

    Observações:

    • criticality-type: indica a importância de um aplicativo, serviço ou carga de trabalho para as operações de negócios.
    • environment-type: indica as fases do ciclo de vida do software.
  5. Confira os detalhes do app que você criou:

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

    O comando retorna informações no formato YAML, semelhante a este:

    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'
    

Registrar serviços e uma carga de trabalho

O registro de serviços e cargas de trabalho os adiciona a um aplicativo.

Console

  1. No console do Google Cloud, acesse a página Aplicativos do App Hub.

    Acesse Aplicativos

  2. Clique no nome do seu aplicativo, Tutorial. A guia Serviços e cargas de trabalho é mostrada com uma lista de serviços e cargas de trabalho registrados nos projetos de serviço do App Hub.

  3. Registre um serviço:

    1. Na guia Serviços e cargas de trabalho, clique em Registrar serviço/carga de trabalho.
    2. Na página Registrar serviço ou carga de trabalho, no painel Selecionar recurso, clique em Procurar para selecionar o serviço ou a carga de trabalho como um Recurso.
    3. No painel Selecionar recurso, escolha o Nome do serviço, l7-xlb-backend-service, e clique em Selecionar.
    4. No painel Select resource, insira o Nome do recurso, tutorial-service-backend.
    5. Insira um Nome de exibição, Backend service e clique em Continuar.
    6. No painel Add attributes, na lista Criticality, para indicar a importância do aplicativo, selecione High.
    7. No campo Ambiente, para indicar o estágio do ciclo de vida do software, selecione Produção.
    8. Clique em Continuar.
    9. No painel Adicionar proprietários, adicione os seguintes detalhes conforme necessário para Proprietários do desenvolvedor, Proprietários do operador e Proprietários da empresa. É necessário inserir o endereço de e-mail do proprietário se você adicionar um nome de exibição.
      1. Insira o nome de exibição de um proprietário.
      2. Insira o endereço de e-mail do proprietário. Esse valor precisa ter o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.
    10. Repita essas etapas para cada desenvolvedor, operador e proprietário de empresa.
    11. Clique em Registrar.

    Na guia Serviços e cargas de trabalho, na seção Serviços e cargas de trabalho registrados, você pode conferir o novo serviço adicionado.

  4. Repita as etapas anteriores para registrar os outros serviços como tutorial-service-forwarding-rule e tutorial-service-url-map, respectivamente.

  5. Para registrar uma carga de trabalho, repita as etapas anteriores para registrar um serviço com as seguintes exceções:

    1. No painel Registrar serviço ou carga de trabalho, na seção Escolher serviço ou carga de trabalho, selecione o Nome da carga de trabalho, l7-xlb-backend-example, e clique em Continuar.
    2. No painel Select resource, insira o Nome do recurso, tutorial-workload-mig.
    3. Insira um Nome de exibição, Workload instance group e clique em Continuar. Na guia Serviços e cargas de trabalho, na seção Serviços e cargas de trabalho registrados, você pode conferir a nova carga de trabalho adicionada.

gcloud

  1. Adicione uma pessoa com permissões de editor do App Hub:

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

    Substitua APP_HUB_EDITOR pelo usuário que tem a função de editor do App Hub no projeto host do App Hub. Esse valor tem o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.

  2. Listar todos os serviços descobertos no projeto host do App Hub. Esse comando retorna os serviços que estão disponíveis para registro em um aplicativo.

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

    Você verá uma saída semelhante a esta:

    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'}
    

    Copie os IDs do serviço, por exemplo, BACKEND_SERVICE_SP2_ID da saída para usar na próxima etapa.

  3. Registre os serviços da etapa anterior no seu aplicativo. Copie os IDs de serviço do campo de saída na etapa 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
    

    Substitua:

    • BACKEND_SERVICE_ID: o serviço ID do serviço de back-end que você quer registrar.
    • FORWARDING_RULE_SERVICE_ID: o serviço ID da regra de encaminhamento que você quer registrar.
    • URL_MAP_SERVICE_ID: o serviço ID do mapa de URL que você quer registrar.
  4. Lista todos os serviços registrados no aplicativo.

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

    Você verá uma saída semelhante a esta:

    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
    

    Os serviços registrados, mas separados, são indicados por um valor vazio no campo SERVICE_REFERENCE. Para mais informações sobre os status de registro, consulte as propriedades e os atributos do App Hub.

  5. Liste todas as cargas de trabalho descobertas no projeto host do App Hub. Esse comando retorna as cargas de trabalho que estão disponíveis para registro em um aplicativo.

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

    Você verá uma saída semelhante a esta:

    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'}
    

    Copie o ID da carga de trabalho da saída para usar na próxima etapa.

  6. Registre a carga de trabalho da etapa anterior no seu aplicativo como tutorial-workload-mig. Copie o ID da carga de trabalho do campo de saída na etapa 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
    

    Substitua WORKLOAD_ID pelo ID da carga de trabalho que você quer registrar.

  7. Lista todas as cargas de trabalho registradas no aplicativo.

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

    Você verá uma saída semelhante a esta:

    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
    

    As cargas de trabalho registradas, mas separadas, são indicadas por um valor vazio no campo WORKLOAD_REFERENCE. Para mais informações sobre os status de registro, consulte as propriedades e os atributos do App Hub.

Conferir todos os serviços e cargas de trabalho

É possível conferir detalhes dos serviços e dos workloads nos projetos de serviço anexados ao projeto host do App Hub.

  1. No console do Google Cloud, acesse a página Serviços e cargas de trabalho do App Hub.

    Acesse "Serviços e cargas de trabalho"

    Todos os serviços e workloads dos projetos de serviço do App Hub anexados são mostrados.

  2. Na lista Região, selecione us-west1. A carga de trabalho do grupo de instâncias de carga de trabalho é mostrada com detalhes como Tipo de hub de apps, Crítica e Registrado em.

  3. Para filtrar os serviços ou cargas de trabalho com base no estado deles:

    1. No campo Filtro, selecione opções como Status do registro.
    2. Clique em Registrado. Uma lista de serviços e cargas de trabalho registrados no aplicativo vai aparecer.

Ver métricas do aplicativo

É possível conferir as métricas do sistema dos aplicativos criados no projeto de host do App Hub. Essas métricas correspondem aos indicadores de ouro: tráfego, erros, latência e saturação que ajudam a monitorar o desempenho e a integridade do aplicativo.

  1. No console do Google Cloud, acesse a página Aplicativos do App Hub.

    Acesse Aplicativos

  2. Clique no nome do aplicativo, Tutorial.

    A guia Serviços e cargas de trabalho é mostrada com os metadados dos serviços e das cargas de trabalho registrados no aplicativo.

  3. Para conferir as métricas do sistema de serviços e cargas de trabalho registrados, clique em Métricas.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

Excluir os recursos do App Hub

Console

  1. No console do Google Cloud, acesse a página Aplicativos do Hub de apps.

    Acesse Aplicativos

  2. Clique no nome de um aplicativo, Tutorial.

  3. Na guia Serviços e cargas de trabalho, na seção Serviços e cargas de trabalho registrados, clique no nome de um serviço.

  4. Na página Serviços e cargas de trabalho, clique em Cancelar registro.

    Um alerta notifica que o serviço não está registrado.

  5. Na guia Serviços e cargas de trabalho, na seção Serviços e cargas de trabalho registrados, clique no nome de uma carga de trabalho.

  6. Na guia Detalhes, clique em Cancelar registro.

    Um alerta notifica que a carga de trabalho não está registrada.

  7. Acesse a página Aplicativos do hub.

    Acesse Aplicativos

  8. Clique no nome de um aplicativo.

  9. Na página tutorial-application, clique em Delete.

  10. No console do Google Cloud, acesse a página Configurações do App Hub.

    Acesse configurações

  11. Na página Configurações, marque a caixa de seleção do projeto de serviço que você quer remover do projeto de host do App Hub.

  12. Clique em Desanexar projetos.

gcloud

  1. Liste os serviços registrados no aplicativo:

    gcloud apphub applications services list \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    
  2. Cancele o registro dos serviços do aplicativo:

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

    SERVICE_NAME pelo nome do serviço;

    Os serviços agora são serviços descobertos que podem ser registrados no aplicativo.

  3. Liste as cargas de trabalho registradas no aplicativo:

    gcloud apphub applications workloads list \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    
  4. Cancele o registro da carga de trabalho no aplicativo:

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

    Substitua WORKLOAD_NAME pelo nome da carga de trabalho.

    A carga de trabalho agora é uma carga de trabalho descoberta que pode ser registrada no aplicativo.

  5. Exclua o aplicativo:

    gcloud apphub applications delete tutorial-application \
      --project=HOST_PROJECT_ID \
      --location=us-west1
    
  6. Remova o projeto de serviço do projeto host do App Hub:

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

Excluir a implantação

Quando você não precisar mais da solução, exclua todos os recursos para evitar o faturamento contínuo dos recursos criados nesta solução.

Use este procedimento se você implantou a solução usando a CLI do Terraform.

  1. No Cloud Shell, verifique se o diretório de trabalho atual é terraform-docs-samples/lb/regional_external_http_load_balancer. Se não estiver, acesse esse diretório.

  2. Remova os recursos provisionados pelo Terraform:

    terraform destroy
    

    O Terraform exibe uma lista dos recursos que serão destruídos.

  3. Quando for solicitado que você execute as ações, digite yes.

    O Terraform exibe as mensagens que mostram o progresso. Depois que todos os recursos forem excluídos, o Terraform exibirá a seguinte mensagem:

    Destroy complete!
    

Quando você não precisar mais do projeto do Google Cloud usado na solução, exclua-o.

Exclua o projeto

Console

  1. No console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir.
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluir o projeto.

gcloud

Exclua um projeto do Google Cloud:

gcloud projects delete PROJECT_ID

Substitua PROJECT_ID pelos IDs do projeto host ou de serviço.

A seguir