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:
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.comSubstitua
SOURCE_PROJECTpelo ID do projeto de origem.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
Abra a página do IAM no console Google Cloud :
Selecione o projeto e clique em Continuar.
Clique em Conceder acesso.
Insira o endereço de e-mail do usuário que está executando a ação.
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)
- Consumidor do Service Usage (
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_PROJECTcom o ID do projeto de origem.USER_EMAILcom o e-mail do usuário que está executando. Por exemplo, user:my-user@example.com. Para ver uma lista completa dos tipos principal oumember, 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
Acesse a página Contas de serviço.
As etapas restantes aparecem no console do Google Cloud .
Selecionar um projeto do Google Cloud
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".
Conceda aos usuários acesso a essa conta de serviço.
- Adicione o ID de todos os usuários (incluindo o seu) que podem executar a implantação pela conta de serviço.
- 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.
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:
- Acesse Contas de serviço.
- Selecione a conta de serviço.
- Clique na guia Principais com acesso.
- Clique em Permitir acesso.
- Adicione o ID de todos os usuários (incluindo o seu) que podem executar a implantação pela conta de serviço.
- Atribua o papel Criador de token da conta de serviço.
gcloud
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"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"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_PROJECTcom o projeto de origem para implantação da Data Foundation do Cortex Framework.USER_EMAILcom 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
No console do Google Cloud , acesse a página IAM.
Selecione o projeto de origem.
Clique em Conceder acesso.
Adicione a conta de serviço padrão do Cloud Build da etapa anterior como uma nova conta principal.
No menu suspenso Selecionar um papel, pesquise Conta de serviço do Cloud Build e clique em Conta de serviço do Cloud Build.
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)
Clique em Salvar.
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_PROJECTcom o ID do projeto de origem.CLOUD_BUILD_SAcom a conta de serviço do Cloud Build, no formatoCLOUD_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_PROJECTcom 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 quecortex-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_PROJECTcom o ID do projeto em que o Cortex para Meridian está implantado.cortex-meridian-colab-runnercom sua conta de serviço do Cortex para Meridian.
Crie um bucket de armazenamento para armazenar arquivos relacionados a DAGs
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
Acesse o Cloud Storage.
Crie um bucket na mesma região dos seus conjuntos de dados do BigQuery.
Selecione o bucket criado.
Acesse a guia
Permissions.Conceda a permissão
Storage Object Creatorao 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
Crie um bucket no Cloud Shell com o seguinte comando:
gcloud storage buckets create gs://COMPOSER_DAG_BUCKET -l REGION/MULTI_REGIONSubstitua:
COMPOSER_DAG_BUCKETcom o nome do novo bucket.REGION/MULTI_REGIONcom a mesma região dos seus conjuntos de dados do BigQuery.
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.objectCreatorSubstitua:
cortex-deployercom a conta de serviço do Cloud Build.COMPOSER_DAG_BUCKETcom 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:
Acesse o Cloud Storage.
Crie um bucket na mesma região em que a implantação seria executada.
Selecione o bucket criado.
Acesse a guia
Permissions.Conceda a permissão
Storage Object Adminao 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.
Crie um bucket no Cloud Shell com o seguinte comando:
gcloud storage buckets create gs://LOGS_BUCKET_NAME -l REGION/MULTI_REGIONSubstitua:
REGION/MULTI_REGIONcom a região escolhida para criar o bucket.LOGS_BUCKET_NAMEcom o nome do novo bucket.
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.objectAdminSubstitua:
cortex-deployercom a conta de serviço padrão do Cloud Build.LOGS_BUCKET_NAMEcom o nome do novo bucket.
Próximas etapas
Depois de concluir essa etapa, siga para as etapas de implantação a seguir:
- Estabeleça cargas de trabalho.
- Clone o repositório.
- Determine o mecanismo de integração.
- Configurar componentes (esta página).
- Configurar a implantação.
- Executar a implantação.