Airflow 명령줄 인터페이스 액세스

Cloud Composer 1 | Cloud Composer 2

Apache Airflow에는 DAG 트리거 및 관리, DAG 실행 및 태스크 정보 가져오기, 연결 및 사용자 추가와 삭제 등의 작업을 수행하는 데 사용할 수 있는 명령줄 인터페이스(CLI)가 있습니다.

CLI 구문 버전 정보

Cloud Composer 1의 Airflow에서는 CLI 명령어용 구문을 2가지 제공합니다.

시작하기 전에

Cloud Composer에서 gcloud 명령줄 도구를 사용할 수 있는 권한이 있어야 합니다. 자세한 내용은 액세스 제어를 참조하세요.

Airflow CLI 명령어 실행

환경에서 Airflow CLI 명령어를 실행하려면 gcloud를 사용합니다.

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION \
    SUBCOMMAND \
    -- SUBCOMMAND_ARGUMENTS

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • LOCATION을 환경이 위치한 Compute Engine 리전으로 바꿉니다.
  • SUBCOMMAND지원되는 Airflow CLI 명령어 중 하나로 바꿉니다.
  • SUBCOMMAND_ARGUMENTS를 Airflow CLI 명령어의 인수로 바꿉니다.

하위 명령어 인수 구분 기호

지정된 Airflow CLI 명령어의 인수를 --로 구분합니다.

Airflow 2

Airflow 2 CLI 구문의 경우:

  • 복합 CLI 명령어를 하위 명령어로 지정합니다.
  • -- 구분 기호 뒤에 복합 명령어의 인수를 하위 명령어 인수로 지정합니다.
gcloud composer environments run example-environment \
    dags list -- --output=json

Airflow 1

Airflow 1.10 CLI 구문의 경우:

  • CLI 명령어를 하위 명령어로 지정합니다.
  • -- 구분 기호 뒤에 모든 인수를 지정합니다.
gcloud composer environments run example-environment \
    list_dags -- --report

기본 위치

대부분 gcloud composer 명령어에는 위치가 필요합니다. --location 플래그로 위치를 지정하거나 기본 위치를 설정할 수 있습니다.

예시

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

Airflow 2

gcloud composer environments run example-environment \
    --location us-central1 dags trigger -- sample_quickstart \
    --run-id=5077

Airflow 1

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

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

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

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

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

  1. Cloud Composer 환경을 실행하는 GKE 클러스터의 이름을 찾습니다.

    gcloud composer environments describe \
        ENVIRONMENT_NAME \
        --location LOCATION \
        --format="value(config.gkeCluster)"
    

    다음과 같이 바꿉니다.

    • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
    • LOCATION을 환경이 위치한 Compute Engine 리전으로 바꿉니다.
  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,EXTERNAL_IP/32
    

    다음과 같이 바꿉니다.

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

      gcloud container clusters describe GKE_CLUSTER \
          --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
      
    • EXTERNAL_IP를 Cloud Shell의 외부 IP 주소 또는 Airflow CLI 명령어를 실행하려는 머신의 공개 IP로 바꿉니다.

  4. 비공개 IP 환경에서 Airflow CLI 명령어를 실행합니다.

지원되는 Airflow CLI 명령어

지원되는 Airflow 명령어의 전체 목록은 gcloud composer environments run 참조를 확인하세요.