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

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

지원되는 Airflow CLI 명령어

Airflow는 Airflow 문서에 설명된 Airflow 2 CLI 구문을 사용합니다.

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

시작하기 전에

  • Cloud Composer에서 Google Cloud CLI를 사용하고 Airflow CLI 명령어를 실행하려면 권한이 있어야 합니다.

  • Cloud Composer 3에서는 kubectl를 통해 Airflow CLI 명령어를 실행할 수 없습니다. 이 접근 방식은 지원 중단되었으며 2.4.0 이전 버전의 Cloud Composer에만 필요합니다.

Airflow CLI 명령어 실행

환경에서 Airflow CLI 명령어를 실행하려면 gcloud CLI를 사용하세요.

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

다음을 바꿉니다.

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

하위 명령어 인수 구분 기호

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

  • 복합 CLI 명령어를 하위 명령어로 지정합니다.
  • -- 구분 기호 뒤에 복합 명령어의 인수를 하위 명령어 인수로 지정합니다.

예:

gcloud composer environments run example-environment \
    dags list -- --output=json

기본 위치

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

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

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

Cloud Composer API를 통해 Airflow CLI 명령어 실행

Cloud Composer 3에서는 Cloud Composer API를 통해 Airflow CLI 명령어를 실행할 수 있습니다.

명령어 실행

environments.executeAirflowCommand API 요청을 생성합니다.

{
  "environment": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "command": "AIRFLOW_COMMAND",
  "subcommand": "AIRFLOW_SUBCOMMAND",
  "parameters": [
    "SUBCOMMAND_PARAMETER"
  ]
}

다음을 바꿉니다.

  • PROJECT_ID: 프로젝트 ID입니다.
  • LOCATION: 환경이 위치한 리전입니다.
  • ENVIRONMENT_NAME: 환경의 이름입니다.
  • AIRFLOW_COMMAND: 실행하려는 Airflow CLI 명령어입니다(예: dags).
  • AIRFLOW_SUBCOMMAND: 실행하려는 Airflow CLI 명령어의 하위 명령어입니다(예: list).
  • (선택사항) SUBCOMMAND_PARAMETER: 하위 명령어의 매개변수입니다. 매개변수를 두 개 이상 사용하려면 목록에 항목을 더 추가합니다.

예를 들면 다음과 같습니다.

// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:executeAirflowCommand
{
  "environment": "projects/example-project/locations/us-central1/environments/example-environment",
  "command": "dags",
  "subcommand": "list",
  "parameters": [
    "-o json",
    "--verbose"
  ]
}

Poll 명령어 상태

Cloud Composer API를 통해 Airflow CLI 명령어를 실행한 후 PollAirflowCommand 요청을 전송하고 오류 및 상태 코드에 대해 exitInfo의 필드를 검사하여 명령어가 성공적으로 완료되었는지 확인합니다. output 필드에는 로그 줄이 포함됩니다.

명령어 실행 상태와 로그를 가져오려면 ExecuteAirflowCommandRequest에서 반환한 executionId, pod, podNamespace 값을 제공합니다.

예:

// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:pollAirflowCommand
{
  "executionId": "a117da94-355d-4ad4-839e-ac39ccb0bf48",
  "pod": "airflow-webserver-66d96b858f-tn96b",
  "podNamespace": "airflow-2-10-2-build-13-226523e4",
  "nextLineNumber": 1
}

다음 단계