Como criar ambientes

Nesta página, você aprende a criar um ambiente do Cloud Composer e modificar as configurações padrão do ambiente do Airflow durante a criação.

O ambiente do Cloud Composer executa o software Apache Airflow. Ao criar um novo ambiente em um projeto do Google Cloud Platform (GCP), é possível especificar vários parâmetros como o tipo de máquina do Compute Engine ou o número de nós no cluster.

Antes de começar

Controle de acesso

  • A permissão environments.create é necessária para criar ambientes do Cloud Composer. Para mais informações, consulte Controle de acesso do Cloud Composer.

  • Se o compartilhamento restrito de domínios está ativo na organização, desative a restrição de política antes de criar um ambiente. Assim, o Cloud Composer pode aplicar as ACLs necessárias ao intervalo do Cloud Storage do ambiente. É possível reativar a restrição de política após a criação do ambiente.

  • Por padrão, os ambientes do Cloud Composer são executados como a conta de serviço padrão do Compute Engine. Durante a criação do ambiente, é possível especificar uma conta de serviço personalizada. A conta de serviço requer pelo menos as permissões fornecidas pelo papel composer.worker para acessar recursos no ambiente do Cloud Composer. Você encontra outras contas de serviço do Google na política do IAM do projeto ou no Console do GCP. Para informações sobre os tipos e papéis disponíveis, consulte Contas de serviço.

  • Se a conta de serviço personalizada precisar acessar outros recursos no projeto do Google Cloud Platform durante a execução da tarefa, adicione as permissões necessárias a essa conta. Se preferir, é possível fornecer as credenciais relevantes como uma conexão do Airflow e mencioná-la no operador.

Recursos Beta

  • É necessário ativar o suporte a recursos Beta no Console do GCP para usá-los no ambiente.

  • Ao criar um ambiente que usa recursos Beta, use também a interface Beta para atualizá-lo ou excluí-lo. Para mais informações, consulte Suporte a recursos Beta.

  • VPC compartilhada: você precisa atender a requisitos específicos de rede para usar a VPC compartilhada com o Cloud Composer. Para mais informações, consulte Como configurar a VPC compartilhada.

  • IP privado: você precisa atender a requisitos específicos de rede e peering para criar um ambiente de IP privado do Cloud Composer. Para mais informações, consulte Como configurar o IP privado.

Como criar um novo ambiente

Para criar um ambiente do Cloud Composer, faça o seguinte:

