Etapa 4: configurar componentes

Esta página descreve a quarta etapa para implantar o Cortex Framework Data Foundation, o núcleo do Cortex Framework. Nesta etapa, você configura os serviçosGoogle Cloud necessários para implantação.

Ativar Google Cloud serviços

Nesta seção, você vai ativar os seguintes serviços Google Cloud no seu projetoGoogle Cloud :

  • Instância e conjuntos de dados do BigQuery
  • API Cloud Build
  • Buckets do Cloud Storage
  • Conta de serviço
  • API Cloud Resource Manager
  • Execuções de fluxo de trabalho (se você estiver implantando o Cortex para Meridian)
  • AI Platform (ao implantar o Cortex para Meridian)

Ative esses serviços Google Cloud usando o Cloud Shell:

  1. Copie e cole este comando:

    gcloud config set project SOURCE_PROJECT
    
    gcloud services enable bigquery.googleapis.com \
                          cloudbuild.googleapis.com \
                          composer.googleapis.com \
                          storage-component.googleapis.com \
                          cloudresourcemanager.googleapis.com \
                          dataflow.googleapis.com \
                          datacatalog.googleapis.com \
                          workflowexecutions.googleapis.com \
                          workflows.googleapis.com \
                          aiplatform.googleapis.com
    

    Substitua SOURCE_PROJECT pelo ID do projeto de origem.

  2. Verifique se os serviços Google Cloud estão ativados se você receber uma mensagem de sucesso.

Opcional. É possível ativar os seguintes serviços Google Cloud no seuGoogle Cloud projeto:

  • Cloud Composer para processamento de captura de dados alterados (CDC), nivelamento de hierarquia (somente SAP) e replicação de dados (somente não SAP) usando grafos acíclicos dirigidos (DAGs). Para configurar uma instância, consulte a documentação do Cloud Composer.
  • Looker para se conectar a modelos de relatórios.
  • Os conjuntos de dados vinculados do compartilhamento do BigQuery (antigo Analytics Hub) são usados para algumas fontes externas, como o DAG de clima. Você pode preencher essa estrutura com qualquer outra fonte disponível para cenários avançados.
  • Dataflow: ferramenta de integração para muitos dos conjuntos de dados de marketing, como o Google Ads.
  • Para o Cortex Framework com o Meridian:
    • Colab Enterprise: executar o notebook do Colab Enterprise durante e após a execução com acesso ao seguinte:
    • O notebook e o arquivo de configuração no Cloud Storage.
    • Consulte as tabelas e visualizações relevantes do BigQuery.
    • Grave os resultados de volta no Cloud Storage.
    • Workflows: execução do fluxo de trabalho e do Cloud Build para acionar execuções de notebooks do Colab Enterprise.

Conceder permissões ao usuário que está executando

Conceda as seguintes permissões ao usuário de execução usando o consoleGoogle Cloud ou a Google Cloud CLI para executar a implantação no projeto em que o Cloud Build é acionado:

  • Consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer)
  • Leitor de objetos do Storage (roles/storage.objectViewer)
  • Administrador do Storage (roles/storage.admin)
  • Editor do Cloud Build (roles/cloudbuild.builds.editor)
  • Leitor do projeto (roles/reader)
  • Usuário de jobs do BigQuery (roles/bigquery.jobUser)
  • Editor de dados do BigQuery (roles/bigquery.dataEditor)

Console

  1. Abra a página do IAM no console Google Cloud :

    Abrir a página do IAM

  2. Selecione o projeto e clique em Continuar.

  3. Clique em Conceder acesso.

  4. Insira o endereço de e-mail do usuário que está executando a ação.

  5. Selecione os seguintes papéis no menu suspenso:

    • Consumidor do Service Usage (roles/serviceusage.serviceUsageConsumer)
    • Leitor de objetos do Storage (roles/storage.objectViewer)
    • Administrador do Storage (roles/storage.admin)
    • Editor do Cloud Build (roles/cloudbuild.builds.editor)
    • Leitor do projeto (roles/reader)
    • Usuário de jobs do BigQuery (roles/bigquery.jobUser)
    • Editor de dados do BigQuery (roles/bigquery.dataEditor)
  6. Clique em Salvar.

gcloud

