분류 전체보기 1191

[MSTeams] Webhook message delivery failed with error: Microsoft Teams endpoint returned HTTP error 413 with ContextId MS-CV=JiriroitVk6pKPlMA2e0Cw.0..

개요 Python을 이용해 MSTeams로 알람을 보내려고 한다. request, json 모듈로 직접 코딩해서 메시지 전송 함수를 호출해보았는데 Teams로 알람이 오는 경우도, 오지 않는 경우도 있었다. 원인을 파악하고, 해결해본다. 소스는 올리지 못했다. response 확인 일단 메시지를 전송한 후 응답을 확인해보았다. Webhook message delivery failed with error: Microsoft Teams endpoint returned HTTP error 413 with ContextId MS-CV=t6m/FZ9tWE2VAglGXXbmBA.0.. 응답 코드는 200으로 정상이지만, 실제로는 전송에 실패해서 Teams 알람이 오지 않은 것을 확인할 수 있다. 정상인 경우에는 아..

[Airflow] XComs

XComs cross-communications의 줄임말 기본적으로 Task는 독립적이다. 그리고 물리적으로 다른 서버에서 동작할 수 있다. 그러나 종종 Task 간에 값을 주고받는 등의 동작이 필요한데, XComs가 이를 가능케 한다. Task는 xcom_push 함수를 이용해 다른 Task가 사용할 데이터를 내보내고, xcom 사용이 필요한 Task는 xcom_pull 함수를 이용해 데이터에 접근할 수 있다. 다만 특정 오퍼레이터는 do_xcom_push: True인 경우 반환 값을 자동으로 XComs에 push 하도록 할 수 있다. XComs은 Key(name)와 task_id, dag_id, execution_date 등으로 식별한다. Task 간의 데이터 전달을 위해 설계되었기 때문에 큰 값을 ..

Apache Airflow 2022.08.19

[Git] restore - 수정 사항 삭제

checkout 기능 분리 공식 문서는 git checkout의 기능을 다음과 같이 정의하고 있다. git checkout : Switch branches or restore working tree files 즉, 두 개 이상의 기능을 가지고 있는데 2.23 버전에서 기능 각각이 switch, restore 명령어로 분리되었다. git switch : Switch branches git restore : Restore working tree files 이 글에서는 restore 명령어에 대해 정리한다. git switch는 2022.08.17 - [Git] switch에서 정리했다. restore restore는 checkout의 기능 중 파일 내용을 되돌리는 기능만을 담당한다. 옵션 없이 사용하면 HE..

Git | GitLab 2022.08.18

[Git] switch - 브랜치 전환

checkout 기능 분리 공식 문서는 git checkout의 기능을 다음과 같이 정의하고 있다. git checkout : Switch branches or restore working tree files 즉, 두 개 이상의 기능을 가지고 있는데 2.23 버전에서 기능 각각이 switch, restore 명령어로 분리되었다. git switch : Switch branches git restore : Restore working tree files 이 글에서는 switch 명령어에 대해 정리한다. switch switch 명령어는 checkout의 기능 중 브랜치를 변경하는 부분만을 담당한다. 명령어만 달라지고 사용 방법은 동일하다. git switch # 예시 git switch b20220802 ..

Git | GitLab 2022.08.17

[Airflow] execution_date

execution_date 사전적으로 실행 날짜라는 의미인데 Airflow에서의 개념은 실제 실행 시점과는 관계가 없다. Airflow에서 execution_date는 일종의 주문 번호(run id)이며, 그 값은 처리할 데이터의 시간 범위 중 가장 빠른 시점으로 결정된다. 예시를 들어 이해해보자. 예시 아래와 같이 매일 0시에 실행되고, 2021년 1월 1일을 기준으로 시작하는 test_dag가 있다고 하자. DAG( dag_id='test_dag', schedule_interval='0 0 * * *', start_date=datetime.datetime(2021, 1, 1) ) 2022.08.15 - [Airflow] 스케쥴링에서도 정리했지만 test_dag의 실행 시점과 데이터 처리 범위는 아래 ..

Apache Airflow 2022.08.16

[Airflow] 스케쥴링

