Open API
이 프로젝트는 모든 동작에 대한 API 가 개방되어 있으므로 다양한 도구와 함께 사용할 수 있습니다.
이를 통해 사용자는 오픈 API를 연결해서 대부분의 언어와 프레임워크로 시나리오를 자유롭게 제어할 수 있습니다.
Open API - Core
이 프로젝트의 오픈 API는 스튜디오로 작성한 시나리오를 언제나 제어할 수 있도록 코어 라우터를 제공합니다.
Core API를 사용하면, 사용자는 스튜디오에서 설계한 시나리오를 실행, 삭제, 갱신하는 작업으로 스케줄링할 수 있습니다.
해당 링크를 눌러 Open API를 활용한 사용자의 시나리오를 직접 제어해보세요.
Airflow 예시
예를 들어, Airflow와 같은 도구를 사용하면, 이 프로젝트의 Core API 호출만으로 바로 시나리오를 반복 및 규칙적으로 실행하는 것 이 가능합니다.
def requests_run_api():
response = requests.get("http://host.docker.internal:80/run")
logger.info(response.json())
return response.json()
간단한 requests.get 코드로 이루어진 파이썬 함수로 Airflow의 Python Operator를 사용하여 DAG의 작업으로 진행할 수 있습니다.
with DAG(
dag_id="run_sample",
schedule_interval='@daily',
default_args=default_args,
catchup=False,
max_active_runs=1,
start_date=datetime(2024, 1, 1),
end_date=datetime(2025, 1, 1),
concurrency=1
) as new_dag:
check = PythonOperator(
task_id="check_server",
python_callable=check_server
)
run = PythonOperator(
task_id="requests_run_api",
python_callable=requests_run_api
)
send_slack_message = SlackWebhookOperator(
task_id='send_slack',
slack_webhook_conn_id='slack_webhook',
message='The senario is completed successfully',
)
check >> run >> send_slack_message
Python Operator로 호출할 API 서버가 정상적인지 확인해보고, run 라우터를 호출합니다.
마지막으로 사전에 등록한 Airflow 연결 정보에서 수신 웹훅 주소를 받은 Slack Webhook Operator가 작업이 완료되었음을 알립니다.
이렇게 하면, 사용자는 시스템의 상태를 모니터링하거나, 특정 시간에 특정 작업을 자동으로 실행하는 등의 시나리오를 구현할 수 있습니다.
해당 링크를 눌러 관련 DAG 코드와 docker 파일을 확인하고 직접 실습해보세요.