Para conceder um papel a um usuário, execute o comando add-iam-policy-binding:

  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/serviceusage.serviceUsageConsumer"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/storage.objectViewer"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/storage.admin"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/cloudbuild.builds.editor"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/reader"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/bigquery.jobUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="user:USER_EMAIL" \
    --role="roles/bigquery.dataEditor"

Substitua:

  • SOURCE_PROJECT com o ID do projeto de origem.
  • USER_EMAIL com o e-mail do usuário que está executando. Por exemplo, user:my-user@example.com. Para ver uma lista completa dos tipos principal ou member, consulte a referência de vinculação de políticas.

Criar e configurar a conta de serviço do Cloud Build

O Cloud Build usa uma conta de serviço para executar builds em seu nome. Esta seção orienta você na criação de uma conta de serviço dedicada para implantações do Cortex Framework e na concessão das permissões necessárias à conta de serviço do Cloud Build.

Criar uma nova conta de serviço

Crie uma conta de serviço dedicada para implantar o Cortex Framework e aumentar a segurança e o controle. Depois de criar a nova conta de serviço, especifique essa conta de serviço durante o processo de implantação usando o parâmetro de substituição _BUILD_ACCOUNT.

Antes de começar, ative a API IAM, configure a autenticação e entenda as contas de serviço e os papéis do IAM. Para mais informações, consulte Criar contas de serviço.

Crie essa nova conta de serviço usando o console Google Cloud ou a Google Cloud CLI.

Console

  1. Acesse a página Contas de serviço.

    Contas de serviço

    As etapas restantes aparecem no console do Google Cloud .

  2. Selecionar um projeto do Google Cloud

  3. Insira uma conta de serviço e um nome de exibição, com descrição e no console Google Cloud . O console Google Cloud gera um ID de conta de serviço com base nesse nome. Edite o ID se for necessário. Não será possível mudar o ID depois. Use os seguintes valores padrão para a conta de serviço:

    • Nome: "cortex-deployer".
    • Descrição: "Conta de serviço do Cortex Deployer".
    • Nome de exibição: "Cortex Deployer".
  4. Conceda aos usuários acesso a essa conta de serviço.

    1. Adicione o ID de todos os usuários (incluindo o seu) que podem executar a implantação pela conta de serviço.
    2. Atribua o papel Criador de token da conta de serviço. Para mais informações sobre esse papel, consulte Papéis de contas de serviço.
  5. Clique em Concluído para terminar a criação da conta de serviço.

Se você já tiver uma conta de serviço, siga estas etapas:

  1. Acesse Contas de serviço.
  2. Selecione a conta de serviço.
  3. Clique na guia Principais com acesso.
  4. Clique em Permitir acesso.
    1. Adicione o ID de todos os usuários (incluindo o seu) que podem executar a implantação pela conta de serviço.
    2. Atribua o papel Criador de token da conta de serviço.

gcloud

  1. Crie uma conta de serviço usando uma política do IAM com o seguinte comando:

    gcloud iam service-accounts create cortex-deployer \
    --description="Cortex Deployer Service Account" \
    --display-name="Cortex Deployer"
    
  2. Adicione a política do IAM ao seu projeto Google Cloud com o seguinte comando:

    gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role="roles/cloudbuild.builds.editor"
    
  3. Adicione o ID de todos os usuários (incluindo o seu) que podem executar a implantação pela conta de serviço e atribua a eles o papel de Criador de token da conta de serviço com o seguinte comando:

    gcloud iam service-accounts add-iam-policy-binding cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com \
    --member="user:USER_EMAIL" \
    --role="roles/iam.serviceAccountTokenCreator"
    

    Substitua:

    • SOURCE_PROJECT com o projeto de origem para implantação da Data Foundation do Cortex Framework.
    • USER_EMAIL com o e-mail do usuário que está executando.

Para mais informações sobre como criar uma conta de serviço, consulte Criar uma conta de serviço.

Conceder permissões

A conta de serviço do Cloud Build precisa de permissões específicas no projeto de origem (e no projeto de destino, se você estiver fazendo a implantação em um projeto separado). Conceda os papéis a seguir usando o console do Google Cloud ou a Google Cloud CLI:

  • Conta de serviço do Cloud Build (roles/cloudbuild.builds.builder)
  • Usuário da conta de serviço (roles/iam.serviceAccountUser)
  • Editor de dados do BigQuery (roles/bigquery.dataEditor)
  • Usuário de jobs do BigQuery (roles/bigquery.jobUser)
  • Gravador de registros (roles/logging.logWriter)
  • Administrador do Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin - se estiver implantando o Cortex para Meridian)
  • Usuário do objeto de armazenamento (roles/storage.objectUser - se você estiver implantando o Cortex para Meridian)
  • Editor do Workflows (roles/workflows.editor - se estiver implantando o Cortex para Meridian)