개요 Airflow Scheduler는 일정한 주기마다 DAG 정의 파일이 저장된 폴더 내의 파이썬 파일을 탐색하며, 각 파일에 정의된 DAG 인스턴스의 스케쥴 설정에 맞춰서 Dagrun이라는 인스턴스를 생성하는 방식으로 작동한다. 이 때 스케쥴링 설정을 위해 DAG 인스턴스 생성 시의 매개변수로 start_date와 schedule_interval(실행 주기)을 전달하는데, 이 글에서는 start_date에 대해 간단히 정리한다. 배치 데이터 처리 방식 전통적인 배치 데이터 처리 방식은 작업의 대상이 되는 데이터의 기간이 존재하며, 해당 기간이 지난 후에 기간에 발생한 데이터를 처리한다. Airflow에서는 작업의 대상이 되는 데이터의 기간이 schedule_interval에 해당한다. 가령 매일 0시..

Apache Airflow 2022.08.15

[Git] checkout - 파일 수정 삭제

git checkout Switch branches or restore working tree files branch를 전환하거나 파일 내용을 되돌리는 기능을 한다. 즉. reset과 비슷하게 동작할 수 있다. branch 전환에 대해서는 2022.08.13 - [Git] branch 생성/삭제에서 다뤘으므로, 이 글에서는 되돌리는 방법을 정리해둔다. 특정 파일 작업 내용 삭제 추적되고 있는 파일이어야 하며, add / commit 되지 않은 코드를 삭제한다. git checkout -- diff로 확인할 수 있었던 수정사항이 삭제된 것을 확인할 수 있다. 파일에도 실제 작업한 내용이 삭제되어 있다. 모든 변경 사항 취소 경로 내 모든 변경 사항을 취소한다. 추적되고 있는 파일이어야 하며, add / c..

Git | GitLab 2022.08.14

[Git] branch 생성/삭제

branch 여러 사람이 동일한 소스 코드를 공유하여 다룰 때 같은 소스 코드를 기반으로 서로 다른 작업을 하기 위한 기능. 독립적인 저장소 내에서 작업을 진행할 수 있다. 즉, 다른 브랜치에 영향을 받지 않기 때문에 한 개발자가 기능을 추가하는 동시에 다른 개발자가 버그를 수정할 수 있다. 저장소를 처음 생성하면 기본적으로 master 또는 main이라는 이름의 저장소가 생성된다. 이 글의 내용 일부는 2022.07.07 - [Git] 원격 브랜치 가져오기와 중복된다. branch 목록 확인 git branch # -r : --remotes. 원격지 브랜치 목록을 보여준다. # -a : --all. 원격지 브랜치 목록과 로컬 브랜치 목록을 모두 보여준다. # -vv : 트래킹 브랜치 설정을 보여준다. ..

Git | GitLab 2022.08.13

[tree] 디렉터리 구조 확인

tree 디렉터리의 구조를 계층적으로 표시하는 도구 전체 구조를 대략적으로 파악할 때 유용하게 사용할 수 있다. 설치 ubuntu의 경우에는 apt를 이용해 설치할 수 있다. apt install tree 기본 사용 구조를 확인할 디렉터리를 지정하여 실행한다. 기본값은 현재 경로이다. tree 디렉터리만 출력 -d 옵션을 주어 실행하면 디렉터리 정보만 확인할 수 있다. tree -d # -d : 디렉터리 목록만 확인 depth 제한 -L 옵션을 주어 실행하면 탐색할 깊이를 제한할 수 있다. tree -L # -L : level. 디렉터리 구조를 보여줄 최대 깊이 # 예시 tree -L 1 파일 전체 경로 표시 전체 경로를 표시할 때는 -f 옵션을 주어 실행한다. tree -f # -f : 각 파일의 모든..

Linux 2022.08.12

[Airflow] PythonOperator 매개변수 전달

개요 DAG 실행 시 실행할 PythonOperator가 호출할 함수에 매개변수를 전달하고 싶다. 테스트로 아래와 같은 코드를 작성해 실행해보았으나, python_callable param must be callable 에러가 발생했다. ... 생략 ... t1 = PythonOperator( task_id='print_string', python_callable=print("hello, world!"), dag=dag, ) Airflow에서 python_callable로 실행할 함수에 인자값은 어떻게 전달할 수 있을까? 방법을 정리해둔다. op_args Airflow PythonOperator API 문서에 따르면 PythonOperator는 아래와 같은 매개변수를 가진다. 그 중 op_args는 함수..

Apache Airflow 2022.08.11