Crie uma aplicação do App Hub com um único projeto


O App Hub permite-lhe gerir e ver recursos de infraestrutura de Google Cloud projetos através de aplicações do App Hub. Para criar estas aplicações do App Hub, precisa de um projeto anfitrião do App Hub ao qual pode anexar projetos de serviço que contenham Google Cloud recursos.

Este tutorial mostra como configurar uma aplicação do App Hub num único projeto que funciona como o projeto de anfitrião e serviço do App Hub. Num projeto de serviço, implementa um grupo de instâncias gerido (MIG) com balanceamento de carga e anexa o projeto de serviço ao projeto anfitrião do App Hub. Em seguida, numa aplicação no projeto anfitrião do App Hub, regista e monitoriza todos os recursos de infraestrutura do projeto de serviço como serviços e cargas de trabalho do App Hub.

Este tutorial destina-se a pessoas que configuram e administram o App Hub. Deve ter alguma experiência com o Cloud Load Balancing.

Objetivos

Este tutorial mostra como concluir as seguintes tarefas:

  1. Crie ou selecione um Google Cloud projeto. Este projeto é o seu projeto de serviço e anfitrião do App Hub. Neste projeto, ative a API App Hub.
  2. Neste projeto, use o Terraform para implementar uma rede VPC, um balanceador de carga de aplicações externo regional e um back-end de MIG para o balanceador de carga. O Application Load Balancer externo regional inclui os seguintes recursos:

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

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

  3. Atribua as funções e as autorizações adequadas a este projeto para atuar como o projeto anfitrião do App Hub.

  4. Anexe o projeto anfitrião do App Hub como um projeto de serviço do App Hub para descobrir recursos do projeto de serviço como serviços e cargas de trabalho descobertos. Google Cloud

  5. Crie uma aplicação do App Hub regional no projeto de anfitrião do App Hub.

  6. Registe serviços descobertos e uma carga de trabalho do projeto de serviço na aplicação App Hub e atribua atributos.

  7. Veja os detalhes dos serviços e das cargas de trabalho registados no App Hub.

Custos

Para uma estimativa do custo dos Google Cloud recursos que a solução de VM gerida com balanceamento de carga usa, consulte a estimativa pré-calculada na Google Cloud calculadora de preços.

Use a estimativa como ponto de partida para calcular o custo da implementação. Pode modificar a estimativa para refletir quaisquer alterações de configuração que planeie fazer aos recursos usados na solução.

A estimativa pré-calculada baseia-se em pressupostos para determinados fatores, incluindo o seguinte:

  • As Google Cloud localizações onde os recursos são implementados.
  • O tempo durante o qual 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 for o criador do projeto, é-lhe atribuída a função básica de proprietário (roles/owner). Por predefinição, esta função de Identity and Access Management (IAM) inclui as autorizações necessárias para acesso total à maioria dos Google Cloud recursos.

Se não for o criador do projeto, as autorizações necessárias têm de ser concedidas no projeto ao principal adequado. Por exemplo, um principal pode ser uma Conta Google (para utilizadores finais) ou uma conta de serviço (para aplicações e cargas de trabalho).

Para receber as autorizações de que precisa para concluir este tutorial, peça ao seu administrador que lhe conceda as seguintes funções da IAM no seu projeto:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Consola

  1. Na Google Cloud consola, aceda à página do seletor de projetos.

    Aceder ao seletor de projetos

  2. Selecione ou crie um Google Cloud projeto, para ser o projeto anfitrião do App Hub.

  3. Enable the App Hub, Cloud Resource Manager, Compute Engine, Infrastructure Manager, and Service Usage APIs.

    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 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. Certifique-se de que tem instalada a versão mais recente da Google Cloud CLI. Execute o seguinte comando a partir do Cloud Shell:

      gcloud components update

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

    • Crie um Google Cloud projeto:

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

      gcloud config set project HOST_PROJECT_ID
  4. Ative as APIs App Hub, Cloud Resource Manager, Compute Engine, Infrastructure Manager e Service Usage:

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

Preparar o ambiente

Para ajudar a implementar esta solução com o mínimo de esforço, é disponibilizada uma configuração do Terraform no GitHub. A configuração do Terraform define todos os Google Cloud recursos necessários para a solução. Transfira a configuração do Terraform do GitHub, personalize opcionalmente o código conforme necessário e, em seguida, implemente a solução através da CLI do Terraform. Depois de implementar a solução, pode continuar a usar o Terraform para a gerir.

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

Segue-se o fluxo de processamento de pedidos da topologia que a solução de VM gerida com balanceamento de carga implementa.

  1. O utilizador faz um pedido à aplicação, que está implementada no Compute Engine. O Cloud Load Balancing recebe este pedido.

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

