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에 '.'이 아니라 ','로 들어가 있었습니다.
복사하고 db의 id,pw를 변경하면서 오타가 들어간 것 같아요.
변경하고 작업은 정상적으로 수행되었습니다.
감사합니다.