Etapa 4: configurar componentes

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

Ativar Google Cloud serviços

Nesta seção, você ativa os serviços a seguir no seu Google Cloud projeto: Google Cloud

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

Ative estes Google Cloud serviços 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 Google Cloud serviços estão ativados se você receber uma mensagem de sucesso.

Opcional. Você pode ativar os serviços a seguir no seu Google Cloud projeto: Google Cloud

  • 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 gráficos acíclicos direcionados (DAGs). Para configurar uma instância, consulte a documentação do Cloud Composer.
  • Looker para conexão a modelos de relatórios.
  • Os conjuntos de dados vinculados do BigQuery Sharing (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 de sua escolha para cenários avançados.
  • Dataflow: ferramenta de integração para muitos conjuntos de dados de marketing, como o Google Ads.
  • Para o Cortex Framework com o Meridian:
    • Colab Enterprise: execução do notebook do Colab Enterprise durante a execução e acesso ao seguinte:
    • O notebook e o arquivo de configuração no Cloud Storage.
    • Consultar visualizações e tabelas relevantes do BigQuery.
    • Gravar os resultados de volta no Cloud Storage.
    • Workflows: execução do Workflow e do Cloud Build para acionar execuções de notebooks do Colab Enterprise.

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 para maior segurança e controle. Depois de criar a nova conta de serviço você pode especificá-la conta de serviço durante o processo de implantação usando o _BUILD_ACCOUNT parâmetro de substituição.

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

Console

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

    Contas de serviço

    As etapas restantes aparecem no Google Cloud console do.

  2. Selecionar um Google Cloud projeto do

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

    • Nome: "cortex-deployer".
    • Descrição: "Conta de serviço do implantador do Cortex".
    • Nome de exibição: "Implantador do Cortex".
  4. Conceda aos usuários acesso a esta 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 de criador de token da conta de serviço. Para mais informações sobre esse papel, consulte Papéis da conta 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 de 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 Google Cloud projeto 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 pelo projeto de origem para a implantação do Cortex Framework Data Foundation.
    • USER_EMAIL pelo e-mail do usuário que está executando.

Para mais informações sobre como criar uma nova 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 implantando em um projeto separado). Conceda os papéis a seguir usando o Google Cloud console 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 você estiver implantando o Cortex para o Meridian)
  • Usuário do objeto de armazenamento (roles/storage.objectUser - se você estiver implantando o Cortex para o Meridian)
  • Editor do Workflows (roles/workflows.editor - se você estiver implantando o Cortex para o Meridian)

Console

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

    Acessar IAM

  2. Selecione o projeto de origem.

  3. Clique em Permitir acesso.

  4. Adicione a conta de serviço padrão do Cloud Build da etapa anterior como um novo 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 o restante dos papéis:

    • 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 você estiver implantando o Cortex para o Meridian)
    • Usuário do objeto de armazenamento (se você estiver implantando o Cortex para o Meridian)
    • Editor do Workflows (se você estiver implantando o Cortex para o 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 pelo ID do projeto de origem.
  • CLOUD_BUILD_SA pela 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 uma conta de serviço adicional para o Cortex para o Meridian

Uma conta de serviço separada é necessária para o Meridian ao implantar o Cortex Framework. Se você não estiver implantando para o Meridian, pule esta etapa. Uma conta de serviço separada é necessária para o seguinte:

  • Executar o Workflow 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.
    • Consultar visualizações e tabelas relevantes do BigQuery.
    • Gravar os resultados de volta no Cloud Storage.

Use o comando a seguir para criar uma conta de serviço para o 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 pelo ID do projeto em que o Cortex para o Meridian está implantado.
  • cortex-meridian-colab-runner: opcionalmente, você pode usar 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 para o Cortex para o 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 de 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 do Colab da Vertex AI (roles/aiplatform.colabServiceAgent)

Use o comando a seguir para conceder os papéis à conta de serviço dedicada para o Cortex para o 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 pelo ID do projeto em que o Cortex para o Meridian está implantado.
  • cortex-meridian-colab-runner pela sua conta de serviço para o Cortex para o Meridian.

Um bucket de armazenamento é necessário para armazenar scripts de 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 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 está executando o comando de build ou à conta de serviço que você criou. 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 pelo nome do novo bucket.
    • REGION/MULTI_REGION pela mesma região dos 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 pela conta de serviço do Cloud Build.
    • COMPOSER_DAG_BUCKET pelo nome do novo bucket.

Criar um bucket do Storage para registros

É possível criar um bucket específico para o processo de build do Cloud Build armazenar os registros. Isso é útil se você quiser restringir os dados que podem ser armazenados em registros a uma região específica. É possível criar o bucket de armazenamento para registros na Google Cloud CLI ou noconsole. 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 está executando o comando de build ou à conta de serviço que você criou. 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 comandos a seguir.

  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 pela região escolhida para criar o bucket.
    • LOGS_BUCKET_NAME pelo 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 pela conta de serviço padrão do Cloud Build.
    • LOGS_BUCKET_NAME pelo nome do novo bucket.

Próximas etapas

Depois de concluir esta etapa, avance para as seguintes etapas de implantação:

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