Console

  1. Abra a página Criar ambiente no Console do Google Cloud Platform.

    Abrir a página "Criar ambiente"

  2. Dê um nome para o ambiente.

    O nome precisa começar com uma letra minúscula seguida por até 63 letras minúsculas, números ou hifens. Ele não pode terminar com um hífen.

  3. Em Configuração do nó, especifique as configurações dos nós no cluster do Google Kubernetes Engine. Se você não especificar uma configuração, o padrão será usado.

    Configuração Descrição
    Contagem de nós O número de nós do Google Kubernetes Engine usado para executar o ambiente. O padrão é três. A contagem de nós é a única configuração de cluster do Google Kubernetes Engine que pode ser alterada após a criação do ambiente.
    Local (Obrigatório) A região do Compute Engine em que o ambiente é criado.
    Sufixo de zona A zona do Compute Engine em que as instâncias de máquina virtual que executam o Apache Airflow são criadas. Uma zona aleatória no local será selecionada se essa configuração não for especificada.
    Tipo de máquina O tipo de máquina do Compute Engine usado em instâncias de cluster. Ele determina o número de CPUs e a quantidade de memória do ambiente. O Cloud Composer é compatível com os tipos de máquina padrão do Compute Engine. O padrão é n1-standard-1.
    Tamanho do disco O tamanho do disco em GB usado nas instâncias de VM do nó. O mínimo é 20 GB, e o padrão é 100 GB.
    Escopos do OAuth O conjunto de escopos da API do Google disponibilizado em todas as instâncias de VM do nó. O padrão é https://www.googleapis.com/auth/cloud-platform e precisa ser incluído na lista de escopos especificados.
    Conta de serviço A conta de serviço do Google Cloud Platform que será usada pelas instâncias de VM do nó. A conta de serviço padrão do Compute Engine será usada se essa configuração não for especificada.
    Tags A lista de tags de instância aplicadas a todas as instâncias de VM do nó. As tags são usadas para identificar origens ou destinos válidos em firewalls de rede. Cada tag na lista precisa estar em conformidade com o RFC 1035.
    Versão da imagem A versão do Cloud Composer que será usada no ambiente, incluindo a do Airflow. Para informações sobre a versão padrão, consulte Lista de versões.
    Versão do Python A versão do Python que será usada no ambiente. As versões compatíveis são Python 2 e 3. A versão padrão é a 2.
  4. Em Configuração de rede, especifique as configurações da rede do cluster do Google Kubernetes Engine. Se você não especificar uma configuração, o padrão será usado.

    Configuração Descrição
    Redes As redes VPC disponíveis para o ambiente nas comunicações da máquina. O padrão é Redes neste projeto. Em VPC compartilhada, escolha Redes compartilhadas do projeto host.
    ID de rede O ID de rede da nuvem privada virtual usado nas comunicações da máquina. Ele é necessário para especificar uma sub-rede. A rede padrão será usada se essa configuração não for especificada.
    ID de sub-rede O ID da sub-rede do Compute Engine usado nas comunicações da máquina.
    Ambiente de IP privado Ativa um ambiente de IP privado do Cloud Composer. Essa configuração está desativada por padrão.
    Acesso ao mestre do GKE usando o endereço IP externo dele Permite o acesso público ao mestre do cluster do GKE. Requer o ambiente de IP privado.
    Intervalo IP do mestre do GKE O intervalo particular RFC 1918 da VPC do mestre. Essa configuração é obrigatória no ambiente de IP privado.
  5. (Opcional) Para alterar os valores padrão no arquivo de configuração do Airflow (airflow.cfg), clique em Adicionar propriedade de configuração do Airflow.

  6. (Opcional) Para configurar variáveis de ambiente, clique em Adicionar variável de ambiente. Consulte este artigo (em inglês) para ver os requisitos.

  7. (Opcional) Para adicionar um rótulo, clique em Adicionar rótulos.

    As chaves e os valores de rótulos só podem conter letras, números, traços e sublinhados. As chaves precisam começar com uma letra ou um número.

  8. Clique em Criar.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    OTHER_ARGUMENTS

Os seguintes parâmetros são necessários:

  • ENVIRONMENT_NAME é o nome do ambiente. Ele precisa corresponder ao padrão: ^[a-z](?:[-0-9a-z]{0,62}[0-9a-z])?$
  • LOCATION é a região do Compute Engine em que o ambiente está localizado.

