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

Cloud Composer 1 | Cloud Composer 2

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

CLI 구문 버전 정보

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

지원되는 Airflow CLI 명령어

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

시작하기 전에

Airflow CLI 명령어 실행

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

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

다음과 같이 바꿉니다.

  • ENVIRONMENT_NAME을 환경 이름으로 바꿉니다.
  • LOCATION을 환경이 위치한 리전으로 바꿉니다.
  • 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 클러스터의 제어 영역 엔드포인트에 액세스할 수 있는 머신에서 실행합니다. 실행 옵션은 비공개 클러스터 구성에 따라 다를 수 있습니다.

공개 엔드포인트 액세스가 환경의 클러스터에서 중지되면 gcloud composer 명령어를 사용하여 Airflow CLI를 실행할 수 없습니다. Airflow CLI 명령어를 실행하려면 다음 단계를 수행합니다.

  1. VPC 네트워크에 VM을 만듭니다.
  2. 클러스터 사용자 인증 정보를 가져옵니다. bash gcloud container clusters get-credentials CLUSTER_NAME \ --region REGION \ --project PROJECT \ --internal-ip 명령어를 실행합니다.
  • kubectl을 사용하여 Airflow 명령어를 실행합니다. 예를 들면 다음과 같습니다.
kubectl exec deployment/airflow-scheduler -n COMPOSER_NAMESPACE \
  --container airflow-scheduler -- airflow dags list

COMPOSER_NAMESPACEcomposer-2-0-28-airflow-2-3-394zxc12411과 유사한 네임스페이스로 바꿉니다. 워크로드 목록에서 또는 kubectl get namespaces 명령어를 사용하여 Cloud Composer를 찾을 수 있습니다.

공개 엔드포인트 액세스가 환경의 클러스터에서 사용 설정되면 승인된 네트워크에 추가된 외부 IP 주소가 있는 머신에서 Airflow CLI 명령어를 실행할 수도 있습니다. 머신에서 액세스를 사용 설정하려면 머신의 외부 주소를 사용자 환경의 승인된 네트워크 목록에 추가합니다.

문제 해결

클러스터 제어 영역에 연결되지 않음

gcloud composer environments run 또는 kubectl 명령어를 실행할 때 다음과 같은 오류가 발생할 수 있습니다.

Get "https://<IP Address>/api?timeout=32s": dial tcp <IP Address>:443: i/o timeout"

증상: 이 오류 메시지는 이러한 명령어를 실행하는 컴퓨터에서 네트워크 연결이 안됨을 나타냅니다.

솔루션: 비공개 IP 환경에서 명령어 실행 섹션에 제시된 가이드라인을 따르거나 kubectl 명령어 타임아웃 섹션에서 제공되는 안내를 따릅니다.