인프런 커뮤니티 질문&답변

김하나님의 프로필 이미지

작성한 질문수

Airflow 마스터 클래스

8장 postgres 에 insert 하는 Dag 수행오류

24.07.23 21:56 작성

·

80

·

수정됨

0

안녕하세요.

 

8장에서 postgres 에 insert하는 dag를 실행하면 아래와 같은 오류로 대기하다가 실패로 끝납니다.

구글에 찾아보면 'secret_key'를 모두 동일하게 적용해주라고 하는데, 어떻게 적용해야 되는지 찾지는 못해서 이렇게 문의하게 되었습니다.

 

아래 소스도 git에 올라와 있는 소스 그대로 올려서 수행했기 때문에 따로 올리지는 않았습니다.

docker-compose.yaml

dags_python_with_postgres

 

위에 상태에서 최종 오류로 떨어지면 오류 메세지를 확인할 수 있었습니다 .ㅜ

사실 원인은 위에 메세지가 아닌것 같아요.

ERROR - Failed to execute job 1119 for task insrt_postgres (connection to server at "172" (0.0.0.172), port 5432 failed: Connection timed out Is the server running on that host and accepting TCP/IP connections? connection to server at "28.0.3" (28.0.0.3), port 5432 failed: Connection timed out Is the server running on that host and accepting TCP/IP connections?

그리고, 저의 docker-compose.yaml 에서 postgres_custom, postgres의 설정부분입니다.

그리고, airflow의 connection 연결할 때도 포트는 5432로 했습니다.

 

사실 질문답변을 검색해보면 저와 비슷한 오류가 1개 있어서 확인을 해봤는데요

그 오류는 5429에서 5432로 변경해서 해결됐다고 나온 것 같고 저는 5432인데 해결이 안돼서

제가 실수한게 있는지 확인부탁드립니다. ㅜ

답변 1

0

김현진님의 프로필 이미지
김현진
지식공유자

2024. 07. 24. 20:21

안녕하세요 김하나님

일단 올려주신 사진 중 첫 번째 올려주신 사진 (secret_key 관련한 내용)은 원인과 관련한 내용은 아니고

두 번째 올려주신 사진에 문제의 원인이 나와있습니다.

custom_postgres DB로 연결을 못하고 있는데 dag 안에서 172.28.0.3 IP 파라미터를 제대로 parsing 하지 못한 것 같은데요,

github에 있는 내용을 그대로 복사했다면 잘 되어야 맞는데 아무래도 dags_python_with_postgres.py 파일 내용이 잘못 들어간게 아닌가 싶습니다.

일단 dags/dags_python_with_postgres.py 내용을 한번 올려주시구요,

그리고 아래 ags_python_with_postgres.py 파일 안에서 print(ip) 구문을 넣고 한번 돌려보시겠어요? (아래 4번째 라인)

def insrt_postgres(ip, port, dbname, user, passwd, **kwargs):
        import psycopg2
        from contextlib import closing
        print(ip)
김하나님의 프로필 이미지
김하나
질문자

2024. 07. 25. 10:46

안녕하세요

알려주신 print(ip) 로 확인을 해보니 ip에 '.'이 아니라 ','로 들어가 있었습니다.

image

복사하고 db의 id,pw를 변경하면서 오타가 들어간 것 같아요.

변경하고 작업은 정상적으로 수행되었습니다.

 

감사합니다.