일부 DNS 쿼리를 수행하기 위해 Google App Engine에 대한 새로운 소켓 지원을 사용하려고합니다. dnspython을 사용하여 쿼리를 수행했으며 코드는 GAE 외부에서 올바르게 작동합니다.Google App Engine 소켓을 사용하는 DNS 쿼리
코드는 다음
class DnsQuery(webapp2.RequestHandler):
def get(self):
domain = self.request.get('domain')
logging.info("Test Query for "+domain)
answers = dns.resolver.query(domain, 'TXT', tcp=True)
logging.info("DNS OK")
for rdata in answers:
rc = str(rdata.exchange).lower()
logging.info("Record "+rc)
내가 GAE에서 실행하면 나는 다음과 같은 오류가 발생합니다 :
아무 대답이 제한 시간 내에 반환하지 않을 경우 dnspython에 의해 발생File "/base/data/home/apps/s~/one.366576281491296772/main.py", line 37, in post
return self.get()
File "/base/data/home/apps/s~/one.366576281491296772/main.py", line 41, in get
answers = dns.resolver.query(domain, 'TXT', tcp=True)
File "/base/data/home/apps/s~/one.366576281491296772/dns/resolver.py", line 976, in query
raise_on_no_answer, source_port)
File "/base/data/home/apps/s~/one.366576281491296772/dns/resolver.py", line 821, in query
timeout = self._compute_timeout(start)
File "/base/data/home/apps/s~/one.366576281491296772/dns/resolver.py", line 735, in _compute_timeout
raise Timeout
. timelimit을 60 초로 늘렸고 DnsQuery는 작업이지만 여전히 동일한 오류가 발생합니다.
Google App Engine 소켓 구현에 DNS 요청을 실행할 수 없도록 제한이 있습니까?
Google App Engine에도 비슷한 문제가 있습니다. – Uri
@Cyril N : 유료 앱 외에도 일일 예산을 설정했는지 확인하십시오. 적어도 작년에는 일일 예산이 초기화 될 때까지 유료 기능 만 제대로 작동하지 않는다는보고가있었습니다. –
@ DanCornilescu Billing> Budgets & Alerts에 갔다가 특정 threeshold에 대한 경고를 이미 정의했습니다. 그게 당신이 의미 한 것입니까? 나는 http://stackoverflow.com/a/10894376/330867에서 'Google은 귀하의 메일 할당량을 증가시키기 전에 첫 번째 지불이 완료 될 때까지 기다릴 것입니다 .'라고 읽었습니다. 아마 그게 내 문제 야. 그런 다음 App Engine> Quotas로 이동하여 소켓 항목 아래에서 앱이 요청을 한 것 (사용하는 Python 패키지'requests'을 사용했을 수도 있음)을 확인할 수 있습니다. 그래서'소켓'은 작동하지만'dnspython'과는 작동하지 않아야합니까? –