해결된 질문
작성
·
204
0
선생님 안녕하세요
좋은 강의 감사드립니다.
섹션 7 custom operator 실습 강의에서 계속 오류가 나서, 이런 저런 시도를 해보던 도중에 variable 에 문제가 있다는 것을 알고 수정해서 해결을 했는데요. 강의대로 했는데 안되는 이유를 모르겠습니다.
아래는 저의seoul_api_to_csv_operator.py 파일인데요
class SeoulApiToCsvOperator(BaseOperator):
template_fields = ('endpoint', 'path','file_name','base_dt')
def init(self, dataset_nm, path, file_name, base_dt=None, **kwargs):
super().__init__(**kwargs)
self.http_conn_id = 'openapi.seoul.go.kr'
self.path = path
self.file_name = file_name
self.endpoint = '{{var.value.apikey_openapi_seoul_go_kr}}/json/' + dataset_nm
self.base_dt = base_dt
self.endpoint = '{{var.value.apikey_openapi_seoul_go_kr}}/json/' + dataset_nm
부분을
self.endpoint = 'api key 직접 입력/json' + dataset_nm 으로 바꾸니까 코드가 정상적으로 실행이 되었습니다.
그런데 이해가 안되는것이 airflow admin --> variable 에 들어가서 강의에 나오는대로 그대로 입력을 했거든요. Val 부분에 정확한 api key가 입력된 것도 수차례 확인했습니다.
어디에서 문제가 있는걸까요??
답변 1
0
안녕하세요 nathan님!
우선 올려주신것만으로는 트러블 슈팅이 쉽지는 않은 상황이라
def execute(context) 함수 정의 시작 바로 아래에
print(self.endpoint) 한줄 넣어서 어떻게 나오는지 보시겠어요?