Configure o cliente do Terraform

Pode executar o Terraform no Cloud Shell ou no seu anfitrião 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 num 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. Este é o diretório que contém os ficheiros de configuração do Terraform para a solução. Se precisar de alterar 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!
    

Valide e reveja a configuração do Terraform

  1. Certifique-se de que o diretório de trabalho atual é terraform-docs-samples/lb/regional_external_http_load_balancer. Se não for, aceda a esse diretório.

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

    terraform validate
    

    Se o comando devolver erros, faça as correções necessárias na configuração e, em seguida, execute novamente o comando terraform validate. Repita este passo até o comando devolver a seguinte mensagem:

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

    terraform plan
    

    O resultado do comando terraform plan é uma lista dos recursos que o Terraform aprovisiona quando aplica a configuração.

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

Aprovisione os recursos

Quando não forem necessárias mais alterações na configuração do Terraform, implemente os recursos.

  1. Certifique-se de que o diretório de trabalho atual é terraform-docs-samples/lb/regional_external_http_load_balancer. Se não for, aceda a esse diretório.

  2. Aplique a configuração do Terraform:

    terraform apply
    

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

  3. Quando lhe for pedido para realizar as ações, introduza yes.

    O Terraform apresenta mensagens que mostram o progresso da implementação.

    Se não for possível concluir a implementação, o Terraform apresenta os erros que causaram a falha. Reveja as mensagens de erro e atualize a configuração para corrigir os erros. Em seguida, execute novamente o comando terraform apply.

    Depois de criar todos os recursos, o Terraform apresenta a seguinte mensagem:

    Apply complete!
    

Aguarde até que o Terraform apresente a mensagem "Apply complete!" (Aplicação concluída!).

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

Quando já não precisar da solução, pode eliminar a implementação para evitar a faturação contínua dos Google Cloud recursos. Para mais informações, consulte Elimine a implementação.

Conceda autorizações de IAM

Forneça as funções e as autorizações do IAM adequadas ao projeto de anfitrião do App Hub.

Consola

Para receber as autorizações necessárias para concluir este tutorial, peça ao seu administrador que lhe conceda as funções da IAM necessárias no seu projeto:

  1. Na Google Cloud consola, aceda à página IAM.

    Aceda ao IAM

  2. Clique em Conceder acesso. O painel Conceder acesso é aberto.

  3. No campo Novos membros, introduza o endereço de email do indivíduo que vai administrar o App Hub, a função de administrador do App Hub no projeto anfitrião.

  4. Clique em Selecionar uma função e, no campo Filtro, introduza App Hub.

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

  6. Clique em Adicionar outra função e, na lista Selecionar uma função, selecione Visitante de monitorização.

  7. Clique em Guardar.

gcloud

  1. Para conceder as funções a indivíduos que vão usar o App Hub, repita o comando seguinte substituindo as funções IAM, conforme necessário. Para mais informações, consulte o artigo Funções e autorizaçõ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 utilizador que tem a função de administrador do App Hub no projeto anfitrião. Este 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 aos indivíduos que administram o App Hub. Têm de ter a função de administrador do App Hub para adicionar projetos de serviço ao projeto anfitrião. Precisa de, pelo menos, uma pessoa com esta função para cada projeto de serviço. Neste exemplo, o projeto anfitrião atua como 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 a função Leitor de monitorização no projeto anfitrião aos indivíduos que administram o App Hub. Têm de ter a função de visualizador de monitorização no projeto anfitrião para ver as métricas.

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

Anexe um projeto de serviço

Os projetos de serviço são Google Cloud projetos que contêm recursos de infraestrutura que pode registar numa aplicação do App Hub. Para mais informações, consulte Projetos de serviço. Para este tutorial, uma vez que só temos um projeto, anexe o projeto no qual implementou os recursos como o projeto de serviço do App Hub.

Consola

  1. Na Google Cloud consola, aceda à página Definições do App Hub.

    Aceda às Definições

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

  3. No painel apresentado, pesquise projetos na lista apresentada e selecione as caixas de verificação dos projetos de serviço do App Hub.

  4. Clique em Selecionar. A tabela Attached Service Project(s) (Projetos de serviço anexados) apresenta o projeto anfitrião selecionado como o projeto de serviço.

  5. Clique em Fechar.

gcloud

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

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

Depois de anexar o projeto de serviço ao projeto anfitrião do App Hub, pode ver todos os Google Cloud recursos do projeto de serviço anexado como serviços e cargas de trabalho do App Hub descobertos. Para mais informações sobre como ver estes serviços e cargas de trabalho descobertos, consulte o artigo Veja aplicações, serviços e cargas de trabalho existentes.