Console

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

    Acessar IAM

  2. Selecione o projeto de origem.

  3. Clique em Conceder acesso.

  4. Adicione a conta de serviço padrão do Cloud Build da etapa anterior como uma nova conta principal.

  5. No menu suspenso Selecionar um papel, pesquise Conta de serviço do Cloud Build e clique em Conta de serviço do Cloud Build.

  6. Repita a etapa anterior para adicionar as outras funções:

    • Usuário da conta de serviço
    • Editor de dados do BigQuery
    • Usuário de jobs do BigQuery
    • Gravador de registros
    • Administrador do Colab Enterprise (se estiver implantando o Cortex para Meridian)
    • Usuário do objeto de armazenamento (ao implantar o Cortex para Meridian)
    • Editor do Workflows (se você estiver implantando o Cortex para Meridian)
  7. Clique em Salvar.

  8. Verifique se a conta de serviço e os papéis correspondentes estão listados na página do IAM. Você concedeu um papel do IAM.

gcloud

Use o comando a seguir para conceder os papéis à conta de serviço do Cloud Build:

  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/cloudbuild.builds.builder"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/iam.serviceAccountUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/bigquery.dataEditor"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/bigquery.jobUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/logging.logWriter"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/aiplatform.colabEnterpriseAdmin"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/storage.objectUser"
  gcloud projects add-iam-policy-binding SOURCE_PROJECT \
      --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
      --role="roles/workflows.editor"

Substitua:

  • SOURCE_PROJECT com o ID do projeto de origem.
  • CLOUD_BUILD_SA com a conta de serviço do Cloud Build, no formato CLOUD_BUILD_SA@SOURCE_PROJECT.gserviceaccount.com.

Para mais informações, consulte Conceder um papel à conta de serviço do Cloud Build usando a página do IAM e Definir e gerenciar políticas do IAM em buckets.

Criar outra conta de serviço para o Cortex para Meridian

Uma conta de serviço separada é necessária para o Meridian ao implantar o Cortex Framework. Se você não estiver fazendo a implantação para o Meridian, pule esta etapa. É necessário ter uma conta de serviço separada para o seguinte:

  • Executar o fluxo de trabalho e o Cloud Build para acionar execuções de notebooks do Colab Enterprise.
  • Executar o notebook do Colab Enterprise com acesso a:
    • Notebook e arquivo de configuração no Cloud Storage.
    • Consulte as tabelas e visualizações relevantes do BigQuery.
    • Grave os resultados de volta no Cloud Storage.

Use o seguinte comando para criar uma conta de serviço do Cortex para o Meridian:


 gcloud iam service-accounts create cortex-meridian-colab-runner --project=SOURCE_PROJECT \
        --description="Cortex for Meridian Colab Runner Service Account" \
        --display-name="Cortex Meridian Runner"

Substitua:

  • SOURCE_PROJECT com o ID do projeto em que o Cortex para Meridian está implantado.
  • cortex-meridian-colab-runner: se quiser, use um ID de conta de serviço diferente. Considere que cortex-meridian-colab-runner é o padrão e que a mudança pode exigir ajustes em outros comandos.

Os papéis mínimos necessários para uma conta de serviço dedicada do Cortex para Meridian são os seguintes:

  • Leitor de dados do BigQuery (roles/bigquery.dataViewer)
  • Usuário de jobs do BigQuery (roles/bigquery.jobUser)
  • Usuário de sessão de leitura do BigQuery (roles/bigquery.readSessionUser)
  • Editor do Cloud Build (roles/cloudbuild.builds.editor)
  • Administrador do Colab Enterprise (roles/aiplatform.colabEnterpriseAdmin)
  • Gravador de registros (roles/logging.logWriter)
  • Administrador do ambiente de execução do notebook (aiplatform.notebookRuntimeAdmin)
  • Administrador do Storage (roles/storage.admin)
  • Usuário do objeto de armazenamento (roles/storage.objectUser)
  • Agente de serviço da Vertex AI Colab (roles/aiplatform.colabServiceAgent)