Os seguintes argumentos são opcionais:

  • airflow-configs é uma lista de modificações de configuração SECTION_NAME-PROPERTY_NAME=VALUE do Airflow. O nome da seção e da propriedade precisam ser separados por um hífen.
  • disk-size é o tamanho do disco em GB usado nas VMs do nó. O mínimo é 20 GB, e o padrão é 100 GB.
  • env-variables é uma lista de variáveis de ambiente NAME=VALUE configuradas nos processos do servidor da Web, worker e programador do Airflow.
  • enable-private-environment ativa um ambiente de IP privado do Cloud Composer:
    • enable-private-endpoint ativa o acesso público ao mestre do cluster do GKE. Requer enable-private-environment.
    • master-ipv4-cidr é o intervalo particular RFC 1918 da VPC do mestre. Obrigatório quando enable-private-environment estiver definido como "true".
  • image-version é a versão do composer-addon e do Airflow que serão usadas no ambiente neste formato: composer-a.b.c-airflow-x.y.z. Para informações sobre versão padrão e alias de versão, consulte Controle de versões do Cloud Composer.
  • labels são rótulos especificados pelo usuário anexados ao ambiente e aos recursos dele.
  • machine-type é o tipo de máquina do Compute Engine usado nas instâncias do cluster. Ele determina o número de CPUs e a quantidade de memória do ambiente. O Cloud Composer é compatível com os tipos de máquina padrão do Compute Engine. O padrão é n1-standard-1.
  • network é a rede de nuvem privada virtual usada nas comunicações da máquina. Ela é necessária para especificar uma sub-rede. A rede padrão será usada se esse argumento não for especificado. Quando você usa a VPC compartilhada, é necessário fornecer o nome de recurso relativo da rede usando o formato projects/HOST_PROJECT_ID/global/networks/NETWORK_ID. Para ver os requisitos de sub-rede da VPC compartilhada, consulte subnetwork abaixo.
  • node-count é o número de nós do GKE usado para executar o ambiente. A contagem padrão é três. A contagem de nós é a única configuração de cluster do Google Kubernetes Engine que pode ser alterada após a criação do ambiente.
  • oauth-scopes é o conjunto de escopos das APIs do Google disponibilizado em todas as VMs do nó. O escopo padrão do OAuth é https://www.googleapis.com/auth/cloud-platform e precisa ser incluído na lista de escopos, se especificado.
  • python-version é a versão do Python que será usada no ambiente. As versões compatíveis são Python 2 e 3. A versão padrão é a 2.
  • subnetwork é a sub-rede do Compute Engine a que o ambiente está conectado. Ao criar um ambiente de VPC compartilhada usando a gcloud, você precisa usar os composer-pods e composer-services dos intervalos de IP secundários. É possível especificar diferentes nomes de intervalos secundários. Basta usar a API do Cloud Composer. O nome da sub-rede também precisa ser especificado como um nome de recurso relativo usando o formato projects/HOST_PROJECT_ID/regions/REGION_ID/subnetworks/SUBNET_ID. A VPC compartilhada está na versão Beta e requer o comando gcloud beta composer environments create.
  • service-account é a conta de serviço do Google Cloud Platform que será usada pelas instâncias de VM do nó. A conta de serviço padrão do Compute Engine será usada se esse argumento não for especificado.
  • tags é a lista de tags de instância aplicadas a todas as VMs do nó. As tags são usadas para identificar origens ou destinos válidos de firewalls de rede. Cada tag na lista precisa estar em conformidade com o RFC 1035.

No exemplo a seguir, você cria um ambiente que executa a versão de imagem mais recente compatível do Cloud Composer na região us-central1. Ela utiliza o tipo de máquina n1-standard-2 com um rótulo beta:

gcloud beta composer environments create test-environment \
    --location us-central1 \
    --zone us-central1-f \
    --machine-type n1-standard-2 \
    --image-version composer-latest-airflow-x.y.z \
    --labels env=beta  

No exemplo de VPC compartilhada a seguir, você cria um ambiente no projeto host. O ambiente está na região us-central1 e usa o tipo de máquina n1-standard-2 com um rótulo beta:

gcloud beta composer environments create host-project-environment \
    --network vpc-network-name --subnetwork vpc-subnetwork-name
    --location us-central1 \
    --zone us-central1-f \
    --machine-type n1-standard-2 \
    --labels env=beta  

API

Para criar um novo ambiente do Cloud Composer com a API REST do Cloud Composer, faça uma solicitação de API environments.create. Preencha o recurso Environment com as informações da configuração.

Como configurar notificações por e-mail

Como configurar os serviços de e-mail SendGrid

