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ços necessários Google Cloud para a implantação.

Ativar Google Cloud serviços

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

  • 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 seguintes Google Cloud serviços no seu Google Cloud projeto:

  • Airflow Gerenciado 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 Airflow Gerenciado.
  • 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.
    • Grave 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 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 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 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 uma nova 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.
    • Grave 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 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 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 Airflow Gerenciado ou do Apache Airflow após a implantação.

É possível criar o bucket de armazenamento na Google Cloud CLI ou 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 executa 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 Google Cloud console.

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 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, passe para as seguintes etapas de implantação:

  1. Estabelecer cargas de trabalho.
  2. Clonar 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.