Crie uma aplicação

Crie uma aplicação para ser o contentor dos seus serviços e cargas de trabalho. Quando cria uma aplicação, pode atribuir propriedades imutáveis, como um tipo de âmbito ou uma localização a partir da qual quer registar recursos e atributos variáveis, como criticidade e ambiente. Pode usar os atributos das variáveis para filtrar as aplicações. Para mais informações, consulte o artigo Propriedades e atributos.

Neste tutorial, cria uma aplicação Regional para gerir recursos de uma região específica. Se tiver Google Cloud recursos nos projetos de serviço do App Hub anexados que são implementados globalmente ou em várias regiões, pode criar uma aplicação global e registar estes recursos. Para mais informações sobre como criar uma aplicação global, consulte o artigo Configure o App Hub.

Consola

  1. Certifique-se de que está no projeto anfitrião do App Hub.
  2. Na Google Cloud consola, aceda à página Aplicações do App Hub.

    Aceda a Aplicações

  3. Clique em Criar candidatura.

  4. Na página Criar aplicação, no painel Escolher região da aplicação e nome, selecione Regional.

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

  6. No campo Nome da aplicação, introduza tutorial-application. Este nome é um identificador exclusivo e é imutável depois de criar a aplicação.

  7. Introduza um Nome a apresentar, Tutorial e clique em Continuar. Este é um nome fácil de usar que pode atualizar. Para mais informações, consulte o artigo Atualize uma aplicação existente.

  8. No painel Adicionar atributos, na lista Criticidade, selecione Elevada. A criticidade indica o quão crítica é uma aplicação, um serviço ou uma carga de trabalho para as operações da sua empresa.

  9. No campo Ambiente, para indicar a fase 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 programadores, proprietários operadores e proprietários de empresas. Tenha em atenção que tem de introduzir o endereço de email do proprietário se adicionar um nome a apresentar.

    1. Introduza um nome a apresentar do proprietário.
    2. Introduza o endereço de email do proprietário. Este valor tem de ter o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.
  12. Repita estes passos para cada programador, operador e proprietário da empresa.

  13. Clique em Criar.

A nova candidatura é criada e apresentada na página Candidaturas. Tenha em atenção que apenas a regra de encaminhamento, o mapa de URLs, o serviço de back-end e o grupo de instâncias gerido (MIG) ficam disponíveis como recursos descobertos na aplicação App Hub. Para mais informações, consulte os conceitos e o modelo de dados.

gcloud

  1. Selecione o projeto anfitrião do App Hub que criou:

    gcloud config set project HOST_PROJECT_ID
  2. Crie uma nova aplicação denominada tutorial-application na região us-west1 e atribua-lhe um nome a apresentar, Tutorial. Este nome da aplicação, tutorial-application é um identificador exclusivo e é imutável depois de criar a aplicação. O nome a apresentarTutorial é um nome intuitivo que pode atualizar. Para mais informações, consulte o artigo Atualize uma aplicação existente.

    gcloud apphub applications create tutorial-application \
        --display-name='Tutorial' \
        --scope-type=REGIONAL \
        --project=HOST_PROJECT_ID \
        --location=us-west1
    
  3. Liste as aplicações no projeto anfitrião do App Hub:

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

    Vê um resultado semelhante ao seguinte:

    ID                    DISPLAY_NAME  CREATE_TIME
    tutorial-application  Tutorial      2023-10-31T18:33:48
    
  4. Atualize a sua aplicação com os atributos criticality-type, environment-type e de 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 o seguinte:

    • DISPLAY-NAME-DEVELOPER, DISPLAY-NAME-OPERATOR e DISPLAY-NAME-BUSINESS: nomes a apresentar dos proprietários do programador, do operador e da empresa, respetivamente.
    • EMAIL-NAME-DEVELOPER, EMAIL-NAME-OPERATOR e EMAIL-NAME-BUSINESS: endereços de email do programador, operador e proprietários da empresa, respetivamente. Estes valores têm de ter o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.

    Notas:

    • criticality-type: indica a importância de uma aplicação, um serviço ou uma carga de trabalho para as operações da sua empresa.
    • environment-type: indica as fases do ciclo de vida do software.
  5. Obtenha detalhes da aplicação que criou:

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

    O comando devolve informações no formato YAML, semelhantes às seguintes:

    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'
    

Registe serviços e cargas de trabalho

O registo de serviços e cargas de trabalho adiciona-os a uma aplicação que lhe permite monitorizar os recursos adicionados.

