Airflow 명령줄 인터페이스

Apache Airflow에는 Airflow 환경을 관리하는 데 사용할 수 있는 명령줄 인터페이스(CLI)가 포함되어 있습니다. CLI는 워크플로 관리, Airflow 환경 변경, 로그 정보 가져오기와 같은 작업에 유용합니다.

Cloud Composer는 Google Cloud SDK를 사용하여 Airflow CLI 명령어를 간소화합니다. 설치되면 gcloud 명령줄 도구로 gcloud composer environments run 명령어를 실행하여 Airflow CLI 하위 명령어를 실행할 수 있습니다.

시작하기 전에

Cloud Composer 환경에서 gcloud 명령줄 도구(Airflow CLI)에 액세스하려면 다음 권한이 필요합니다.

  • composer.environments.get
  • container.clusters.get
  • container.clusters.list
  • container.clusters.getCredentials

자세한 내용은 Cloud Composer 액세스 제어를 참조하세요.

Airflow CLI 명령어 실행

다음 명령어를 사용하여 Cloud Composer 환경에서 Airflow CLI 명령어를 실행할 수 있습니다.

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION SUBCOMMAND

대부분 gcloud composer 명령어에는 위치가 필요합니다. 위치를 지정하려면 --location 플래그를 사용하거나 기본 위치를 설정하면 됩니다.

예를 들어 Cloud Composer 환경에서 ID가 5077sample_quickstart DAG를 트리거하려면 다음을 실행합니다.

gcloud composer environments run test-environment \
    --location us-central1 trigger_dag -- sample_quickstart \
    --run_id=5077

예를 들어 test/ 디렉터리에 있는 DAG의 구문 오류를 확인하려면 다음을 실행합니다.

gcloud composer environments run test-environment \
     --location us-central1 \
     list_dags -- -sd /home/airflow/gcs/data/test

비공개 IP 환경에서 명령어 실행

비공개 IP 환경에서 Airflow CLI 명령어를 실행하려면 GKE 클러스터의 마스터 엔드포인트에 액세스할 수 있는 머신에서 실행해야 합니다. 실행 옵션은 비공개 클러스터 구성에 따라 다를 수 있습니다.

클러스터에서 공개 엔드포인트 액세스가 중지되면 동일한 VPC 네트워크의 VM에서 Airflow 명령어를 실행해야 합니다. 이 경로를 사용 설정하려면 VPC 네트워크에 VM을 만듭니다.

공개 엔드포인트 액세스와 마스터 승인 네트워크가 사용 설정되면 마스터 승인 네트워크에 추가된 공개 IP 주소를 가진 머신에서 Airflow 명령어를 실행할 수도 있습니다. 머신에서 액세스를 사용 설정하려면 GKE 클러스터의 구성을 다음과 같이 조정합니다.

  1. 다음 명령어를 사용하여 Composer 환경을 실행하는 GKE 클러스터의 이름을 확인합니다.

    gcloud beta composer environments describe ENVIRONMENT_NAME \
        --location LOCATION \
        --format="value(config.gkeCluster)"
    
  2. 환경에서 Airflow CLI 명령어를 실행할 머신의 공개 IP를 확인합니다. Cloud Shell을 사용할 경우 dig를 사용하면 Cloud Shell의 외부 IP 주소를 확인할 수 있습니다.

    dig +short myip.opendns.com @resolver1.opendns.com
    
  3. 머신의 외부 주소를 클러스터의 마스터 승인 네트워크 목록에 추가합니다.

    gcloud container clusters update GKE_CLUSTER \
        --enable-master-authorized-networks \
        --master-authorized-networks EXISTING_AUTH_NETS,SHELL_IP/32
    

    여기에서

    • EXISTING_AUTH_NETS는 기존의 마스터 승인 네트워크 목록입니다. 마스터 승인 네트워크를 확인하려면 다음 명령어를 실행합니다.

      gcloud container clusters describe GKE_CLUSTER \
          --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
      
    • SHELL_IP는 Cloud Shell의 외부 IP 주소입니다.

이제 비공개 IP 환경에서 Airflow CLI 명령어를 실행할 수 있습니다.

지원되는 Airflow 명령어

Cloud Composer는 Airflow 1.9.0 이상을 실행하는 환경에서 다음 명령어를 지원합니다.

  • backfill
  • clear
  • connections
  • dag_state
  • kerberos
  • list_dags
  • list_tasks
  • pause
  • pool
  • render
  • run
  • task_failed_deps
  • task_state
  • test
  • trigger_dag
  • unpause
  • variables
  • version

Airflow 1.10.1은 다음 명령어를 추가로 지원합니다.

  • delete_dag

Airflow 1.10.2는 다음 명령어를 추가로 지원합니다.

  • list_dag_runs
  • next_execution