Para receber notificações, configure as variáveis de ambiente para enviar e-mails por meio do serviço SendGrid.

  1. Inscreva-se no SendGrid por meio do Console do Google Cloud Platform e crie uma chave de API se ainda não tiver executado essas tarefas. Como desenvolvedor do Google Cloud Platform, você começa com 12.000 e-mails gratuitos por mês.

  2. No Console do GCP, abra a página Criar ambiente.

    Abrir a página "Criar ambiente"

  3. Em Configuração do nó, clique em Adicionar variável de ambiente.

  4. Insira as variáveis de ambiente a seguir:

    Nome Valor
    SENDGRID_MAIL_FROM O endereço de e-mail do remetente como noreply-composer@.
    SENDGRID_API_KEY A chave de API do SendGrid.
  5. Para testar a configuração do SendGrid:

    1. crie um DAG de teste que usa o EmailOperator;
    2. faça o upload do DAG para o ambiente e veja se a tarefa "EmailOperator" foi concluída;
    3. faça login no SendGrid com as respectivas credenciais;
    4. na IU do SendGrid, acesse a página "Activity";
    5. procure o e-mail na lista. Você verá que o SendGrid processou e entregou o e-mail;
    6. se o e-mail não tiver sido processado e entregue:
      • verifique as configurações do SendGrid;
      • verifique se as variáveis de ambiente SENDGRID_MAIL_FROM e SENDGRID_API_KEY estão corretas;
      • verifique o filtro de spam no seu cliente de e-mail.

Como configurar serviços SMTP de terceiros

Para enviar e-mails por meio de um serviço SMTP de terceiros, você precisa modificar a configuração email_backend do Airflow.

  1. Abra a página Criar ambiente.

    Abrir a página "Criar ambiente"

  2. Em Modificações da configuração do Airflow, clique em Adicionar modificação da configuração do Airflow.
  3. Insira as seguintes propriedades de configuração:

    Seção Chave Valor
    email email_backend airflow.utils.email.send_email_smtp
    smtp smtp_host O nome do host do servidor SMTP.
    smtp smtp_user O nome de usuário no servidor SMTP.
    smtp smtp_port Uma porta diferente de 25. A porta 25 está bloqueada.
    smtp smtp_password A senha SMTP padrão do Airflow. Não é possível configurar uma nova senha.
    smtp smtp_mail_from O endereço de e-mail do remetente como noreply-composer@.
    smtp smtp_starttls Para aumentar a segurança, defina como True.
    smtp smtp_ssl Para aumentar a segurança, defina como True.

Para ver outras configurações de SMTP, consulte o default_airflow.cfg da sua versão do Airflow.

Como modificar as configurações do Airflow

Ao criar ou atualizar um ambiente, é possível modificar as propriedades de configuração do Apache Airflow. Algumas delas estão bloqueadas.

Console

  1. Abra a página Criar ambiente.

    Abrir a página "Criar ambiente"

  2. Em Modificações da configuração do Airflow, clique em Adicionar modificação da configuração do Airflow.

  3. Insira a Seção, Chave e o novo Valor da configuração.

Por exemplo:

Seção Chave Valor
webserver dag_orientation RL

gcloud

Para modificar as configurações do Airflow ao criar um ambiente, execute o seguinte:

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --airflow-configs=KEY=VALUE,KEY=VALUE,...

em que:

  • ENVIRONMENT_NAME é o nome do ambiente;
  • LOCATION é a região do Compute Engine em que o ambiente está localizado;
  • KEY=VALUE é a seção da configuração e o nome da propriedade separados por um hífen, como core-print_stats_interval, além do valor correspondente.

Por exemplo:

gcloud composer environments create test-environment \
    --location us-central1 \
    --airflow-configs=core-load_example=True,webserver-dag_orientation=TB 

O comando termina quando a operação é concluída. Para não ficar esperando, use a sinalização --async. Consulte a página de referência Atualização de ambientes do gcloud composer para mais exemplos.

API

Para modificar as propriedades do Airflow durante a criação do ambiente do Cloud Composer com a respectiva API REST, preencha o campo opcional airflowConfigOverrides do recurso Environment ao gerar a solicitação environments.create.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…