Consola

  1. Na Google Cloud consola, aceda à página Aplicações do App Hub.

    Aceda a Aplicações

  2. Clique no nome da sua aplicação, Tutorial. O separador Serviços e cargas de trabalho é apresentado com uma lista de serviços e cargas de trabalho registados que estão nos seus projetos de serviço do App Hub.

  3. Registe um serviço:

    1. No separador Serviços e cargas de trabalho, clique em Registar serviço/carga de trabalho.
    2. Na página Registar 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 Selecionar recurso, introduza o Nome do recurso, tutorial-service-backend.
    5. Introduza um Nome a apresentar, Backend service e clique em Continuar.
    6. No painel Adicionar atributos, na lista Criticidade, para indicar a importância da aplicação, selecione Alta.
    7. No campo Ambiente, para indicar a fase 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 de programadores, proprietários de operadores e proprietários de empresas. Tenha em atenção que tem de introduzir o endereço de email do proprietário se adicionar um nome a apresentar.
      1. Introduza um nome a apresentar do proprietário.
      2. Introduza o endereço de email do proprietário. Este valor tem de ter o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.
    10. Repita estes passos para cada programador, operador e proprietário da empresa.
    11. Clique em Registar.

    No separador Serviços e cargas de trabalho, na secção Serviços e cargas de trabalho registados, pode ver o novo serviço adicionado.

  4. Repita os passos anteriores para registar os outros serviços como tutorial-service-forwarding-rule e tutorial-service-url-map, respetivamente.

  5. Registe uma carga de trabalho repetindo os passos anteriores para registar um serviço com as seguintes exceções:

    1. No painel Registar serviço ou carga de trabalho, na secçã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 Selecionar recurso, introduza o Nome do recurso, tutorial-workload-mig.
    3. Introduza um Nome a apresentar, Workload instance group e clique em Continuar. No separador Serviços e cargas de trabalho, na secção Serviços e cargas de trabalho registados, pode ver a nova carga de trabalho adicionada.

gcloud

  1. Adicione um indivíduo com autorizaçõ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 utilizador que tem a função de editor do App Hub no projeto anfitrião do App Hub. Este valor tem o formato username@yourdomain, por exemplo, 222larabrown@gmail.com.

  2. Apresenta todos os serviços descobertos no projeto anfitrião do App Hub. Este comando devolve serviços que estão disponíveis para serem registados numa aplicação.

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

    Vê um resultado semelhante ao seguinte:

    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 serviços IDs, por exemplo, BACKEND_SERVICE_SP2_ID do resultado para usar no passo seguinte.

  3. Registe os serviços do passo anterior na sua aplicação. Copie os IDs dos serviços do campo de saída no passo 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 o seguinte:

    • BACKEND_SERVICE_ID: o serviço ID do serviço de back-end que quer registar.
    • FORWARDING_RULE_SERVICE_ID: o serviço ID da regra de encaminhamento que quer registar.
    • URL_MAP_SERVICE_ID: o serviço ID do mapa de URLs que quer registar.
  4. Liste todos os serviços registados na aplicação:

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

    Vê um resultado semelhante ao seguinte:

    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 registados, mas desanexados, são indicados por um valor vazio no campo SERVICE_REFERENCE. Para mais informações sobre os estados de registo, consulte as propriedades e os atributos do App Hub.

  5. Apresenta todas as cargas de trabalho descobertas no projeto anfitrião do App Hub. Este comando devolve cargas de trabalho que estão disponíveis para serem registadas numa aplicação.

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

    Vê um resultado semelhante ao seguinte:

    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 do resultado para usar no passo seguinte.

  6. Registe as cargas de trabalho do passo anterior na sua aplicação. Copie o ID da carga de trabalho do campo de saída no passo 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 quer registar.
  7. Apresentar uma lista de todas as cargas de trabalho registadas na aplicação:

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

    Vê um resultado semelhante ao seguinte:

    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 registadas, mas desassociadas, são indicadas por um valor vazio no campo WORKLOAD_REFERENCE. Para mais informações sobre os estados de registo, consulte as propriedades e os atributos do App Hub.

Veja todos os serviços e cargas de trabalho

Pode ver os detalhes dos serviços e das cargas de trabalho dos projetos de serviço anexados ao projeto anfitrião do App Hub.

  1. Na Google Cloud consola, aceda à página Serviços e cargas de trabalho do App Hub.

    Aceda a Serviços e cargas de trabalho

    São apresentados todos os serviços e cargas de trabalho dos projetos de serviços do App Hub anexados.

  2. Na lista Região, selecione us-west1. A carga de trabalho Workload instance group é apresentada com detalhes como App Hub Type, Criticality e Registered to.

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

    1. No campo Filtro, selecione filtros como Estado do registo.
    2. Clique em Registado. É apresentada uma lista de serviços e cargas de trabalho registados na aplicação.