Use o comando a seguir para conceder os papéis à conta de serviço dedicada do Cortex para Meridian:

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/bigquery.dataViewer'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/bigquery.jobUser'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/bigquery.readSessionUser'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/cloudbuild.builds.editor'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/aiplatform.colabEnterpriseAdmin'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/logging.logWriter'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/aiplatform.notebookRuntimeAdmin'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/storage.admin'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/storage.objectUser'

gcloud projects add-iam-policy-binding SOURCE_PROJECT \
    --member="serviceAccount:cortex-meridian-colab-runner@SOURCE_PROJECT.iam.gserviceaccount.com" \
    --role='roles/aiplatform.colabServiceAgent'

Substitua:

  • SOURCE_PROJECT com o ID do projeto em que o Cortex para Meridian está implantado.
  • cortex-meridian-colab-runner com sua conta de serviço do Cortex para Meridian.

Um bucket de armazenamento é necessário para armazenar scripts DAG de processamento e outros arquivos temporários gerados durante a implantação. Esses scripts precisam ser movidos manualmente para uma instância do Cloud Composer ou do Apache Airflow após a implantação.

É possível criar o bucket de armazenamento na Google Cloud CLI ou no Google Cloud console seguindo estas etapas.

Console

  1. Acesse o Cloud Storage.

    Cloud Storage

  2. Crie um bucket na mesma região dos seus conjuntos de dados do BigQuery.

  3. Selecione o bucket criado.

  4. Acesse a guia Permissions.

  5. Conceda a permissão Storage Object Creator ao ID do usuário que executa o comando "Build" ou à conta de serviço criada. Para mais informações, consulte Definir uma nova condição em um bucket: console.

gcloud

  1. Crie um bucket no Cloud Shell com o seguinte comando:

    gcloud storage buckets create gs://COMPOSER_DAG_BUCKET -l REGION/MULTI_REGION
    

    Substitua:

    • COMPOSER_DAG_BUCKET com o nome do novo bucket.
    • REGION/MULTI_REGION com a mesma região dos seus conjuntos de dados do BigQuery.
  2. Use o comando a seguir para atribuir a permissão Storage Object Creator à conta de serviço:

    gcloud storage buckets add-iam-policy-binding gs://COMPOSER_DAG_BUCKET \
        --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
        --role=roles/storage.objectCreator
    

    Substitua:

    • cortex-deployer com a conta de serviço do Cloud Build.
    • COMPOSER_DAG_BUCKET com o nome do novo bucket.

Criar um bucket do Storage para registros

É possível criar um bucket específico para o processo do Cloud Build armazenar os registros. Isso é útil se você quiser restringir a uma região específica os dados que podem ser armazenados em registros. É possível criar o bucket de armazenamento para registros da Google Cloud CLI ou do console Google Cloud .

Console

Para criar um bucket específico para os registros, siga estas etapas:

  1. Acesse o Cloud Storage.

    Cloud Storage

  2. Crie um bucket na mesma região em que a implantação seria executada.

  3. Selecione o bucket criado.

  4. Acesse a guia Permissions.

  5. Conceda a permissão Storage Object Admin ao ID do usuário que executa o comando "Build" ou à conta de serviço criada. Para mais informações, consulte Definir uma nova condição em um bucket: console.

gcloud

Para criar um bucket específico para os registros, use os seguintes comandos.

  1. Crie um bucket no Cloud Shell com o seguinte comando:

    gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGION
    

    Substitua:

    • REGION/MULTI_REGION com a região escolhida para criar o bucket.
    • LOGS_BUCKET_NAME com o nome do novo bucket.
  2. Use o comando a seguir para atribuir a permissão Storage Object Admin à conta de serviço:

    gcloud storage buckets add-iam-policy-binding gs://LOGS_BUCKET_NAME \
        --member="serviceAccount:cortex-deployer@SOURCE_PROJECT.iam.gserviceaccount.com" \
        --role=roles/storage.objectAdmin
    

    Substitua:

    • cortex-deployer com a conta de serviço padrão do Cloud Build.
    • LOGS_BUCKET_NAME com o nome do novo bucket.

Próximas etapas

Depois de concluir essa etapa, siga para as etapas de implantação a seguir:

  1. Estabeleça cargas de trabalho.
  2. Clone o repositório.
  3. Determine o mecanismo de integração.
  4. Configurar componentes (esta página).
  5. Configurar a implantação.
  6. Executar a implantação.