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 명령어를 실행할 수 있는 권한이 있어야 합니다.
Airflow CLI 명령어는
environments.executeAirflowCommand
할당량을 사용합니다.Cloud Composer 3에서는
kubectl
을 통해 Airflow CLI 명령어를 실행할 수 없습니다. 이 방법은 지원 중단되었으며 Cloud Composer 2.4.0 이전 버전에서만 필요합니다.
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
}