Monitorize aplicações

A monitorização de aplicações oferece painéis de controlo prontos a usar (OOTB) para monitorizar registos, métricas e incidentes para aplicações do App Hub e os respetivos serviços e cargas de trabalho registados. Para mais informações, consulte o artigo Monitorização de aplicações. Para ver estes painéis de controlo, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Aplicações do App Hub.

    Aceda a Aplicações

  2. Efetue um dos seguintes passos:

    • Para ver o painel de controlo OOTB de nível superior que apresenta informações de resumo para uma lista de aplicações registadas no seu projeto anfitrião ou pasta com apps, clique em Ver na observabilidade.
    • Para ver o painel de controlo OOTB de uma aplicação, siga estes passos:
      1. Clique no nome da aplicação.
      2. Clique em Ver painel de controlo de observabilidade.
    • Para ver o painel de controlo OOTB de um serviço ou uma carga de trabalho específico, siga estes passos:
      1. Clique no nome da aplicação.
      2. Na linha que apresenta o nome do serviço ou da carga de trabalho, clique em O ícone do painel de controlo de observabilidade de visualização Ver painel de controlo de observabilidade.

Para mais informações sobre como ver os painéis de controlo, consulte o artigo Veja a telemetria da aplicação.

Limpar

Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.

Elimine os recursos do App Hub

Consola

  1. Na Google Cloud consola, aceda à página App Hub Aplicações.

    Aceda a Aplicações

  2. Clique no nome de uma aplicação, Tutorial.

  3. No separador Serviços e cargas de trabalho, na secção Serviços e cargas de trabalho registados, clique no nome de um serviço.

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

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

  5. No separador Serviços e cargas de trabalho, na secção Serviços e cargas de trabalho registados, clique no nome de uma carga de trabalho.

  6. No separador Detalhes, clique em Anular registo.

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

  7. Aceda à página Aplicações do App Hub.

    Aceda a Aplicações

  8. Clique no nome de uma aplicação.

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

  10. Na Google Cloud consola, aceda à página Definições do App Hub.

    Aceda às Definições

  11. Na página Definições, selecione a caixa de verificação do projeto de serviço que quer remover do projeto anfitrião do App Hub.

  12. Clique em Desassociar projetos.

gcloud

  1. Indique os serviços registados na aplicação:

    gcloud apphub applications services list \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    
  2. Anule o registo dos serviços na aplicação:

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

    Substitua SERVICE_NAME pelo nome do seu serviço. Os serviços são agora serviços descobertos que podem ser registados na aplicação.

  3. Liste as cargas de trabalho registadas na aplicação:

    gcloud apphub applications workloads list \
      --application=tutorial-application --project=HOST_PROJECT_ID \
      --location=us-west1
    
  4. Anule o registo da carga de trabalho na aplicação:

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

    Substitua WORKLOAD_NAME pelo nome da sua carga de trabalho. A carga de trabalho é agora uma carga de trabalho descoberta que pode ser registada na aplicação.

  5. Elimine a aplicação:

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

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

Elimine a implementação

Quando já não precisar da solução, para evitar a faturação contínua dos recursos que criou nesta solução, elimine todos os recursos.

Use este procedimento se tiver implementado a solução através da CLI do Terraform.

  1. No Cloud Shell, certifique-se de que o diretório de trabalho atual é terraform-docs-samples/lb/regional_external_http_load_balancer. Se não for, aceda a esse diretório.

  2. Remova os recursos aprovisionados pelo Terraform:

    terraform destroy
    

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

  3. Quando lhe for pedido para realizar as ações, introduza yes.

    O Terraform apresenta mensagens que mostram o progresso. Depois de todos os recursos serem eliminados, o Terraform apresenta a seguinte mensagem:

    Destroy complete!
    

Quando já não precisar do Google Cloud projeto que usou para a solução, pode eliminá-lo.

Elimine o projeto

Consola

  1. Na Google Cloud consola, aceda à página Gerir recursos.

    Aceda a Gerir recursos

  2. Na lista de projetos, selecione o projeto que quer eliminar e, de seguida, clique em Eliminar.
  3. Na caixa de diálogo, escreva o ID do projeto e, de seguida, clique em Encerrar para eliminar o projeto.

gcloud

Elimine um Google Cloud projeto:

gcloud projects delete PROJECT_ID

Substitua PROJECT_ID pelos IDs dos projetos do anfitrião ou do serviço.

O que se segue?