Executar um DAG do Apache Airflow no Airflow gerenciado (geração 2)
Airflow gerenciado (geração 3) | Airflow gerenciado (geração 2) | Airflow gerenciado (geração 1 legada)
Este guia de início rápido mostra como criar um ambiente do Serviço gerenciado para Apache Airflow e executar um DAG do Apache Airflow no Airflow gerenciado (geração 2).
Se você não conhece o Airflow, consulte o tutorial de conceitos do Airflow na documentação do Apache Airflow para mais informações sobre conceitos, objetos e uso do Airflow.
Se você quiser usar a Google Cloud CLI, consulte Executar um DAG do Apache Airflow no Serviço gerenciado para Apache Airflow (Google Cloud CLI).
Se você quiser criar um ambiente usando o Terraform, consulte Criar ambientes (Terraform).
Antes de começar
- Faça login na sua Google Cloud conta do. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Ative a API do Airflow Gerenciado.
Funções necessárias para ativar APIs
Para ativar as APIs, é necessário ter o papel do IAM de administrador de uso do serviço (
roles/serviceusage.serviceUsageAdmin), que contém a permissãoserviceusage.services.enable. Saiba como conceder papéis. -
Para conseguir as permissões necessárias a fim de concluir o guia de início rápido, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Para atribuir papéis e permissões do IAM:
Administrador do IAM do projeto (
roles/resourcemanager.projectIamAdmin) -
Para criar uma conta de serviço para o ambiente do Airflow Gerenciado:
Criar contas de serviço (
roles/iam.serviceAccountCreator) -
Para visualizar, criar e gerenciar o ambiente do Airflow Gerenciado:
- Administrador de objetos do armazenamento e do ambiente (
roles/composer.environmentAndStorageObjectAdmin) - Usuário da conta de serviço (
roles/iam.serviceAccountUser)
- Administrador de objetos do armazenamento e do ambiente (
-
Para visualizar registros:
Visualizador de registros (
roles/logging.viewer)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
-
Para atribuir papéis e permissões do IAM:
Administrador do IAM do projeto (
Criar uma conta de serviço do ambiente
Ao criar um ambiente, você especifica uma conta de serviço. Essa conta de serviço é chamada de conta de serviço do ambiente. O ambiente usa essa conta de serviço para realizar a maioria das operações.
A conta de serviço do ambiente não é uma conta de usuário. Uma conta de serviço é um tipo especial de conta usada por um aplicativo ou uma instância de máquina virtual (VM), não uma pessoa.
Para criar uma conta de serviço para o ambiente:
Crie uma nova conta de serviço, conforme descrito em a documentação do Identity and Access Management.
Conceda um papel a ela, conforme descrito na documentação do Identity and Access Management. O papel necessário é Worker do Composer (
composer.worker).
Criar um ambiente
No Google Cloud console, acesse a página Criar ambiente.
Se este for o primeiro ambiente no projeto, uma seção Conceder permissões necessárias à conta de serviço do Cloud Composer será exibida.
Adicione a conta do agente de serviço do Airflow Gerenciado como um novo principal na conta de serviço do ambiente e conceda a ela o papel Extensão do agente de serviço da API Cloud Composer v2.
Confirme se você está usando a conta de serviço pretendida para o ambiente e clique em Conceder.
No campo Nome, use
example-environment.Na lista suspensa Local, selecione uma região para o ambiente do Airflow Gerenciado. Este guia usa a região
us-central1.Para outras opções de configuração do ambiente, use os padrões fornecidos.
Clique em Criar e aguarde a criação do ambiente.
Quando isso acontecer, uma marca de seleção verde será exibida ao lado do nome do ambiente.
Criar um arquivo DAG
Um Airflow DAG é uma coleção de tarefas organizadas que você quer programar e executar. Os DAGs são definidos em arquivos Python padrão.
Este guia usa um exemplo de DAG do Airflow definido no arquivo quickstart.py.
O código Python nesse arquivo faz o seguinte:
- Cria um DAG,
composer_sample_dag. Esse DAG é executado todos os dias. - Executa uma tarefa,
print_dag_run_conf. A tarefa imprime a configuração da execução do DAG usando o operador bash.
Salve uma cópia do arquivo quickstart.py na máquina local:
Fazer upload do arquivo DAG para o bucket do ambiente
Cada ambiente do Airflow Gerenciado tem um bucket do Cloud Storage associado a ele. O Airflow no Airflow Gerenciado programa apenas DAGs localizados na pasta /dags nesse bucket.
Para programar o DAG, faça upload de quickstart.py da máquina local para a pasta /dags do ambiente:
No Google Cloud console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do ambiente,
example-environment. A página Detalhes do ambiente é aberta.Clique em Abrir pasta de DAGs. A página Detalhes do bucket é aberta.
Clique em Fazer upload de arquivos e selecione sua cópia de
quickstart.py.Para fazer upload do arquivo, clique em Abrir.
Visualizar o DAG
Depois de fazer upload do arquivo DAG, o Airflow faz o seguinte:
- Analisa o arquivo DAG que você fez upload. Pode levar alguns minutos para que o DAG fique disponível para o Airflow.
- Adiciona o DAG à lista de DAGs disponíveis.
- Executa o DAG de acordo com a programação fornecida no arquivo DAG.
Verifique se o DAG é processado sem erros e está disponível no Airflow visualizando-o na interface do DAG. A interface do DAG é a interface do Airflow Gerenciado para visualizar informações do DAG no Google Cloud console. O Airflow Gerenciado também oferece acesso à interface do Airflow, que é uma interface da Web nativa do Airflow.
Aguarde cerca de cinco minutos para que o Airflow processe o arquivo DAG que você fez upload anteriormente e conclua a primeira execução do DAG (explicada mais adiante).
No Google Cloud console, acesse a página Ambientes.
Na lista de ambientes, clique no nome do ambiente,
example-environment. A página Detalhes do ambiente é aberta.Acesse a guia DAGs.
Verifique se o DAG
composer_quickstartestá presente na lista de DAGs.
Figura 1. A lista de DAGs mostra o DAG composer_quickstart (clique para ampliar)
Visualizar detalhes da execução do DAG
Uma única execução de um DAG é chamada de execução do DAG. O Airflow executa imediatamente uma execução de DAG para o DAG de exemplo porque a data de início no arquivo DAG está definida como ontem. Dessa forma, o Airflow acompanha a programação do DAG especificado.
O DAG de exemplo contém uma tarefa, print_dag_run_conf, que executa o comando echo no console. Esse comando gera metainformações sobre o DAG (identificador numérico da execução do DAG).
Na guia DAGs, clique em
composer_quickstart. A guia Execuções do DAG é aberta.Na lista de execuções de DAG, clique na primeira entrada.
Figura 2. A lista de execuções de DAG para o DAG composer_quickstart (clique para ampliar) Os detalhes da execução do DAG são mostrados, detalhando as informações sobre tarefas individuais do DAG de exemplo.
Figura 3. A lista de tarefas que foram executadas em na execução do DAG (clique para ampliar) A seção Registros da execução do DAG lista os registros de todas as tarefas na execução do DAG. É possível conferir a saída do comando
echonos registros.
Figura 4. Registros da tarefa print_dag_run_conf (clique para ampliar)
Limpar
Para evitar cobranças na conta do Google Cloud pelos recursos usados nesta página, siga as etapas abaixo.
Exclua os recursos usados neste tutorial:
Exclua o ambiente do Airflow Gerenciado:
No Google Cloud console, acesse a página Ambientes.
Selecione
example-environmente clique em Excluir.Aguarde até o ambiente ser excluído.
Exclua o bucket do ambiente. A exclusão do ambiente do Airflow Gerenciado não exclui o bucket.
No Google Cloud console, acesse a página Armazenamento > Navegador.
Selecione o bucket do ambiente e clique em Excluir. Por exemplo, esse bucket pode ser chamado de
us-central1-example-environ-c1616fe8-bucket.
A seguir