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가 5077
인 sample_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
}